summaryrefslogtreecommitdiffstats
path: root/library/Poolctrl/Validate/DateGreaterThan.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/Poolctrl/Validate/DateGreaterThan.php')
-rwxr-xr-xlibrary/Poolctrl/Validate/DateGreaterThan.php108
1 files changed, 108 insertions, 0 deletions
diff --git a/library/Poolctrl/Validate/DateGreaterThan.php b/library/Poolctrl/Validate/DateGreaterThan.php
new file mode 100755
index 0000000..d7be22d
--- /dev/null
+++ b/library/Poolctrl/Validate/DateGreaterThan.php
@@ -0,0 +1,108 @@
+<?php
+require_once 'Zend/Validate/Abstract.php';
+
+class Poolctrl_Validate_DateGreaterThan extends Zend_Validate_Abstract
+{
+ const NOT_GREATER = 'notGreaterThan';
+
+ protected $_messageTemplates = array(
+ self::NOT_GREATER => "Value must be set to a date later than %compare% date",
+ );
+
+ protected $_messageVariables = array(
+ 'element' => '_element',
+ 'compare' => '_compare',
+ );
+
+ protected $_element;
+ protected $_compare;
+ protected $_min;
+ protected $_minTimestamp;
+
+ public function __construct($option)
+ {
+ if ($option instanceof Zend_Config) {
+ $option = $option->toArray();
+ }
+
+ if (is_array($option)) {
+ if (array_key_exists('min', $option)) {
+ $min = $option['min'];
+ $minTimestamp = strtotime($min);
+ } else {
+ require_once 'Zend/Validate/Exception.php';
+ throw new Zend_Validate_Exception("Missing option 'min'");
+ }
+ if (array_key_exists('element', $option)) {
+ $element = $option['element'];
+ } else {
+ require_once 'Zend/Validate/Exception.php';
+ throw new Zend_Validate_Exception("Missing option 'element'");
+ }
+ if (array_key_exists('compare', $option)) {
+ $compare = $option['compare'];
+ } else {
+ require_once 'Zend/Validate/Exception.php';
+ throw new Zend_Validate_Exception("Missing option 'compare'");
+ }
+ }
+
+ $this->setElement($element);
+ $this->setCompare($compare);
+ $this->setMin($min);
+ $this->setMinTimestamp($minTimestamp);
+ }
+
+ public function getElement()
+ {
+ return $this->_element;
+ }
+
+ public function setElement($element)
+ {
+ $this->_element = $element;
+ }
+
+ public function getCompare()
+ {
+ return $this->_compare;
+ }
+
+ public function setCompare($compare)
+ {
+ $this->_compare = $compare;
+ }
+
+ public function getMin()
+ {
+ return $this->_min;
+ }
+
+ public function setMin($min)
+ {
+ $this->_min = $min;
+ return $this;
+ }
+
+ public function getMinTimestamp()
+ {
+ return $this->_minTimestamp;
+ }
+
+ public function setMinTimestamp($minTimestamp)
+ {
+ $this->_minTimestamp = $minTimestamp;
+ }
+
+ public function isValid($value)
+ {
+ $this->_setValue($value);
+ $valueTimestamp = strtotime($value);
+
+ if ($this->getMinTimestamp() >= $valueTimestamp) {
+ $this->_error(self::NOT_GREATER);
+ return false;
+ }
+ return true;
+ }
+} \ No newline at end of file