/** * Validate the count value * * @param mixed $count * @return boolean */ private function validateCount($count) { $integerValidator = new IntegerValidator(); $integerValidator->setMessage("Count '%value%' ist keine Zahl", IntegerValidator::INVALID); if (!$integerValidator->isValid($count)) { $messages = array_values($integerValidator->getMessages()); $this->addError(new Error('count', $count, $messages)); return false; } // !! Achtung: Fehler im Zend Framework Version 1.11.0 !! // Der zu pruefende Wert muss groesser als der Parameter 'min' sein. // D.h. da der count Parameter mindestens den Wert 1 haben muss, // wird als 'min' 0 uebergeben $greaterThanValidator = new GreaterThanValidator(array('min' => 0)); $greaterThanValidator->setMessage("Count '%value%' ist nicht groesser als '%min%'", GreaterThanValidator::NOT_GREATER); if (!$greaterThanValidator->isValid($count)) { $messages = array_values($greaterThanValidator->getMessages()); $this->addError(new Error('count', $count, $messages)); return false; } $config = Registry::getConfig(); $configuredUuidLimit = intval($config->uuid->limit); $lessThanValidator = new LessThanValidator(array('max' => $configuredUuidLimit)); $lessThanValidator->setMessage("Count '%value%' ist groesser als das konfigurierte uuid limit '%max%'", LessThanValidator::NOT_LESS); if (!$lessThanValidator->isValid($count)) { $messages = array_values($lessThanValidator->getMessages()); $this->addError(new Error('count', $count, $messages)); return false; } return true; }
/** * * @param type $max * @param type $messages_prefixed * @return \Zend_Validate_LessThan */ protected function _getValidatorLessThan($max = 100, $messages_prefixed = "") { $messages_prefixed = strtoupper($messages_prefixed); $lessThan = new Zend_Validate_LessThan($max); $lessThan->setMessage(sprintf($this->_translate('ERROR_LESS_THAN'), $this->_translate($messages_prefixed), $max), Zend_Validate_LessThan::NOT_LESS); return $lessThan; }
/** * Overridden isValid() method for pre-validation code * * @param array $formData data typically from a POST or GET request * * @return bool */ public function isValid($formData = array()) { $coverCount = 0; if (isset($formData['buildings_accidental_damage']) && $formData['buildings_accidental_damage'] == 1) { $coverCount++; $this->getElement('buildings_cover')->setRequired(true); } if (isset($formData['buildings_nil_excess']) && $formData['buildings_nil_excess'] == 1) { $coverCount++; $this->getElement('buildings_cover')->setRequired(true); } if (isset($formData['contents_accidental_damage']) && $formData['contents_accidental_damage'] == 1) { $coverCount++; $this->getElement('contents_cover')->setRequired(true); } if (isset($formData['contents_nil_excess']) && $formData['contents_nil_excess'] == 1) { $coverCount++; $this->getElement('contents_cover')->setRequired(true); } if (isset($formData['limited_contents']) && $formData['contents_cover'] > 0) { $coverCount++; $limitedContents = $this->getElement('limited_contents'); $limitedContentsValidator = new Zend_Validate_LessThan(array('max' => 1)); $limitedContentsValidator->setMessage(' Limited Contents cannot be selected with Full Contents', Zend_Validate_LessThan::NOT_LESS); $limitedContents->addValidator($limitedContentsValidator, true); } if (isset($formData['limited_contents']) && $formData['limited_contents'] == 1 || (isset($formData['contents_cover']) && $formData['contents_cover'] > 0 || isset($formData['buildings_cover']) && $formData['buildings_cover'] > 0)) { $coverCount++; } // Set up validation for Building cover maximun // value can be empty OR Greater Than 50k and refer after 1000k $buildingsCover = $this->getElement('buildings_cover'); $buildingsValidator = new Zend_Validate_GreaterThan(array('min' => 49999)); $buildingsValidator->setMessage('Buildings cover must be over £50000', Zend_Validate_GreaterThan::NOT_GREATER); $buildingsCover->addValidator($buildingsValidator, true); // Set up validation for contents cover maximun // value can be empty OR Greater Than 10k and refer after 60k $contentsCover = $this->getElement('contents_cover'); $contentsValidator = new Zend_Validate_GreaterThan(array('min' => 9999)); $contentsValidator->setMessage('Contents cover must be over £10000', Zend_Validate_GreaterThan::NOT_GREATER); $contentsCover->addValidator($contentsValidator, true); $formData['covercount'] = $coverCount; $covers = $this->getElement('covercount'); $optionsValidator = new Zend_Validate_GreaterThan(array('min' => 0)); $optionsValidator->setMessage("You have not selected a cover", Zend_Validate_GreaterThan::NOT_GREATER); $covers->addValidator($optionsValidator, true); // If a postcode is or was present, look it up and populate the allowed values of the associated dropdown if (isset($formData['ins_postcode']) && trim($formData['ins_postcode']) != '') { $postcode = trim($formData['ins_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $ins_address = $this->getElement('ins_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); } if (isset($formData['ins_address_postcode']) && $formData['ins_address_postcode'] != '') { $this->getElement('ins_postcode')->setRequired(false); $this->getElement('ins_address')->setRequired(false); } // Call original isValid() return parent::isValid($formData); }
/** * @param string $value * @param string $field * @param array $limit * @return boolean */ private function validateInteger($value, $field, $limit = array()) { $integerValidator = new IntegerValidator(); $integerValidator->setMessage("'%value%' ist keine Zahl", IntegerValidator::INVALID); if (!$integerValidator->isValid($value)) { $messages = array_values($integerValidator->getMessages()); $this->addError(new Error($field, $value, $messages)); return false; } if (isset($limit['min'])) { $greaterThanValidator = new GreaterThanValidator($limit); $greaterThanValidator->setMessage("'%value%' ist nicht größer oder gleich '%min%'", GreaterThanValidator::NOT_GREATER); if (!$greaterThanValidator->isValid($value)) { $messages = array_values($greaterThanValidator->getMessages()); $this->addError(new Error($field, $value, $messages)); return false; } } if (isset($limit['max'])) { $lessThanValidator = new LessThanValidator($limit); $lessThanValidator->setMessage("'%value%' ist nicht kleiner oder gleich '%max%'", LessThanValidator::NOT_LESS); if (!$lessThanValidator->isValid($value)) { $messages = array_values($lessThanValidator->getMessages()); $this->addError(new Error($field, $value, $messages)); return false; } } return true; }