Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Formular-Definition
Formulare werden im Frontend über TypoScript definiert. Dabei wird unterschieden zwischen Formularen zum Erstellen (Create) und Bearbeiten (Edit) von Datensätzen. Die Basis-Konfiguration erfolgt unter plugin.tx_modules.settings.forms.
Grundkonfiguration
Jedes Formular wird über einen eindeutigen Identifier konfiguriert (z.B. addressCreate oder address).
plugin.tx_modules.settings.forms.myFormIdentifier {
# Datenbank-Tabelle, auf die sich das Formular bezieht
table = tx_extension_domain_model_example
# Speicherort für neue Datensätze (nur bei Erstellung relevant)
storagePid = 123
# Standard-Werte für neue Datensätze (nur bei Erstellung relevant)
defaults {
hidden = 0
deleted = 0
# Typ des Models, falls notwendig (vollständiger Klassenname)
# type = CodingMs\Extension\Domain\Model\Example
}
# Benachrichtigung beim Speichern
mailOnSave {
active = 1
subject = Neuer Datensatz erstellt
fromEmail = sender(at)example(dot)com
toEmail = receiver(at)example(dot)com
}
# Nachrichten für den Benutzer
messages {
error {
title = Fehler
savingFailed = Bitte überprüfen Sie Ihre Eingaben.
}
success {
title = Erfolg
successfullySaved = Ihre Daten wurden erfolgreich gespeichert.
}
}
# Definition der Formular-Felder
fieldsets {
# ...
}
}
Fieldsets und Felder
Das Formular wird in fieldsets unterteilt. Üblicherweise gibt es ein general Fieldset für die Eingabefelder und ein buttons Fieldset für die Aktionen.
Felder werden meist von vordefinierten Presets kopiert, die in plugin.tx_modules.presets.fields bereitgestellt werden.
fieldsets {
general < plugin.tx_modules.presets.fieldsets.normal
general {
label = Allgemein
fields {
# Beispiel für ein Textfeld
company < plugin.tx_modules.presets.fields.input
company {
label = Firma
placeholder = Musterfirma GmbH
required = 0
validation {
NotEmpty = Bitte geben Sie eine Firma ein
}
}
}
}
# Buttons am Ende des Formulars
buttons < plugin.tx_modules.presets.fieldsets.buttons
buttons {
fields {
submit < plugin.tx_modules.presets.fields.submit
submit {
label = Speichern
css.class.wrapper = form-group form-input-submit float-start me-1
}
cancelAndBackToListButton < plugin.tx_modules.presets.fields.cancelAndBackToListButton
cancelAndBackToListButton {
label = Abbrechen
css.class.wrapper = form-group form-input-submit float-start me-1
}
}
}
}
Verfügbare Feld-Typen (Presets)
Die folgenden Presets stehen unter plugin.tx_modules.presets.fields zur Verfügung:
input- Einfaches Textfeldtextarea- Mehrzeiliges Textfeldrte- Rich Text Editorcheckbox- Checkbox (z.B. für AGB oder Boolean-Werte)checkboxes- Mehrfachauswahl via Checkboxen (Relationen)select- Auswahlbox (Dropdown)selectCountry- Länderauswahlfiles- Datei-Upload (benötigt entsprechende Konfiguration für Relationen)inputDate- DatumsfeldinputDateTime- Datums- und ZeitfeldinputEmail- E-Mail Feld mit ValidierunginputSlug- URL-Segment Feldhidden- Verstecktes Feld
Validierung
Validatoren können pro Feld im validation Block definiert werden. Der Key ist der Name des Validators, der Value ist die Fehlermeldung, die angezeigt wird, wenn die Validierung fehlschlägt.
Mehr dazu unter Verfügbare Validatoren.
validation {
NotEmpty = Dieses Feld ist ein Pflichtfeld
Email = Bitte geben Sie eine gültige E-Mail Adresse ein
}
Mehrsprachigkeit
Die Beschriftungen und Fehlermeldungen können via TypoScript Conditions sprachabhängig überschrieben werden:
[siteLanguage("locale") == "de-DE"]
plugin.tx_modules.settings.forms.myFormIdentifier {
messages {
success.successfullySaved = Datensatz gespeichert
}
fieldsets {
general {
label = Allgemein
fields {
company {
label = Firma
validation {
NotEmpty = Bitte geben Sie eine Firma ein
}
}
}
}
}
}
[GLOBAL]
