TSconfig with page based condition is ignored using page tree commands and clipboard
The bug described in #81190 is affected by functionalities. I've found using page tree and clipboard copy and paste to far. But perhaps there are more places.
- You have a multi tree instance with different RTE TSconfigs per tree.
- You want to avoid references to the TSconfig files in page records.
- So you use conditions with including the tsconfig in ext_localconf like this:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig( '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:foo/Configuration/TsConfig/Page/page_base.ts" condition="[PIDinRootline = 1234]">' );
The ConditionMatcher instantiated by the TypoScriptParser tries to determine the page using GetVars 'id', 'edit' or 'cmd'. Those vars are not used anymore in various places to feed the Datahandler commandMap. So no page id found, so no rootline to be evaluated for the condition.
How to reproduce:
You could use e.g.
TCEMAIN.permissions.groupid = 42
inside the file that is included by the statement above (use not the first group a user has anyway!). The pasted pages will sadly not have the configured group.
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:foo/Configuration/TsConfig/Page/page_base_includes.ts" condition="[PIDinRootline = 1234]">
only for including other INCLUDE_TYPOSCRIPT: statements. Use an additional
with a classic [PIDinRootline = 1234] condition around for all other tree related TSconfig settings.
#3 Updated by Marc Bastian Heinrichs 12 months ago
The TYPO3\CMS\Backend\Controller\LinkBrowserController and TYPO3\CMS\Rtehtmlarea\Controller\BrowseLinksController are also affected by this problem.
So linkhandler configuration needs to be placed into a classic [PIDinRootline = 1234] condition, too.