50 lines
1.2 KiB
PHP
50 lines
1.2 KiB
PHP
<?php
|
|
|
|
class App_Form_Validators_InDomain extends Zend_Validate_Abstract
|
|
{
|
|
const DOMAIN_NULL = 'no_domain';
|
|
const DOMAIN_NO_VALUE = 'no_domain_value';
|
|
|
|
protected $_messageTemplates = array(
|
|
self::DOMAIN_NULL => 'Dominio non specificato',
|
|
self::DOMAIN_NO_VALUE => "Il valore non è compreso nel dominio specificato"
|
|
);
|
|
|
|
protected $_domain;
|
|
protected $_domainName;
|
|
|
|
public function __construct($domainName)
|
|
{
|
|
$this->_domainName = $domainName;
|
|
$this->setDomain($domainName);
|
|
}
|
|
|
|
public function isValid($value)
|
|
{
|
|
$this->_setValue($value);
|
|
|
|
$isValid = true;
|
|
if (!in_array($value, $this->_domain)) {
|
|
$this->_error(self::DOMAIN_NO_VALUE);
|
|
$isValid = false;
|
|
}
|
|
|
|
return $isValid;
|
|
}
|
|
|
|
private function setDomain($domainName)
|
|
{
|
|
|
|
if (!$domainName) {
|
|
throw new Zend_Validate_Exception('Nome di dominio non specificato');
|
|
}
|
|
|
|
$this->_domain = array_keys(App_Constants_Domains::DOMAINS[$domainName]);
|
|
|
|
if(!$this->_domain){
|
|
throw new Zend_Validate_Exception('Nome di dominio non trovato');
|
|
}
|
|
|
|
}
|
|
}
|