http://modulesgarden.com * CONTACT -> contact@modulesgarden.com * * * This software is furnished under a license and may be used and copied * only in accordance with the terms of such license and with the * inclusion of the above copyright notice. This software or any other * copies thereof may not be provided or otherwise made available to any * other person. No title to and ownership of the software is hereby * transferred. * * * ******************************************************************** */ namespace ModulesGarden\Servers\ProxmoxVps\App\UI\Validators; use ModulesGarden\Servers\ProxmoxVps\Core\UI\Widget\Forms\Validators\BaseValidator; /** * Description of NumberValidator * * @author Pawel Kopec */ class PortValidator extends BaseValidator { protected $minValue = 1; protected $maxValue = 65535; protected $required = false; public function __construct($required = false) { $this->required = $required; } protected function validate($data, $additionalData = null) { if (!$this->required && empty($data)) { return true; } if (is_numeric($data) && $this->minValue === 0 && $this->maxValue === 0) { return true; } if($data && preg_match("/\:/",$data)){ return true; } //Min & Max if (is_numeric($data) && $this->minValue <= ((int)$data) && ((int)$data) <= $this->maxValue) { return true; } //Min else { if (is_numeric($data) && !is_numeric($this->maxValue) && $this->minValue <= ((int)$data)) { return true; } } if ($this->minValue === $this->maxValue) { $this->addValidationError('PleaseProvideANumericValue'); return false; } if (is_numeric($this->minValue) && is_numeric($this->maxValue)) { $this->addValidationError('PleaseProvideANumericValueBetween', false, ['minValue' => $this->minValue, 'maxValue' => $this->maxValue]); } else { if (is_numeric($this->minValue) && !is_numeric($this->maxValue)) { $this->addValidationError('PleaseProvideANumericValueFrom', false, ['minValue' => $this->minValue]); } } return false; } }