diff --git a/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php b/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php index 1ba812b2f..a1e8dad10 100644 --- a/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php +++ b/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php @@ -86,7 +86,12 @@ protected function parseSortingIntoObjects(SearchResultSet $resultSet): SearchRe $field = $sortingOptions['field']; $label = $sortingOptions['label'] ?? ''; - $isResetOption = $field === 'relevance'; + $sortBy = explode(' ', $configuration->getSearchQuerySortBy())[0]; + if ($sortBy === '') { + $sortBy = 'relevance'; + } + + $isResetOption = $field === $sortBy; // Allow stdWrap on label: $labelHasSubConfiguration = is_array($sortingOptions['label.'] ?? null); diff --git a/Classes/System/Configuration/TypoScriptConfiguration.php b/Classes/System/Configuration/TypoScriptConfiguration.php index 095b81555..936cd48ce 100644 --- a/Classes/System/Configuration/TypoScriptConfiguration.php +++ b/Classes/System/Configuration/TypoScriptConfiguration.php @@ -1203,11 +1203,21 @@ public function getSearchQueryReturnFieldsAsArray(array $defaultIfEmpty = []): a } /** - * Returns the configured target page for the search. - * By default, the contextPageId will be used + * Return the configured query sortBy value. * * plugin.tx_solr.search.targetPage */ + public function getSearchQuerySortBy($defaultIfEmpty = ''): string + { + return $this->getValueByPathOrDefaultValue('plugin.tx_solr.search.query.sortBy', $defaultIfEmpty); + } + + /** + * Returns the configured target page for the search. + * By default, the contextPageId will be used + * + * plugin.tx_solr.search.targetPage + */ public function getSearchTargetPage(): int { $targetPage = (int)$this->getValueByPathOrDefaultValue('plugin.tx_solr.search.targetPage', 0);