Vortrag über die Erstellung eines Formulars mit dem Form Framework innerhalb einer Extbase Extension in TYPO3 9.5 im Rahmen des TYPO3 Meetups Hamburg am 03.06.2020
Real Values. Ziele ● eigene Extension mit extbase/fluid zur Anzeige von Produkten ● Detailansicht für jedes Produkt ● Kontaktformular auf der Detailansicht (erstellt mit Form Editor) ● Versand des Formulars per Mail ● Aufnahme des Produktnamens in das Formular
Real Values. ● Fluid Template erweitern mit Formular-Viewhelpern ● Eine Action im Controller hinzufügen für das Submit ● Formularvalidierung erstellen / Fehlerhandling ● “Finisher” händisch schreiben zum Versenden einer E-Mail ● View anpassen zur Ausgabe einer Versandbestätigung ein einfachstes produktspezifisches Kontaktformular erfordert signifikanten Programmieraufwand Bisheriges Vorgehen: Formular mit extbase/fluid
Real Values. Neues Vorgehen ● Formular weitestgehend im Form Editor vorbereiten ● Formular Validierung im Form Editor konfigurieren ● Finisher im Form Editor definieren ● Confirm-Page / Message im Form Editor definieren ● Serverseitige Logik vom Form-Framework nutzen
Real Values. Zusammenspiel extbase und form Framework extbase plugin show action formvh:render viewhelper form framework magic state handling, validation, finishers
Real Values. Aufruf der perform Action extbase plugin show action formvh:render viewhelper form framework magic state handling, validation, finishers extbase plugin perform action formvh:render viewhelper form framework magic state handling, validation, finishers
Real Values. Erstellung der `perform` Action im Controller ● soll die Validierung machen ● soll die Finisher aufrufen ● soll die Confirm-Page anzeigen ● soll nicht gecached sein ● soll innerhalb der show view stattfinden
Real Values. Debugging der Formular Konfiguration typo3/sysext/form/Classes/ViewHelpers/RenderViewHelper.php patchen: in die Funktion renderStatic ein debug($overrideConfiguration); in Zeile 90 einfügen
Real Values. Syntax-Fehler in der Fluid inline Syntax ● Komma hinter letztem Element zu viel ● Komma nach einem Element vergessen ● Klammern matchen nicht
Real Values. Vorteile gegenüber eines Formulars in Extbase/Fluid ● Schneller erstellt ● Bestehende Formular-Komponenten des Form-Framework werden einheitlich im Projekt verwendet ● Validatoren und Finisher vom Form Framework können genutzt werden ● (Fast) keine eigene Action, d.h. keine serverseitige Logik erforderlich
Real Values. Ausblick und weiterführende Informationen ● voll kompatibel mit fluid_components ● Formularlabels können mittels sitegeist/translatelabels übersetzt werden ● Formulare können auch komplett programmatisch erstellt werden ● https://docs.typo3.org/c/typo3/cms-form/9.5/en-us/Concepts/FrontendRendering/Ind ex.html ● https://docs.typo3.org/c/typo3/cms-form/9.5/en-us/ApiReference/Index.html#apirefer ence-frontendrendering-programmatically