TRITUM entwickelt an TYPO3 EXT:form - Part #2

TYPO3 Form Framework /

Vor einiger Zeit berichteten wir, dass TRITUM die Weiterentwicklung der TYPO3 System Extension "form" übernehmen durfte. Pünktlich zum Release von TYPO3 7.5 erschien eine vollständig überarbeitete Version von EXT:form. Das Entwicklerteam von TRITUM investierte zirka 100 Personentage, um die veraltete Codebasis auf Extbase und Fluid zu heben. Das Ziel, eine saubere und stabile Version von "form" in die kommende TYPO3 LTS Version zu bringen, war damit erreicht und die Freude enorm.

Durch den Rewrite ist es nun möglich, Fluid als Template Engine mit all seinen Funktionen einsetzen zu können. Alle verfügbaren Ansichten (Formular, Bestätigungsseite, Mail) und Elemente basieren auf Fluid Templates. Für das Rendern der eigentlichen Formular Elemente werden die Core Viewhelper - wie bspw. f:form oder f:submit - verwendet. Dies erlaubt dem Integrator wie gewohnt, einfache Änderungen im Template ohne die Verwendung von komplexen und fehleranfälligen TypoScript Konfigurationen. Nichtsdestotrotz ist es auch nach wie vor möglich, das Rendering des jeweiligen Formulars über ".layout" Angaben im TypoScript anzupassen.

Ein großes Ziel des Rewrites war es, die maximale Abwärtskompatibilität mit bestehenden Formularen sicherzustellen. Verwendet ein Integrator ".layout" Anweisungen, befindet sich EXT:form automatisch im Kompatibilitätsmodus. In diesem werden andere Fluid Templates geladen, die eine - im Vergleich zu früheren Versionen - nahezu identische Frontend Ausgabe erzeugen. Allerdings ist diese Art des Renderings für TYPO3 7 LTS bereits als "Deprecated" markiert und wird mit dem Erscheinen von TYPO3 8.0 entfernt werden. Es wird dringend empfohlen, ohne Kompatibilitätsmodus zu arbeiten, um so weit flexiblere Fluid Templates verwenden zu können.

Mit der Einführung von Fluid ging auch die Umstellung des nahezu gesamten Quellcodes auf Extbase einher. Das bisher defekte Session Handling wurde vollständig abgelöst. Für die Validierung werden nun die entsprechenden Extbase Prozesse (Property Mapping) genutzt. Zusätzlich wurde das TypoScript der Extension bereinigt und erweitert. Es ist u.a. möglich, für jedes Formular Element via TypoScript zu bestimmen, in welcher Ansicht es angezeigt werden soll.

Die System Extension wurde so erweitert, dass nun auch HTML5 spezifische Attribute benutzt werden können. Diese stehen nicht nur im Fluid/ TypoScript zur Verfügung. Der Form Wizard wurde ebenfalls erweitert, wodurch Redakteure in die Lage versetzt werden, moderne und benutzerfreundliche Formulare zu bauen. So kann unter anderem der Typ ("type" Attribut) eines jeden Formular Elements - wie bspw. "tel", "search" oder "email" gesetzt werden. Auch sind so Client-seitige Validierungen unter Verwendung des "required" Attributes möglich.

Mit diesem großen Erfolg ist die Arbeit an der System Extension noch lange nicht beendet. Die nächsten Aufgaben sind bereits definiert und in der Roadmap eingeplant:

  • Bereinigen und aktualisieren der Dokumentation. Diese ist relativ veraltet und muss dringend auf das Rewrite angepasst werden.
  • Ermöglichen von Multi-Step Formularen.
  • Neue PostProcessors, um bspw. die übertragenen Daten in der Datenbank zu speichern.
  • Einführen eines Feldes zur Auswahl vordefinierter Formulare. So muss der Redakteur nicht selbst Formulare erstellen, sondern kann bequem auf Bestehende zurückgreifen.
Der Form Wizard wird künftig inline geladen
Der Form Wizard wird künftig inline geladen. Das Feature kommt mit TYPO3 Version 8.

Ein weiteres großes Ziel war die schrittweise Verbesserung des Form Wizards im TYPO3 Backend. Aufgrund der Komplexität der bisherigen Integration konnten hier bei Weitem nicht alle Ziele erreicht werden. Für Version 7 wurde der Form Wizard wesentlich stabilisiert. In TYPO3 8.0 oder 8.1 wird der Wizard nicht mehr in einem neuen Fenster geladen, sondern inline. Dies ermöglicht eine wesentlich konsistentere Ansicht und erhöht die Benutzerfreundlichkeit enorm. Zusammen mit den vordefinierten Formularen soll es dann für Redakteure nicht mehr möglich sein, das automatisch generierte TypoScript per Hand anzupassen. Für spätere Releases von TYPO3 8 steht der vollständige Umbau des Form Wizards und hier vor allem die Portierung auf jQuery auf der Roadmap.

An dieser Stelle möchten wir dem gesamten TRITUM Team danken. Alle haben ihren Teil angebracht, um einen großartigen Beitrag für den TYPO3 Core zu leisten. Sei es durch aktive Programmierung, durch das Beisteuern von Ideen, dem Testen oder dem Ausrichten und Ermöglichen der Sprints. Auch gilt unser Dank den Active Contributors, die unsere Patchsets regelmäßig prüften und in den Core einbrachten.

Bei Wünschen oder Anregungen sowie Fragen zu Funktionen von EXT:form können Sie sich gern an das Team von TRITUM wenden.