executeValidators(array('validateFields', 'validateCaptcha'), $values); } /** * Validate modification * * @access public * @param array $values Form values * @return array $valid, $errors [0] = Success or not, [1] = List of errors */ public function validateModification(array $values) { $v = new Validator($values, array( new Validators\Required('password', t('The password is required')), new Validators\MinLength('password', t('The minimum length is %d characters', 6), 6), new Validators\Required('confirmation', t('The confirmation is required')), new Validators\Equals('password', 'confirmation', t('Passwords don\'t match')), )); return array( $v->execute(), $v->getErrors(), ); } /** * Validate fields * * @access protected * @param array $values Form values * @return array $valid, $errors [0] = Success or not, [1] = List of errors */ protected function validateFields(array $values) { $v = new Validator($values, array( new Validators\Required('captcha', t('This value is required')), new Validators\Required('username', t('The username is required')), new Validators\MaxLength('username', t('The maximum length is %d characters', 50), 50), )); return array( $v->execute(), $v->getErrors(), ); } /** * Validate captcha * * @access protected * @param array $values Form values * @return boolean */ protected function validateCaptcha(array $values) { $result = true; $errors = array(); if (! isset($this->sessionStorage->captcha)) { $result = false; } else { $builder = new CaptchaBuilder; $builder->setPhrase($this->sessionStorage->captcha); $result = $builder->testPhrase(isset($values['captcha']) ? $values['captcha'] : ''); if (! $result) { $errors['captcha'] = array(t('Invalid captcha')); } } return array($result, $errors);; } }