summaryrefslogtreecommitdiffstats
path: root/library/Poolctrl/Validator/DateGreaterThan.php
blob: f6c13164896d8ca03928ba88a20854d7cf2003fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?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%' has to be greater than '%min%'",
	);

	protected $_messageVariables = array(
        'min' => '_min'
        );

        protected $_min;
        protected $_minTimestamp;

        public function __construct($min)
        {
        	if ($min instanceof Zend_Config) {
        		$min = $min->toArray();
        	}

        	if (is_array($min)) {
        		if (array_key_exists('min', $min)) {
        			$min = $min['min'];
        			$minTimestamp = strtotime($min);
        		} else {
        			require_once 'Zend/Validate/Exception.php';
        			throw new Zend_Validate_Exception("Missing option 'min'");
        		}
        	}

        	$this->setMin($min);
        	$this->setMinTimestamp($minTimestamp);
        }

        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;
        }
}