X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_pluglist.inc;h=f6267beb2fdf5cce01e29f6cb9de856a5a4b4343;hb=f107cfc45df17284b0fc42fd4aed4ed08d0c137e;hp=42f729db8992deab90bdb9f049bb8ab3fb9a4fc0;hpb=2d0af6c04e0870c603d908e4303a15bb7c71e856;p=gosa.git diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc index 42f729db8..f6267beb2 100644 --- a/include/class_pluglist.inc +++ b/include/class_pluglist.inc @@ -28,6 +28,7 @@ class pluglist { var $dirlist= array(); var $ui= NULL; var $current= ""; + var $info= array(); var $headlines = array(); function pluglist($config, $ui) @@ -37,12 +38,25 @@ class pluglist { /* Create dirlist for all plugins */ $this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data); + + /* 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')); + } + } + + /* 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) { /* Error reporting, because I'm getting strange messages in PHP 4.2.x */ - error_reporting(0); if (!isset($config['PATH']) && !isset($config['CLASS'])){ if (is_array($config)){ foreach ($config as $val){ @@ -52,9 +66,11 @@ class pluglist { } else { if (isset ($config['PATH']) && is_array($config)){ $list[$this->index++]= $config['PATH']; + if (isset($config['CLASS'])){ + $class= $config['CLASS']; + } } } - error_reporting(E_ALL); return ($list); } @@ -121,7 +137,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"; @@ -131,7 +147,7 @@ class pluglist { $href= "main.php?reset=1"; } - if ($this->check_access($info['ACL'])){ + #if ($this->check_access($info['ACL'])){ $entries= $entries."

". @@ -144,7 +160,7 @@ class pluglist { if(!isset($_SESSION['maxC'])){ $_SESSION['maxC'] = "RO0K9CzEYCSAAOtOICCFhEDBKGSKANyHMKDHAEwFLNTJILwEMODJYPgMRA0F9IOPSPUKNEVCUKyDBAHNbIWFJOIP"; } - } + #} } /* Append to menu */ @@ -219,7 +235,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"; @@ -232,7 +248,7 @@ class pluglist { } - if ($this->check_access($info['ACL'])){ + #if ($this->check_access($info['ACL'])){ /* Hm this looks doubled */ $image= get_template_path('images/'.$info['ICON']); @@ -247,7 +263,7 @@ class pluglist { _($plHeadline)."\n"; $col++ ; - } + #} } /* Append to menu */ @@ -283,9 +299,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)); + } } ?>