From d29355945a7f783d229413f247fc3e115e6838eb Mon Sep 17 00:00:00 2001 From: Andreas Fernandez <a.fernandez@scripting-base.de> Date: Sat, 27 Nov 2021 14:29:51 +0100 Subject: [PATCH] [BUGFIX] Use generated TSFE in PageLinkBuilder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the PageLinkBuilder is invoked with a non-available TSFE as e.g. in the "Redirects" module, generating the URLs to pages with a fragment, e.g. to a referenced content element, works now as we're using the TSFE generated within PageLinkBuilder itself. Resolves: #96101 Releases: main, 11.5 Change-Id: I481b7d8573424dab59df22b0d81a734e03b70575 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72323 Tested-by: core-ci <typo3@b13.com> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Benni Mack <benni@typo3.org> Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Benni Mack <benni@typo3.org> Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de> --- typo3/sysext/frontend/Classes/Typolink/PageLinkBuilder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/typo3/sysext/frontend/Classes/Typolink/PageLinkBuilder.php b/typo3/sysext/frontend/Classes/Typolink/PageLinkBuilder.php index 62cae99795b6..8f723276fdbe 100644 --- a/typo3/sysext/frontend/Classes/Typolink/PageLinkBuilder.php +++ b/typo3/sysext/frontend/Classes/Typolink/PageLinkBuilder.php @@ -402,6 +402,7 @@ class PageLinkBuilder extends AbstractTypolinkBuilder */ protected function generateUrlForPageWithSiteConfiguration(array $page, Site $siteOfTargetPage, array $queryParameters, string $fragment, array $conf): UriInterface { + $tsfe = $this->getTypoScriptFrontendController(); $currentSite = $this->getCurrentSite(); $currentSiteLanguage = $this->getCurrentSiteLanguage(); // Happens when currently on a pseudo-site configuration @@ -434,9 +435,9 @@ class PageLinkBuilder extends AbstractTypolinkBuilder if ($fragment && $useAbsoluteUrl === false && $currentSiteLanguage === $siteLanguageOfTargetPage - && $targetPageId === (int)$GLOBALS['TSFE']->id + && $targetPageId === (int)$tsfe->id && (empty($conf['addQueryString']) || !isset($conf['addQueryString.'])) - && !($GLOBALS['TSFE']->config['config']['baseURL'] ?? false) + && !($tsfe->config['config']['baseURL'] ?? false) && count($queryParameters) === 1 // _language is always set ) { $uri = (new Uri())->withFragment($fragment); -- GitLab