Code

Fixed script output
[gosa.git] / include / class_pluglist.inc
index 81048f1489f1ebbab93de532877844fa1e989752..8a354af6a81024f6c8abdec8c96bb8eb43ffac10 100644 (file)
@@ -41,11 +41,19 @@ class pluglist {
 
                 /* Fill info part of pluglist */
                 $classes= get_declared_classes();
-                foreach (get_declared_classes() as $cname){
-                        if (method_exists($cname, 'plInfo')){
-                                $this->info[$cname]= @call_user_func(array($cname, 'plInfo'));
-                        }
-                }
+
+                               foreach ($classes as $cname){
+                                       $cmethods = get_class_methods($cname);
+                                       if (in_array_ics('plInfo',$cmethods)){
+                                               $this->info[$cname]= @call_user_func(array($cname, 'plInfo'));
+                                       }
+                               }
+
+               /* Provide field for 'all' */
+               $this->info['all']= array();
+               $this->info['all']['plProvidedAcls']= array();
+               $this->info['all']['plDescription']= _("All objects in this category");
+               $this->info['all']['plSelfModify']= FALSE;
        }
 
        function get_plugins($list, $config)
@@ -131,7 +139,7 @@ class pluglist {
                                        $plDescription= $vars['plDescription'];
 
 
-                                       $index= $this->get_index($info['PATH']);
+                                       $index= $this->get_index($info['PATH'],$info['CLASS']);
                                        $image= get_template_path('images/'.$info['ICON']);
                                        $href= "main.php?plug=$index&reset=1";
 
@@ -229,7 +237,7 @@ class pluglist {
                                        $plHeadline= $vars['plHeadline'];
                                        $plDescription= $vars['plDescription'];
 
-                                       $index= $this->get_index($info['PATH']);
+                                       $index= $this->get_index($info['PATH'],$info['CLASS']);
 
                                        $href = "main.php?plug=".$index."&reset=1";
 
@@ -293,9 +301,21 @@ class pluglist {
                return ("../".$this->dirlist[$index]);
        }
 
-       function get_index($path)
+       function get_index($path,$class)
        {
-               return (array_search($path, $this->dirlist));
+               /* Search for plugin index (id), identify entry by path && class */
+                $data = $this->config->data['MENU'];
+                foreach($data as $section => $plugins){
+                        foreach($plugins as $key => $plugin)    {
+                                if($plugin['CLASS'] == $class && $plugin['PATH'] == $path){
+                                        return($key);
+                                }
+                        }
+                }
+
+               /* Indentify by path*/
+                return (array_search($path, $this->dirlist));
+
        }
 }
 ?>