From 58e3463297b9968c81f5c15d3e939e31226c751c Mon Sep 17 00:00:00 2001 From: Benni Mack Date: Wed, 15 Jan 2020 12:55:00 +0100 Subject: [PATCH] [BUGFIX] Allow additional parameters in static routes If the static route value is using additionalParams, they should be added to the page that is fetched. The patch parses the "parameters" key (&my=value&key=1) into additional parameters of the PageRouter. Resolves: #87087 Releases: master, 9.5 Change-Id: I8688e891d1b6bfda3a546eb13812bbb80dfea1c1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62891 Tested-by: TYPO3com Tested-by: Daniel Goerz Tested-by: Susanne Moog Reviewed-by: Markus Klein Reviewed-by: Daniel Goerz Reviewed-by: Susanne Moog --- .../frontend/Classes/Middleware/StaticRouteResolver.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php b/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php index 18cd01a425a0..1abadffbadaf 100644 --- a/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php +++ b/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php @@ -120,9 +120,16 @@ protected function getFromUri(string $uri): array */ protected function getPageUri(ServerRequestInterface $request, Site $site, array $urlParams): string { + $parameters = []; + // Add additional parameters, if set via TypoLink + if (isset($urlParams['parameters'])) { + parse_str($urlParams['parameters'], $parameters); + } + $parameters['type'] = $urlParams['pagetype'] ?? 0; + $parameters['_language'] = $request->getAttribute('language', null); $uri = $site->getRouter()->generateUri( (int)$urlParams['pageuid'], - ['type' => $urlParams['pagetype'] ?? 0, '_language' => $request->getAttribute('language', null)], + $parameters, '', RouterInterface::ABSOLUTE_URL );