"Eins ist toll", "zwei" => "Zwei ist noch besser"); /* Appgroup attributes */ var $gosaMemberApplication= array(); /* Helpers */ var $department= ""; var $apps= array(); var $used_apps= array(); var $opt_edit= FALSE; var $option_name= array(); var $option_value= array(); var $appoption= array(); var $table= ""; /* attribute list for save action */ var $attributes= array(); var $objectclasses= array("gosaApplicationGroup"); function appgroup ($config, $dn= NULL) { plugin::plugin ($config, $dn); /* Load member applications */ if (isset ($this->attrs["gosaMemberApplication"][0])){ for ($i= 0; $i<$this->attrs["gosaMemberApplication"]["count"]; $i++){ $this->gosaMemberApplication[]= $this->attrs["gosaMemberApplication"][$i]; } } /* Load application options */ if (isset($this->attrs['gosaApplicationParameter'])){ for ($i= 0; $i<$this->attrs['gosaApplicationParameter']['count']; $i++){ $option= preg_replace('/^[^:]+:/', '', $this->attrs['gosaApplicationParameter'][$i]); $name= preg_replace('/:.*$/', '', $this->attrs['gosaApplicationParameter'][$i]); $this->appoption[$name]= $option; } } } function execute() { /* Do we need to flip is_account state? */ if (isset($_POST['modify_state'])){ $this->is_account= !$this->is_account; } /* Do we represent a valid group? */ if (!$this->is_account && $this->parent == NULL){ $display= " ". _("This 'dn' is no appgroup.").""; return ($display); } /* Show tab dialog headers */ $display= ""; if ($this->parent != NULL){ if ($this->is_account){ $display= $this->show_header(_("Remove applications"), _("This group has application features enabled. You can disable them by clicking below.")); } else { $display.= $this->show_header(_("Create applications"), _("This group has application features disabled. You can enable them by clicking below.")); return ($display); } } /* Check sorting variable */ $this->reload(); /* Delete app from group */ if (isset($_POST['del_app']) && isset ($_POST['used_apps'])){ foreach ($_POST['used_apps'] as $value){ unset ($this->used_apps["$value"]); $this->removeApp($value); } } /* Add app to group */ if (isset($_POST['add_app']) && isset($_POST['apps'])){ foreach ($_POST['apps'] as $value){ $this->used_apps["$value"]= $this->apps[$value]; asort($this->used_apps); $this->addApp($value); } } /* Edit application options? */ if (isset($_POST['edit_options']) && isset($_POST['used_apps'])){ $appname= $_POST['used_apps'][0]; /* We've got the appname, get parameters from ldap */ $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); $ldap->search("(&(objectClass=gosaApplication)(cn=$appname))"); if ($ldap->count() != 1){ print_red (_("The selected application name is not uniq. Please check your LDAP.")); } else { $attrs= $ldap->fetch(); if(isset($attrs['gosaApplicationParameter'])){ $this->dialog= TRUE; /* Fill name and value arrays */ for ($i= 0; $i<$attrs['gosaApplicationParameter']['count']; $i++){ $option= preg_replace('/^[^:]+:/', '', $attrs['gosaApplicationParameter'][$i]); $name= preg_replace('/:.*$/', '', $attrs['gosaApplicationParameter'][$i]); $this->option_name[$i]= $name; /* Fill with values from application, default should be loaded by the external scripts */ if (isset($this->appoption[$name])){ $this->option_value[$i]= $this->appoption[$name]; } } /* Create edit field */ $table= "
".$this->option_name[$i]." | ".
" |