Example #1
0
 public function validateAttribute($validatedValue)
 {
     if (is_object($validatedValue)) {
         return false;
     }
     /**
      * Condition attribute value
      */
     $value = $this->getValueParsed();
     /**
      * Comparison operator
      */
     $op = $this->getOperatorForValidate();
     // if operator requires array and it is not, or on opposite, return false
     if ($this->_isArrayOperatorType() xor is_array($value)) {
         return false;
     }
     $result = false;
     switch ($op) {
         case '{%':
             if (!is_scalar($validatedValue)) {
                 return false;
             } else {
                 $result = substr($validatedValue, 0, strlen($value)) == $value;
             }
             break;
         case '%}':
             if (!is_scalar($validatedValue)) {
                 return false;
             } else {
                 $result = substr($validatedValue, -strlen($value)) == $value;
             }
             break;
         default:
             return parent::validateAttribute($validatedValue);
             break;
     }
     return $result;
 }
 /**
  * Overwrite parent method to add new operators
  *
  * @param   mixed $validatedValue
  *
  * @return  bool
  */
 public function validateAttribute($validatedValue)
 {
     if (is_object($validatedValue)) {
         return false;
     }
     /**
      * Condition attribute value
      */
     $value = $this->getValueParsed();
     /**
      * Comparison operator
      */
     $op = $this->getOperatorForValidate();
     // if operator requires array and it is not, or on opposite, return false
     if ($this->isArrayOperatorType() xor is_array($value)) {
         return false;
     }
     switch ($op) {
         case '><':
         case '<>':
             $explodedValue = explode('-', $value);
             $result = $validatedValue >= $explodedValue[0] && $validatedValue <= $explodedValue[1];
             break;
         default:
             return parent::validateAttribute($validatedValue);
             break;
     }
     if ($op == '<>') {
         $result = !$result;
     }
     return $result;
 }