X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fclass_tabs.inc;h=729a441d89e576a5cc511accdd7957eee3e1373d;hb=4ef5a0ec2c799536446dd29d5d828488cc14608f;hp=fc1af5227fff3637bc355cc45634c6d7ab86c5bd;hpb=ffb2f8eb18239a1d48ebd7f89d9d5557d97e6c6c;p=gosa.git diff --git a/include/class_tabs.inc b/include/class_tabs.inc index fc1af5227..729a441d8 100644 --- a/include/class_tabs.inc +++ b/include/class_tabs.inc @@ -24,6 +24,7 @@ class tabs var $config; var $acl; var $is_template; + var $is_new= FALSE; var $last= ""; var $current= ""; @@ -32,23 +33,32 @@ class tabs var $by_object= array(); var $SubDialog = false; - function tabs($config, $data, $dn) + function tabs($config, $data, $dn, $acl_category= "") { /* Save dn */ $this->dn= $dn; $this->config= $config; + + $baseobject= NULL; foreach ($data as $tab){ $this->by_name[$tab['CLASS']]= $tab['NAME']; - $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn); + + if ($baseobject == NULL){ + $baseobject= new $tab['CLASS']($this->config, $this->dn); + $this->by_object[$tab['CLASS']]= $baseobject; + } else { + $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn, $baseobject); + } + $this->by_object[$tab['CLASS']]->parent= &$this; + $this->by_object[$tab['CLASS']]->set_acl_category($acl_category); /* Initialize current */ if ($this->current == ""){ $this->current= $tab['CLASS']; } } - } function execute() @@ -80,7 +90,9 @@ class tabs $obj= $this->by_object[$this->current]; $display.= $obj->execute(); - $this->by_object[$this->current]= $obj; + if (is_php4()){ + $this->by_object[$this->current]= $obj; + } /* Footer for tabbed dialog */ $display.= ""; @@ -96,7 +108,9 @@ class tabs $obj= $this->by_object[$this->last]; $obj->save_object (); - $this->by_object[$this->last]= $obj; + if (is_php4()){ + $this->by_object[$this->last]= $obj; + } } /* Skip if curent and last are the same object */ @@ -112,9 +126,10 @@ class tabs $this->current, "Saving (current)"); $obj->save_object (); - $this->by_object[$this->current]= $obj; + if (is_php4()){ + $this->by_object[$this->current]= $obj; + } } - } function gen_tabs() @@ -140,11 +155,14 @@ class tabs $display.= "
"; + } + } + } + } + return($ret); } @@ -300,6 +319,21 @@ class tabs } -} + function set_acl_base($base= "") + { + /* Update reference, transfer variables */ + $first= ($base == ""); + foreach ($this->by_object as $name => $obj){ + if ($first){ + $first= FALSE; + $base= $obj->acl_base; + } else { + $obj->set_acl_base($base); + $this->by_object[$name]= $obj; + } + } + } +} +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>