示例#1
0
 /**
  * Detect the criteria type. Try to detect it if not explicitly defined.
  * 
  * @param array		$definition		Criteria definition
  * @param array		$options		Criteria options
  * @return string					Type. 
  */
 public function type()
 {
     if (isset($this->_options['type'])) {
         return $this->_options['type'];
     }
     if (empty($this->_data['in']) && empty($this->_data['value'])) {
         return 'match_all';
     }
     if (isset($this->_data['in']) && is_string($this->_data['in']) && isset($this->_data['value'])) {
         if (is_string($this->_data['value'])) {
             if (preg_match('/^[a-z0-9 ]+$/i', $this->_data['value']) && !preg_match('/(AND|OR)/', $this->_data['value'])) {
                 return 'term';
             }
         }
     }
     return parent::type();
 }
示例#2
0
 /**
  * Merge a criteria with current.
  *
  * @param Simples_Request_Search_Criteria $criteria		Criteria to merge.
  * @return \Simples_Request_Search_Criteria				This instance (fluid interface).
  */
 public function merge(Simples_Request_Search_Criteria $criteria)
 {
     $this->_data = array_merge($this->_data, $criteria->get());
     unset($criteria);
     return $this;
 }