Code

Added fall back to old style move method.
[gosa.git] / gosa-core / include / class_pluglist.inc
index d014c96a2c12f14284e7fcb2e2c9a96823929958..1b311a778dba2502f1957e87df306c7c3bbeb2a2 100644 (file)
@@ -38,7 +38,7 @@ class pluglist {
                $this->config= &$config;
 
                /* Create dirlist for all plugins */
-               $this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data);
+               $this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data['MENU']);
 
                 /* Fill info part of pluglist */
                 $classes= get_declared_classes();
@@ -59,25 +59,27 @@ class pluglist {
 
        function get_plugins($list, &$config)
        {
+                global $class_mapping;
+
                /* Error reporting, because I'm getting strange messages in PHP 4.2.x */
-               if (!isset($config['PATH']) && !isset($config['CLASS'])){
+               if (!isset($config['CLASS'])){
                        if (is_array($config)){
                                foreach ($config as $val){
                                        $list= $this->get_plugins($list, $val);
                                }
                        }
                } else {
-                       if (isset ($config['PATH']) && is_array($config)){
-                               $list[$this->index++]= $config['PATH'];
-                               if (isset($config['CLASS'])){
-                                       $class= $config['CLASS'];
-                               }
+                        if (is_array($config) && isset($class_mapping[$config['CLASS']])){
+                               $list[$this->index++]= dirname($class_mapping[$config['CLASS']]);
+                       } else {
+                               $list[$this->index++]= "";
                        }
                }
 
                return ($list);
        }
 
+
        function check_access($aclname)
        {
                $acls_to_check = array();
@@ -158,9 +160,7 @@ class pluglist {
                                        $plHeadline= $vars['plHeadline'];
                                        $plDescription= $vars['plDescription'];
 
-
-                                       $index= $this->get_index($info['PATH'],$info['CLASS']);
-                                       $image= get_template_path('images/'.$info['ICON']);
+                                       $index= $this->get_index($info['CLASS']);
                                        $href= "main.php?plug=$index&reset=1";
 
                                        if(!$vars){
@@ -181,15 +181,6 @@ class pluglist {
                                                        _($plHeadline)."</a></p>\n";
                                                }
 
-                                               /* Generate icon entry with description */
-                                               $current= '<table summary=\"\" class="menuitem" onClick=\'location.href="'.$href.'"\'><tr><td style="background-color:#F0F0F0;"><a href="'.$href.'"><img alt=\"\" border=0 src="'.$image.'"></a></td><td style="width:100%; vertical-align:top; text-align:justify; padding-left:10px;">';
-                                               if(session::get('js')){
-                                                       $current.= '<b>'._($plHeadline).'</b><br>'._($plDescription);
-                                               } else {
-                                                       $current.= '<a href="'.$href.'"><b>'._($plHeadline).'</b></a><br><a href="'.$href.'">'._($plDescription).'</a>';
-                                               }
-                                               $current.= '</td></tr></table>';
-                                               $this->menuparts[_($headline)][]= $current;
                                                if(!session::is_set('maxC')){
                                                        session::set('maxC',"RO0K9CzEYCSAAOtOICCFhEDBKGSKANyHMKDHAEwFLNTJILwEMODJYPgMRA0F9IOPSPUKNEVCUKyDBAHNbIWFJOIP");
                                                }
@@ -243,6 +234,8 @@ class pluglist {
 
        function show_iconmenu()
        {
+               global $class_mapping;
+
                if ($this->iconmenu == ""){
                        $cfg= $this->config->data['MENU'];
 
@@ -271,8 +264,13 @@ class pluglist {
                                        $vars= get_class_vars($info['CLASS']);
                                        $plHeadline= $vars['plHeadline'];
                                        $plDescription= $vars['plDescription'];
+          if (isset($vars['plIcon'])){
+                                       $plIcon= $vars['plIcon'];
+          } else {
+                                       $plIcon= "plugin.png";
+          }
 
-                                       $index= $this->get_index($info['PATH'],$info['CLASS']);
+                                       $index= $this->get_index($info['CLASS']);
 
                                        $href = "main.php?plug=".$index."&amp;reset=1";
 
@@ -287,8 +285,12 @@ class pluglist {
 
                                        if ($this->check_access($info['ACL'])){
 
-                                               /* Hm this looks doubled */
-                                               $image= get_template_path('images/'.$info['ICON']);
+                                               /* Load icon */
+                                               if (isset($info['ICON'])){
+                                                       $image= get_template_path('images/'.$info['ICON']);
+                                               } else {
+                                                       $image= get_template_path("plugins/".preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', $class_mapping[$info['CLASS']])."/images/$plIcon");
+                                               }
                                                if ($col > 5){
                                                        $entries= $entries."</tr><tr>";
                                                        $col = 1;
@@ -344,20 +346,20 @@ class pluglist {
                return ("../".$this->dirlist[$index]);
        }
 
-       function get_index($path,$class)
+       function get_index($class)
        {
                /* 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){
+                                if($plugin['CLASS'] == $class){
                                         return($key);
                                 }
                         }
                 }
 
-               /* Indentify by path*/
-                return (array_search($path, $this->dirlist));
+               /* Nothing */
+                return (0);
 
        }
 }