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; }