Code

Addd comment
[gosa.git] / gosa-core / include / class_pluglist.inc
index d182ab3fc5d4c017e870965895165d7eec212ba6..80c9a33d981e530f0c4343e887fb11e4f91c4673 100644 (file)
@@ -33,7 +33,6 @@ class pluglist
 
   // Seems to be used in the help menu to generate an overview.
   var $headlines = array();
-
   // Remember stuff in here.
   var $silly_cache= array();
 
@@ -46,6 +45,9 @@ class pluglist
   var $menu= "";
   var $iconmenu= "";
 
+  // Classes plInfo list
+  var $info = array();
+
   function pluglist(&$config, &$ui)
   {
     $this->ui= &$ui;
@@ -57,36 +59,29 @@ class pluglist
   {
     $this->pluginList = array();
 
-    // First load the menu plugins and try to register them in the pluglist
-    //  if this fails for some reason, then remove the plugin from the menu.
-    if(isset($this->config->data['MENU'])){
-      foreach($this->config->data['MENU'] as $section => $plugins){
-        foreach($plugins as $id => $plug){
-          if(!$this->registerPlugin($plug)){ 
-            unset($this->config->data['MENU'][$section][$id]); 
-          }
-        }
-      }
-    }
-    
-    // Now load the path menu and try to register the plugins in the pluglist
-    //  if this fails for some reason, then remove the plugin from the menu.
-    if(isset($this->config->data['PATHMENU'])){
-      foreach($this->config->data['PATHMENU'] as $id => $plugin){
-        if(!$this->registerPlugin($plugin)){
-          unset($this->config->data['PATHMENU'][$id]); 
-        } 
-      }
-    }
+               /* Fill info part of pluglist */
+               $classes= get_declared_classes();
+               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;
 
     if(!session::is_set('maxC')){
       session::set('maxC',"RO0K9CzEYCSAAOtOICCFhEDBKGSKANyHMKDHAEwFLNTJILwEMODJYPgMRA0F9IOPSPUKNEVCUKyDBAHNbIWFJOIP");
     }
-
-    // Now generate menu - usually they are cached
-    $this->gen_menu();
-    $this->show_iconmenu();
-    $this->genPathMenu();
+//
+//   // Now generate menu - usually they are cached
+//   $this->gen_menu();
+//   $this->show_iconmenu();
+//   $this->genPathMenu();
   }
 
 
@@ -179,6 +174,19 @@ class pluglist
   function gen_menu()
   {
     if ($this->menu == ""){
+
+      // First load the menu plugins and try to register them in the pluglist
+      //  if this fails for some reason, then remove the plugin from the menu.
+      if(isset($this->config->data['MENU'])){
+        foreach($this->config->data['MENU'] as $section => $plugins){
+          foreach($plugins as $id => $plug){
+            if(!$this->registerPlugin($plug)){ 
+              unset($this->config->data['MENU'][$section][$id]); 
+            }
+          }
+        }
+      }
+
       $cfg= $this->config->data['MENU'];
       $menu = "\n      <div class='navigation'>";
       foreach ($cfg as $headline => $plug){
@@ -200,9 +208,9 @@ class pluglist
           $menu .=  "\n            <li id='plugMenuId_{$index}' $class onClick='return openPlugin({$index});'>".$title."</li>";
         }
         $menu.= "\n          </ul>";
-        $menu.= "\n          <div></div>";
+        $menu.= "\n          <div style='font-size:0'>&nbsp;</div>";
         $menu.= "\n        </div>\n";
-        $menu.= "\n        <div></div>";
+        $menu.= "\n        <div style='font-size:0'>&nbsp;</div>";
         $menu.= "\n        <div class='v-spacer'></div>\n";
       }
       $menu.= "\n      </div>\n";
@@ -247,6 +255,7 @@ class pluglist
     $add_hr =FALSE;
     $this->iconmenu = "";
     if ($this->iconmenu == ""){
+
       $cfg= $this->config->data['MENU'];
       foreach ($cfg as $headline => $plug){
         $col= 0;
@@ -292,6 +301,17 @@ class pluglist
   function genPathMenu()
   {
     if(empty($this->pathMenu)){
+
+      // Now load the path menu and try to register the plugins in the pluglist
+      //  if this fails for some reason, then remove the plugin from the menu.
+      if(isset($this->config->data['PATHMENU'])){
+        foreach($this->config->data['PATHMENU'] as $id => $plugin){
+          if(!$this->registerPlugin($plugin)){
+            unset($this->config->data['PATHMENU'][$id]); 
+          } 
+        }
+      }
+
       $this->pathMenu = 
         "\n        <div class='plugin-path'>".
         "\n          <ul class='path-navigation'>".