diff --git a/web/typo3conf/ext/ep_products/Classes/Controller/AjaxSearchController.php b/web/typo3conf/ext/ep_products/Classes/Controller/AjaxSearchController.php index 6b8da39b..b496aba9 100644 --- a/web/typo3conf/ext/ep_products/Classes/Controller/AjaxSearchController.php +++ b/web/typo3conf/ext/ep_products/Classes/Controller/AjaxSearchController.php @@ -91,31 +91,35 @@ class AjaxSearchController extends ActionController { $dateSelected = false; $organic = true; + $forcedConceptUid = (int) $this->settings['forcedConceptUid']; + $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids']); if ($filterSettings === null) { - $forcedConceptUid = (int) $this->settings['forcedConceptUid']; $filterSettings = $this->filterService->getDefaultFilterSettings($forcedConceptUid); - } elseif ($filterSettings->getDateFrom() !== null || $filterSettings->getDateTo() !== null) { + } + + if ($filterSettings->getDateFrom() !== null || $filterSettings->getDateTo() !== null) { $dateSelected = true; } - $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids']); - $filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids); - if ($filterOptions === null) { - $filterSettings = $this->filterService->getDefaultFilterSettings(); - $filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids); - } + $searchResult = $this->searchResultService->getResult($filterSettings, $excludedConceptUids); + if ($searchResult->getTotal() === 0) { - $filterSettings = $this->filterService->getDefaultFilterSettings(); + $filterSettings = $this->filterService->getDefaultFilterSettings($forcedConceptUid); $searchResult = $this->searchResultService->getResult($filterSettings, $excludedConceptUids); $organic = false; } + + $filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids); + $options = [ 'defaultDetailPageUid' => $this->settings['defaultDetailPageUid'], 'referringPageUid' => $referringPageUid, 'filterSettings' => $filterSettings, ]; + $this->searchResultUrlService->process($searchResult, $options); + return json_encode([ 'data' => $searchResult->getData(), 'filterOptions' => $filterOptions, diff --git a/web/typo3conf/ext/ep_products/Classes/Service/FilterService.php b/web/typo3conf/ext/ep_products/Classes/Service/FilterService.php index fd1f1648..fdda4349 100644 --- a/web/typo3conf/ext/ep_products/Classes/Service/FilterService.php +++ b/web/typo3conf/ext/ep_products/Classes/Service/FilterService.php @@ -91,7 +91,7 @@ class FilterService implements SingletonInterface } $filterOptionsData = static::$cache['filterOptions'][$key]; if (count($filterOptionsData) === 0) { - return null; + return new FilterOptions(); } $dateRange = $this->constrainDateRange($this->getDateRange()); return $this->preprocessFilterOptions($filterOptionsData, $dateRange);