*/ class LSattr_html_select_list extends LSattr_html{ /** * Ajoute l'attribut au formualaire passer en paramètre * * @param[in] &$form LSform Le formulaire * @param[in] $idForm L'identifiant du formulaire * @param[in] $data Valeur du champs du formulaire * * @retval LSformElement L'element du formulaire ajouté */ function addToForm (&$form,$idForm,$data=NULL) { $possible_values=$this -> getPossibleValues(); $this -> config['text_possible_values'] = $possible_values; $element=$form -> addElement('select', $this -> name, $this -> config['label'],$this -> config, $this); if(!$element) { LSerror :: addErrorCode('LSform_06',$this -> name); return; } if ($data) { $element -> setValue($data); } // Mise en place de la regle de verification des donnees $regex_check_data='/'; foreach ($possible_values as $val => $text) { if($regex_check_data=='/') $regex_check_data.='^'.preg_quote($val,'/').'$'; else $regex_check_data.='|^'.preg_quote($val,'/').'$'; } $regex_check_data.='/'; $form -> addRule($this -> name, 'regex', array('msg'=> 'Valeur incorrect','params' => array('regex' => $regex_check_data)) ); // On retourne un pointeur vers l'element ajouter return $element; } /** * Retourne un tableau des valeurs possibles de la liste * * @author Benjamin Renard * * @retval array Tableau associatif des valeurs possible de la liste avec en clé * la valeur des balises option et en valeur ce qui sera affiché. */ function getPossibleValues() { $retInfos = array(); if (isset($this -> config['possible_values'])) { foreach($this -> config['possible_values'] as $val_name => $val) { if($val_name=='OTHER_OBJECT') { if ((!isset($val['object_type'])) || (!isset($val['value_attribute']))) { LSerror :: addErrorCode('LSattr_html_select_list_01',$this -> name); break; } if (!LSsession :: loadLSobject($val['object_type'])) { return; } $obj = new $val['object_type'](); if($val['scope']) { $param=array('scope' => $this -> config['possible_values']['scope']); } else { $param=array(); } $param['attributes'] = getFieldInFormat($val['display_attribute']); if ($val['value_attribute']!='dn') { $param['attributes'][] = $val['value_attribute']; } $list = $obj -> search($val['filter'],$this -> config['possible_values']['basedn'],$param); if(($val['value_attribute']=='dn')||($val['value_attribute']=='%{dn}')) { for($i=0;$iattribute->ldapObject->getFData($val_name); $val=$this->attribute->ldapObject->getFData($val); $retInfos[$val_name]=$val; } } } return $retInfos; } } /* * Error Codes */ $GLOBALS['LSerror_code']['LSattr_html_select_list_01'] = array ( 'msg' => _("LSattr_html_select_list : Configuration data are missing to generate the select list of the attribute %{attr}.") ); ?>