diff --git a/doc/conf/LSattribute/check_data/inarray.docbook b/doc/conf/LSattribute/check_data/inarray.docbook index 8e72cbaf..6dd4a6cd 100644 --- a/doc/conf/LSattribute/check_data/inarray.docbook +++ b/doc/conf/LSattribute/check_data/inarray.docbook @@ -1,8 +1,8 @@ inarray Cette règle vérifie que la valeur saisie fait partie d'une liste de valeurs - autorisées. - + autorisées (ou interdites). + Paramêtres de configuration @@ -13,6 +13,15 @@ + + reverse + + Booléen permettant d'inverser la logique de validation : si reverse + est vrai, la valeur testée sera acceptée si elle ne fait pas partie des valeurs possibles + (Paramètre facultatif, par défaut : faux). + + + diff --git a/src/includes/class/class.LSformRule_inarray.php b/src/includes/class/class.LSformRule_inarray.php index 98294e30..a5cad5d6 100644 --- a/src/includes/class/class.LSformRule_inarray.php +++ b/src/includes/class/class.LSformRule_inarray.php @@ -21,7 +21,7 @@ ******************************************************************************/ /** - * Règle de validation à partir d'une liste de valeur possible + * LSform check rule from a list of possible values * * @author Benjamin Renard */ @@ -30,27 +30,31 @@ class LSformRule_inarray extends LSformRule { // CLI parameters autocompleters protected static $cli_params_autocompleters = array( 'possible_values' => null, + 'reverse' => array('LScli', 'autocomplete_bool'), ); /** - * Vérification de la valeur. + * Check the value in configured list * - * @param string $values Valeur à vérifier - * @param array $options Options de validation : - * - Regex : $option['params']['possible_values'] ou $option - * @param object $formElement L'objet formElement attaché + * @param string $values The value to check + * @param array $options Check options: + * - possible_values: the list of valid values (required) + * - reverse: if true, reverse the logic of the check + * (list values are prohibited, optional, default: False) + * @param object $formElement The linked LSformElement object * - * @return boolean true si la valeur est valide, false sinon + * @return boolean true if the value is valid, false otherwise */ public static function validate($value, $options=array(), &$formElement) { $possible_values = LSconfig :: get('params.possible_values', null, null, $options); + $reverse = LSconfig :: get('params.reverse', false, 'bool', $options); if (!is_array($possible_values)) { LSerror :: addErrorCode('LSformRule_inarray_01'); return; } if (!in_array($value, $possible_values)) - return false; - return true; + return $reverse; + return !$reverse; } }