mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-23 08:53:47 +01:00
LSform :: validate: add $onlyIfPresent parameter
This parameter permit to handle only data of present element in POST data. Other element are not considered in the form.
This commit is contained in:
parent
3d9c11e12f
commit
a356555e0a
11 changed files with 76 additions and 31 deletions
|
@ -307,17 +307,19 @@ class LSform {
|
|||
}
|
||||
|
||||
/**
|
||||
* Verifie si le formulaire a été validé et que les données sont valides.
|
||||
* Check form is submited and its data are validat
|
||||
*
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||
*
|
||||
* @retval boolean true si le formulaire a été validé et que les données ont été validées, false sinon
|
||||
* @retval boolean true if form is submited and its data are valid, false otherwise
|
||||
*/
|
||||
public function validate(){
|
||||
public function validate($onlyIfPresent=false){
|
||||
if(!$this -> can_validate)
|
||||
return;
|
||||
if ($this -> isSubmit()) {
|
||||
if (!$this -> getPostData()) {
|
||||
if (!$this -> getPostData($onlyIfPresent)) {
|
||||
LSerror :: addErrorCode('LSform_01');
|
||||
return;
|
||||
}
|
||||
|
@ -436,16 +438,18 @@ class LSform {
|
|||
}
|
||||
|
||||
/**
|
||||
* Récupère les valeurs postées dans le formulaire
|
||||
* Retreive POST data of the form
|
||||
*
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||
*
|
||||
* @retval boolean true si les valeurs ont bien été récupérées, false sinon.
|
||||
* @retval boolean true if POST data are retreived, false otherwise
|
||||
*/
|
||||
public function getPostData() {
|
||||
public function getPostData($onlyIfPresent=false) {
|
||||
if (is_null($this -> dataEntryForm)) {
|
||||
foreach($this -> elements as $element_name => $element) {
|
||||
if( !($element -> getPostData($this -> _postData)) ) {
|
||||
if( !($element -> getPostData($this -> _postData, $onlyIfPresent)) ) {
|
||||
LSerror :: addErrorCode('LSform_02',$element_name);
|
||||
return;
|
||||
}
|
||||
|
@ -467,7 +471,7 @@ class LSform {
|
|||
if ((isset($this -> dataEntryFormConfig['requiredAllAttributes']) && $this -> dataEntryFormConfig['requiredAllAttributes']) || isset($this -> dataEntryFormConfig['requiredAttributes']) && is_array($this -> dataEntryFormConfig['requiredAttributes']) && in_array($elementName,$this -> dataEntryFormConfig['requiredAttributes'])) {
|
||||
$element -> setRequired();
|
||||
}
|
||||
if( !($element -> getPostData($this -> _postData)) ) {
|
||||
if( !($element -> getPostData($this -> _postData, $onlyIfPresent)) ) {
|
||||
LSerror :: addErrorCode('LSform_02',$element_name);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -210,11 +210,13 @@ class LSformElement extends LSlog_staticLoggerClass {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -230,6 +232,10 @@ class LSformElement extends LSlog_staticLoggerClass {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
elseif ($onlyIfPresent) {
|
||||
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
$return[$this -> name] = array();
|
||||
return true;
|
||||
|
|
|
@ -86,11 +86,13 @@ class LSformElement_image extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -215,11 +215,13 @@ class LSformElement_jsonCompositeAttribute extends LSformElement {
|
|||
* This method check present of this element's value in POST data and retreive
|
||||
* it to feed the array passed in paramater.
|
||||
*
|
||||
* @param[] array Reference of the array for retreived values
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true if value is in POST data, false instead
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -95,11 +95,13 @@ class LSformElement_labeledValue extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -119,6 +121,10 @@ class LSformElement_labeledValue extends LSformElement {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
elseif ($onlyIfPresent) {
|
||||
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
$return[$this -> name] = array();
|
||||
return true;
|
||||
|
|
|
@ -123,11 +123,13 @@ class LSformElement_mailQuota extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -155,6 +157,10 @@ class LSformElement_mailQuota extends LSformElement {
|
|||
$return[$this -> name]=$_POST[$this -> name];
|
||||
return true;
|
||||
}
|
||||
elseif ($onlyIfPresent) {
|
||||
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
$return[$this -> name] = array();
|
||||
return true;
|
||||
|
|
|
@ -28,7 +28,7 @@ LSsession :: loadLSclass('LSformElement_text');
|
|||
* Cette classe définis les éléments maildir des formulaires.
|
||||
* Elle étant la classe LSformElement_text.
|
||||
*
|
||||
* Options HTML :
|
||||
* Options HTML :
|
||||
* // *************************************
|
||||
* 'html_options' => array (
|
||||
* // Required
|
||||
|
@ -78,11 +78,13 @@ class LSformElement_maildir extends LSformElement_text {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
||||
$retval = parent :: getPostData($return);
|
||||
|
||||
|
|
|
@ -44,13 +44,15 @@ class LSformElement_password extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
// Récupère la valeur dans _POST, et les vérifie avec la fonction générale
|
||||
$retval = parent :: getPostData($return);
|
||||
$retval = parent :: getPostData($return, $onlyIfPresent);
|
||||
// Si une valeur est recupérée
|
||||
if ($retval) {
|
||||
$val = $this -> form -> ldapObject -> attrs[$this -> name] -> getValue();
|
||||
|
|
|
@ -114,11 +114,13 @@ class LSformElement_quota extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
@ -142,6 +144,10 @@ class LSformElement_quota extends LSformElement {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
elseif ($onlyIfPresent) {
|
||||
self :: log_debug($this -> name.": not in POST data => ignore it");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
$return[$this -> name] = array();
|
||||
return true;
|
||||
|
|
|
@ -168,11 +168,18 @@ class LSformElement_supannCompositeAttribute extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if ($onlyIfPresent) {
|
||||
self :: log_warning("getPostData : does not support \$onlyIfPresent mode => Post data ignored");
|
||||
return true;
|
||||
}
|
||||
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -143,11 +143,13 @@ class LSformElement_valueWithUnit extends LSformElement {
|
|||
* Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
|
||||
* pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
|
||||
*
|
||||
* @param[] array Pointeur sur le tableau qui recupèrera la valeur.
|
||||
* @param[in] &$return array Reference of the array for retreived values
|
||||
* @param[in] $onlyIfPresent boolean If true and data of this element is not present in POST data,
|
||||
* just ignore it.
|
||||
*
|
||||
* @retval boolean true si la valeur est présente en POST, false sinon
|
||||
*/
|
||||
public function getPostData(&$return) {
|
||||
public function getPostData(&$return, $onlyIfPresent=false) {
|
||||
if($this -> isFreeze()) {
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue