示例#1
0
 public static function check(FormChecker_Field &$oField, $params)
 {
     $fields = array(clone $oField);
     if (is_array($params)) {
         foreach ($params as $idx => $fieldName) {
             $tmpField = $oField->getForm()->getField($fieldName);
             if (!is_null($tmpField)) {
                 $fields[] = clone $tmpField;
             }
         }
     } else {
         $tmpField = $oField->getForm()->getField($params);
         if (!is_null($tmpField)) {
             $fields[] = clone $tmpField;
         }
     }
     // on a cloner les objets afin de ne pas lancer d'erreur lors de la phase qui suit
     $rv = false;
     foreach ($fields as $idx => $tmpField) {
         if (FormChecker_Helper_RequiredValue::check($tmpField, null)) {
             $rv = true;
         }
     }
     if ($rv) {
         return true;
     } else {
         $fieldNames = '';
         foreach ($fields as $idx => &$tmpField) {
             $fieldNames .= '"' . $tmpField->getLabel() . '",';
         }
         $fieldNames = substr($fieldNames, 0, strlen($fieldNames) - 1);
         return $oField->raiseError(sprintf('Veuillez remplir au moins un des champs %s', $fieldNames));
     }
 }
 public static function check(FormChecker_Field &$oField, $params)
 {
     if (!is_array($params) || !array_key_exists('master', $params)) {
         return $oField->raiseError(sprintf('"%s": RequiredDependency est mal configuré', $oField->getLabel()));
     }
     $master_field =& $oField->getForm()->getField($params['master']);
     if (is_null($master_field)) {
         return $oField->raiseError(sprintf('Le champ "%s" n\'est pas défini pour ce formulaire', $params['master']));
     }
     $master_needed_value = array_key_exists('value', $params) ? $params['value'] : null;
     $rv = !is_null($master_needed_value) ? $master_field->getValue() == $master_needed_value : !is_null($master_field->getValue());
     return $rv ? FormChecker_Helper_RequiredValue::check($oField, null) : true;
 }