TYPO3 FlexForm: Alles Wissenswerte über die XML-Strukturen

FlexForms werden in TYPO3 genutzt, um Daten als XML-Struktur innerhalb einer Datenbankspalte zu speichern. Sie werden vor allem für Plugins und Inhaltselemente eingesetzt und können individuell konfiguriert werden.

Was sind TYPO3 FlexForms?

TYPO3 FlexForms werden im Backend von TYPO3 genutzt, um Daten im XML-Format in einer einzelnen Spalte zu speichern. Dafür definiert die Struktur Formulare, die mit Werten gefüllt werden können. Diese werden in den meisten Fällen innerhalb der Datenbank in einer Spalte mit dem Namen „pi_flexform“ hinterlegt. Der Vorteil dieser Methode besteht darin, dass Sie so eine beliebige Anzahl unterschiedlicher Felder definieren können, ohne dafür eine eigene Datenbankstruktur aufzusetzen. Auch der Einsatz unterschiedlicher Spalten innerhalb der Datenbank wird dadurch limitiert.

Domain kaufen
Registrieren Sie Ihre perfekte Domain
  • Inklusive Wildcard-SSL-Zertifikat
  • Inklusive Domain Lock
  • Inklusive 2 GB E-Mail-Postfach

Wofür werden die XML-Strukturen in TYPO3 genutzt?

FlexForms in TYPO3 sind optional. Zwar werden sie häufig für die Konfiguration von Inhaltselementen oder Plugins genutzt, diese Elemente können allerdings auch anderweitig erstellt werden. Die Herangehensweise mit TYPO3 FlexForms ermöglicht aber eine individuelle Konfiguration, die für jeden einzelnen Inhaltssatz angepasst werden kann. Plugin-Funktionen und Rendering können dadurch im Backend modifiziert werden. Aussehen und Funktionalität werden über die XML-Struktur definiert.

Welche Arten von FlexForm-Feldern für TYPO3 gibt es?

Es gibt zahlreiche unterschiedliche Typen von FlexForms für TYPO3. In den nachfolgenden Abschnitten haben wir die wichtigsten Arten aufgeführt.

Einfaches Textfeld

Möchten Sie ein einfaches Textfeld mit TYPO3 FlexForms erstellen, ist dies ein beispielhafter Code:

<T3DataStructure>
    <sheets>
        <sGeneral>
            <ROOT>
                <type>array</type>
                <el>
                    <simpleTextField>
                        <label>Textfeld</label>
                        <config>
                            <type>input</type>
                            <size>25</size>
                            <max>35</max>
                            <eval>trim</eval>
                        </config>
                    </simpleTextField>
                </el>
            </ROOT>
        </sGeneral>
    </sheets>
</T3DataStructure>
xml

Textbereiche mit und ohne RTE (Rich Text Editor)

Einen Textbereich ohne RTE erstellen Sie mit diesem Code:

<T3DataStructure>
    <sheets>
        <sGeneral>
            <ROOT>
                <type>array</type>
                <el>
                    <simpleTextArea>
                        <TCEforms>
                            <label>Textfeld ohne RTE</label>
                            <config>
                                <type>text</type>
                                <cols>40</cols>
                                <rows>5</rows>
                                <eval>trim</eval>
                            </config>
                        </TCEforms>
                    </simpleTextArea>
                </el>
            </ROOT>
        </sGeneral>
    </sheets>
</T3DataStructure>
xml

Für einen Textbereich mit Rich Text Editor nutzen Sie einen Code wie diesen:

<T3DataStructure>
    <sheets>
        <sGeneral>
            <ROOT>
                <el>
                    <rteField>
                        <TCEforms>
                            <label>Textbereich mit RTE</label>
                            <config>
                                <type>text</type>
                                <cols>40</cols>
                                <rows>15</rows>
                                <enableRichtext>1</enableRichtext>
                                <richtextConfiguration>default</richtextConfiguration>
                            </config>
                        </TCEforms>
                    </rteField>
                </el>
            </ROOT>
        </sGeneral>
    </sheets>
</T3DataStructure>
xml

Ein einfaches Datumsfeld

Benötigen Sie ein Datumsfeld, können Sie diesen Code nutzen:

<T3DataStructure>
    <sheets>
        <sDEF>
            <ROOT>
                <TCEforms>
                    <sheetTitle>Standard</sheetTitle>
                </TCEforms>
                <type>array</type>
                <el>
                    <dateField>
                        <TCEforms>
                            <label>Datumsfeld</label>
                            <config>
                                <type>input</type>
                                <size>10</size>
                                <max>10</max>
                                <eval>date</eval>
                            </config>
                        </TCEforms>
                    </dateField>
                </el>
            </ROOT>
        </sDEF>
    </sheets>
</T3DataStructure>
xml

Checkboxen mit einem oder mehreren Feldern

Dies ist der Code für eine einfache Checkbox:

<T3DataStructure>
    <ROOT>
        <type>array</type>
        <el>
            <checkbox>
                <TCEforms>
                    <label>Einfache Checkbox</label>
                    <config>
                        <type>check</type>
                        <default>0</default>
                    </config>
                </TCEforms>
            </checkbox>
        </el>
    </ROOT>
</T3DataStructure>
xml

Für eine Checkbox mit zwei Feldern können Sie einen Code wie diesen verwenden:

<T3DataStructure>
    <ROOT>
        <type>array</type>
        <el>
            <multiCheckBox>
                <TCEforms>
                    <label>Checkbox mit mehreren Optionen</label>
                    <config>
                        <type>check</type>
                        <renderType>selectCheckBox</renderType>
                        <items>
                            <item>
                                <label>Option 1</label>
                                <value>1</value>
                            </item>
                            <item>
                                <label>Option 2</label>
                                <value>2</value>
                            </item>
                        </items>
                    </config>
                </TCEforms>
            </multiCheckBox>
        </el>
    </ROOT>
</T3DataStructure>
xml

Radio-Buttons erstellen

Radio-Buttons werden in FlexForm für TYPO3 so angelegt:

<T3DataStructure>
    <ROOT>
        <type>array</type>
        <el>
            <radioOptions>
                <TCEforms>
                    <label>Radio-Buttons</label>
                    <config>
                        <type>radio</type>
                        <items>
                            <item>
                                <label>Option 1</label>
                                <value>Erster_Wert</value>
                            </item>
                            <item>
                                <label>Option 2</label>
                                <value>Zweiter_Wert</value>
                            </item>
                            <item>
                                <label>Option 3</label>
                                <value>Dritter_Wert</value>
                            </item>
                        </items>
                    </config>
                </TCEforms>
            </radioOptions>
        </el>
    </ROOT>
</T3DataStructure>
xml

Beispiele für Selectboxen mit FlexForm in TYPO3

Es gibt unterschiedliche Arten von Selectboxen. Möchten Sie eine Box mit festgelegten Werten anlegen, können Sie einen vergleichbaren Code verwenden:

<T3DataStructure>
    <ROOT>
        <type>array</type>
        <el>
            <selectOptions>
                <TCEforms>
                    <label>Selectbox mit festen Werten</label>
                    <config>
                        <type>select</type>
                        <items>
                            <item>
                                <label>Option 1</label>
                                <value>Erster_Wert</value>
                            </item>
                            <item>
                                <label>Option 2</label>
                                <value>Zweiter_Wert</value>
                            </item>
                            <item>
                                <label>Option 3</label>
                                <value>Dritter_Wert</value>
                            </item>
                        </items>
                    </config>
                </TCEforms>
            </selectOptions>
        </el>
    </ROOT>
</T3DataStructure>
xml

Für eine Selectbox mit mehreren Auswahlmöglichkeiten ist dies der passende Code:

<T3DataStructure>
    <ROOT>
        <type>array</type>
        <el>
            <multiSelectOptions>
                <TCEforms>
                    <label>Selectbox mit mehreren Optionen</label>
                    <config>
                        <type>select</type>
                        <items>
                            <item>
                                <label>Option 1</label>
                                <value>Erster_Wert</value>
                            </item>
                            <item>
                                <label>Option 2</label>
                                <value>Zweiter_Wert</value>
                            </item>
                            <item>
                                <label>Option 3</label>
                                <value>Dritter_Wert</value>
                            </item>
                        </items>
                        <maxitems>3</maxitems>
                        <size>4</size>
                    </config>
                </TCEforms>
            </multiSelectOptions>
        </el>
    </ROOT>
</T3DataStructure>
xml
Hosten Sie Ihre TYPO3-Website
TYPO3 für Ihr Hosting Paket
  • Einfach: mit wenigen Klicks installiert
  • Sicher: SSL-Zertifikat inklusive
  • Schnell: PHP8, OPcache und SSD Webspace
War dieser Artikel hilfreich?
Page top