$wsForm-Modul arbeiten Sie im Frontend mit Formularen. Sie laden die Struktur eines Formulars (Felder, Labels, Validierungen), um es auszugeben, und lesen nach dem Absenden die übermittelten Daten.
Auf dieser Seite geht es um das Laden und Lesen von Formulardaten. Das Absenden selbst (und weitere Formular-Aktionen) ist unter Aktionen → Inquiry dokumentiert; die Formulare werden in der inquiry-Konfiguration angelegt.
Grundkonzept
Ein Formular durchläuft vier Schritte, die$wsForm zusammen mit der InquirySend-Aktion abbildet:
- Struktur laden –
loadType(formId)liefert die Felder eines Formulars (z. B."contact"), damit Sie es im Frontend ausgeben können. - Absenden – der Kunde sendet das Formular über die Aktion
InquirySend($wsActions). Das Formular schickt das versteckte FeldformIdmit dem Formularnamen mit. Die Formularfelder werden mit dem Präfixform.benannt (z. B.form.subject). - Anfrage-ID erhalten – nach erfolgreichem Absenden liegt die Anfrage-ID vor (in
InquirySend.successInfo.inquiryId, ebenso in$wsForm.inquiryId). - Daten lesen –
load(inquiryId)liefert die übermittelten Daten zur Anfrage-ID, z. B. für eine Bestätigungsanzeige.
loadAllTypes() alle Formulartypen des Shops auf.
Modulübersicht
Beispiel / Ausschnitt über$wsForm
"ƒ()" kennzeichnet eine Funktion.
Variablen in der Übersicht
Methoden in der Übersicht
Templates
Formulare werden überall im Shop verwendet, beispielsweise im Kontaktformular, beim Widerrufsformular oder bei der Passwort-Wiederherstellung.Variablen
$wsForm.inquiryId
Enthält die eindeutige Anfrage-ID nach dem erfolgreichen Absenden eines Formulars. Mit dieser ID rufen Sie die übermittelten Daten überload() ab.
Methoden
$wsForm.loadType()
Lädt die Struktur eines Formulars (Felder, Labels, Validierungen) anhand des Formularnamens. Nutzen Sie die zurückgegebenen Felder, um das Formular zu rendern. Signatur$wsForm.loadType(formId)
RückgabeRückgabe
map mit den Formular-Eigenschaften: name (Formularname), fields (Feldliste), email (E-Mail-Konfiguration des Formulars), loadField (Methode zum Laden eines einzelnen Feldes) und nodeId (ID des Konfigurationsknotens, als zweiter Parameter für $wsOptions.get(name, nodeId)).
Parameter
Eigenschaften eines Feld-Objekts
Ist dem Formular ein RuleSet zugewiesen, werdenlabel, required, visible und defaultValue automatisch durch dessen Regeln angepasst.
$wsForm.loadAllTypes()
Lädt alle verfügbaren Formulartypen des Shops. Signatur$wsForm.loadAllTypes()
Rückgabearray – Liste aller Formulartypen.
$wsForm.load()
Lädt die übermittelten Daten einer abgeschickten Formularanfrage. Übergeben Sie die Anfrage-ID, die Sie nach dem Absenden erhalten haben. Signatur$wsForm.load(inquiryId)
Rückgabemap – die Anfragedaten (Struktur siehe unten).
Parameter
Struktur der Anfragedaten
Auf ein einzelnes Feld greifen Sie über seinen technischen Namen zu, z. B.
form.firstName.value und form.firstName.label.Aktionen
Aktionen zu diesem Modul (Absenden, Prüfen) sind separat dokumentiert: Aktionen → Inquiry.Beispiele
Formularfelder rendern
loadType() liefert die Felder eines Formulars, aus denen Sie die Eingabefelder erstellen. Die Feldnamen erhalten das Präfix form.. Ausgeblendete Felder (visible = false) überspringen Sie und Pflichtfelder kennzeichnen Sie mit required.
Für jedes sichtbare Feld des Kontaktformulars gibt es ein beschriftetes Eingabefeld mit dem Präfix
form-. Pflichtfelder sind mit einem Sternchen (*) markiert. Das Absenderfeld email ist kein loadType-Feld und wird separat als input name="email" ergänzt.
Vollständiges Kontaktformular mit Absenden und Bestätigung
Dieses Beispiel zeigt den kompletten Loop: Formular mit den nötigen versteckten Feldern undform.-Präfix rendern, bei Fehler die Eingaben erhalten und Feldfehler anzeigen, bei Erfolg die Daten über load() lesen.
Das Formular erscheint vor dem Absenden. Bei fehlerhafter Eingabe bleiben die Werte erhalten und die Feldfehler werden angezeigt. Nach erfolgreichem Absenden erscheint die Bestätigung mit der Anfrage-ID.
Nutzt das Formular ein Captcha (z. B. reCAPTCHA v3), gehört es hinter
{{ if $wsConsent.checkAllowed("recaptchav3") }} und braucht ein Feld <input type="hidden" name="wscaptchatoken"> sowie die Captcha-Komponente. Siehe $wsConsent.load() zurückgegebenen Struktur (Felder gemäß dem echten Kontaktformular; die load()-Struktur selbst ist noch zu bestätigen):
Weiterführende Links
- Aktionen → Inquiry – das Absenden und Prüfen von Formularen (
InquirySend,inquiryCheck). - inquiry - Formulare – legt die Formulare und Felder an, inkl. RuleSet.
- actions - Formulare – Konfiguration der Formular-Aktionen.
