Migration from subtypes to types
Table of contents
Migrate plugins with FlexForms added via subtypes_addlist
If you used plugins with the now deprecated subtypes, you probably used subtypes_addlist to display a FlexForm for configuration purposes.
Migrate by adding the field pi_
with the utility method
Extension
add
instead. You also have to change the parameters used for
method add
:
$pluginSignature = ExtensionUtility::registerPlugin(
'blog_example',
'Pi1',
'A Blog Example',
);
-$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature]
- = 'pi_flexform';
+ExtensionManagementUtility::addToAllTCAtypes(
+ 'tt_content',
+ '--div--;Configuration,pi_flexform,pages,recursive,',
+ $pluginSignature,
+ 'after:subheader',
+);
ExtensionManagementUtility::addPiFlexFormValue(
- $pluginSignature,
+ '*',
'FILE:EXT:blog_example/Configuration/FlexForms/PluginSettings.xml',
+ $pluginSignature,
);
The fields pages
and recursive
used to be added
automatically to plugins when using the now outdated subtype "list_type".
Therefore they have to be added manually when doing the migration.
Migrate plugins with fields removed via subtypes_excludelist
Many extension author used the now deprecated option subtypes_excludelist to hide these automatically added fields.
The same effect can now be used by simply not adding the fields in the first place:
$pluginSignature = ExtensionUtility::registerPlugin(
'blog_example',
'Pi1',
'A Blog Example',
);
-$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature]
- = 'pages,recursive';
If any other fields have been removed with this method you can only remove them by overriding $GLOBALS['TCA']['tt_content']['types'][$pluginSignature]['showitem'] or via page TSconfig.
Migrate custom tables using subtypes
Replace any subtype_value_field configuration with dedicated record types. Please also consider migrating corresponding subtypes_addlist and subtypes_excludelist definitions accordingly.
Migration: PreviewRenderer for subtypes
When migrating a plugin with a PreviewRenderer from list_
registration to
its own CType
change the PreviewRenderer configuration to the record type as
well:
$pluginSignature = ExtensionUtility::registerPlugin(
'blog_example',
'Pi1',
'A Blog Example',
);
-$GLOBALS['TCA']['tt_content']['types']['list_type']['previewRenderer'][$pluginSignature]
- = \MyVendor\MyExtension\Preview\PreviewRenderer::class;
+$GLOBALS['TCA']['tt_content']['types'][$pluginSignature]['previewRenderer']
+ = \MyVendor\MyExtension\Preview\PreviewRenderer::class;