Fix static search results not redirecting as expected

This commit is contained in:
Björn Fromme
2019-06-19 14:32:42 +02:00
parent bb9391b63b
commit 79906e4ce5
11 changed files with 61 additions and 34 deletions
+15 -7
View File
@@ -124,17 +124,25 @@ routeEnhancers:
limitToPages:
- 41
routes:
-
routePath: '/ergebnis/{filter_settings}'
_controller: 'Search::searchresult'
_arguments:
filter_settings: filterSettings
-
routePath: '/ergebnis'
_controller: 'Search::searchresult'
requirements:
filter_settings: '[A-Z0-9%\-]+'
defaultController: 'Search::searchresult'
StaticResultsPlugin:
type: Extbase
extension: EpProducts
plugin: staticresult
limitToPages:
- 1757
routes:
-
routePath: '/{filter_settings}'
_controller: 'Search::staticresult'
_arguments:
filter_settings: encodedFilterSettings
defaultController: 'Search::staticresult'
requirements:
filter_settings: '[A-Z\d%\-]+'
ResellerPlugin:
type: Extbase
extension: EpProducts
@@ -122,11 +122,25 @@ class SearchController extends ActionController
$this->view->assignMultiple([
'detailPageUid' => $this->settings['detailPageUid'],
'referringPageUid' => $GLOBALS['TSFE']->id,
'referringPageUid' => $this->settings['defaultSearchPageUid'],
'filterSettings' => $filterSettings,
]);
}
/**
* @param string $encodedFilterSettings
* @throws StopActionException
*/
public function staticresultAction($encodedFilterSettings)
{
$this->forward(
'searchresult',
null,
null,
['filterSettings' => $encodedFilterSettings]
);
}
/**
* @param SearchParams $searchParams
*/
@@ -42,7 +42,7 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
use DbConnectionTrait;
const PREFIX_PATH_SEGMENT = 'reiseauswahl';
const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
const SEARCH_RESULT_URI = '/skireisen/auswahl/';
const REDIRECT_RESPONSE_CODE = 302;
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
@@ -17,6 +17,12 @@ call_user_func(function () {
'Suchergebnis'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'EP.EpProducts',
'staticresult',
'statisches Suchergebnis'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'EP.EpProducts',
'product_detail',
@@ -20,6 +20,8 @@ plugin.tx_epproducts {
snowReportStoragePid =
# cat=plugin.tx_epproducts//a; type=string; label=Default search page UID
defaultSearchPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Default static search page UID
defaultStaticSearchPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Default product detail page UID
defaultDetailPageUid =
# cat=plugin.tx_epproducts//a; type=string; label=Exclude products with concept UIDs from search result (CSV)
@@ -27,6 +27,7 @@ plugin.tx_epproducts {
destinationsStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
defaultStaticSearchPageUid = {$plugin.tx_epproducts.settings.defaultStaticSearchPageUid}
defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}
excludedConceptUids = {$plugin.tx_epproducts.settings.excludedConceptUids}
excludedRegionUids = {$plugin.tx_epproducts.settings.excludedRegionUids}
@@ -39,6 +40,7 @@ plugin.tx_epproducts {
googleMapsApiKey = {$plugin.tx_eptheme.settings.googleMapsApiKey}
resellerExportPageUid = {$plugin.tx_epproducts.settings.resellerExportPageUid}
ratingPageUid = {$plugin.tx_eptheme.settings.ratingPageUid}
searchPageHeaderImage = {$plugin.tx_eptheme.settings.searchPageHeaderImage}
datePickerPresets {
1 {
label = Silvester
@@ -57,6 +59,7 @@ plugin.tx_epproducts {
}
}
}
features.requireCHashArgumentForActionArguments = 0
}
config.tx_extbase.persistence.classes {
@@ -57,6 +57,17 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T
]
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.' . $_EXTKEY,
'staticresult',
[
'Search' => 'staticresult',
],
[
'Search' => 'staticresult',
]
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'EP.' . $_EXTKEY,
'product_detail',
@@ -1,18 +0,0 @@
lib.searchresult = USER
lib.searchresult {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = EpProducts
pluginName = searchresult
vendorName = EP
controller = Search
action = searchresult
switchableControllerActions {
Search {
1 = searchresult
}
}
settings =< plugin.tx_epproducts.settings
settings.searchPageHeaderImage = {$plugin.tx_eptheme.settings.searchPageHeaderImage}
persistence =< plugin.tx_epproducts.persistence
view =< plugin.tx_epproducts.view
}
@@ -8,7 +8,6 @@
@import "EXT:ep_theme/Configuration/TypoScript/Library/SearchBar.typoscript"
@import "EXT:ep_theme/Configuration/TypoScript/Library/SearchBox.typoscript"
@import "EXT:ep_theme/Configuration/TypoScript/Library/SearchResult.typoscript"
@import "EXT:ep_theme/Configuration/TypoScript/Library/Sitemap.typoscript"
@import "EXT:ep_theme/Configuration/TypoScript/Library/DynamicContent.typoscript"
@import "EXT:ep_theme/Configuration/TypoScript/Library/ParseFunc.typoscript"
@@ -5,7 +5,7 @@
<f:layout name="Page/Search"/>
<f:section name="Content">
<f:cObject typoscriptObjectPath="lib.searchresult"/>
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '{data.uid}', colPos: '0'}" />
</f:section>
</html>
@@ -23,11 +23,13 @@
</f:for>
</div>
<f:if condition="{settings.showMoreLink}">
<p class="text-right"><f:link.action pageUid="{settings.defaultSearchPageUid}"
class="button"
action="searchresult"
controller="Search"
arguments="{filterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}">Alle anzeigen</f:link.action></p>
<p class="text-right">
<f:link.action pageUid="{settings.defaultStaticSearchPageUid}" class="button"
action="staticresult" controller="Search"
arguments="{encodedFilterSettings: '{filterSettings -> ep:filterSettingsEncoder()}'}">
Alle anzeigen
</f:link.action>
</p>
</f:if>
</f:if>
</f:section>