public function validateAttribute($validatedValue)
 {
     $op = $this->getOperatorForValidate();
     $value = $this->getValueParsed();
     if ($op == '{}' || $op == '!{}') {
         $result = false;
         if (is_array($validatedValue) && is_scalar($value)) {
             foreach ($validatedValue as $item) {
                 if (stripos($item, $value) !== false) {
                     $result = true;
                     break;
                 }
             }
         }
         if ($op == '!{}') {
             $result = !$result;
         }
         return $result;
     }
     return parent::validateAttribute($validatedValue);
 }
Exemple #2
0
 public function validateAttribute($validatedValue)
 {
     if (is_object($validatedValue)) {
         return false;
     }
     if (is_string($validatedValue)) {
         $validatedValue = strtoupper($validatedValue);
     }
     /**
      * Condition attribute value
      */
     $value = $this->getValueParsed();
     if (is_string($value)) {
         $value = strtoupper($value);
     }
     /**
      * 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;
 }