Neue TCA-Typen in TYPO3 Version 11

Füge ganz einfach Sonderfelder hinzu

|Oliver Bartsch

Rechtzeitig zum Release des neuen v12 Updates möchten wir diese Serie mit unserem letzten Recap der TYPO3 v11-Serie abschließen. Bleibt gespannt für alle Neuerungen kommender Updates!

In den vorherigen Beiträgen haben wir über einige der großartigen UX-Verbesserungen berichtet, die das Leben der Redakteure einfacher machen.

In diesem letzten Beitrag der Serie haben wir etwas Besonderes für alle Entwickler und Website-Administratoren: neue TCA-Typen. Die Verwendung dieser speziellen Typen reduziert und vereinfacht die TCA-Konfiguration, die für spezielle Felder erforderlich ist. Außerdem ermöglichen sie die automatische Konfiguration und Erstellung von Datenbankfeldern.

Was ist ein TCA-Typ?

Zuerst wollen wir klären, was ein TCA-Typ ist. Das Table Configuration Array (TCA) enthält die Konfiguration für Datensätze, zum Beispiel Seiten oder Inhalte. Jeder Datensatz enthält normalerweise ein paar Felder. Das Feld zum Einfügen des Titels eines Datensatzes ist zum Beispiel ein einfaches Textfeld. Um TYPO3 mitzuteilen, wie dieses Feld dargestellt werden soll, muss es als TCA-Typ „input“ definiert werden. Das heißt, TCA-Typen werden verwendet, um TYPO3 mitzuteilen, wie ein Feld im Backend-Formular dargestellt werden soll. Außerdem verwendet TYPO3 intern TCA-Typen, wenn es mit dem Feldwert arbeitet, zum Beispiel wenn es den Wert für die Datenbank vorbereitet.

Was sind die Vorteile der neuen TCA-Typen?

Während die grundlegenden Felder im Laufe der Jahre fast unverändert geblieben sind, mussten viele spezielle Anwendungsfälle hinzugefügt werden, z. B. der Link Browser für den TCA-Typ „input“. Als immer mehr dieser Sonderfälle hinzukamen, wurde es sehr schwierig, den Zweck eines Feldes zu identifizieren, da die semantische Bedeutung nicht immer auf den ersten Blick klar war. Außerdem wuchs die Zahl der Konfigurationsoptionen, die für die meisten Anwendungsfälle nicht immer relevant waren.

Die neu eingeführten TCA-Typen sind jetzt nur noch für einen speziellen Anwendungsfall bestimmt und reduzieren die für alle Typen erforderlichen Konfigurationsoptionen drastisch. Außerdem ermöglichen sie weitere automatische Konfigurationen und die automatische Erstellung von Datenbankfeldern.

TCA-Typ „category“

Kategoriebaum im TYPO3 Backend
Kategoriebaum im TYPO3 Backend

Der neue Typ „category“ wird für die Darstellung eines Kategoriebaums im Backend-Formular verwendet und ersetzt die spezielle Konfiguration des TCA-Typs „select“. Durch die Verwendung des neuen Typs kann er endlich die Low-Level CategoryRegistry ersetzen, die zusammen mit der „makeCategorizable“-API verwendet wurde.

Ein eigener Typ ermöglicht nicht nur eine sauberere Konfiguration, sondern TYPO3 kann jetzt auch automatisch das entsprechende Datenbankfeld erstellen, wobei der angegebene Beziehungstyp berücksichtigt wird. Und das ist noch nicht alles. Der Beziehungstyp wird jetzt ebenfalls berücksichtigt. Wenn zum Beispiel der Beziehungstyp „oneToOne“ angegeben wird, definiert TYPO3 automatisch die maximale Anzahl der auszuwählenden Kategorien.

Während der Kategoriebaum in einen eigenen Typ verschoben wurde, wurde er auch technisch überarbeitet und ist jetzt als Webkomponente implementiert, die viel schneller gerendert wird und viel flüssiger läuft.

Zusammenfassend lässt sich sagen, dass der Konfigurationsaufwand für die Darstellung eines verbesserten Kategoriebaums deutlich reduziert wurde und Entwickler die entsprechenden Datenbankfelder nicht mehr definieren müssen. Sind das nicht tolle Neuigkeiten?

Kategoriebaum im TYPO3 Backend
Kategoriebaum im TYPO3 Backend

TCA-Typ „language“

Sprachauswahl im TYPO3 Backend
Sprachauswahl im TYPO3 Backend

TYPO3 wäre nicht so erfolgreich ohne seine starke Unterstützung für mehrsprachige Installationen. Eine häufige Aufgabe ist die Auswahl der richtigen Sprache für einen Datensatz. Diese Auswahl basiert jetzt auf dem neuen Typ „language“, der die spezielle Option „languages“ des TCA-Typs „select“ ersetzt.

Neben der speziellen Konfiguration ermöglicht der neue Typ endlich die Entkopplung der Site-Sprachen (eingeführt in TYPO3 v9) von der Sprachtabelle, die bisher zur Definition der verfügbaren Sprachen in einem System verwendet wurde. Für Redakteure bedeutet dies, dass das Feld im Backend viel schneller geladen wird, da die Relationen nicht mehr abgefragt oder verarbeitet werden müssen. Für die Entwickler bedeutet das, dass sie eine beträchtliche Menge an Code einsparen und - was noch wichtiger ist - unnötige Komplexität vermeiden können. Wir nennen das eine Win-Win-Situation!

Wusstest du übrigens schon von der speziellen Option „all languages“? Mit dieser Option kannst du TYPO3 anweisen, einen Datensatz in allen Sprachen anzuzeigen. Der neue Typ bietet diese spezielle Option jetzt automatisch in der Auswahlbox an, sodass du sie nicht mehr manuell hinzufügen musst.

Sprachauswahl im TYPO3 Backend
Sprachauswahl im TYPO3 Backend

Migration im laufenden Betrieb

Die Migration all deiner TCA-Konfigurationen auf die neuen Typen kann zeitaufwändig sein – besonders bei größeren Installationen. Gut zu wissen, dass TYPO3 dich sogar dabei unterstützt! Eine On-the-Fly-Migration wird bei jeder Anfrage durchgeführt, was bedeutet, dass du nicht sofort alle deine TCA-Typen anpassen musst – du kannst dich damit befassen, wenn du die Zeit dafür findest. Bis dahin informiert dich TYPO3 im allgemeinen Deprecation Log genau darüber, wo Anpassungen vorgenommen werden müssen.

Fortsetzung folgt

Wir sind begeistert von den neuen Typen und wir sind sicher, dass auch du schon von den neuen Typen überzeugt bist. Wir haben tolle Neuigkeiten: TYPO3 v12 wird noch mehr spezielle TCA-Typen enthalten. Verpasse also auf keinen Fall die v12-Serie in unserem Blog.

Hast du die neuen TCA-Typen schon ausprobiert?

Wir helfen dir gerne dabei, dein TCA zu migrieren. Melde dich einfach bei uns.

Let's connect