Code

Removed rebuild iconmenu
[gosa.git] / gosa-core / include / class_pluglist.inc
index 0e37c5daa588fdffafc880fd1f88980586a7359a..4e5e5dd0d15b5d55e1de8d53c42e067c7384ffa3 100644 (file)
@@ -176,7 +176,6 @@ class pluglist {
   function gen_menu()
   {
     if ($this->menu == ""){
-      $cfg= $this->config->data['MENU'];
       $this->checkMenu();
       $cfg= $this->config->data['MENU'];
       $menu = "\n<div class='navigation'>";
@@ -212,18 +211,18 @@ class pluglist {
       }
       $menu.= "\n</div>";
       $this->menu = $menu;
-    }
 
-    // Add javascript method to print out warning messages while leaving an unsaved form.
-    // We do it in here to get the string translated.
-    $this->menu .= "
-      <script language='javascript' type='text/javascript'>
+      // Add javascript method to print out warning messages while leaving an unsaved form.
+      // We do it in here to get the string translated.
+      $this->menu .= "
+        <script language='javascript' type='text/javascript'>
         function openPlugin(id){
           return question(\""._("You are currently editing a database entry. Do you want to dismiss the changes?")."\",
-            \"main.php?plug=\" + id + \"&amp;reset=1\");
+              \"main.php?plug=\" + id + \"&amp;reset=1\");
         }
       </script>
-    "; 
+        "; 
+    }
 
     // Return the generated/cached gosa menu.
     return ($this->menu);
@@ -240,109 +239,56 @@ class pluglist {
   function show_iconmenu()
   {
     global $class_mapping;
+
     if ($this->iconmenu == ""){
       $cfg= $this->config->data['MENU'];
-
-      if (isset($this->config->current['ICONSIZE'])){
-        list($x, $y)= explode("x", $this->config->get_cfg_value("iconsize"));
-        $isize= "width=\"$x\" height=\"$y\"";
-      } else {
-        $isize= "";
-      }
-
-      /* Parse headlines */
       foreach ($cfg as $headline => $plug){
-        $col= 1;
-        $menu= "<h1 class=\"menuheader\">".
-          _($headline)."</h1>\n<table summary=\"\" style=\"width:100%;".
-          "font-size: 14px;\" cellpadding=7 border=0>\n<tr>\n";
-        $entries= "";
+        $col= 0;
 
-        foreach ($plug as $info){
+        $this->iconmenu .= "\n  <div class='clear'></div>\n";
+        $this->iconmenu .= "\n  <h3>". _($headline)."</h3>\n";
 
-          if (!plugin_available($info['CLASS'])){
-            continue;
-          }
+        foreach ($plug as $info){
 
-          /* Read information from class variable */
+          // Get Plugin info
           $vars= get_class_vars($info['CLASS']);
           $plHeadline= $vars['plHeadline'];
           $plDescription= $vars['plDescription'];
-          if (isset($vars['plIcon'])){
-            $plIcon= $vars['plIcon'];
-          } else {
-            $plIcon= "plugin.png";
-          }
-
+          $plIcon = (isset($vars['plIcon'])) ? $vars['plIcon']: "plugin.png";
           $index= $this->get_index($info['CLASS']);
 
-          $href = "main.php?plug=".$index."&amp;reset=1";
-
           /* Check if class is available. If the class doesn't exists display error symbol 
-             to avoid that a user clicks on a non existing plugin  */
+           *  to avoid that a user clicks on a non existing plugin  
+           */
           if(!$vars){
             $plHeadline = $plDescription = _("Unknown");
             $info['ICON'] = "error.png";
-            $href="main.php?reset=1";
+            $index = '';
           }
 
-
-          if ($this->check_access($info['ACL'])){
-
-            /* Load icon */
-            if (isset($info['ICON'])){
-              $image= get_template_path('images/'.$info['ICON']);
-            } else {
-              if(!preg_match("/\//",$plIcon)){
-                $image= get_template_path("plugins/".preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', $class_mapping[$info['CLASS']])."/images/$plIcon");
-              }else{
-                $image = $plIcon; 
-              }
-            }
-            if ($col > 5){
-              $entries= $entries."</tr><tr>";
-              $col = 1;
-            }
-            $entries= $entries."<td class=\"iconmenu\" style=\"width:20%;\" onClick='location.href=\"".$href."\"'".
-              ">";
-            if(session::global_get('js')){
-              $entries.= "<img $isize border=0 align=middle src=\"$image".
-                "\" alt=\"*\">&nbsp;".
-                _($plHeadline);
-            } else {
-              $entries.= "<a class=\"iconmenu\" href=\"".$href."\">".
-                "<img $isize border=0 align=middle src=\"$image".
-                "\" alt=\"*\">&nbsp;".
-                _($plHeadline)."</a>";
-            }
-            $entries.= "</td>\n";
-            $col++ ;
-
+          // Detect the correct position of the plugin icon
+          if(!preg_match("/\//",$plIcon)){
+            $image= get_template_path("plugins/".preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', 
+                  $class_mapping[$info['CLASS']])."/images/$plIcon");
+          }else{
+            $image = $plIcon; 
           }
-        }
 
-        /* Append to menu */
-        if ($entries != ""){
-          $this->iconmenu.= $menu.$entries;
-
-          /* Fill up remaining columns */
-          if ($col != 1){
-            $col--;
-            while ($col % 5){
-              $this->iconmenu= $this->iconmenu.
-                "<td style=\"width:20%\">&nbsp;</td>\n";
-              $col++;
-            }
+          // Add a seperating row
+          if (($col % 4) == 0){ 
+            $this->iconmenu .= "\n  <div class='clear'></div>\n";
           }
 
-          /* close table */
-          $this->iconmenu= $this->iconmenu."</tr>\n</table>\n";
+          $this->iconmenu.= "\n  <div class='container-element' style='width: 25%;' onclick='openPlugin({$index})'> ";
+          $this->iconmenu.= "\n   <div class='icon-menu-item' style='background-image: url({$image});'>";
+          $this->iconmenu.= "\n    <h1>{$plHeadline}</h1>";
+          $this->iconmenu.= "\n    <p>{$plDescription}</p>";
+          $this->iconmenu.= "\n   </div>";
+          $this->iconmenu.= "\n  </div>\n";
+          $col++ ;
         }
       }
-
     }
-
-    /* Write menu output */
     return ($this->iconmenu);
   }