I have a TYPO3 v11 installation that has a lot of plugins (around 20), custom ones as well as third party ones (like ext:news or ext:solr, and some others). This installation should be upgraded step by step to v14. The installation is not using ext:fluid_styled_content, but instead uses an own contentRenderingTemplates path, but it basically does the same as ext:fluid_styled_content would be doing.
In this process I have to migrate tt_content.list_type to tt_content.CType. The formal process of this is all clear (wizard, permissions, showitem, etc.pp.).
However, in this specific setup, the Fluid template List.html (loaded by CType=list) was overidden to add a lot of general Plugin-wrapping stuff, around <f:cObject typoscriptObjectPath="tt_content.list.20.{data.list_type}" data="{data}" table="tt_content"/>.
With CType=list now vanishing, there is no way to add this custom wrapping anymore, because the plugin templates are loaded directly, without being passed through List.html first anymore:
- I can not redeclare
lib.contentElement = CASEto provide a manual switch to a wrapper-template for the relevant former list types (because Plugin registration hard-coded assumes aFLUIDTEMPLATE). - I also did not found any Hooks, Events, Middlewares, etc. that could be used to intercept this process (correct me if I missed one).
- And because all plugin templates are now loaded directly, I also can not provide a central
f:layout.
The only way I can currently think of is to override all templateRootPaths individually of any relevant extension and copy-paste the wrapper into each relevant Controller action template. But this is super unflexible, because all future changes to this wrapper will have to be copy-pasted for all relevant plugin.
In case this matters (for new events, middlewares or whatever): I have to do this plugin migration partially on v12 already (because of ext:news doing the migration then already).
How can I achieve this generic plugin wrapping now?