"Eins ist toll", "zwei" => "Zwei ist noch besser"); /* application attributes */ var $cn= ""; var $description= ""; var $base= ""; var $displayName = ""; var $goFonMacroParameter =array(); var $goFonMacroContent; var $goFonMacroVisible=0; /* attribute list for save action */ var $attributes= array("cn","base", "description","displayName","goFonMacroParameter","goFonMacroContent","goFonMacroVisible"); var $objectclasses= array("top", "goFonMacro"); function macro ($config, $dn= NULL) { plugin::plugin ($config, $dn); $tmp = array(); // temporary Var $tmp2 = array(); // temporary Var ... $tmp3 = ""; $ldap= $config->get_ldap_link(); $this->dn = $dn; /* This is always an account */ $this->is_account= TRUE; /* Edit or new one ?*/ if ($this->dn == "new"){ $ui= get_userinfo(); $this->base= dn2base($ui->dn); } else { $this->base= dn2base($this->dn); } /* initialising macro parameter */ unset($this->attrs['goFonMacroParameter']['count']); /* Set Parameters, or a new array if ther are no parameters */ if(isset($this->attrs['goFonMacroParameter'])){ $this->goFonMacroParameter = $this->attrs['goFonMacroParameter']; }else{ $this->goFonMacroParameter =array(); } /* Create an array for parameters if not given yet */ if(!is_array($this->goFonMacroParameter)){ $tmp3 = $this->goFonMacroParameter; $this->goFonMacroParameter =array(); if(!empty($tmp3)) { $this->goFonMacroParameter[] = $tmp3; } } /* Create a better sorted array */ foreach($this->goFonMacroParameter as $para) { $tmp = split("!",$para); $tmp2[$tmp[0]]['name'] = $tmp[1]; $tmp2[$tmp[0]]['type'] = $tmp[2]; $tmp2[$tmp[0]]['default'] = $tmp[3]; } /* Assign this array */ $this->goFonMacroParameter = $tmp2; } function execute() { /* Variables */ $vars = ""; $tmp = array(); $number = 0; /* Do we represent a valid group? */ if (!$this->is_account && $this->parent == NULL){ $display= " ". _("This 'dn' is no application.").""; return ($display); } /* Fill templating stuff */ $smarty= get_smarty(); $smarty->assign("bases", $this->config->idepartments); /* Assign all vars to Smarty */ foreach($this->attributes as $ar){ $smarty->assign($ar, $this->$ar); } /* Add an empty Parameter */ if(isset($_POST['addvar'])){ if(!is_array($this->goFonMacroParameter)){ $vars = $this->goFonMacroParameter; $this->goFonMacroParameter = array(); $this->goFonMacroParameter[]= $vars; } $number= count($this->goFonMacroParameter); $number++; $this->goFonMacroParameter[]=array("name"=>"new","type"=>"string","default"=>"test"); } /* read out post data, and assign it to the parameters */ /* And or delete */ foreach($_POST as $name=>$value){ /* Test if there is a variable begining with "del" */ if(preg_match("/del/",$name)){ /* Extract entry id to delete */ $nr = str_replace("del","",$name) ; /* unset entry */ unset($this->goFonMacroParameter[$nr]); }elseif(preg_match("/number/",$name)){ /* Set Post vars */ $key = $_POST[$name]; $this->goFonMacroParameter[$key]['name'] =$_POST["varname".$key]; $this->goFonMacroParameter[$key]['type'] =$_POST["vartype".$key]; $this->goFonMacroParameter[$key]['default'] =$_POST["default".$key]; } } /*generate Table which shows als parameters */ foreach($this->goFonMacroParameter as $key=>$para) { if($para['type']=="string") { $sel1 = "selected"; $sel2 = ""; }else{ $sel1 = ""; $sel2 = "selected"; } $vars .="