Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * (non-PHPdoc)
- * @see Zend_Form::isValid()
- */
- public function isValid($data) {
- // Vérification par défaut
- $parentIsValid = parent::isValid($data);
- // Vérifie que chaque nom de système saisi est unique
- $values = array();
- $isValid = true;
- foreach($data as $system => $system_values) {
- // Les données possèdent également le numéro de l'étape (__step) et le nom du bouton cliqué
- if(preg_match('/^system_[0-9]+/', $system)) {
- $cn = $system_values['cn'];
- if(isset($values[$cn])) {
- $isValid = false;
- $values[$cn][] = $this->getSubForm($system);
- } else {
- $values[$cn] = array($this->getSubForm($system));
- }
- }
- }
- if(!$isValid) {
- // $cn : valeur fournie ; $systems : tableau de SubForm où un SubForm = un système
- foreach($values as $cn => $systems) {
- if(count($systems) > 1) {
- for($i = 0; $i < count($systems); ++$i) {
- $labels = array();
- for($j = 0; $j < count($systems); ++$j) {
- if($j !== $i) {
- $labels[] = $systems[$j]->getLegend();
- }
- }
- $systems[$i]->getElement('cn')->clearErrorMessages();
- if(count($labels) > 1) {
- $systems[$i]->getElement('cn')->addError('La valeur saisie est identique à celle des systèmes ' . implode(', ', $labels));
- } else {
- $systems[$i]->getElement('cn')->addError('La valeur saisie est identique à celle du système ' . $labels[0]);
- }
- }
- }
- }
- }
- return $parentIsValid && $isValid;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement