Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:form

Dies ist eine alte Version des Dokuments!


TYPO3 Form Framework

Einführung

Die neue Form-Extension wird durch die Auszeichnungssprache YAML konfiguriert. Man unterscheidet zwischen Form-Konfiguration und Form-Definition.

Konfiguration von Formularen:

  • globale Einstellungen
  • welche Form-Elemente, Finisher und Validatoren sind verfügbar
  • wie sind diese Objekte vorkonfiguriert
  • wie werden diese Objekte im Frontend und Backend ausgegeben

Definition von Formularen:

  • gilt jeweils für ein einzelnes Formular
  • beschreibt alle gewünschten Formularfelder (Typ, Label, Werte, Validatoren, …)
  • enthält die sog. Finisher, also die gewünschte Verarbeitung der Formulardaten (E-Mail, Speichern in Datenbank, Meldungen im Frontend, …)

Quelle: Form configuration vs. form definition - Arbeitsentwurf der offiziellen Dokumentation


Konfigurationen


Definitionen


TypoScript

Laut offizieller Dokumentation lässt sich jede Form-Definition mit TypoScript überschreiben.

Default-Werte überschreiben

Ein möglicher Anwendungsfall ist, den Titel der aktuellen Seite im Formular mit zu übergeben. Oder einen GET-Parameter auszulesen und damit ein Feld vorauszufüllen. Mit TypoScript, formDefinitionOverrides und getText können Formularfelder dynamisch befüllt werden.

Die Anzahl und Verschachtelung der renderables sowie die Indexnummer des Feldes ist für jedes Formular individuell verschieden, da es von den verwendeten Feldern und der Nutzung von Fieldsets und Grids abhängt. Im Zweifelsfall kann man im Fluid-Template mit <f:debug>{form.currentPage}</f:debug> die Verschachtelung im Frontend ausgeben.

plugin.tx_form.settings {
    formDefinitionOverrides {
        // bitte den richtigen Identifier eintragen:
        identifier_des_formulars {
            renderables {
                0 {
                    renderables {
                        // Indexnummer
                        0 {
                            defaultValue = TEXT
                            defaultValue.data = page:title
                        }
 
                        2 {
                            label = TEXT
                            label.value = Alternatives Label für Feld
                        }
                    }
                }
            }
        }
    }
}
typo3/form.1499190250.txt.gz · Zuletzt geändert: 2017/07/04 19:44 von admin