Skip to content

fix(cache): detect not-cached elements via PageParts on TYPO3 v14 - #472

Merged
lochmueller merged 1 commit into
lochmueller:mainfrom
biebricher-of:main
Aug 31, 2026
Merged

fix(cache): detect not-cached elements via PageParts on TYPO3 v14#472
lochmueller merged 1 commit into
lochmueller:mainfrom
biebricher-of:main

Conversation

@biebricher-of

Copy link
Copy Markdown
Contributor

TYPO3 v14 removed INTincScript from FrontendTypoScript::getConfigArray() as part of the TypoScriptFrontendController dissolution (#107831/#107578), so this listener silently stopped adding cache rule explanations and pages with USER_INT/COA_INT or uncached extbase plugins were statically cached.

Read the not-cached content element registry from the "frontend.page.parts" request attribute (PageParts) instead. The nonce-substitution skip is kept and now evaluates the cspGenerationOverride setting once per call. getInformation() is strictly typed and reports the new "substKey" key.

PageParts is marked "@internal Experimental, will change" by the core and may change during v14/v15 development; a @todo documents this.

Refs: https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/14.0/Breaking-107831-RemovedTypoScriptFrontendController.html

Short description

This fixes the problem that USER_INT like FeLogin->Login forms are cached in TYPO3 14.

More Details

The @todo comments are there because PageParts are marked Experimental. The fix solves the problem that USER_INT are cached - but for the cost that this may break later again. The @todo comment can, of course, be removed to please validator.

TYPO3 v14 removed INTincScript from FrontendTypoScript::getConfigArray()
as part of the TypoScriptFrontendController dissolution (#107831/#107578),
so this listener silently stopped adding cache rule explanations and
pages with USER_INT/COA_INT or uncached extbase plugins were statically
cached.

Read the not-cached content element registry from the "frontend.page.parts"
request attribute (PageParts) instead. The nonce-substitution skip is kept
and now evaluates the cspGenerationOverride setting once per call.
getInformation() is strictly typed and reports the new "substKey" key.

PageParts is marked "@internal Experimental, will change" by the core and
may change during v14/v15 development; a @todo documents this.

Refs: https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/14.0/Breaking-107831-RemovedTypoScriptFrontendController.html
@lochmueller
lochmueller merged commit 65e4659 into lochmueller:main Aug 31, 2026
3 checks passed
@lochmueller

Copy link
Copy Markdown
Owner

Hey Carsten / @biebricher-of
sch枚n dich hier zu sehen. Hoffe dir geht es gut?!
Danke f眉r die Anpassung.. PR winke ich direkt durch :)
Beste Gr眉脽e,
Tim

@biebricher-of

Copy link
Copy Markdown
Contributor Author

Hej Tim,
alles so weit gut. :)
Gr眉脽e,
Carsten

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants