diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Validate/Sitemap/Changefreq.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Validate/Sitemap/Changefreq.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,95 @@ + value + * + * @link http://www.sitemaps.org/protocol.php Sitemaps XML format + * + * @category Zend + * @package Zend_Validate + * @subpackage Sitemap + * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Zend_Validate_Sitemap_Changefreq extends Zend_Validate_Abstract +{ + /** + * Validation key for not valid + * + */ + const NOT_VALID = 'sitemapChangefreqNotValid'; + const INVALID = 'sitemapChangefreqInvalid'; + + /** + * Validation failure message template definitions + * + * @var array + */ + protected $_messageTemplates = array( + self::NOT_VALID => "'%value%' is no valid sitemap changefreq", + self::INVALID => "Invalid type given. String expected", + ); + + /** + * Valid change frequencies + * + * @var array + */ + protected $_changeFreqs = array( + 'always', 'hourly', 'daily', 'weekly', + 'monthly', 'yearly', 'never' + ); + + /** + * Validates if a string is valid as a sitemap changefreq + * + * @link http://www.sitemaps.org/protocol.php#changefreqdef + * + * @param string $value value to validate + * @return boolean + */ + public function isValid($value) + { + if (!is_string($value)) { + $this->_error(self::INVALID); + return false; + } + + $this->_setValue($value); + if (!is_string($value)) { + return false; + } + + if (!in_array($value, $this->_changeFreqs, true)) { + $this->_error(self::NOT_VALID); + return false; + } + + return true; + } +}