[BUGFIX] Consider language context and fallbacks in persisted aspects
For PersistedAliasMapper and PersistedPatternMapper, language handling when resolving a URL route paramter was not explicit enough. PersistedAliasMapper incorrectly resolved language default records even when the HTTP request contained a language aspect and a more specific record (having the same slug value) would have been available. That was similar in PersistedPatternMapper when `uid` field was not defined in corresponding pattern (e.g. `^(?P<title>.+)-(?P<uid>\d+)$). For both mentioned scenarios language restrictions and fallback handling has been integrated. Records are retrieved in the following order: + "all language (-1)", most specific if present, can't be localized + "current language" most specific for the current given request context + "language fallbacks" (might include "default language") Resolves: #89153 Releases: master, 9.5 Change-Id: I25b17d1d618bb1509737d43b877a16c3a6da9f28 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61668 Tested-by:TYPO3com <noreply@typo3.com> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
Showing
- typo3/sysext/core/Classes/Routing/Aspect/PersistedAliasMapper.php 28 additions, 8 deletions...sext/core/Classes/Routing/Aspect/PersistedAliasMapper.php
- typo3/sysext/core/Classes/Routing/Aspect/PersistedPatternMapper.php 29 additions, 7 deletions...xt/core/Classes/Routing/Aspect/PersistedPatternMapper.php
- typo3/sysext/core/Classes/Routing/Aspect/SiteLanguageAccessorTrait.php 99 additions, 0 deletions...core/Classes/Routing/Aspect/SiteLanguageAccessorTrait.php
- typo3/sysext/core/Tests/Functional/Routing/Aspect/PersistedAliasMapperTest.php 6 additions, 7 deletions...ts/Functional/Routing/Aspect/PersistedAliasMapperTest.php
Please register or sign in to comment