index 88ad31f5eac99b3b74a9d27a09edf04b09bc3d38..373a4838e9df79a1103f0f8d5ae97f5de78a5c3f 100755 (executable)
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;
} 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()
/* Do we represent a valid group? */
if (!$this->is_account && $this->parent == NULL){
$display= "<img alt=\"\" src=\"images/stop.png\" align=\"middle\"> <b>".
- _("This 'dn' is no application.")."</b>";
+ _("This 'dn' is no phone macro.")."</b>";
return ($display);
}
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 .="<tr>
- <td>".$key."<input name=\"number".$key."\" value='".$key."' type='hidden'> </td>
- <td><input name='varname".$key."' value='".$para['name']."'></td>
- <td>
- <select name='vartype".$key."'>
- <option name='vartype".$key."' value='string' ".$sel1.">string</option>
- <option name='vartype".$key."' value='combo' ".$sel2.">combo</option>
- <option name='vartype".$key."' value='bool' ".$sel2.">bool</option>
- </select>
- </td>
- <td><input name='default".$key."' value='".$para['default']."'></td>
- <td><input name='del".$key."' value='delete' type='submit'></td>
- </tr>";
-
-
- }
-
- /* Display add renew button */
- $vars .="<tr>
- <td colspan=5>
- <input name='addvar' value="._("Add")." type='submit'>
- <input name='actvar' value="._("Refresh")." type='submit'>
- </td>
- </tr>";
/* Checkboxes */
$smarty->assign("base_select", $this->base);
$smarty->assign("vars", $vars);
}
}
-
/* Show main page */
return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
}
$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 ();
+ $og= new ogroup($this->config, $ldap->getDN());
+ unset($og->member[$this->dn]);
+ $og->save ();
}
-
}
return(array($str));
}
}
-
if(($this->cn != strtolower($this->cn))||(empty($this->cn))){
$message[] = "The attribute 'cn' must be lowercase and a least one char.";
}
+
+ if(count(split("\n",$this->goFonMacroContent))>100){
+ $message[] = _("Makro length must be lower than 100 lines");
+ }
+
return $message;
}
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->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);