Modify search result plugin to use redirect, remove static search result
This commit is contained in:
@@ -128,22 +128,11 @@ routeEnhancers:
|
|||||||
- 41
|
- 41
|
||||||
routes:
|
routes:
|
||||||
-
|
-
|
||||||
routePath: /ergebnis
|
routePath: '/ergebnis/{filter_settings}'
|
||||||
_controller: 'Search::searchresult'
|
_controller: 'Search::searchresult'
|
||||||
defaultController: 'Search::searchresult'
|
|
||||||
StaticResultsPlugin:
|
|
||||||
type: Extbase
|
|
||||||
extension: EpProducts
|
|
||||||
plugin: staticresult
|
|
||||||
limitToPages:
|
|
||||||
- 1757
|
|
||||||
routes:
|
|
||||||
-
|
|
||||||
routePath: '/{filter_settings}'
|
|
||||||
_controller: 'Search::staticresult'
|
|
||||||
_arguments:
|
_arguments:
|
||||||
filter_settings: encodedFilterSettings
|
filter_settings: filterSettings
|
||||||
defaultController: 'Search::staticresult'
|
defaultController: 'Search::searchresult'
|
||||||
requirements:
|
requirements:
|
||||||
filter_settings: '[A-Z\d%\-]+'
|
filter_settings: '[A-Z\d%\-]+'
|
||||||
ResellerPlugin:
|
ResellerPlugin:
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ namespace EP\EpProducts\Controller;
|
|||||||
* This copyright notice MUST APPEAR in all copies of the script!
|
* 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\FilterSettings;
|
||||||
use EP\EpProducts\Domain\Model\SearchParams;
|
use EP\EpProducts\Domain\Model\SearchParams;
|
||||||
use EP\EpProducts\Service\FilterService;
|
use EP\EpProducts\Service\FilterService;
|
||||||
@@ -36,7 +37,6 @@ use TYPO3\CMS\Core\Log\LogManager;
|
|||||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||||
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
|
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
|
||||||
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
|
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
|
||||||
use TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException;
|
|
||||||
|
|
||||||
class SearchController extends ActionController
|
class SearchController extends ActionController
|
||||||
{
|
{
|
||||||
@@ -82,7 +82,7 @@ class SearchController extends ActionController
|
|||||||
|
|
||||||
public function searchbarAction()
|
public function searchbarAction()
|
||||||
{
|
{
|
||||||
$fixed = (bool) $this->settings['fixed'];
|
$fixed = (bool)$this->settings['fixed'];
|
||||||
$searchParams = new SearchParams($GLOBALS['TSFE']->id);
|
$searchParams = new SearchParams($GLOBALS['TSFE']->id);
|
||||||
$this->view->assignMultiple([
|
$this->view->assignMultiple([
|
||||||
'filterSettings' => $this->defaultFilterSettings,
|
'filterSettings' => $this->defaultFilterSettings,
|
||||||
@@ -102,24 +102,46 @@ class SearchController extends ActionController
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function initializeSearchresultAction()
|
public function initializeProcessSearchAction()
|
||||||
{
|
{
|
||||||
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
||||||
$this->processSearchParamsArgument($forcedConceptUids);
|
$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);
|
$this->processFilterSettingsArgument($forcedConceptUids);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \EP\EpProducts\Domain\Model\SearchParams $searchParams
|
|
||||||
* @param \EP\EpProducts\Domain\Model\FilterSettings $filterSettings
|
* @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([
|
$this->view->assignMultiple([
|
||||||
'detailPageUid' => $this->settings['detailPageUid'],
|
'detailPageUid' => $this->settings['detailPageUid'],
|
||||||
'referringPageUid' => $this->settings['defaultSearchPageUid'],
|
'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
|
* @param SearchParams $searchParams
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
|||||||
use DbConnectionTrait;
|
use DbConnectionTrait;
|
||||||
|
|
||||||
const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
||||||
const SEARCH_RESULT_URI = '/skireisen/auswahl/';
|
const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
|
||||||
const REDIRECT_RESPONSE_CODE = 302;
|
const REDIRECT_RESPONSE_CODE = 302;
|
||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||||
|
|||||||
@@ -17,12 +17,6 @@ call_user_func(function () {
|
|||||||
'Suchergebnis'
|
'Suchergebnis'
|
||||||
);
|
);
|
||||||
|
|
||||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
|
||||||
'EP.EpProducts',
|
|
||||||
'staticresult',
|
|
||||||
'statisches Suchergebnis'
|
|
||||||
);
|
|
||||||
|
|
||||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
||||||
'EP.EpProducts',
|
'EP.EpProducts',
|
||||||
'product_detail',
|
'product_detail',
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ plugin.tx_epproducts {
|
|||||||
snowReportStoragePid =
|
snowReportStoragePid =
|
||||||
# cat=plugin.tx_epproducts//a; type=string; label=Default search page UID
|
# cat=plugin.tx_epproducts//a; type=string; label=Default search page UID
|
||||||
defaultSearchPageUid =
|
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
|
# cat=plugin.tx_epproducts//a; type=string; label=Default product detail page UID
|
||||||
defaultDetailPageUid =
|
defaultDetailPageUid =
|
||||||
# cat=plugin.tx_epproducts//a; type=string; label=Exclude products with concept UIDs from search result (CSV)
|
# 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}
|
destinationsStoragePid = {$plugin.tx_epproducts.settings.destinationsStoragePid}
|
||||||
snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
|
snowReportStoragePid = {$plugin.tx_epproducts.settings.snowReportStoragePid}
|
||||||
defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
|
defaultSearchPageUid = {$plugin.tx_epproducts.settings.defaultSearchPageUid}
|
||||||
defaultStaticSearchPageUid = {$plugin.tx_epproducts.settings.defaultStaticSearchPageUid}
|
|
||||||
defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}
|
defaultDetailPageUid = {$plugin.tx_epproducts.settings.defaultDetailPageUid}
|
||||||
excludedConceptUids = {$plugin.tx_epproducts.settings.excludedConceptUids}
|
excludedConceptUids = {$plugin.tx_epproducts.settings.excludedConceptUids}
|
||||||
excludedRegionUids = {$plugin.tx_epproducts.settings.excludedRegionUids}
|
excludedRegionUids = {$plugin.tx_epproducts.settings.excludedRegionUids}
|
||||||
|
|||||||
@@ -50,21 +50,10 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T
|
|||||||
'EP.' . $_EXTKEY,
|
'EP.' . $_EXTKEY,
|
||||||
'searchresult',
|
'searchresult',
|
||||||
[
|
[
|
||||||
'Search' => 'searchresult',
|
'Search' => 'searchresult,processSearch',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'Search' => 'searchresult',
|
'Search' => 'searchresult,processSearch',
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
|
|
||||||
'EP.' . $_EXTKEY,
|
|
||||||
'staticresult',
|
|
||||||
[
|
|
||||||
'Search' => 'staticresult',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'Search' => 'staticresult',
|
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
inline-template>
|
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 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">
|
<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"
|
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
|
||||||
pageUid="{settings.defaultSearchPageUid}" additionalAttributes="{ref: 'form'}">
|
pageUid="{settings.defaultSearchPageUid}" additionalAttributes="{ref: 'form'}">
|
||||||
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
:date-presets='{settings.datePickerPresets -> v:format.json.encode()}'
|
:date-presets='{settings.datePickerPresets -> v:format.json.encode()}'
|
||||||
inline-template>
|
inline-template>
|
||||||
<div class="container">
|
<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"
|
object="{searchParams}" pluginName="searchresult" extensionName="epproducts"
|
||||||
pageUid="{settings.defaultSearchPageUid}" class="form-horizontal">
|
pageUid="{settings.defaultSearchPageUid}" class="form-horizontal">
|
||||||
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
<f:form.hidden property="destinationUid" additionalAttributes="{v-model: 'searchParams.destinationUid', number: 'number'}"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user