1 <?php
3 class pathNavigator
4 {
6 static function registerPlugin($class, $title= "")
7 {
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 }
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 }
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 ?>