von Thomas Hempel, 04.12.2005

Dynamische FlexForms für das TYPO3 Backend mit der Extension DynaFlex: Formulare nach Wunsch

Aus dem
t3n Magazin Nr. 2

Dynamisch erzeugte Felder, abhängig von den angelegten Seitensprachen.

FlexForms sind seit TYPO3 3.6 eine neue Art Eingabemasken im Backend zu definieren. Sie erlauben mittels XML die Struktur und Funktion eines Formulars zu bestimmen. Ein Vorteil dieser Methode ist es, dass nicht für jedes Eingabefeld im Backend ein entsprechendes Feld in der Datenbank vorhanden sein muss. Dies gibt dem Entwickler die Möglichkeit, Formulare sehr flexibel zu erstellen und zu verwalten. Die Extension DynaFlex erweitert dieses Prinzip, indem sie erlaubt, FlexForms dynamisch beim Aufruf des Formulars zu erzeugen und anzupassen.

FlexForms werden im Normalfall zur Konfiguration von PlugIns benutzt. Dies reicht in den meisten Fällen auch aus, da die Eingaben im Normalfall lediglich zur Konfiguration dienen und im Frontend nicht direkt ausgegeben werden. Es können jedoch Anwendungsfälle auftreten, in denen man dem Benutzer Konfigurationsmöglichkeiten bieten möchte, die davon abhängig sind, welche Daten bereits in der Datenbank vorhanden sind oder davon, was in einem anderen Feld des Formulars eingetragen wurde. Etwa, wenn für jede der eingerichteten Webseitensprachen eine Datei in einem PlugIn hinterlegt werden soll.

Im Rahmen der Entwicklung der "commerce"-Extension (Advanced Shop System) [1] wurden Funktionalitäten gewünscht, die sich mit den gegebenen Möglichkeiten nicht umsetzen ließen. Um die großen Mengen an Daten in komfortablen Backend-Eingabemasken verarbeiten zu können, musste ein Weg gefunden werden, die Formulare im Backend in Abhängigkeit zu vorhanden Daten anzupassen.

Ein Weg, komplexere Eingabemöglichkeiten zu realisieren, sind so genannte „user defined fields“. Diese haben jedoch den Nachteil, dass man sich selbst um die Darstellung und Validierung der Daten kümmern muss. Der elegantere Weg besteht darin, diese Arbeit zu überlassen und stattdessen die Eingabemasken dynamisch zu erzeugen. Man nutzt also die bereits vorhandenen Eingabemöglichkeiten von TYPO3, erzeugt sie aber nach den aktuellen Bedürfnissen der eigenen Anwendung.

Seite:  1 2 3 4 5 6 7

Empfohlene Artikel