Migrate static search plugin to simpler solution using get parameter
This commit is contained in:
@@ -87,6 +87,13 @@ class SearchController extends ActionController
|
||||
|
||||
public function initializeSearchresultAction()
|
||||
{
|
||||
// Process encoded filtersettings from static search result
|
||||
$encodedFilterSettings = GeneralUtility::_GET('f');
|
||||
if ($encodedFilterSettings) {
|
||||
$filterSettingsEncoder = new FilterSettingsEncoder();
|
||||
$filterSettings = $filterSettingsEncoder->decode($encodedFilterSettings);
|
||||
$this->request->setArgument('filterSettings', $filterSettings);
|
||||
}
|
||||
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
||||
$this->processFilterSettingsArgument($forcedConceptUids);
|
||||
}
|
||||
|
||||
+18
-4
@@ -34,8 +34,11 @@ use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;
|
||||
use TYPO3\CMS\Core\Exception\SiteNotFoundException;
|
||||
use TYPO3\CMS\Core\Http\NormalizedParams;
|
||||
use TYPO3\CMS\Core\Http\RedirectResponse;
|
||||
use TYPO3\CMS\Core\Site\SiteFinder;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
||||
|
||||
@@ -44,7 +47,6 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
||||
use DbConnectionTrait;
|
||||
|
||||
public const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
||||
public const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
|
||||
public const REDIRECT_RESPONSE_CODE = 302;
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
@@ -74,7 +76,7 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
||||
])
|
||||
;
|
||||
|
||||
$row = $query->execute()->fetch();
|
||||
$row = $query->execute()->fetchAssociative();
|
||||
|
||||
if (!$row) {
|
||||
return $handler->handle($request);
|
||||
@@ -88,9 +90,21 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
||||
|
||||
$filterSettings = $filterService->getFilterSettingsFromStaticSearchParams($row);
|
||||
$filterSettingsEncoder = new FilterSettingsEncoder();
|
||||
$encodedFilterSettings = rawurlencode($filterSettingsEncoder->encode($filterSettings));
|
||||
$encodedFilterSettings = $filterSettingsEncoder->encode($filterSettings);
|
||||
|
||||
$redirectUri = self::SEARCH_RESULT_URI . $encodedFilterSettings . '/';
|
||||
$searchPageUid = GeneralUtility::makeInstance(ExtensionConfiguration::class)
|
||||
->get('ep_products', 'searchPageUid');
|
||||
|
||||
/** @var SiteFinder $siteFinder */
|
||||
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
|
||||
try {
|
||||
$site = $siteFinder->getSiteByPageId((int)$searchPageUid);
|
||||
}
|
||||
catch (SiteNotFoundException $exception) {
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
$redirectUri = $site->getRouter()->generateUri($searchPageUid, ['f' => $encodedFilterSettings]);
|
||||
|
||||
return new RedirectResponse($redirectUri, self::REDIRECT_RESPONSE_CODE);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# customsubcategory=100=General
|
||||
# cat=epproducts/100/100; type=int; label=Searchresult PID
|
||||
searchPageUid = 0
|
||||
@@ -301,6 +301,7 @@ $boot = function () {
|
||||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[months]';
|
||||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[month]';
|
||||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[year]';
|
||||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'f';
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['PassthroughMapper'] =
|
||||
\EP\EpProducts\Routing\Aspect\PassthroughMapper::class;
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# customsubcategory=100=General
|
||||
# cat=eptheme/100/100; type=boolean; label=Compress HTML
|
||||
compressHtml = 0
|
||||
Reference in New Issue
Block a user