Code

Updated pathNavigator
[gosa.git] / gosa-core / include / class_pathNavigator.inc
1 <?php
3 class pathNavigator
4 {
6   static function registerPlugin($class, $title= "")
7   {
8     
9     $str = "";
11     // Display headline of management plugins
12     if($class instanceOf management && isset($class->plHeadline)){
13       $str= _($class->plHeadline);
14     }
16     // Shown title of sub dialogs (They have no plHeadline set.)
17     if($class instanceOf plugin && !isset($class->plHeadline)){
18       if(empty($class->pathTitle)){
19         $str = "Missing: ".get_class($class);
20       }else{
21         $str = _($class->pathTitle);
22       }
23     }
24   
25     // In case of tabs add the 'dn' of the entry 
26     if($class instanceOf tabs){
28       // Convert dn to cn
29       if(isset($class->dn)){
30         if(!session::is_set("pathNavigator::registerPlugin:{$class->dn}")){
31           global $config;
32           $ldap = $config->get_ldap_link();
34           if(!empty($class->dn)){
35             $namingAttr = preg_replace("/^([^=]*)=.*$/","\\1",$class->dn);
37             $ldap->cat($class->dn, array($namingAttr));
38             if($ldap->count()){
39               $attrs = $ldap->fetch();
40               $str = $attrs[$namingAttr][0];
41             }
42             session::set("pathNavigator::registerPlugin:{$class->dn}", $str);
43           }
44         }
45         $str = session::get("pathNavigator::registerPlugin:{$class->dn}");
46         if(empty($title)){
47           $title = $class->dn;
48         }
49       }
50     }
52     // Simple string given 
53     if(is_string($class)){
54       $str = $class;
55     }
56     
57     if(!empty($str)){
58       $cur = session::get('pathNavigator::position');
60       if(!empty($title)) $title = " title='{$title}' ";
62       $cur.= "\n<li {$title} class='left path-element'>{$str}</li>";
63       session::set('pathNavigator::position', $cur);
64     }
65   }
67   static function getCurrentPath()
68   {
69     $path = session::get('pathNavigator::position');
70     if(empty($path)){
71       $path = "<li class='left path-element'>"._("Welcome to GOsa")."</li>";
72     }
73     return($path);
74   }
76   static function clear()
77   {
78     session::set('pathNavigator::position','');
79   }
80 }
82 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
83 ?>