/** * 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; }