From c6bcdfeafa943ebaf5433ebb875d0d615ecf55f4 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Wed, 14 May 2008 14:43:23 +0000 Subject: [PATCH] =?UTF-8?q?-=20Correction=20bug=20[#1670]=20LSformElement?= =?UTF-8?q?=5Fselect=5Fobject=20:=20Bug=20important=20lors=20d'une=20valid?= =?UTF-8?q?ation=20interm=C3=A9diaire=20=09->=20Uniformisation=20du=20pass?= =?UTF-8?q?age=20en=20argument=20du=20LSattr=5Fhtml=20au=20moment=20de=20l?= =?UTF-8?q?'ajout=20d'un=20=C3=A9lement=20=C3=A0=20un=20formulaire=20=09->?= =?UTF-8?q?=20Utilisation=20de=20la=20m=C3=A9thode=20LSattr=5Fhtml::refres?= =?UTF-8?q?hForm()=20au=20moment=20du=20LSform::setValuesFromPostData()=20?= =?UTF-8?q?-=20Correction=20bug=20[#1669]=20Modification=20d'objet=20:=20l?= =?UTF-8?q?e=20type=20d'objet=20n'est=20pas=20charg=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../class/class.LSattr_html_image.php | 2 +- .../class/class.LSattr_html_password.php | 34 +++++++++--------- .../class/class.LSattr_html_select_list.php | 2 +- .../class/class.LSattr_html_select_object.php | 10 ++++++ .../includes/class/class.LSattr_html_text.php | 36 +++++++++---------- .../class/class.LSattr_html_textarea.php | 34 +++++++++--------- trunk/includes/class/class.LSform.php | 4 +-- trunk/includes/class/class.LSformElement.php | 24 +++++++++++++ trunk/includes/class/class.LSsession.php | 5 ++- trunk/modify.php | 4 +-- 10 files changed, 96 insertions(+), 59 deletions(-) diff --git a/trunk/includes/class/class.LSattr_html_image.php b/trunk/includes/class/class.LSattr_html_image.php index d49351dc..e0e4fe93 100644 --- a/trunk/includes/class/class.LSattr_html_image.php +++ b/trunk/includes/class/class.LSattr_html_image.php @@ -37,7 +37,7 @@ class LSattr_html_image extends LSattr_html { * @retval LSformElement L'element du formulaire ajouté */ function addToForm (&$form,$idForm,$data=NULL) { - $element=$form -> addElement('image', $this -> name, $this -> config['label'],$this -> config); + $element=$form -> addElement('image', $this -> name, $this -> config['label'],$this -> config, $this); if(!$element) { $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); return; diff --git a/trunk/includes/class/class.LSattr_html_password.php b/trunk/includes/class/class.LSattr_html_password.php index 1d1c528c..ec0d9ddb 100644 --- a/trunk/includes/class/class.LSattr_html_password.php +++ b/trunk/includes/class/class.LSattr_html_password.php @@ -27,29 +27,29 @@ */ class LSattr_html_password 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é - */ + /** + * 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) { - $element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config); - if(!$element) { - $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); - return; - } + $element=$form -> addElement('password', $this -> name, $this -> config['label'], $this -> config, $this); + if(!$element) { + $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); + return; + } if (count($data)>1) { $GLOBALS['LSerror'] -> addErrorCode(103,'password'); return; } - if ($data) { - $element -> setValue($data); - } + if ($data) { + $element -> setValue($data); + } return $element; } diff --git a/trunk/includes/class/class.LSattr_html_select_list.php b/trunk/includes/class/class.LSattr_html_select_list.php index 8efdeb83..34944fc3 100644 --- a/trunk/includes/class/class.LSattr_html_select_list.php +++ b/trunk/includes/class/class.LSattr_html_select_list.php @@ -43,7 +43,7 @@ class LSattr_html_select_list extends LSattr_html{ }*/ $possible_values=$this -> getPossibleValues(); $this -> config['text_possible_values'] = $possible_values; - $element=$form -> addElement('select', $this -> name, $this -> config['label'],$this -> config); + $element=$form -> addElement('select', $this -> name, $this -> config['label'],$this -> config, $this); if(!$element) { $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); return; diff --git a/trunk/includes/class/class.LSattr_html_select_object.php b/trunk/includes/class/class.LSattr_html_select_object.php index bc769a20..195d4f05 100644 --- a/trunk/includes/class/class.LSattr_html_select_object.php +++ b/trunk/includes/class/class.LSattr_html_select_object.php @@ -53,6 +53,16 @@ class LSattr_html_select_object extends LSattr_html{ return $element; } + /** + * Effectue les tâches nécéssaires au moment du rafraichissement du formulaire + * + * Récupère un array du type array('DNs' => 'displayValue') à partir d'une + * liste de DNs. + * + * @param[in] $data mixed La valeur de l'attribut (liste de DNs) + * + * @retval mixed La valeur formatée de l'attribut (array('DNs' => 'displayValue')) + **/ function refreshForm($data) { return $this -> getValues($data); } diff --git a/trunk/includes/class/class.LSattr_html_text.php b/trunk/includes/class/class.LSattr_html_text.php index a5b73336..80984768 100644 --- a/trunk/includes/class/class.LSattr_html_text.php +++ b/trunk/includes/class/class.LSattr_html_text.php @@ -27,25 +27,25 @@ */ class LSattr_html_text 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é - */ + /** + * 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) { - $element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config); - if(!$element) { - $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); - return; - } - if ($data) { - $element -> setValue($data); - } - return $element; + $element=$form -> addElement('text', $this -> name, $this -> config['label'],$this -> config, $this); + if(!$element) { + $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); + return; + } + if ($data) { + $element -> setValue($data); + } + return $element; } } diff --git a/trunk/includes/class/class.LSattr_html_textarea.php b/trunk/includes/class/class.LSattr_html_textarea.php index 0e95e2c5..5082738d 100644 --- a/trunk/includes/class/class.LSattr_html_textarea.php +++ b/trunk/includes/class/class.LSattr_html_textarea.php @@ -27,29 +27,29 @@ */ class LSattr_html_textarea 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é - */ + /** + * 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) { - $element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config); - if(!$element) { - $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); - return; - } + $element=$form -> addElement('textarea', $this -> name, $this -> config['label'], $this -> config, $this); + if(!$element) { + $GLOBALS['LSerror'] -> addErrorCode(206,$this -> name); + return; + } if (count($data)>1) { $GLOBALS['LSerror'] -> addErrorCode(103,'textarea'); return; } - if ($data) { - $element -> setValue($data); - } + if ($data) { + $element -> setValue($data); + } return $element; } diff --git a/trunk/includes/class/class.LSform.php b/trunk/includes/class/class.LSform.php index 0ce3421a..6319114a 100644 --- a/trunk/includes/class/class.LSform.php +++ b/trunk/includes/class/class.LSform.php @@ -295,7 +295,7 @@ class LSform { * * @retval LSformElement */ - function addElement($type,$name,$label,$params=array(),&$attr_html=NULL) { + function addElement($type,$name,$label,$params=array(),&$attr_html) { $elementType='LSformElement_'.$type; $GLOBALS['LSsession'] -> loadLSclass($elementType); if (!class_exists($elementType)) { @@ -413,7 +413,7 @@ class LSform { return; } foreach($this -> _postData as $element => $values) { - $this -> elements[$element] -> setValue($values); + $this -> elements[$element] -> setValueFromPostData($values); } return true; } diff --git a/trunk/includes/class/class.LSformElement.php b/trunk/includes/class/class.LSformElement.php index 5ef251d8..e25476f4 100644 --- a/trunk/includes/class/class.LSformElement.php +++ b/trunk/includes/class/class.LSformElement.php @@ -81,6 +81,30 @@ class LSformElement { $this -> values = $data; return true; } + + /** + * Définis la valeur de l'élément à partir des données + * envoyées en POST du formulaire + * + * Cette méthode définis la valeur de l'élément à partir des données + * envoyées en POST du formulaire. + * + * @author Benjamin Renard + * + * @param[in] [required] string or array La futur valeur de l'élément + * + * @retval boolean Retourne True + */ + function setValueFromPostData($data) { + if (!is_array($data)) { + $data=array($data); + } + + $data = $this -> attr_html -> refreshForm($data); + + $this -> values = $data; + return true; + } /** * Ajoute une valeur à l'élément diff --git a/trunk/includes/class/class.LSsession.php b/trunk/includes/class/class.LSsession.php index 1e0ffd72..eb3534df 100644 --- a/trunk/includes/class/class.LSsession.php +++ b/trunk/includes/class/class.LSsession.php @@ -160,8 +160,9 @@ class LSsession { } foreach ($this -> ldapServer['LSobjects'] as $object) { - if ( !$this -> loadLSobject($object) ) + if ( !$this -> loadLSobject($object) ) { return; + } } return true; } @@ -279,6 +280,8 @@ class LSsession { else { $this -> setLdapServer(0); } + + $this -> loadLSobjects(); // Connexion au serveur LDAP if ($this -> LSldapConnect()) { diff --git a/trunk/modify.php b/trunk/modify.php index 333ea41b..7bf7e94c 100644 --- a/trunk/modify.php +++ b/trunk/modify.php @@ -46,7 +46,7 @@ if($LSsession -> startLSsession()) { if ((isset($dn)) && (isset($LSobject)) ) { // Création d'un LSobject - if (class_exists($LSobject)) { + if ($GLOBALS['LSsession'] -> loadLSobject($LSobject)) { if ( $GLOBALS['LSsession'] -> canEdit($LSobject,$dn) ) { $LSview_actions[] = array( 'label' => _('Voir'), @@ -90,7 +90,7 @@ if($LSsession -> startLSsession()) { } } else { - $GLOBALS['LSerror'] -> addErrorCode(21); + $GLOBALS['LSerror'] -> addErrorCode(1004,$LSobject); } } else {