Skip to content
Snippets Groups Projects
Commit 83c3be60 authored by Francois Suter's avatar Francois Suter Committed by Benni Mack
Browse files

[BUGFIX] Respect cross-site error content source

In a multi-site setup, it should be possible to refer to a page
from site A as an error page from site B.

Resolves: #90135
Releases: master, 9.5
Change-Id: Ic3e4669e6279f58fe4953f8253d6329f1d137cd3
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62955


Tested-by: default avatarSusanne Moog <look@susi.dev>
Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarSusanne Moog <look@susi.dev>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
parent 08ae979e
No related merge requests found
......@@ -105,12 +105,22 @@ class PageContentErrorHandler implements PageErrorHandlerInterface
return $urlParams['url'];
}
$site = $request->getAttribute('site', null);
// Get the site related to the configured error page
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId((int)$urlParams['pageuid']);
// Fall back to current request for the site
if (!$site instanceof Site) {
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId((int)$urlParams['pageuid']);
$site = $request->getAttribute('site', null);
}
$language = $request->getAttribute('language', null);
if (!$language instanceof SiteLanguage || !$language->isEnabled()) {
/** @var SiteLanguage $requestLanguage */
$requestLanguage = $request->getAttribute('language', null);
// Try to get the current request language from the site that was found above
if ($requestLanguage instanceof SiteLanguage) {
try {
$language = $site->getLanguageById($requestLanguage->getLanguageId());
} catch (\InvalidArgumentException $e) {
$language = $site->getDefaultLanguage();
}
} else {
$language = $site->getDefaultLanguage();
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment