public function modifySelect(Fields $fields, Select $select) { $conditionSetName = $this->prefix . 'filters'; $filteredInQueryString = []; $select->registerConditionSet($conditionSetName, $this->getConditionSetConjunction()); foreach ($this->getFilteredFieldIds() as $index => $id) { $urlId = urlencode($id); foreach ($fields as $field) { if ($urlId === $field->getQueryStringId()) { $callback = $this->getFieldAssignment($field); $defaults = $this->defaultVars->getDefaultVars($field); $select = call_user_func($callback, $select, $conditionSetName, array_merge($defaults, $this->getFilterVars($index))); $filteredInQueryString[] = $field->getQueryStringId(); } } } /* @var $field FieldInterface */ foreach ($fields as $field) { if (in_array($field->getQueryStringId(), $filteredInQueryString)) { continue; } $defaults = $this->defaultVars->getDefaultVars($field); if (count($defaults)) { $select = call_user_func($this->getFieldAssignment($field), $select, $conditionSetName, $defaults); } } foreach ($this->customFilters as $filter) { $select = $filter['filter']->apply($select, $conditionSetName, $filter['vars']); } return $select; }
public function modifySelect(Fields $fields, Select $select) { $conditionSetName = $this->prefix . 'filters'; $select->registerConditionSet($conditionSetName, $this->getConditionSetConjunction()); foreach ($this->getFilteredFieldIds() as $index => $id) { $urlId = urlencode($id); foreach ($fields as $field) { if ($urlId === $field->getQueryStringId()) { $callback = $this->getFieldAssignment($field); $select = call_user_func($callback, $select, $conditionSetName, $this->getFilterVars($index)); } } } foreach ($this->customFilters as $filter) { $select = $filter['filter']->apply($select, $conditionSetName, $filter['vars']); } return $select; }