TYPO3 Core Code Sprint in Jena

TYPO3 Form Framework dreistrom.land /   / Lesezeit: 3 Minuten

Einer von fünf TYPO3 Core Code Sprints fand am 7. und 8. September bei uns statt. Stolze 10 TYPO3 Entwickler nahmen an dem relativ kurzfristig anberaumten Sprint in Jena teil. Susanne Moog und Oliver Hader unterstützten das Team als TYPO3 Core Contributor. Thematisch konzentrierte sich der Sprint auf das TYPO3 Form Framework. In lediglich 2 Tagen konnten 23 Patches für die kommende TYPO3 Version 9 und teilweise für die aktuelle Version 8 fertigstellt werden. 13 weitere Patches sind im Review Prozess und werden ebenfalls in den kommenden Tagen in die offiziellen Versionen einfließen.

Das TYPO3 Form Framework

Das TYPO3 Form Framework wurde maßgeblich von dreistrom.land entwickelt und steht seit TYPO3 8.5 als System Extension zur Verfügung. Es erlaubt Redakteuren, Integratoren und Entwicklern gleichermaßen, alle denkbaren Formulare zu erzeugen. Technisch weniger affinen Redakteuren steht im TYPO3 Backend das Modul "Forms" zur Verfügung. Es erlaubt ihnen, mit Hilfe eines nutzerfreundlichen Editors per Drag & Drop Formulare zu erstellen und in einer Live-Vorschau zu prüfen. Mehrschrittige Formulare sind hierüber ebenso möglich wie nebeneinander angeordnete Formularfelder, die in Abhängigkeit vom Anzeigegerät unterschiedlich dargestellt werden.

Integratoren sind in der Lage, anspruchsvolle, mehrsprachige Formulare zu entwickeln und sie direkt im eigenen Site Package abzulegen und auszurollen. Weitere, mächtige Finisher können eingebunden und auf die individuellen Anforderungen angepasst werden.

Entwickler können die gut dokumentierte PHP API verwenden, um neue Formularelemente, Validatoren und Finisher zu entwicken. Über Hooks können Formulare und deren Verarbeitung zur Laufzeit "manipuliert" werden. So können bspw. in Abhängigkeit von den eingegebenen Daten Felder zu Pflichtfeldern werden oder komplette Schritte übersprungen werden.

Ziele und Ergebnisse des Sprints

Im Rahmen des Sprints sollte zum einen die Roadmap für TYPO3 v9 definiert werden. Diese wird, nach Abstimmung mit dem TYPO3 Produkt-Team, auf dem TYPO3 University Day im Rahmen eines Workshops von dreistrom.land präsentiert. Zum anderen wurden vorrangig Bugs behoben:

  • Formularelemente, die Punkte in bestimmten Attributen enthalten, werden korrekt behandelt (c801d38)
  • Versteckte Formularelemente werden nicht mehr auf der Bestätigungsseite angezeigt (f4570f9)
  • Zeilenumbrüche werden auf der Bestätigungsseite und in E-Mails korrekt dargestellt (5709b55)
  • Drag & Drop von Elementen im Strukturbaum wurde repariert (ae11492)
  • SaveToDatabase Finisher funktioniert nun auch für das Speichern in nur einer Tabelle (9c8a45a)

Einige sinnvolle Bereinigungen und Verbesserungen konnten ebenso vorgenommen werden:

  • Das Exception Handling wurde wesentlich optimiert, so dass die Module "Seite" und "Forms" nun nützliche Fehlermeldungen ausgeben (5409aa2, d80bab4).
  • Es wurde am generellen Wording und an Hilfetexten gearbeitet (086315f).
  • Das Translation Handlingfür Finisher wurde verbessert (615d2da).
  • Das Inhaltselement vom Form Framework wurde umbenannt und hat neue Icons (048f28d).
  • Das SCSS wurde aufgeräumt und Icons wurden optimiert (85837c2).

Für TYPO3 v9 wurde ein umfangreiches Feature fertiggestellt. So stehen im Form Editor neue HTML5 Formularelemente zur Verfügung, wie bspw. Eingabefelder vom Typ E-Mail oder Telefon (9ae7ef8). In diesem Zuge werden zusätzliche HTML5 Attribute und Validatoren unterstützt. Darüber hinaus werden in TYPO3 v9 die Formular Definitionen in einem eigenständigen Verzeichnis - außerhalb von "/user_upload" - gespeichert (07727da).

Nächste Schritte

In den nächsten Tagen und Wochen wird das Team sowohl an der Optimierung und Bereinigung der TYPO3 Core Extension arbeiten, als auch neue Features integrieren. Ein großes Thema ist zur Zeit die Verbesserung der Verarbeitungszeit der YAML Konfiguration. Im Rahmen des Sprints wurden mit Hilfe von Blackfire.io Probleme durch den Einsatz der Vererbungsfunktion (_inheritances) identifiziert. Sobald dieses Problem behoben ist, soll eine Import Funktion für YAML Konfiguration und Definition entstehen. Parallel arbeitet das Team an der Unterstützung von sog. Conditions, die es dem Integrator erlauben, im YAML Bedingungen für Felder und Eigenschaften zu definieren. Wie bereits weiter oben beschrieben, wird das dreistrom.land die Roadmap für TYPO3 v9 in Darmstadt präsentieren.

Fragen? Anregungen? Ideen?