| <= | >= ) */ public $_comparator; /** @var int length to compare with */ public $_length; /** * Constructor. * * @param \PKP\form\Form $form the associated form * @param string $field the name of the associated field * @param string $type the type of check, either "required" or "optional" * @param string $message the error message for validation failures (i18n key) * @param string $comparator * @param int $length */ public function __construct(&$form, $field, $type, $message, $comparator, $length) { parent::__construct($form, $field, $type, $message); $this->_comparator = $comparator; $this->_length = $length; } // // Setters and Getters // /** * @see FormValidator::getMessage() * * @return string */ public function getMessage() { return __($this->_message, ['length' => $this->_length]); } // // Public methods // /** * @see FormValidator::isValid() * Value is valid if it is empty and optional or meets the specified length requirements. * * @return bool */ public function isValid() { if ($this->isEmptyAndOptional()) { return true; } else { $length = PKPString::strlen($this->getFieldValue()); switch ($this->_comparator) { case '==': return $length == $this->_length; case '!=': return $length != $this->_length; case '<': return $length < $this->_length; case '>': return $length > $this->_length; case '<=': return $length <= $this->_length; case '>=': return $length >= $this->_length; } return false; } } } if (!PKP_STRICT_MODE) { class_alias('\PKP\form\validation\FormValidatorLength', '\FormValidatorLength'); }