Das TYPO3 TCA in der 7.6 LTS
Seit der 6.2 LTS wurde auch das TCA (Table Configuration Array) an diversen Stellen überarbeitet. Im TCA wird festgelegt, welche Felder wie im Backend erscheinen. Einige der Änderungen werden nun näher vorgestellt.
TCA Änderungen
Pfade zu den Icons definieren mit EXT:
In der ctrl-Section wurde als Übergangslösung der Pfad zum Icon definiert mit:
'iconfile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('extension_name') . 'Resources/Public/Icons/icon_name.png'
Nun kann dies direkt über EXT: erfolgen:
'iconfile' => 'EXT:extension_name/Resources/Public/Icons/icon_name.png'
Neuer TCA Typ image_manipulation
Dieser Typ ist für die neu eingeführte image crop Funktion vorgesehen. Hier werden die gewählten Bildausschnitte gespeichert.
Sichtbarkeit von Paletten
Die Paletten werden nun immer direkt angezeigt. Die Checkbox zum Ein- und Ausblenden entfällt.
columnsOverrides
Bisher wurden beispielsweise RTE-Transformationen nach drei vorangehenden Semikolons in der types Section festgelegt. Dies wird nun übersichtlicher durch die Angabe in der neuen Option columnsOverrides.
Bisher:
'types' => array( '0' => array( 'showitem' => 'description;;;richtext:rte_transform[mode=ts_css]', ), ),
Jetzt:
'types' => [ '0' => [ 'showitem' => 'description', 'columnsOverrides' => [ 'description' => [ 'defaultExtras' => 'richtext:rte_transform[mode=ts_css]' ] ] ] ]
Paletten neu definiert
Paletten sind nun nicht mehr nach einem Feld zu definieren sondern immer mit dem Schlüssel --palette--
.
Vorher:
'showitem' => 'aField;aLabel;anAdditionalPaletteName',
Jetzt:
'showitem' => 'aField;aLabel, --palette--;;anAdditionalPaletteName',
descriptionColumn
Über [’TCA’][’ctrl’][’descriptionColumn’]
keine eine Spalte festgelegt werden, welche u.a. im Listenmodul mit den jeweiligen Inhalten als Beschreibungen angezeigt wird.
renderType
Eine neue Option names renderType muss nun beim TCA-Typ ’select‘ gesetzt werden. Dies bestimmt nun das Aussehen der Selectbox.
Zulässige Werte sind:
'renderType' => 'selectSingle', 'renderType' => 'selectMultipleSideBySide', 'renderType' => 'selectCheckBox', 'renderType' => 'selectSingleBox', 'renderType' => 'selectTree',
Änderungen bei den Wizards
Neue Pfade zu den Icons
Im Deprecation-Log in einer 7.6-Installation wird oftmals eine Meldung angezeigt, welche der folgenden ähnelt:
Migrated icon path of wizard "link" in field "tx_csseo_canonical" from TCA table "pages". New path is: EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_link.gif
Die Pfade zu den Icons haben sich auch bei den Wizards geändert. Die Icons sind u.a. wie folgt zu ersetzen:
'add.gif' -> 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_add.gif' 'edit2.gif' -> 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_edit.gif' 'link_popup.gif -> 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_link.gif' 'wizard_rte2.gif' -> 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_rte.gif'
Skripte werden über den Namen registriert
Neben den Icons hat sich auch die Angabe der Skripte für den jeweiligen Wizard geändert. Das war allerdings in TYPO3 6.2 schon vorgegeben. In TYPO3 7.6 wird daher eine Fehlermeldung angegeben, falls die Angaben nicht korrekt sind.
Die Wizards werden mit Namen angegeben. So wird aus:
'script' => 'wizard_add.php',
seit TYPO3 6.2:
'module' => [ 'name' => 'wizard_add' ],
Hierzu ein paar weitere Beispiele:
'script' => 'wizard_edit.php', // wird zu 'module' => [ 'name' => 'wizard_edit', ], 'script' => 'browse_links.php?mode=wizard&act=file', // wird zu 'module' => [ 'name' => 'wizard_link', 'urlParameters' => [ 'mode' => 'wizard', 'act' => 'file' ] ], 'script' => 'wizard_rte.php', // wird zu 'module' => [ 'name' => 'wizard_rte', ],
typo3conf/ext_tables.php ist veraltet
Die Datei typo3conf/extTables.php ist als „deprecated“ gekennzeichnet wurden. Als Alternative sollten die Änderungen in der jeweiligen Extension niedergeschrieben werden: typo3conf/ext/extension_name/Configuration/TCA/Overrides/table_name.php
Weitere Neuerungen sind in den folgenden Quellen zu finden.