/** * Initializes additional filters configured through TypoScript and * Flexforms for use in regular queries and suggest queries. * * @param Query $query * @return void */ protected function initializeAdditionalFilters(Query $query) { $additionalFilters = array(); if (!empty($this->conf['search.']['query.']['filter.'])) { // special filter to limit search to specific page tree branches if (array_key_exists('__pageSections', $this->conf['search.']['query.']['filter.'])) { $query->setRootlineFilter($this->conf['search.']['query.']['filter.']['__pageSections']); unset($this->conf['search.']['query.']['filter.']['__pageSections']); } // all other regular filters foreach ($this->conf['search.']['query.']['filter.'] as $filterKey => $filter) { if (!is_array($this->conf['search.']['query.']['filter.'][$filterKey])) { if (is_array($this->conf['search.']['query.']['filter.'][$filterKey . '.'])) { $filter = $this->cObj->stdWrap($this->conf['search.']['query.']['filter.'][$filterKey], $this->conf['search.']['query.']['filter.'][$filterKey . '.']); } $additionalFilters[$filterKey] = $filter; } } } // flexform overwrites _all_ filters set through TypoScript $flexformFilters = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'filter', 'sQuery'); if (!empty($flexformFilters)) { $additionalFilters = GeneralUtility::trimExplode('|', $flexformFilters); } $this->additionalFilters = $additionalFilters; }
/** * Initializes additional filters configured through TypoScript and * Flexforms for use in regular queries and suggest queries. * * @param Query $query * @return void */ protected function applyPageSectionsRootLineFilter(Query $query) { $searchQueryFilters = $this->typoScriptConfiguration->getSearchQueryFilterConfiguration(); if (count($searchQueryFilters) <= 0) { return; } // special filter to limit search to specific page tree branches if (array_key_exists('__pageSections', $searchQueryFilters)) { $query->setRootlineFilter($searchQueryFilters['__pageSections']); $this->typoScriptConfiguration->removeSearchQueryFilterForPageSections(); } }