Beiträge getaggt mit tca

TCA für Typen überschreiben

Trotz der vielen Anleitungen, ist es jedesmal ein Try and Error das TCA für einen bestimmten Typ zu überschreiben. In diesem Fall sollte für das Element ‚video‘ die Auswahl der Dateitypen eingeschränkt werden.

Um ein Feld für alle Typen zu überschreiben, packt man folgenden Block in my_ext/Configuration/TCA/Overrides/tt_content.php

$GLOBALS['TCA']['tt_content']['columns']['header']['label'] = 'Foobar';

Was überschrieben werden kann, findet man im Backend über das Modul Configuration raus, in dem man sich das TCA anzeigen lässt.

Will man nun etwas für einen bestimmten Typen überschreiben, dann setzt man statt ['columns'] folgendes ein: ['types']['video']['columnsOverrides'].

$GLOBALS['TCA']['tt_content']['types']['introtext']['columnsOverrides']['header']['label'] = 'Foobar';

Bei den Felden mit Kindelementen wird es etwas komplizierter – das ist für alle Typen:

$GLOBALS['TCA']['tt_content']['columns']['assets']['config']['overrideChildTca']['columns']['uid_local']['config']['appearance']['elementBrowserAllowed'] = 'youtube,vimeo';
$GLOBALS['TCA']['tt_content']['columns']['assets']['config']['filter'][0]['parameters']['allowedFileExtensions'] = 'youtube,vimeo';

Nach dem gleichen Prinzip wie beim Header kann diese Konfiguration nur für einen bestimmten Inhaltstyp vorgenommen werden:

$GLOBALS['TCA']['tt_content']['types']['video']['columnsOverrides']['assets']['config']['filter'][0]['parameters']['allowedFileExtensions'] = 'youtube,vimeo';
$GLOBALS['TCA']['tt_content']['types']['video']['columnsOverrides']['assets']['config']['overrideChildTca']['columns']['uid_local']['config']['appearance']['elementBrowserAllowed'] = 'youtube,vimeo';

Erfolgserlebnis

Nach jahrelanger Arbeit mit TYPO3 habe ich heute endlich verstanden, wie die Syntax für die Types und Palettendefinition im TCA sich zusammensetzt. Das tolle an TYPO3 ist, dass man das Backend sehr gut customizen kann. Man kann Felder beliebig anornden, gruppieren, umbenennen etc. Natürlich habe ich schonmal Formulare für neue Backend-Elemente konfiguriert, aber bisher meist das TCA vom Extension Builder erstellen lassen und dann nur noch geringfügig angepasst. Heute habe ich endlich verstanden, wie man Paletten unabhängig von Feldern definieren kann:
Das in types: --palette--;Datum;dates
Und das in palettes: 'dates' => array('showitem' => 'begin_date, begin_time, --linebreak--, end_date, end_time', 'canNotCollapse' => '1'),
Wie man Tabs definiert, wusste ich vorher auch schon
--div--;Registrierung, registration_date
Heute hats nochmal richtig Klick gemacht – nun steht absolut umwerfenden Backend-Formularen nichts mehr im Weg.