Loading...
Navigation überspringen
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 Textfeld
  • textarea - Mehrzeiliges Textfeld
  • rte - Rich Text Editor
  • checkbox - Checkbox (z.B. für AGB oder Boolean-Werte)
  • checkboxes - Mehrfachauswahl via Checkboxen (Relationen)
  • select - Auswahlbox (Dropdown)
  • selectCountry - Länderauswahl
  • files - Datei-Upload (benötigt entsprechende Konfiguration für Relationen)
  • inputDate - Datumsfeld
  • inputDateTime - Datums- und Zeitfeld
  • inputEmail - E-Mail Feld mit Validierung
  • inputSlug - URL-Segment Feld
  • hidden - 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]

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
OLS_________684______
I_H____B____E_____QL7
ZRP___5C4___A14______
6_L____K____F_I___851
MLA_________BUK______