diff options
Diffstat (limited to 'protected/components/DateRangeValidator.php')
| -rw-r--r-- | protected/components/DateRangeValidator.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/protected/components/DateRangeValidator.php b/protected/components/DateRangeValidator.php new file mode 100644 index 0000000..8b963a8 --- /dev/null +++ b/protected/components/DateRangeValidator.php @@ -0,0 +1,32 @@ +<?php +class DateRangeValidator extends DateCompareValidator { + public $minDate; + public $maxDate; + + protected function validateAttribute($object, $attribute) { + $errors = null; + if ($object->hasErrors($attribute)) { + $errors = $object->getErrors($attribute); + $object->clearErrors($attribute); + } + $this->compareValue = $this->minDate; + $this->operator = '>'; + parent::validateAttribute($object, $attribute); + $this->compareValue = $this->maxDate; + $this->operator = '<'; + parent::validateAttribute($object, $attribute); + + $addRangeError = false; + if ($object->hasErrors($attribute)) { + $object->clearErrors($attribute); + $addRangeError = true; + } + if (!empty($errors)) { + $object->addErrors($errors); + } + if ($addRangeError) { + $message = $this->message !== null ? $this->message : Yii::t('astaf', 'The value of {attribute} ({value}) is not between {minDate} and {maxDate}.'); + $this->addError($object, $attribute, $message, array('{operator}'=>$this->operator, '{minDate}'=>$this->minDate, '{value}'=>$object->$attribute, '{maxDate}'=>$this->maxDate)); + } + } +}
\ No newline at end of file |
