/** * Validate the entire form data set against each field's validators, and additionally validate interdependent fields. * * @return boolean True if each of the container's fields validates, and additionally if the dependencies validate; otherwise false. */ public function isValid() { $valid = parent::isValid(); $setPasswordField = $this->getField('setpass'); if (!$setPasswordField->hasErrorMessage() && $setPasswordField->getData()) { $passwordField = $this->getField('pass'); if (!$this->passwordLengthValidator->isValid($passwordField->getData())) { $passwordField->setErrorMessage($this->passwordLengthValidator->getErrorMessage()); } $passwordAgainField = $this->getField('passagain'); if (!$passwordField->hasErrorMessage() && !$passwordAgainField->hasErrorMessage()) { $password = $passwordField->getData(); $passwordAgain = $passwordAgainField->getData(); if ($passwordAgain != $password) { $valid = false; $passwordAgainField->setErrorMessage($this->__('The value entered does not match the password entered in the password field.')); } } } $emailField = $this->getField('email'); if (!$emailField->hasErrorMessage()) { $emailAgainField = $this->getField('emailagain'); $email = $emailField->getData(); $emailAgain = $emailAgainField->getData(); if ($email != $emailAgain) { $valid = false; $emailAgainField->setErrorMessage($this->__('The value entered does not match the e-mail address entered in the e-mail address field.')); } } return $valid; }