Code

fixed property
[gosa.git] / gosa-core / include / class_pluglist.inc
index 2709997ed86b1e780e023d74c366e7a45125bff9..0f89f3b611bb05aeda5ba7c67a386a0236578d9b 100644 (file)
@@ -68,42 +68,14 @@ class pluglist
                        }
                }
 
-               /* 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;
-
-    // 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]); 
-        } 
-      }
-    }
-
     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();
   }
 
 
@@ -118,7 +90,7 @@ class pluglist
     if (!isset($plug['CLASS'])){
       msg_dialog::display(
           _("Configuration error"),
-          _("The configuration format has changed. Please re-run setup!"),
+          _("The configuration format has changed: please run the setup again!"),
           FATAL_ERROR_DIALOG);
       exit();
     }
@@ -163,12 +135,17 @@ class pluglist
        */      
       if(preg_match("/:self$/",$acl_to_check)){
         $acl_to_check = preg_replace("/:self$/","",$acl_to_check);     
-        if($this->ui->get_permissions($this->ui->dn,$acl_to_check,"") != ""){
-          $this->silly_cache[$aclname]= TRUE;
-          return(TRUE);
+        if(strpos($acl_to_check,"/")){
+          if($this->ui->get_permissions($this->ui->dn,$acl_to_check,"") != ""){
+            $this->silly_cache[$aclname]= TRUE;
+            return(TRUE);
+          }
+        }else{
+          if($this->ui->get_category_permissions($this->ui->dn,$acl_to_check,"") != ""){
+            $this->silly_cache[$aclname]= TRUE;
+            return(TRUE);
+          }
         }
-        $this->silly_cache[$aclname]= FALSE;
-        return(FALSE);
       }else{
 
         // No self acls. Check if we have any acls for the given ACL type 
@@ -196,6 +173,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){
@@ -230,7 +220,7 @@ class pluglist
       $this->menu .=  
         "\n      <script language='javascript' type='text/javascript'>".
         "\n        function openPlugin(id){".
-        "\n          return question(\""._("You are currently editing a database entry. Do you want to dismiss the changes?")."\",".
+        "\n          return question(\""._("You are currently editing a database entry. Do you want to discard the changes?")."\",".
         "\n            \"main.php?plug=\" + id + \"&amp;reset=1\");".
         "\n        }".
         "\n      </script>\n"; 
@@ -264,6 +254,7 @@ class pluglist
     $add_hr =FALSE;
     $this->iconmenu = "";
     if ($this->iconmenu == ""){
+
       $cfg= $this->config->data['MENU'];
       foreach ($cfg as $headline => $plug){
         $col= 0;
@@ -309,13 +300,24 @@ 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'>".
-        "\n            <li class='left right-border' onClick=\"openPlugin('');\">".
-        "\n              <div class='nav-home'></div>".
+        "\n            <li class='left' onClick=\"openPlugin('');\" title='"._("Back to main menu")."'>".
+        "\n              ".image(get_template_path("images/home.png")).
         "\n            </li>".
-        "\n            <li class='left'>Welcome to GOsa</li>";
+        "\n            %navigator%";
 
       // Check if we've at least one entry defined ih the pathmenu
       if(isset($this->config->data['PATHMENU'])){
@@ -328,8 +330,10 @@ class pluglist
       }
       $this->pathMenu.= "\n          </ul>";
       $this->pathMenu.= "\n        </div>";
-    } 
-    return($this->pathMenu); 
+    }
+
+    $menu = pathNavigator::getCurrentPath();
+    return(preg_replace("/%navigator%/", $menu, $this->pathMenu)); 
   }