"Eins ist toll", "zwei" => "Zwei ist noch besser");
/* application attributes */
var $base= "";
var $goFonMacroParameter =array();
var $type_shortcut= array("string" => array("selected", "", ""),
"combo" => array("", "selected", ""),
"bool" => array("", "", "selected"));
/* attribute list for save action */
var $attributes= array("base","goFonMacroParameter");
var $objectclasses= array("top", "goFonMacro");
function macroParameter ($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;
}
}
foreach($this->goFonMacroParameter as $para){
$tmp = split("!",$para);
$num = preg_replace("/[^0-9]/","",$tmp[1]);
$tmp2[$num]['name'] = $tmp[1];
$tmp2[$num]['type'] = $tmp[2];
$tmp2[$num]['default'] = $tmp[3];
}
/* Assign this array */
$this->goFonMacroParameter = $tmp2;
}
function check_paras($content,$goFonMacroParameter)
{
preg_match_all("/[$]\{ARG[0-9]*\}/",$content,$res,PREG_OFFSET_CAPTURE);
$anz = count($res[0]);
$new = array();
foreach($res[0] as $val){
$num = preg_replace("/[^0-9]/","",$val[0]);
$new[$num]['val'] = $val[0];
$new[$num]['num'] = $num;
}
foreach($goFonMacroParameter as $gokey => $goval){
foreach($new as $nkey => $nval){
if($gokey == $nval['num']){
$goFonMacroParameter[$gokey]['check']= true;
}
}
}
foreach($new as $key => $val){
$goFonMacroParameter[$key]['check']= true;
if((!isset($goFonMacroParameter[$key]['name']))||(empty($goFonMacroParameter[$key]['name']))){
$goFonMacroParameter[$key]['name']="\${ARG".$key."}";
}
}
foreach($goFonMacroParameter as $key => $val){
if(!isset($goFonMacroParameter[$key]['check'])){
$goFonMacroParameter[$key]['check']= false;
}
if(!isset($goFonMacroParameter[$key]['default'])){
$goFonMacroParameter[$key]['default'] = "";
}
}
asort($goFonMacroParameter);
return($goFonMacroParameter);
}
function execute()
{
/* Variables */
$vars = "";
$tmp = array();
$number = 0;
$content = $_SESSION['macroManagment']->macrotabs->by_object['macro']->goFonMacroContent;
if(strstr($content,"ARG")){
$vorpos = strpos($content,"ARG");
$rest = substr($content,$vorpos, strlen($content));
}
/* Do we represent a valid group? */
if (!$this->is_account && $this->parent == NULL){
$display= " ".
_("This 'dn' is no phone macro.")."";
return ($display);
}
/* Fill templating stuff */
$smarty= get_smarty();
/* 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");
}
/*generate Table which shows als parameters */
$FonParas = $this->check_paras($content,$this->goFonMacroParameter);
foreach($FonParas as $key=>$para) {
/* Select correct item of combobox */
if(isset($para['type'])){
list($sel1, $sel2, $sel3)= $this->type_shortcut[$para['type']];
}else{
list($sel1, $sel2, $sel3)= array("", "", "");
}
/* Assemble output table */
$vars .="