예제 #1
0
파일: Search.php 프로젝트: arhe/pwak
 /**
  * Appelé entre autres par Mapper::_getSQLRequest() pour construire un objet
  * Filter si le paramètre $attributeFilters est un tableau
  *
  * @access public
  * @param  array $array le tableau filtre
  * @return object FilterComponent
  */
 public static function buildFilterFromArray($array = array(), $filter = false, $cls = '')
 {
     $metafilter = new FilterComponent();
     $metafilter->operator = FilterComponent::OPERATOR_AND;
     if ($filter instanceof FilterComponent) {
         if (empty($array)) {
             return $filter;
         }
         $metafilter->setItem($filter);
     }
     foreach ($array as $filterName => $filterValue) {
         if (false !== strpos($filterName, '.')) {
             $operator = is_array($filterValue) ? 'In' : 'Equals';
             $component = SearchTools::newFilterComponent($filterName, $filterName, $operator, $filterValue, 1, $cls);
             $metafilter->setItem($component);
         } else {
             $operator = is_array($filterValue) ? FilterRule::OPERATOR_IN : FilterRule::OPERATOR_EQUALS;
             $rule = new FilterRule($filterName, $operator, $filterValue);
             $metafilter->setItem($rule);
         }
     }
     return $metafilter;
 }