Kontaktformular - Validierung trotz Template-Anpassung ?!

Moin,

das Problem ist das folgende:
Da sich das Kontaktformular im Backend nicht editieren lässt, extende ich das entsprechende Template; z.B. um aus dem Anrede-Feld ein Nicht-Pflichtfeld zu machen.

Code-Beispiel:

{% sw_extends '@Storefront/storefront/element/cms-element-form/form-types/contact-form.html.twig' %}

{% block cms_form_contact_select_salutation %}
    {% sw_include '@Storefront/storefront/element/cms-element-form/form-components/cms-element-form-select-salutation.html.twig'
        with {
            additionalClass: 'col-md-4'
        }
    %}
{% endblock %}

Hier hatte ich den ‘required’-Parameter entfernt, damit das Feld nicht mehr verpflichtend ist.
Hierdurch wird das Feld zwar im Frontend nicht mehr als Pflichtfeld angezeigt, jedoch scheint die serverseitige Validierung statisch zu sein, so dass nach Absenden des Formulars folgender Fehlerhinweis ausgegeben wird:

Dieser Wert sollte nicht leer sein.

Kann mir jemand sagen ob es hier einen “simplen Fix” gibt ? 

Oder muss ich für eine solche Banalität tatsächlich wieder Core Funktionen überschreiben ?

Moinsen,

kann ich genau so bestätigen. Hier muss es eine einfache Lösung (notfalls eben per Template, Backend wäre auch schön) geben, allein deshalb, da wir ansonsten nach DSGVO alle in Probleme rennen können bzw. werden… Frown

Ist das ein Bug der gefiled werden sollte?

 

Beste Grüße,
devnullroot

Kein Bug, laut Shopware (mal wieder) nur eine Zwischenlösung ^^
Wie nennt man noch gleich eine dauerhafte Zwischenlösung ?! 

Folgende Versuche das Verhalten zu korrigieren sind bisher schief gelaufen:

  1. Formular-Daten via EventListener vor Versand manipulieren -> es gibt kein passendes Event
  2. Anpassung im Template wie oben beschrieben -> Felder werden serverseitig trotzdem validiert
  3. Formular-Felder bei Submit via JS mit default-Wert ‘-’ füllen -> Formular wird via ajax submitted bevor JS-Funktion greift

Langsam gehen mir die Ideen aus, fernab von (mal wieder) eigenes Plugin schreiben.

Danke für die Infos!

Ich komme momemtan nicht dazu, mir eine Implementierung/Fix anzusehen (ich könnte mir ein Ausblenden unnötiger Felder per JS und gleichzeitiger Default-Belegung vorstellen, notfalls einen „eigene“ Submit Button, damit die Events greifen - aber das ist alles irgendwie eklig), bin aktuell noch in der „Findungsphase“ was die Einsatzbereitschaft von SW6 angeht - und so langsam überwiegen leider eher die Contras. Insbesondere was die „Basics“ betrifft. Aber das ist ein anderes Thema… Nichts desto trotz ist ein rechtskonformes Kontakformular halt obligatorisch und sollte eigentlich nicht erst per Plugin bereitgestellt werden können/müssen. :frowning:

Ich bin allerdings für jeden Hinweis dankbar, der mich in die richtige Richtung schubsen würde, wie ich ein (neues?) Formular per Plugin realisieren könnte. Aktuell ist das für mich noch ein ziemlich weißer Fleck. Falls die Umsetzung nicht zu aufwändig ist, könnte mein Vertrauen in das System wieder ein wenig gestärkt werden :wink:

Beste Grüße,
devnullroot

Gibt es zum Thema Kontaktformular / Pflichtfelder schon eine funktionierende Lösung? Es kann doch nicht sein, dass jemand ein nicht DSGVO-konformes Kontaktformular in seinem Shopware 6-Shop verwendet? Shopware ist doch eigentlich für datenschutzkonforme Lösungen bekannt …

würd mich auch interessieren … leider schon wieder 1 Monat kein Update

Laut Changelog ist es in der 6.3.4.0 möglich:

Required fields in the contact form are now configurable

Mit einem Link auf : Shopware Issuetracker

Allerding habe ich keine Ahnung wie und wo man das jetzt konfigurieren kann :frowning:

Beste Grüße,
devnullroot

Einstellungen → Stammdaten → Sicherheit und Datenschutz

So, das Thema ist 1 Jahr alt, aber wirklich was getan hat sich seitdem da nichts, oder?

Dass ich bestimmte Felder wie Vor-, Nachname und Telefonnummer über die Stammdaten beeinflussen kann, ist mir klar. Ich würde aber gerne auch den Status Pflichtfeld der beiden Felder „Betreff“ und „Nachricht“ entfernen. Mein Kontaktformular ist mit diversen Zusatzfeldern erweitert, so dass die beiden genannten Felder auch freiwillig sein können.

Ich habe bereits Folgendes über ein eigenes TWIG-Template versucht, Beispiel Feld „Nachricht“:

{% block cms_form_contact_comment_textarea %}
    {% sw_include '@Storefront/storefront/element/cms-element-form/form-components/cms-element-form-textarea.html.twig'
        with {
        rows: 5,
        required: false,
        fieldName: 'comment',
        additionalClass: 'col-12',
        label: 'contact.commentLabel',
        placeholder: 'contact.commentPlaceholder'
    }
    %}
{% endblock %}

Ich habe den Parameter required entsprechend als false gesetzt.
Das entfernt zwar das Sternchen des Feldes im Frontend, beim Absenden des Formulars wird das Feld aber trotzdem validiert und ich laufe in eine entsprechende Fehlermeldung. Wo kann ich die Validierung sonst noch beeinflussen?