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()
|
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);
|
$forcedConceptUids = GeneralUtility::trimExplode(',', $this->settings['forcedConceptUids'], true);
|
||||||
$this->processFilterSettingsArgument($forcedConceptUids);
|
$this->processFilterSettingsArgument($forcedConceptUids);
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-4
@@ -34,8 +34,11 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\MiddlewareInterface;
|
use Psr\Http\Server\MiddlewareInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
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\NormalizedParams;
|
||||||
use TYPO3\CMS\Core\Http\RedirectResponse;
|
use TYPO3\CMS\Core\Http\RedirectResponse;
|
||||||
|
use TYPO3\CMS\Core\Site\SiteFinder;
|
||||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||||
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
||||||
|
|
||||||
@@ -44,7 +47,6 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
|||||||
use DbConnectionTrait;
|
use DbConnectionTrait;
|
||||||
|
|
||||||
public const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
public const PREFIX_PATH_SEGMENT = 'reiseauswahl';
|
||||||
public const SEARCH_RESULT_URI = '/skireisen/suche/ergebnis/';
|
|
||||||
public const REDIRECT_RESPONSE_CODE = 302;
|
public const REDIRECT_RESPONSE_CODE = 302;
|
||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
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) {
|
if (!$row) {
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
@@ -88,9 +90,21 @@ class StaticSearchParamsMiddleware implements MiddlewareInterface
|
|||||||
|
|
||||||
$filterSettings = $filterService->getFilterSettingsFromStaticSearchParams($row);
|
$filterSettings = $filterService->getFilterSettingsFromStaticSearchParams($row);
|
||||||
$filterSettingsEncoder = new FilterSettingsEncoder();
|
$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);
|
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[months]';
|
||||||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'tx_epproducts_ajax[month]';
|
$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'][] = 'tx_epproducts_ajax[year]';
|
||||||
|
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'f';
|
||||||
|
|
||||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['PassthroughMapper'] =
|
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['PassthroughMapper'] =
|
||||||
\EP\EpProducts\Routing\Aspect\PassthroughMapper::class;
|
\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