TYPO3 Inhalts elemente: Flexform vs. TCA

Suchen Sie die Unterschiede zwischen TYPO3 Flexform und TCA? Treffen Sie die richtige Wahl für Ihre Webentwicklungsprojekte. Lesen Sie die Vergleiche!

TYPO3 Inhalts elemente: Flexform vs. TCA

FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.

Wenn es darum geht, benutzerdefinierte Inhaltslemente in TYPO3 zu erstellen, haben Entwickler hauptsächlich zwei Optionen: FlexForms (im XML-Format) und TCA (Tabellenkonfigurationsarray). In diesem Blogbeitrag werden wir uns ausführlich mit FlexForms und TCA befassen, um Ihnen ihre Unterschiede zu verdeutlichen und Ihnen zu helfen, zu entscheiden, wann Sie eine der beiden Optionen wählen sollten.

Im Zusammenhang mit TYPO3-Inhaltselementen, die in Bezug auf die Erstellung von Standard TYPO3-Vorlagen und Inhaltsblöcken sehr wichtig sind, sollten Sie einige unserer beliebten TYPO3 Blogs überprüfen, wie unten aufgeführt.

Bevor wir uns dem Vergleich widmen, nehmen wir uns einen Moment Zeit, um zu verstehen, was TYPO3-Inhaltselemente sind und warum sie für den Aufbau dynamischer und interaktiver Websites so wichtig sind

TYPO3 Inhalts elemente:

In TYPO3 sind Inhaltselemente die Bausteine des Inhalts Ihrer Website. Sie ermöglichen es Ihnen, verschiedene Arten von Inhalten, wie Texte, Bilder, Videos, Formulare und mehr, auf strukturierte und organisierte Weise anzuzeigen. Mit diesen Elementen können Sie alles von einfachen Absätzen bis hin zu komplexen Layouts wie Slidern, Akkordeons und tabellarischem Inhalt erstellen.

FlexForm ist eine der traditionellen Methoden zur Erstellung benutzerdefinierter Inhaltslemente in TYPO3. Sie existiert schon seit geraumer Zeit und hat TYPO3-Entwicklern gut gedient. FlexForms sind eine bewährte Methode zur Konfiguration von Inhaltselementen (CE) oder Plugins in TYPO3. Sie bieten eine flexible Möglichkeit, Konfigurationsdaten in einer XML-Struktur innerhalb einer einzelnen Datenbankspalte zu speichern. Hier sind einige wichtige Aspekte von FlexForms:

Optionale Konfiguration

Ein wesentliches Merkmal von FlexForms ist, dass sie optional sind. Obwohl sie zur Konfiguration von Inhaltselementen oder Plugins verwendet werden können, können Sie diese Elemente auch ohne FlexForms erstellen. Diese Flexibilität ermöglicht es Entwicklern, den für ihre speziellen Anforderungen am besten geeigneten Ansatz zu wählen.

Individuelle Konfiguration

Mit FlexForms können Sie Inhaltselemente oder Plugins unterschiedlich konfigurieren, je nachdem, wo sie hinzugefügt werden. Die über den FlexForm-Mechanismus festgelegte Konfiguration gilt nur für den Inhaltssatz, für den sie konfiguriert wurde. Redakteure können FlexForms im TYPO3 Backend modifizieren und haben so mehr Kontrolle über Plugin-Funktionen und Rendering.

Leistungsstarke Konfiguration

FlexForms bieten umfangreiche Konfigurationsoptionen. Entwickler können Eingabefelder, Auswahllisten und bedingte Anzeigeoptionen sowie andere Funktionen verwenden, um das Verhalten und das Erscheinungsbild von Inhaltselementen oder Plugins genau anzupassen.

XML-basierte Konfiguration

FlexForm speichert seine Konfigurationsdaten in einer XML-Struktur innerhalb einer einzigen Datenbankspalte. Diese XML-Struktur definiert das Aussehen und die Funktionalität des Inhaltselements. Obwohl dieser Ansatz Flexibilität bietet, kann er bei komplexen Elementen schwer zu verwalten und zu ändern sein.

Integration mit beliebten Erweiterungen

Flexform wurde häufig in Verbindung mit beliebten TYPO3-Erweiterungen wie DCE (Dynamic Content Elements) und FluidTYPO3 Flux eingesetzt. Diese Erweiterungen boten eine hervorragende Möglichkeit, komplexe Inhaltselemente mit der Flexform-Technologie zu erstellen.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
    <sheets>
        <sDEF>
            <ROOT>
                <TCEforms>
                    <sheetTitle>Fields</sheetTitle>
                </TCEforms>
                <type>array</type>
                <el>
                    <description>
                        <TCEforms>
                            <label>LLL:EXT:ns_theme_t3karma/Resources/Private/Language/locallang_flex.xlf:ns_alert.description</label>
                            <config>
                                <type>text</type>
                                <rows>5</rows>
                                <cols>30</cols>
                                <eval>trim</eval>
                                <enableRichtext>1</enableRichtext>
                                <richtextConfiguration>default</richtextConfiguration>
                            </config>
                        </TCEforms>
                    </description>
                </el>
            </ROOT>
        </sDEF>
    </sheets>
</T3DataStructure>
AspektBeschreibung
ZweckFlexForms werden zur Konfiguration von Inhaltselementen (CE) oder Plugins in TYPO3 verwendet und ermöglichen die dynamische Konfiguration ihres Aussehens und Verhaltens.
VerwendungFlexForms sind optional, so dass Plugins oder Inhaltselemente auch ohne sie erstellt werden können.
Umfang der KonfigurationFlexForms bietet die Möglichkeit, einzelne Plugins oder Inhaltselemente unterschiedlich zu konfigurieren, je nachdem, wo sie hinzugefügt werden. Redakteure können die Funktionen und das Rendering von Plugins anpassen.
Konfigurations optionenFlexForms bieten verschiedene Konfigurationsoptionen, darunter Eingabefelder, Auswahllisten, bedingte Anzeige und mehr, ähnlich wie TCA.
StrukturKonfigurationsschema: Legt fest, wie Felder in FlexForms mithilfe von XML angeordnet und konfiguriert werden sollen.

FlexForm-Registrierung: Gibt die FlexForm-Schemadatei in der Plugin- oder Inhaltselementregistrierung an.
AnwendungsfälleFlexForms werden verwendet, um Rendering-Optionen zu konfigurieren, z. B. Übergangsintervalle und Typen für Inhaltselemente wie Karussells. Sie werden auch von Erweiterungen wie georgringer/news verwendet.
Wie es funktioniertDie Erweiterung definiert ein Konfigurationsschema im T3DataStructure-Format (XML), das an Inhaltselemente oder Plugins angehängt wird.

Die Konfiguration wird in tt_content.pi_flexform gespeichert. Die Erweiterung liest und handelt auf der Grundlage der Konfiguration.
ÄnderungWenn Sie die Datenstruktur einer FlexForm ändern oder von einem Plugin zu einem anderen mit einer FlexForm wechseln, verwenden Sie den CLI-Befehl cleanup:flexforms, um Datensätze zu aktualisieren und Probleme zu vermeiden.
Zugriffsein stellungenAuf die FlexForm-Einstellungen kann von Extbase Controllern, PHP Funktionen, TypoScript und Fluid Vorlagen aus zugegriffen werden, was Flexibilität bei der Anpassung bietet.
BeispieleBeispiele sind die Konfiguration von Rendering-Optionen für Karussells und die Verwendung von FlexForms in Erweiterungen wie georgringer/news.
GlossarBegriffe wie Konfigurationsschema, FlexForm-Registrierung, T3DataStructure und CLI-Befehl cleanup:flexforms sind für FlexForms in TYPO3 relevant.

Diese Tabelle bietet eine Übersicht über das, was FlexForms sind, ihren Zweck, wie sie strukturiert sind und ihre Verwendung in TYPO3 zur dynamischen Konfiguration von Inhaltselementen und Plugins.

TCA (Table Configuration Array) ist der moderne und empfohlene Ansatz zur Erstellung von benutzerdefinierten Inhaltselementen in TYPO3. Hier sind die wichtigsten Merkmale von TCA:

Integration mit TYPO3 Core

TCA ist direkt in den TYPO3-Kern integriert, was eine nativere und nahtlosere Methode zur Erstellung von Inhaltselementen darstellt. Es ist auf die Kernstruktur und Architektur von TYPO3 abgestimmt.

Benutzerfreundliche Konfiguration

TCA verwendet eine strukturierte, auf Arrays basierende Konfiguration, die für den Menschen besser lesbar und handhabbar ist. Dieser Ansatz vereinfacht die Definition der Eigenschaften von Inhaltselementen, was die Arbeit für Entwickler erleichtert.

Definition der Tabelle

Einer der Hauptzwecke des TCA besteht darin, festzulegen, welche Datenbanktabellen im TYPO3-Backend bearbeitbar sind. Ohne einen entsprechenden Eintrag im TCA bleibt die Tabelle für die Bearbeitungsschnittstelle des TYPO3-Backends "unsichtbar". Daher bestimmt der TCA, welche Tabellen für Content-Editoren und Administratoren zugänglich sind.

Beziehungen definieren

TCA definiert Beziehungen zwischen verschiedenen Datenbanktabellen. Sie legt fest, wie verschiedene Tabellen miteinander in Beziehung stehen, so dass TYPO3 komplexe Datenstrukturen und Assoziationen zwischen Datensätzen handhaben kann.

Konfiguration der Backend Anzeige

TCA steuert, wie Tabellen und ihre Felder im TYPO3 Backend angezeigt werden. Dies beinhaltet die Festlegung des Layouts, der Symbole, der Feldbezeichnungen und der Spalten, die in den Backend-Formularen angezeigt werden sollen.

Validierungs regeln

TCA ermöglicht die Definition von Überprüfungsregeln für Felder, z. B. ob ein Feld erforderlich ist, eine ganze Zahl enthalten sollte oder bestimmten Kriterien entsprechen muss. Diese Regeln helfen, die Datenintegrität und -qualität zu erhalten.

Frontend Nutzung

TCA liefert Informationen darüber, wie Felder im Frontend verwendet werden, insbesondere von Extbase, dem Extension-Framework von TYPO3. Es gibt vor, wie Daten gerendert und von Erweiterungen und benutzerdefinierten TYPO3-Anwendungen abgerufen werden sollen.

Erweiterbarkeit

Die TCA ist durch TYPO3-Erweiterungen äußerst erweiterbar. Erweiterungen können neuen Felder zu vorhandenen Tabellen hinzufügen, völlig neue Tabellen erstellen und bestehende TCA-Konfigurationen ändern. Diese Erweiterbarkeit ermöglicht es Entwicklern, TYPO3 an spezifische Projektanforderungen anzupassen.

'rte_example' => [
    'exclude' => 1,
    'label' => 'rte_1 description',
    'description' => 'field description',
    'config' => [
        'type' => 'text',
        'enableRichtext' => true,
        'fieldControl' => [
            'fullScreenRichtext' => [
                'disabled' => false,
                ],
        ],
    ], 
],

Um zu verstehen, wie TCA in TYPO3 funktioniert, muss man seine Struktur und seine Anwendung verstehen:

Struktur

Die TCA folgt einer hierarchischen Struktur. Auf der obersten Ebene definiert sie Eigenschaften für jede Tabelle (z. B. pages, tt_content). Diese Eigenschaften sind in Abschnitte wie "ctrl" (für tabellenweite Steuerung), "interface" (Backend-Anzeigekonfiguration), "columns" (individuelle Feldkonfiguration), "types" (Formularlayout für die Bearbeitung) und "palettes" (Feldreihenfolge innerhalb von Paletten) gruppiert.

Eigenschaft Konfiguration

Jede Eigenschaft im TCA verfügt über spezifische Konfigurationen, die ihr Verhalten definieren. Diese Konfigurationen sind in Bereiche wie "Anzeige", "Proc" (Verarbeitung), "Datenbank" und "Suche" unterteilt. Anzeige-Eigenschaften beeinflussen die Backend-Formulare, Proc-Eigenschaften wirken sich auf die Datenverarbeitung aus, Datenbank-Eigenschaften beeinflussen die Datenbankstruktur, und Such-Eigenschaften sind mit der Backend-Suche verwandt.

Erweiterungen

TYPO3s Kern sowie zusätzliche Erweiterungen stellen TCA-Dateien in ihren Verzeichnissen "Configuration/TCA" bereit. Der Kern enthält Tabellen wie "pages" und "fe_users", während andere Erweiterungen neue Tabellen und Felder einführen können. Entwickler definieren die TCA für eine neue Tabelle in einem Verzeichnis "Configuration/TCA" der Erweiterung und folgen dabei einer spezifischen Namenskonvention.

Zusammenstellung

Wenn TYPO3 initialisiert wird, kompiliert es das endgültige TCA Array, indem es TCA-Dateien von verschiedenen Orten lädt. Das kompilierte TCA-Array wird dann für nachfolgende Anfragen zwischengespeichert. Dieses zwischengespeicherte Array ist als $GLOBALS['TCA'] verfügbar und wird in ganz TYPO3 verwendet, einschließlich Frontend-, Backend- und Befehlszeilen-Interface (CLI)-Anfragen.

Sie möchten sich nicht mit solchen technischen Details befassen? Lassen Sie uns Ihnen bei Ihrer Migration mit unseren Flexform to TCA Migration Services helfen.

AspektBeschreibung
Zweck$GLOBALS['TCA'] (Table Configuration Array) ist ein globaler Array in TYPO3, der verwendet wird, um Datenbanktabellen über SQL-Definitionen hinaus zu konfigurieren. Er spielt eine zentrale Rolle in der Architektur von TYPO3.
Kontrolle der SichtbarkeitTabellen, die nicht in $GLOBALS['TCA'] definiert sind, sind für das TYPO3-Backend "unsichtbar".
Umfang der KonfigurationDefiniert die Struktur und das Verhalten von Datenbanktabellen, einschließlich Beziehungen, Feldanzeige, Validierung und Frontend-Nutzung.
ErweiterbarkeitHochgradig erweiterbar durch Erweiterungen zum Hinzufügen von Feldern, Tabellen und Ändern von TCA-Einstellungen.
Vorinstallierte ErweiterungenCore-Erweiterungen wie "core" und "frontend" kommen mit vordefinierten TCA-Einstellungen für Tabellen wie pages, tt_content und mehr.
Speicherort der DateiTCA-Definitionen werden in Erweiterungsverzeichnissen unter Configuration/TCA/ als PHP-Dateien gespeichert.
CachingTCA is compiled on the first call, cached, and then quickly loaded from cache for subsequent requests.
StrukturTabelleneinträge: Definieren Sie Tabellen nach Namen, z. B. $GLOBALS['TCA']['pages'].

Innerhalb von Tabellen: Konfigurieren Sie Tabellen mit Abschnitten wie "Strg", "Schnittstelle", "Spalten", "Typen" und "Paletten".
Sektionen'ctrl': Allgemeine Tabelleneigenschaften, die sich auf die Anzeige und Verarbeitung auswirken.

'interface': Eigenschaften der Backend-Schnittstelle.

'columns': Konfiguration für jedes Tabellenfeld (Spalte).

 'types': Formularlayout für die Bearbeitung.

 'palettes': Feldreihenfolge in Paletten.
Eigenschafts bereicheEigenschaften können Bereiche wie 'Anzeige', 'Verarbeitung', 'Datenbank', 'Suche' oder spezielle Bereiche haben, die ihre Auswirkungen auf die Anzeige, die Datenverarbeitung, die Datenbankstruktur, die Suchfunktion oder andere spezifische Effekte anzeigen.
GlossarEnthält Begriffe wie TCE (TYPO3 Core Engine), "Liste von" (kommagetrennte Liste), Feldname (Spaltenname), Datensatztyp (durch ein Feld im Datensatz festgelegt) und LLL-Verweis (lokalisierter String, der aus locallang-Dateien abgerufen wird).

 

Sobald wir beide Konzepte individuell gelernt haben, hier eine kurze Übersicht über die wichtigsten Unterschiede zwischen FlexForms und TCA (Table Configuration Array) in TYPO3, die Ihnen bei der Konzeptklärung helfen werden:

AspektFlexFormsTCA (Table Configuration Array)
Definition MethodeXML-basierte Konfiguration innerhalb von FeldernPHP-basierte Konfiguration in TCA Arrays
IntegrationEs ist optional, wir können Inhaltselemente und Plugins konfigurierenKernbestandteil von TYPO3, integriert in die Erstellung von Inhaltselementen und Plugins
FlexibilitätBietet Flexibilität bei der Anpassung von Inhaltselementen und PluginsBietet einen strukturierten Ansatz mit vordefinierten Feldern und Datenstrukturen
Individuelle KonfigurationDie Konfiguration gilt für den spezifischen Inhaltsdatensatz, für den sie konfiguriert wurde.Die Konfiguration wird von allen Inhaltselementen desselben Typs gemeinsam genutzt.
Editor SteuerungRedakteure können FlexForms im TYPO3 Backend bearbeitenDie Konfiguration wird in der Regel von den Entwicklern vordefiniert
Konfigurations optionenGroße Auswahl an Eingabefeldern, Auswahllisten, bedingten Einstellungen und mehrBegrenzte Anzahl von vordefinierten Feldern und Datentypen
LagerungDie Konfigurationsdaten werden als XML-Struktur in einer Datenbankspalte gespeichertDie Konfigurationsdaten werden in den TYPO3-Datenbanktabellen gespeichert
Zugang zu den EinstellungenDie Einstellungen können über $this->settings in Extbase-Controllern, PHP-Funktionen und TypoScript abgerufen werden.Zugriff über vordefinierte TCA-Felder in TypoScript oder eigenen PHP-Code
Modifikation von PHPKann mit der FlexFormTools-Klasse von TYPO3 programmatisch verändert werdenDie Konfiguration ist in der Regel vordefiniert und wird nicht von PHP aus geändert.
Wichtigste AnwendungsfälleAnpassen des Verhaltens und der Darstellung von Inhaltselementen und PluginsDefinition der Struktur und Eigenschaften von Inhaltselementen und Plugins
Version 13.0 AktualisierungDas TCEforms-Tag wurde entfernt und wird in FlexForms nicht mehr ausgewertetKeine Auswirkungen; TCA bleibt unberührt
LeistungBietet Flexibilität, kann aber einen gewissen Leistungs-Overhead habenIntegriert in den TYPO3-Kern für optimierte Leistung und Effizienz
Künftige KompatibilitätKann Anpassungen erfordern, wenn auf neuere TYPO3-Versionen aktualisiert wird.Teil des TYPO3-Kerns, der langfristige Kompatibilität und Unterstützung gewährleistet
Empfohlen fürIndividuell angepasste Inhaltslemente und Plugins, die es Redakteuren ermöglichen, Einstellungen fein abzustimmen.Definition von standardisierten Inhaltselementen und Plugins mit einem strukturierten Ansatz
LernkurveErfordert Verständnis für XML-basierte Konfiguration und FlexForm-Konzepte.Erfordert Vertrautheit mit der TCA Array Struktur und den Konfigurations optionen

 

In addition to the FlexForms vs. TCA comparison, it's worth mentioning the Structured Content Initiative, which aims to improve TYPO3's native support for custom, semantically structured content element types. They have also launched Ext:TYPO3 CMS Content Blocks

The primary focus of this initiative is to prioritize user experience and flexibility, looking beyond the current limitations and technologies. The key objectives are:

Goals:

  • Improve the editor's experience by making content types more intuitive to work with.
  • Enable integrators to create semantically correct and easily reusable content types that are not tied to layouts, templates, or technologies like FlexForms.

Scope:

To address the complexity of structured content, the initiative has identified specific focus areas to expedite progress through separate working groups. Notably, the TYPO3 UX Initiative handles changes related to the editing interface UX. Our primary areas of focus are:

  • Content Blocks: Streamlining the creation and registration process for content blocks (content elements).
  • Dynamic Grid: Simplifying the creation of grids (rows and columns) in the page module without the need for nested content.

By considering these advancements alongside the FlexForms vs. TCA decision, TYPO3 developers can choose the best approach for their projects while staying informed about ongoing improvements in the TYPO3 ecosystem.

Warten Sie, während wir uns mit TYPO3 vs. Flexform befassen! Mit TYPO3 AI erhalten Sie mehr als nur Feldkonfiguration. Stellen Sie sich vor, Sie übersetzen Ihre TCA-Datensätze mit nur einem Klick – keine zusätzlichen Plugins oder Programmierung erforderlich. TYPO3 AI bringt intelligente Lösungen direkt in Ihren Workflow und macht komplexe Aufgaben wie die Übersetzung und Optimierung von Inhalten schneller und einfacher als je zuvor!

Sowohl FlexForms als auch TCA haben ihre Stärken und Anwendungsfälle, und die Wahl zwischen ihnen hängt von den spezifischen Anforderungen Ihres TYPO3-Projekts ab. FlexForms bieten mehr Flexibilität für Anpassungen und die Kontrolle durch Redakteure, während TCA einen strukturierten und leistungsoptimierten Ansatz für die Definition von Inhaltslementen und Plugins bietet.

Wenn Sie erwägen, von Flexform auf TCA umzusteigen, handelt es sich um einen strategischen Schritt, um Ihre TYPO3-Website im Einklang mit modernen Best Practices zu halten und sicherzustellen, dass sie an zukünftige TYPO3-Entwicklungen anpassbar bleibt. Der Migrationsprozess erfordert möglicherweise einige Anstrengungen, aber die Vorteile einer verbesserten Leistung und langfristigen Nachhaltigkeit machen ihn zu einer lohnenswerten Investition für TYPO3 Website Betreiber und Entwickler.

Your One-Stop Solutions for Custom TYPO3 Development

  • A Decade of TYPO3 Industry Experience
  • 350+ Successful TYPO3 Projects
  • 87% Repeat TYPO3 Customers
TYPO3 Service
service

Post a Comment

×
Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren
  • user
    Katja Fassbinder 2024-06-25 um 4:29 pm

    This article is very informative! I had some confusion about Flexform and TCA, but your explanations clarified everything. Appreciate the detailed insights

  • user
    Steffen Foerster 2024-04-29 um 8:06 pm

    Thinking about migrating to TCA now. Seems like it'll offer more long-term benefits.

  • user
    Christine Lowev 2024-04-06 um 7:10 am

    Nice to see TYPO3 making things better for editors. Those new features sound useful!

  • user
    Kevin Frey 2024-04-01 um 6:26 pm

    I appreciate the examples provided for both FlexForms and TCA. Makes it easier to understand.

  • user
    Uta Meyer 2024-03-03 um 1:15 pm

    I've been hesitant about migrating from FlexForms to TCA, but after reading this article, I'm convinced of the benefits. The performance and long-term compatibility advantages make it a worthwhile transition

  • user
    Benjamin Kruger 2024-03-01 um 12:38 pm

    The distinction between FlexForms and TCA is well-explained here. It's reassuring to know that TYPO3 developers have options depending on their project requirements and future scalability needs.