Exemple #1
0
 /**
  * Equals
  *
  * @access public
  * @param \Skeleton\Pager\Sql\Condition $condition
  * @return boolean $equals
  */
 public function equals(\Skeleton\Pager\Sql\Condition $condition)
 {
     if ($this->get_local_field() != $condition->get_local_field()) {
         return false;
     }
     if ($this->get_comparison() == '=' and $condition->get_comparison() == 'IN') {
         foreach ($condition->get_value()[0] as $value) {
             if ($this->get_value() == $value) {
                 return true;
             }
         }
     }
     if ($condition->get_comparison() == '=' and $this->get_comparison() == 'IN') {
         foreach ($this->get_value()[0] as $value) {
             if ($condition->get_value() == $value) {
                 return true;
             }
         }
     }
     if ($this->get_comparison() != $condition->get_comparison()) {
         return false;
     }
     if (!is_array($this->get_value()) and !is_array($condition->get_value())) {
         if ($this->get_value() != $condition->get_value()) {
             return false;
         }
     } elseif (is_array($this->get_value()) and is_array($condition->get_value())) {
         $diff = array_diff($this->get_value(), $condition->get_value());
         if (count($diff) > 0) {
             return false;
         }
     } else {
         return false;
     }
     return true;
 }
Exemple #2
0
 /**
  * Has condition
  *
  * @access public
  * @param string $field
  * @param string $comparison (optional)
  * @param string $value
  */
 public function has_condition()
 {
     $params = func_get_args();
     if (is_a($params, '\\Skeleton\\Pager\\Sql\\Condition')) {
         $condition = $params;
     } else {
         $field = array_shift($params);
         $field = $this->expand_field_name($field);
         if (count($params) == 1) {
             $condition = new Condition($field, '=', array_shift($params));
         } else {
             $condition = new Condition($field, array_shift($params), $params);
         }
     }
     foreach ($this->options['conditions'] as $cond_field => $stored_conditions) {
         if ($field != $cond_field) {
             continue;
         }
         foreach ($stored_conditions as $stored_condition) {
             if ($condition->equals($stored_condition)) {
                 return true;
             }
         }
     }
     return false;
 }