From 5fdd4986a9823561890a8f48bb3d6ddaea8a73d7 Mon Sep 17 00:00:00 2001 From: hickert Date: Tue, 21 Jun 2005 08:32:02 +0000 Subject: [PATCH] added files .. Splitted goFon into Basic and parameter setup git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@774 594d385d-05f5-0310-b6e9-bd551577e9d8 --- plugins/gofon/macro/class_gofonMacro.inc | 119 +------- .../macro/class_gofonMacroParameters.inc | 256 ++++++++++++++++++ plugins/gofon/macro/generic.tpl | 17 -- plugins/gofon/macro/parameter.tpl | 29 ++ 4 files changed, 287 insertions(+), 134 deletions(-) create mode 100755 plugins/gofon/macro/class_gofonMacroParameters.inc create mode 100755 plugins/gofon/macro/parameter.tpl diff --git a/plugins/gofon/macro/class_gofonMacro.inc b/plugins/gofon/macro/class_gofonMacro.inc index 88ad31f5e..488a290a3 100755 --- a/plugins/gofon/macro/class_gofonMacro.inc +++ b/plugins/gofon/macro/class_gofonMacro.inc @@ -11,21 +11,17 @@ class macro extends plugin 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 $attributes= array("cn","base", "description","displayName","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; @@ -40,37 +36,6 @@ class macro extends plugin } 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() @@ -95,76 +60,6 @@ class macro extends plugin 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 .=" - ".$key." - - - - - - - "; - - - } - - /* Display add renew button */ - $vars .=" - - - - - "; /* Checkboxes */ $smarty->assign("base_select", $this->base); $smarty->assign("vars", $vars); @@ -231,10 +126,10 @@ class macro extends plugin return(array($str)); } } - if(($this->cn != strtolower($this->cn))||(empty($this->cn))){ $message[] = "The attribute 'cn' must be lowercase and a least one char."; } + return $message; } @@ -247,12 +142,6 @@ class macro extends plugin plugin::save(); - $this->attrs['goFonMacroParameter']=array(); - - foreach($this->goFonMacroParameter as $key=>$fonpara){ - $this->attrs['goFonMacroParameter'][]=$key."!".$fonpara['name']."!".$fonpara['type']."!".$fonpara['default']; - } - unset($this->attrs['base']); /* Write back to ldap */ @@ -265,10 +154,6 @@ class macro extends plugin $ldap->modify($this->attrs); $this->handle_post_events("modify"); } else { - if(count($this->attrs['goFonMacroParameter']==0)){ - unset($this->attrs['goFonMacroParameter']); - } - $ldap->cd($this->dn); $ldap->create_missing_trees( $this->dn); $ldap->cd($this->dn); diff --git a/plugins/gofon/macro/class_gofonMacroParameters.inc b/plugins/gofon/macro/class_gofonMacroParameters.inc new file mode 100755 index 000000000..19fc62040 --- /dev/null +++ b/plugins/gofon/macro/class_gofonMacroParameters.inc @@ -0,0 +1,256 @@ + "Eins ist toll", "zwei" => "Zwei ist noch besser"); + + /* application attributes */ + var $base= ""; + var $goFonMacroParameter =array(); + + /* 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; + } + } + + /* 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(); + + /* 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 .=" + ".$key." + + + + + + + "; + + + } + + /* Display add renew button */ + $vars .=" + + + + + "; + /* Checkboxes */ + $smarty->assign("base_select", $this->base); + $smarty->assign("vars", $vars); + + + /* Show main page */ + return($smarty->fetch (get_template_path('parameter.tpl', TRUE))); + } + + function remove_from_parent() + { + $ldap= $this->config->get_ldap_link(); + $ldap->rmDir($this->dn); + + /* Optionally execute a command after we're done */ + $this->handle_post_events("remove"); + + /* Delete references to object groups */ + $ldap->cd ($this->config->current['BASE']); + $ldap->search ("(&(objectClass=gosaGroupOfNames)(member=".$this->dn."))", array("cn")); + while ($ldap->fetch()){ + $og= new ogroup($this->config, $ldap->getDN()); + unset($og->member[$this->dn]); + $og->save (); + } + + } + + + /* Save data to object */ + function save_object() + { + if (isset($_POST['cn'])){ + plugin::save_object(); + + } + } + + + /* Check values */ + function check() + { + $message = array(); + + foreach($this->attributes as $attr){ + if(chkacl($this->acl,$attr)){ + $str = sprintf( _("Insufficient permissions, can't change attribute '%s' in goFonMacro"),$attr) ; + return(array($str)); + } + } + return $message; + } + + + /* Save to LDAP */ + function save() + { + /* Post checks */ + $this->execute(); + + plugin::save(); + + $this->attrs['goFonMacroParameter']=array(); + + foreach($this->goFonMacroParameter as $key=>$fonpara){ + $this->attrs['goFonMacroParameter'][]=$key."!".$fonpara['name']."!".$fonpara['type']."!".$fonpara['default']; + } + + unset($this->attrs['base']); + + /* Write back to ldap */ + $ldap= $this->config->get_ldap_link(); + $ldap->cat($this->dn); + $a= $ldap->fetch(); + + if (count($a)){ + $ldap->cd($this->dn); + $ldap->modify($this->attrs); + $this->handle_post_events("modify"); + } else { + if(count($this->attrs['goFonMacroParameter']==0)){ + unset($this->attrs['goFonMacroParameter']); + } + $ldap->cd($this->dn); + $ldap->create_missing_trees( $this->dn); + $ldap->cd($this->dn); + $ldap->add($this->attrs); + $this->handle_post_events("add"); + } + show_ldap_error($ldap->get_error()); + } + +} +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: +?> diff --git a/plugins/gofon/macro/generic.tpl b/plugins/gofon/macro/generic.tpl index f9ea5fe29..98f1a2538 100755 --- a/plugins/gofon/macro/generic.tpl +++ b/plugins/gofon/macro/generic.tpl @@ -40,23 +40,6 @@ - - - - - - - - - {$vars} -
{t}Number{/t} - {t}Name{/t} - {t}type{/t} - {t}Default value{/t} - {t}Option{/t} - -
- diff --git a/plugins/gofon/macro/parameter.tpl b/plugins/gofon/macro/parameter.tpl new file mode 100755 index 000000000..4db0d31f6 --- /dev/null +++ b/plugins/gofon/macro/parameter.tpl @@ -0,0 +1,29 @@ +
+ + + +
+ + + + + + + + + {$vars} +
{t}Number{/t} + {t}Name{/t} + {t}type{/t} + {t}Default value{/t} + {t}Option{/t} +
+
+

 

+ + + -- 2.30.2