Bug #87817
closedPageLinkBuilder fails adding pagetype parameter, if routeEnhancers for PageTypeSuffix is defined
100%
Description
- Define a RouteEnhancer for a certain page type:
routeEnhancers: PageTypeSuffix: type: PageType default: '' map: foo: 1234
- Call some method that uses TYPO3\CMS\Frontend\Typolink\PageLinkBuilder, including a typeNum as parameter.
<f:uri.page pageType="{type}" additionalParams="{sitemap: sitemap.key, page: sitemap.page}" absolute="true" noCacheHash="false" /> $uri = $uriBuilder->setTargetPageUid($pageUid)->setTargetPageType($pageType)->build();
- The typeNum used in the example code above should NOT be registered in the RouteEnhancers. E.g. '5678' to fit the defined RouteEnhancer above.
- TYPO3 then tries to use \TYPO3\CMS\Core\Routing\Enhancer\PageTypeDecorator to add the defined page type in the RouteEnhancers to the URL, although for the selected typeNum ('5678') there is no RouteEnhancer defined.
- This leads to method decorateForGeneration() removing the typeNum:
$deflatedParameters = $existingRoute->getOption('deflatedParameters') ?? $parameters; if (isset($deflatedParameters['type'])) { unset($deflatedParameters['type']); $existingRoute->setOption( 'deflatedParameters', $deflatedParameters ); }
- Results in a link without typeNum added to it.
I stumbled across this, when defining a RouteEnhancer for a typeNum I used in a plugin. I also had the TYPO3 seo-extension installed, which defines the typeNum 1533906435 for getting the sitemaps. However the sitmap extension didn't create valid URLs with typeNums, and were therefore useless.
A quick fix is, to also add the typeNum defined by the seo-extension to the RouteEnhancers:
routeEnhancers: PageTypeSuffix: type: PageType default: '' map: foo: 1234 sitemap: 1533906435
Updated by Tim Karliczek over 5 years ago
I am able to reproduce this behaviour in Typo3 9.5.5.
Updated by Sebastian Mazza over 5 years ago
I am also able to reproduce this behaviour in Typo3 9.5.5.
(unfortunately my workaround list will be much longer)
Updated by Falk no-lastname-given over 5 years ago
I've spent hours to find the same issue in 9.5.6
Updated by Tymoteusz Motylewski almost 5 years ago
- Related to Bug #87087: StaticRouteResolver ignores additional parameters added
Updated by Tymoteusz Motylewski almost 5 years ago
- Related to Bug #86835: Static route sitemap.xml is still not working on single-page tree added
Updated by Tymoteusz Motylewski almost 5 years ago
- Related to Bug #88836: page type not respected under some circumstances added
Updated by Tymoteusz Motylewski almost 5 years ago
- Related to Bug #87087: StaticRouteResolver ignores additional parameters added
Updated by Tymoteusz Motylewski almost 5 years ago
- Related to Bug #87016: Seo sitemap does not note routeEnhancer on extensions added
Updated by Gerrit Code Review over 4 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/62383
Updated by Gerrit Code Review over 4 years ago
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/62383
Updated by Gerrit Code Review over 4 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/62383
Updated by Gerrit Code Review over 4 years ago
Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/62383
Updated by Gerrit Code Review over 4 years ago
Patch set 1 for branch 9.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/62811
Updated by Benni Mack over 4 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 8bb73e3fece60d80523c43eedc751b7616f5e443.
Updated by Benni Mack over 4 years ago
- Related to Bug #87104: PageTypeSuffix removes type parameter for non mapped type values added