Code

Updated Export
[gosa.git] / gosa-core / include / class_pathNavigator.inc
index 44eb075908c00f5738f228ef0a997709a7018811..a7af83ec2247c815e65a37460ce46b42e660bc4b 100644 (file)
@@ -3,24 +3,60 @@
 class pathNavigator
 {
 
-  static function registerPlugin($class)
+  static function registerPlugin($class, $title= "")
   {
     $str = "";
+
+    // Display headline of management plugins
     if($class instanceOf management && isset($class->plHeadline)){
-      $str = "<b>"._($class->plHeadline)."</b>";
-    }elseif($class instanceOf plugin && isset($class->plHeadline)){
-#      $str = _($class->plHeadline);
-    }elseif($class instanceOf plugin && !isset($class->plHeadline)){
-      $str = "{".get_class($class)."}";
-    }elseif($class instanceOf tabs){
-      $str = $class->dn;
-    }elseif(is_string($class)){
+      $str= _($class->plHeadline);
+    }
+
+    // Shown title of sub dialogs (They have no plHeadline set.)
+    if($class instanceOf plugin && !isset($class->plHeadline)){
+      if(!empty($class->pathTitle)){
+        $str = _($class->pathTitle);
+      }
+    }
+  
+    // In case of tabs add the 'dn' of the entry 
+    if($class instanceOf tabs){
+
+      // Convert dn to cn
+      if(isset($class->dn)){
+        if(!session::is_set("pathNavigator::registerPlugin:{$class->dn}")){
+          global $config;
+          $ldap = $config->get_ldap_link();
+
+          if(!empty($class->dn)){
+            $namingAttr = preg_replace("/^([^=]*)=.*$/","\\1",$class->dn);
+
+            $ldap->cat($class->dn, array($namingAttr));
+            if($ldap->count()){
+              $attrs = $ldap->fetch();
+              $str = $attrs[$namingAttr][0];
+            }
+            session::set("pathNavigator::registerPlugin:{$class->dn}", $str);
+          }
+        }
+        $str = session::get("pathNavigator::registerPlugin:{$class->dn}");
+        if(empty($title)){
+          $title = $class->dn;
+        }
+      }
+    }
+
+    // Simple string given 
+    if(is_string($class)){
       $str = $class;
     }
     
     if(!empty($str)){
       $cur = session::get('pathNavigator::position');
-      $cur.= "<li class='left left-border path-element'>{$str}</li>";
+
+      if(!empty($title)) $title = " title='{$title}' ";
+
+      $cur.= "\n<li {$title} class='left path-element'>{$str}</li>";
       session::set('pathNavigator::position', $cur);
     }
   }
@@ -29,8 +65,9 @@ class pathNavigator
   {
     $path = session::get('pathNavigator::position');
     if(empty($path)){
-      $path = "<li class='left left-border path-element'>Welcome to GOsa</li>";
+      $path = "<li class='left path-element'>"._("Welcome to GOsa")."</li>";
     }
+
     return($path);
   }