Modify search result plugin to use redirect, remove static search result
This commit is contained in:
@@ -128,22 +128,11 @@ routeEnhancers:
|
||||
- 41
|
||||
routes:
|
||||
-
|
||||
routePath: /ergebnis
|
||||
routePath: '/ergebnis/{filter_settings}'
|
||||
_controller: 'Search::searchresult'
|
||||
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'
|
||||
filter_settings: filterSettings
|
||||
defaultController: 'Search::searchresult'
|
||||
requirements:
|
||||
filter_settings: '[A-Z\d%\-]+'
|
||||
ResellerPlugin:
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace EP\EpProducts\Controller;
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
use EP\EpEvents\Domain\Model\Search;
|
||||
use EP\EpProducts\Domain\Model\FilterSettings;
|
||||
use EP\EpProducts\Domain\Model\SearchParams;
|
||||
use EP\EpProducts\Service\FilterService;
|
||||
@@ -36,7 +37,6 @@ use TYPO3\CMS\Core\Log\LogManager;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
|
||||
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
|
||||
use TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException;
|
||||
|
||||
class SearchController extends ActionController
|
||||
{
|
||||
@@ -82,7 +82,7 @@ class SearchController extends ActionController
|
||||
|
||||
public function searchbarAction()
|
||||
{
|
||||
$fixed = (bool) $this->settings['fixed'];
|
||||
$fixed = (bool)$this->settings['fixed'];
|
||||
$searchParams = new SearchParams($GLOBALS['TSFE']->id);
|
||||
$this->view->assignMultiple([
|
||||
'filterSettings' => $this->defaultFilterSettings,
|
||||
@@ -102,24 +102,46 @@ class SearchController extends ActionController
|
||||
]);
|
||||
}
|
||||
|
||||
public function initializeSearchresultAction()
|
||||
public function initializeProcessSearchAction()
|
||||
{
|
||||
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
||||
$this->processSearchParamsArgument($forcedConceptUids);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SearchParams $searchParams
|
||||
* @throws StopActionException
|
||||
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
|
||||
*/
|
||||
public function processSearchAction(SearchParams $searchParams)
|
||||
{
|
||||
$filterSettings = FilterSettings::fromSearchParams($searchParams);
|
||||
|
||||
$redirectUri = $this->uriBuilder
|
||||
->reset()
|
||||
->setCreateAbsoluteUri(true)
|
||||
->uriFor(
|
||||
'searchresult',
|
||||
['filterSettings' => FilterSettingsEncoder::encode($filterSettings)],
|
||||
null,
|
||||
null,
|
||||
'searchresult'
|
||||
);
|
||||
|
||||
$this->redirectToUri($redirectUri);
|
||||
}
|
||||
|
||||
public function initializeSearchresultAction()
|
||||
{
|
||||
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
||||
$this->processFilterSettingsArgument($forcedConceptUids);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \EP\EpProducts\Domain\Model\SearchParams $searchParams
|
||||
* @param \EP\EpProducts\Domain\Model\FilterSettings $filterSettings
|
||||
*/
|
||||
public function searchresultAction(SearchParams $searchParams = null, FilterSettings $filterSettings = null)
|
||||
public function searchresultAction(FilterSettings $filterSettings)
|
||||
{
|
||||
if ($searchParams !== null) {
|
||||
$this->logSearch($searchParams);
|
||||
$filterSettings = FilterSettings::fromSearchParams($searchParams);
|
||||
}
|
||||
|
||||
$this->view->assignMultiple([
|
||||
'detailPageUid' => $this->settings['detailPageUid'],
|
||||
'referringPageUid' => $this->settings['defaultSearchPageUid'],
|
||||
@@ -127,20 +149,6 @@ class SearchController extends ActionController
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $encodedFilterSettings
|
||||
* @throws StopActionException
|
||||
*/
|
||||
public function staticresultAction($encodedFilterSettings)
|
||||
{
|
||||
$this->forward(
|
||||
'searchresult',
|
||||
null,
|
||||
null,
|
||||
['filterSettings' => $encodedFilterSettings]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SearchParams $searchParams
|
||||
*/
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
||||
use DbConnectionTrait;
|
||||
|
||||
const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
||||
const SEARCH_RESULT_URI = '/skireisen/auswahl/';
|
||||
const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
|
||||
const REDIRECT_RESPONSE_CODE = 302;
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
|
||||
@@ -17,12 +17,6 @@ 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,8 +20,6 @@ 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,7 +27,6 @@ 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}
|
||||
|
||||
@@ -50,21 +50,10 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T
|
||||
'EP.' . $_EXTKEY,
|
||||
'searchresult',
|
||||
[
|
||||
'Search' => 'searchresult',
|
||||
'Search' => 'searchresult,processSearch',
|
||||
],
|
||||
[
|
||||
'Search' => 'searchresult',
|
||||
]
|
||||
);
|
||||
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
|
||||
'EP.' . $_EXTKEY,
|
||||
'staticresult',
|
||||
[
|
||||
'Search' => 'staticresult',
|
||||
],
|
||||
[
|
||||
'Search' => 'staticresult',
|
||||
'Search' => 'searchresult,processSearch',
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
inline-template>
|
||||
<div class="container searchbar affix{f:if(condition: fixed, else: '-top')}"{f:if(condition: fixed, else: ' data-spy="affix" data-offset-top="650" data-offset-bottom="200"')}>
|
||||
<div class="container">
|
||||
<f:form action="searchresult" controller="Search" method="post" name="searchParams"
|
||||
<f:form action="processSearch" controller="Search" method="post" name="searchParams"
|
||||
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
|
||||
pageUid="{settings.defaultSearchPageUid}" additionalAttributes="{ref: 'form'}">
|
||||
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
:date-presets='{settings.datePickerPresets -> v:format.json.encode()}'
|
||||
inline-template>
|
||||
<div class="container">
|
||||
<f:form action="searchresult" controller="Search" method="post" name="searchParams"
|
||||
<f:form action="processSearch" controller="Search" method="post" name="searchParams"
|
||||
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
|
||||
pageUid="{settings.defaultSearchPageUid}" class="form-horizontal">
|
||||
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
||||
|
||||
Reference in New Issue
Block a user