Felder im TYPO3-Backend gruppieren

Mit der TYPO3-Extension Extension Kickstarter lassen sich Extensions incl. der dazu gewünschten Tabellen recht einfach anlegen. Allerdings werden alle Felder nur simpel nacheinander aufgelistet und eine echte Zusammengehörigkeit ist nicht sofort zu erkennen.

Um dem Redakteur zumindest eine kleine Hilfestellung zu geben, könnte man die Feldbeschriftungen anpassen. Dadurch lässt sich zumindest auf den zweiten Blick eine Zusammengehörigkeit erkennen.

Mit ein klein wenig Kenntnis über das „Table Configuration Array“ (TCA) kann man Felder jedoch auch sinnvoll und unverkennbar gruppieren. Wie das geht wird im Folgenden vorgestellt.

Zunächst öffnen wir die vom Extension Kickstarter angelegte Datei tca.php und suchen dort die Konfiguration für die entsprechende Tabelle. Diese sieht in stark vereinfachter Darstellung in etwa so aus:

$TCA['tx_myextension_demo'] = array (
	'types' => array (
		'0' => array('showitem' => 'hidden;;1, name, x, y, isbranch')
	),
	'palettes' => array (
		'1' => array('showitem' => 'starttime, endtime')
	)
);

Im Feld [types][0] sind alle Felder in der Reihenfolge aufgelistet, wie sie im Backend-Formular zu sehen sein werden. Im Feld [palettes][1] ist die zweite Optionspalette definiert, die dem Feld hidden über den Index 1 zugeordnet ist. Genau eine solche Optionspalette wollen wir uns, in angepasster Form, zu Nutzen machen. Zu diesem Zweck verlagern wir die Felder x, y, isbranch in eine eigene Palette.

$TCA['tx_myextension_demo'] = array (
	'types' => array (
		'0' => array('showitem' => 'hidden;;1, name, --palette--;Flash-Weltkarte;worldmap')
	),
	'palettes' => array (
		'1' => array('showitem' => 'starttime, endtime'),
		'worldmap' => array('showitem' => 'x, y, isbranch')
	)
);

Dieser geben wir der Übersichtlichkeit halber keine Zahl als Index, sondern den Namen worldmap. Zusätzlich platzieren wir in der normalen Liste aller Felder ([types][0]) ein neues Feld, das ebenfalls einer kleine Erklärung bedarf: --palette--;Worldmap;worldmap. Diese Konfiguration wird durch Semikolon in drei Bereiche unterteilt:

  • Der erste Wert --palette-- bedeutet, dass das kein reguläres Eingabefeld ist, dessen definition sich ebenfalls im TCA befindet, sondern ein Spezialfeld als Platzhalter für eine Palette.
  • Der dritte Wert worldmap ist der Index für die Palette, wie er auch im Array [palettes] auftaucht.
  • Der Zweite Konfigurations-Wert ist der angezeigte Name der Palette.

Als letzten Feinschliff geben wir der Palette noch ein Attribut canNotCollapse. Das bedeutet, dass sie nicht mit der Option „Zweite Optionspalette anzeigen“ erscheint und verschwindet, sondern immer noch zu sehen ist. Zusätzlich machen wir den Namen Übersetzbar. Das geschieht, indem wir den vorher fest eingetragenen Wert Flash-Weltkarte durch einen Verweis auf die Local-Lang ersetzen. Selbstverständlich muss in der Datei locallang_db.xml dann auch der entsprechende Eintrag vorhanden sein.

$TCA['tx_myextension_demo'] = array (
	'types' => array (
		'0' => array('showitem' => 'hidden;;1, name, --palette--;LLL:EXT:myextension/locallang_db.xml:tx_myextension_demo.worldmap;worldmap')
	),
	'palettes' => array (
		'1' => array('showitem' => 'starttime, endtime'),
		'worldmap' => array('showitem' => 'x, y, isbranch', 'canNotCollapse' => 1)
	)
);

2 Gedanken zu „Felder im TYPO3-Backend gruppieren“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.