X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_tabs.inc;h=f75847a3a54503f521f7b2ad5f7833bfb18a799e;hb=7da42021bacbd916f09c39b742509482c185c699;hp=c7be1b78462ceddbb2109e8db8c5609e1a66559b;hpb=8905c24664f802581a45bbd2936251ebf99313e9;p=gosa.git diff --git a/include/class_tabs.inc b/include/class_tabs.inc index c7be1b784..f75847a3a 100644 --- a/include/class_tabs.inc +++ b/include/class_tabs.inc @@ -33,8 +33,6 @@ class tabs var $by_object= array(); var $SubDialog = false; - var $multiple_entries = FALSE; - function tabs(&$config, $data, $dn, $acl_category= "") { /* Save dn */ @@ -43,27 +41,7 @@ class tabs $baseobject= NULL; - /* Check specified dn - */ - if(is_string($dn)){ - - }elseif(is_array($dn)&&count($dn) == 1){ - $this->dn = $dn[key($dn)]; - }elseif(is_array($dn)&&count($dn) > 1){ - $this->multiple_entries = TRUE; - } - - foreach ($data as &$tab){ - - /* Check we want to handle multiple obejcts at once - * and if this is supported by enabled plugins - */ - $tmp = get_class_vars($tab['CLASS']); - if($this->multiple_entries && !$tmp['multiple_support']){ - continue; - } - $this->by_name[$tab['CLASS']]= $tab['NAME']; if ($baseobject === NULL){ @@ -81,13 +59,37 @@ class tabs $this->current= $tab['CLASS']; } } + } + + + function multiple_support_available() + { + foreach($this->by_object as $name => $obj){ + if($obj->multiple_support){ + return(TRUE); + } + } + return(FALSE); + } - /* Return false if tabs */ - if(!count($this->by_object)){ + function enable_multiple_support() + { + if(!$this->multiple_support_available()){ return(FALSE); + }else{ + foreach($this->by_object as $name => $obj){ + if($obj->multiple_support){ + $this->by_object[$name]->multiple_support_active = TRUE; + }else{ + unset($this->by_object[$name]); + unset($this->by_name[$name]); + } + } } + return(TRUE); } + function execute() { /* Rotate current to last */ @@ -181,7 +183,8 @@ class tabs $title= preg_replace("/ /"," ",$title); /* Take care about notifications */ - if ($this->by_object[$class]->pl_notify){ + $obj = $this->by_object[$class]; + if ( $this->by_object[$class]->pl_notify && ($obj->is_account || $obj->ignore_account)){ $notify= "id=\"notify\""; } else { $notify= ""; @@ -337,14 +340,12 @@ class tabs function addSpecialTabs() { - if(!is_array($this->dn)){ - $this->by_name['acl']= _("ACL"); - $this->by_object['acl']= new acl($this->config, $this, $this->dn); - $this->by_object['acl']->parent= &$this; - $this->by_name['reference']= _("References"); - $this->by_object['reference']= new reference($this->config, $this->dn); - $this->by_object['reference']->parent= &$this; - } + $this->by_name['acl']= _("ACL"); + $this->by_object['acl']= new acl($this->config, $this, $this->dn); + $this->by_object['acl']->parent= &$this; + $this->by_name['reference']= _("References"); + $this->by_object['reference']= new reference($this->config, $this->dn); + $this->by_object['reference']->parent= &$this; }