getSearchFacetingFacetByName($facetName); $tags = $this->buildExcludeTags($facetConfiguration, $configuration); $facetParameters['facet.field'][] = $tags . $facetConfiguration['field']; $sortingExpression = new SortingExpression(); $facetSortExpression = $sortingExpression->getForFacet($facetConfiguration['sortBy']); if (!empty($facetSortExpression)) { $facetParameters['f.' . $facetConfiguration['field'] . '.facet.sort'] = $facetSortExpression; } return $facetParameters; } /** * @param array $facetConfiguration * @param TypoScriptConfiguration $configuration * @return string */ protected function buildExcludeTags(array $facetConfiguration, TypoScriptConfiguration $configuration) { // simple for now, may add overrides f..facet.* later if ($configuration->getSearchFacetingKeepAllFacetsOnSelection()) { $facets = []; foreach ($configuration->getSearchFacetingFacets() as $facet) { $facets[] = $facet['field']; } return '{!ex=' . implode(',', $facets) . '}'; } elseif ($facetConfiguration['keepAllOptionsOnSelection'] == 1) { return '{!ex=' . $facetConfiguration['field'] . '}'; } return ''; } }