Blog 26.05.2023

Typo3 v12 - neue TCA-Typen

Mit der Veröffentlichung der nächsten Version von TYPO3 v12 im April 2023 wurden eine Reihe von innovativen Funktionen und Verbesserungen eingeführt, die die Flexibilität und Leistung dieses beliebten Content Management Systems (CMS) erhöhen. Bevor wir jedoch auf die neuen Table Configuration Array (TCA)-Typen eingehen, sollten Sie wissen, dass es sich bei TYPO3 v12 um eine weitere LTS-Version (Long Term Support) handelt - eine Anpassung, die offiziell über einen längeren Zeitraum unterstützt wird als Nicht-LTS-Versionen.

LTS-Versionen von TYPO3, wie die aktuelle v12, bieten den Nutzern langfristigen Support, Sicherheitspatches und regelmäßige Funktionsupdates. Im Rahmen des LTS-Supports konzentrieren sich das TYPO3-Kernteam und die engagierte Entwickler-Community auf die Bereitstellung von Fehlerbehebungen, Sicherheitspatches und Innovationen über einen bestimmten Zeitraum, der sich oft über mehrere Jahre erstreckt. Dieser lange Support soll eine stabile und sichere Plattform für TYPO3 Nutzer bieten, insbesondere für Unternehmen und Organisationen, die auf eine langfristige Entwicklung ihrer TYPO3 basierten Websites angewiesen sind.

Derzeit wird die LTS-Version von TYPO3 v11 bis September 2024 unterstützt, während TYPO3 v12 als neue LTS-Version bis April 2026 Support erhält. Dies ist eine wichtige Information für Nutzer, die eine Migration auf die neueste Version von TYPO3 in Erwägung ziehen, da die Verwendung der LTS-Version sicherstellt, dass sie nicht nur erweiterten Support erhalten, sondern auch Zugang zu den neuesten Funktionen und Erweiterungen des Systems.

TYPO3 TCA (Tabellenkonfigurations-Array)

TYPO3 TCA (Table Configuration Array) ist einer der Hauptbestandteile von TYPO3, der eine Schlüsselrolle bei der Definition der Struktur und Konfiguration von Datenbanktabellen in TYPO3 spielt. Das TCA ermöglicht die genaue Definition von Feldern, Beziehungen, Validierungen und anderen Tabellenattributen, die im Prozess der Erstellung und Verwaltung von Inhalten in TYPO3 verwendet werden.

Zu den Hauptaufgaben des TYPO3 TCA gehören:

Definieren von Feldern: Mit dem TCA können Sie verschiedene Feldtypen im Detail definieren, wie z.B. Textfelder, Kontrollkästchen, Multiple-Choice-Felder, datumsbezogene Felder usw. Darüber hinaus können auch benutzerdefinierte Feldtypen definiert werden, die eine flexible Anpassung der Datenstruktur ermöglichen.

Beziehungskonfiguration: TCA ermöglicht es Ihnen, Beziehungen zwischen Tabellen zu definieren, wie z. B. one-to-many, many-to-many usw. So ist es möglich, verwandte Datensätze zu erstellen und Beziehungen zwischen ihnen abzubilden. Dies ermöglicht komplexere und aufwändigere Datenstrukturen im TYPO3-System.

  1. Datenvalidierung: TCA ermöglicht die Definition von Validierungsregeln für Felder, wie z.B. Pflichtfelder, Eindeutigkeit von Werten, Formatvalidierung, etc. Auf diese Weise können Administratoren und Benutzer sicher sein, dass die in das System eingegebenen Daten korrekt und konsistent sind.
  2. Konfiguration der Benutzeroberfläche: Das TCA ermöglicht auch die Konfiguration des Aussehens und der Funktionalität der Benutzeroberfläche für die Bearbeitung von Datensätzen. Administratoren können schreibgeschützte Felder definieren, Felder auf der Grundlage von Bedingungen ausblenden, benutzerdefinierte Elemente der Benutzeroberfläche hinzufügen, usw. Auf diese Weise wird die Benutzeroberfläche auf die spezifischen Anforderungen und Bedürfnisse von TYPO3-basierten Anwendungen zugeschnitten.

TCA ist eines der Schlüsselelemente von TYPO3, das eine flexible Verwaltung der Datenstruktur und der Benutzeroberfläche im System ermöglicht. Es findet breite Anwendung bei der Entwicklung von TYPO3-Extensions und bei der Konfiguration von Websites und Webanwendungen, die auf diesem leistungsstarken Content Management System basieren. Mit TCA können Administratoren fortschrittliche und personalisierte Lösungen erstellen, die den einzigartigen Anforderungen ihrer TYPO3-basierten Projekte entsprechen.

Neue TCA-Typen in Typo3 v11

Die neuen TCA-Typen in TYPO3 v11, wie z.B. Sprache und Kategorie, bringen zusätzliche Konfigurations- und Datenverwaltungsmöglichkeiten in das System.

TYPE "Sprache" - hat eine Vereinfachung der Konfiguration erfahren, die zu einer einfacheren und intuitiveren Einrichtung von Sprachen beiträgt. Einer der Hauptvorteile dieses Typs ist, dass er alle Sprachkonfigurationen aus der "Site Configuration" herunterlädt. Dadurch können Administratoren die verfügbaren Sprachen an einer Stelle konfigurieren, was zu einer größeren Effizienz und Konsistenz bei der Verwaltung von mehrsprachigen TYPO3-basierten Websites beiträgt.

PHP
Copied!
'columns' => [
	'sys_language_uid' => [
		'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
		'config' => [
			'type' => 'Sprache',
		],
	],
],

In älteren Versionen von TYPO3 wurde dies wie folgt durchgeführt:

PHP
Copied!
sys_language_uid' => [
            'exclude' => true,
            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'special' => 'languages',
                'items' => [
                    [
                        'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
                        -1,
                        'flags-multiple'
                    ],
                ],
                'Standard' => 0,
            ]
        ],

Typen Kategorie

PHP
Copied!
'columns' => [
	'categories' => [
		'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.category',
		'config' => [
			'Typ' => 'Kategorie',
		 // 'relationship' => 'manyToMany' | 'oneToMany' | 'oneToOne'
		],
	],
],

Für diesen Typ stehen mehrere Konfigurationsoptionen zur Verfügung:

  1. oneToMany - mit dieser Option können mehrere Kategorien ausgewählt werden. Die Bezeichner der ausgewählten Kategorien (UID) werden durch Kommas getrennt, so dass ein Datensatz mehreren Kategorien zugeordnet werden kann.
  2. oneToOne - mit dieser Option kann der Bezeichner (UID) der ausgewählten Kategorie in einem Datenbankfeld gespeichert werden. Auf diese Weise ist es möglich, eine eindeutige Beziehung zwischen einem Datensatz und einer bestimmten Kategorie herzustellen.

Neue TCA-Typen in Typo3 v12

Die neuen TCA-Typen in TYPO3 v12 bieten noch mehr Konfigurationsmöglichkeiten und vereinfachen das Datenmanagement. Im Folgenden sind weitere TCA-Typen aufgeführt, die in TYPO3 v12 verfügbar sind:

Passwort
Anstatt den Input-Typ zu verwenden und eval='trim,password,saltedPassword' zu setzen, kann man in TYPO3 v12 nun einen neuen TCA-Typ verwenden, der speziell für Passwort-Felder vorgesehen ist. Diese Änderung erleichtert die Konfiguration von Passwortfeldern und bietet mehr Sicherheit.

PHP
Copied!
'Spalten' => [
  'passwort' => [
    'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:password',
    'config' => [
    	'typ' => 'passwort',
    ],
  ],
],

2) TCA Type Link
In älteren Versionen von TYPO3 war es möglich, die renderType => inputLink Konfiguration zu verwenden, um Link-Felder zu behandeln. In TYPO3 v12 verwenden wir eine neue Konfiguration. Mit diesem Update können Links einfacher verwaltet und in der Benutzeroberfläche angepasst werden.

PHP
Copied!
'columns' => [
	'link' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:link',
		'config' => [
			'type' => 'link',
			'allowedTypes' => [ 'page', 'url', 'record'],
			'appearance' => [
			 // 'enableBrowser' => false,
				'allowedFileExtensions' => ['jpg', 'png'],
				'allowedOptions' => ['*'],
			],
		],
	],
],

3 Typ Nummer
In früheren Versionen wurde die Einstellung 'evel' => int oder double2 verwendet, um numerische Felder zu definieren. TYPO3 v12 führt einen eigenen TCA-Typ für numerische Felder ein. Diese Änderung macht es leichter und einfacher, numerische Felder zu konfigurieren.

PHP
Copied!
'columns' => [
	'number' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:number',
		'config' => [
			'Typ' => 'Zahl',
		 // 'format' => 'dezimal'.
			'range' => [
            	'untere' => 1,
            	'oberer' => 100
			],
		]
	],
],

4 Type Email
Um E-Mail-Felder zu definieren, musste man bisher type = input und evel = email settings verwenden. In TYPO3 v12 kann dies viel einfacher mit einem speziellen TCA-Typ für E-Mail-Felder erfolgen:

PHP
Copied!
'columns' => [
	'email' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:email',
		'config' => [
			'Typ' => 'E-Mail',
		],
	],
],

5 Type Color
Ältere Versionen von TYPO3 verwendeten type=input und renderType=colorpicker. In TYPO3 v 12 können wir das viel einfacher machen:

PHP
Copied!
'Spalten' => [
	'Farbe' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:color',
		'config' => [
			'type' => 'color',
		 // 'nullable' => true,
			'valuePicker' => [
            	'items' => [
        	        [ 'typo3 orange', '#FF8700'],
    	        ],
	        ],
      	],
	],
],

6 Type Folder
In früheren Versionen von TYPO3 wurde die Einstellung internal_type => folder verwendet, um ein Feld zu definieren, das einen Ordner darstellt. In TYPO3 v12 wurde diese Konfiguration geändert, was eine intuitivere und einfachere Erstellung von Ordnerfeldern ermöglicht:

PHP
Copied!
'columns' => [
	'folder' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:folder',
		'config' => [
			'type' => 'folder',
			'elementBrowserEntryPoints' => [
				'_default' => '1:/mein_ordner/'.
			 // '_default' => '###PAGE_TSCONFIG_ID##'.
			 // 'hideMoveIcons' => false | true
          	],
      	],
	],
],

(7) Ein interessanter neuer TCA-Typ ist JSON, mit dem Daten im JSON-Format gespeichert werden können. Dieser Typ ist besonders nützlich, wenn wir komplexe Datenstrukturen in einem TCA-Feld speichern und verwalten müssen.

PHP
Copied!
'columns' => [
	'json' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:json',
		'config' => [
			'type' => 'json',
		// 'enableCodeEditor' => false,
		// 'readonly' => true,
      	],
	],
],

(8) Der letzte neue Typ ist UUID, der die Erzeugung von eindeutigen Bezeichnern ermöglicht. Dieser Typ ist nützlich, wenn wir die Eindeutigkeit von Werten in einem TCA-Feld sicherstellen müssen.

Die Einführung dieser neuen TCA-Typen in TYPO3 v12 ermöglicht Entwicklern und Administratoren noch mehr Flexibilität und Komfort bei der Konfiguration der Datenstruktur. Die neuen Typen erleichtern die Verwaltung von Daten im System, ermöglichen erweiterte Validierungen und bieten intuitivere Benutzeroberflächen. Das macht TYPO3 v12 zu einem noch leistungsfähigeren und vielseitigeren Werkzeug für die Entwicklung fortschrittlicher Websites und Anwendungen.

PHP
Copied!
'columns' => [
	'uuid' => [
		'label' => 'LLL:EXT:my_ext/Resources/Private/Language/locallang_tca.xlf:uuid',
		'config' => [
			'type' => 'uuid',
		    'version' => 7,
		// 'enableCopyToClipboard' => true,
      	],
	],
],

Der Umstieg auf die neueste Version von Typo3 v12 bringt viele Vorteile mit sich. Sie erhalten Zugang zu neuen Funktionen, Leistungsverbesserungen und Sicherheitskorrekturen. Es ist jedoch wichtig, daran zu denken, dass ein wichtiger Teil der Aufrechterhaltung Ihrer Website voll funktionsfähig und konform mit den neuesten Standards Typo3-Upgrades ist. Upgrades von Typo3 bieten eine bessere Unterstützung für neue Technologien und Erweiterungen, so dass Sie eine noch fortschrittlichere und interaktivere Website erstellen können.

Unser erfahrenes Team steht Ihnen beim Typo3-Upgrade zur Seite und bietet Ihnen technischen Support und einen reibungslosen Übergang zur neuen Version. Nutzen Sie das Typo3-Upgrade sofort und profitieren Sie von allen Vorteilen, die Typo3 v12 bietet.

Über den Autor
Krzysztof Napora
Krzysztof Napora
Krzysztof Napora