entityform + field_collection mit required fields
am 16.01.2019 - 14:40 Uhr in
Hallo,
ich möchte ein frontend-Formular bereitstellen, wo der User variabel viele Teilnehmer (Name, Vorname, ...) z.B. für eine Veranstaltung eintragen kann.
Dazu habe ich hier gefunden:
"The answer is to NOT use the Webform module but instead use the Entityform module and the Field Collection module."
Das funktioniert auch soweit mit meiner field_collection mit der Einstellung "Anzahl von Werten: unbegrenzt".
Das Problem:
einige der field_collection-Felder sind Pflichtfelder (z.B. Name und Vorname).
Die werden auch entsprechend markiert (class="... required") - auch in den mit "weiteres Element hinzufügen" erzeugten FCs.
ABER: wenn diese nicht ausgefüllt sind, wird das Formular trotzdem gesendet - d.h. sie werden nicht validiert, und bekommen auch keine error-class, wie das beim webform-Modul ist.
Hat vielleicht jemand eine Idee, woran das liegt bzw. wie man das Problem lösen kann?
Das submit-Event abzufangen und die Validierung mit jQuery selber zu stricken, scheint mir etwas umständlich.
mfG, Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Möglichkeiten
am 17.01.2019 - 21:06 Uhr
Zur Validierung gibt es auch das field_validation Modul, das könnte auch hier helfen.
Als Alternative zu field_collection wäre auch paragraphs geeignet oder mit entityreference referenzierte eck-entites, mit inline_entity_form als Widget im Fomular.
Und Entityform setze ich auch kaum mehr ein, denn meist tut es auch ein nodetype mit der node-create-Berechtigung für Besucher und dem Umbennen des Speichern-Buttons in "Absenden" o.ä. (node_buttons_edit hilft).
Das mal so als Möglichkeiten …
– Grüße aus Franken –
"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)
www.bienlein-kommunikation.de
Vielen Dank
am 18.01.2019 - 16:28 Uhr
für den Hinweis auf das eck-entities-Modul, das kannte ich nicht.
Aber ich hab das jetzt doch mit Entityform gemacht, und die Validierung selber mit jQuery - ging einfacher als gedacht.
Allerdings hab ich jetzt ein anderes Problem:
Das Captcha-Modul läßt sich für diese Entityform nicht einrichten (die soll auch von nicht angemeldeten Usern benutzt werden).
Gibt's dafür vielleicht eine andere Lösung?
Schönes Wochenende erstmal, Michael
Spamschutz für Entityform
am 18.01.2019 - 20:21 Uhr
https://www.drupal.org/project/antibot oder https://www.drupal.org/project/antispam könnten helfen – ganz ohne Captcha. Diese Module können nur nicht vor manuell eingegebenem Spam schützen.
Und ich glaube nicht, dass Captcha für Entityform nicht funktioniert. Auf /admin/config/people/captcha gibt es 2 Einstellungen, die heöfen können:
- Default challenge on non-listed forms.
- CAPTCHA-Verwaltungslinks in Formulare einfügen (das ist nur kurz zum Konfigurieren an, danach wieder aus zuschalten)
– Grüße aus Franken –
"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)
www.bienlein-kommunikation.de
Spamschutz für Entityform
am 22.01.2019 - 11:13 Uhr
Das antibot-Modul funktioniert ja sehr gut und einfach, und reicht wohl auch.
Die Aktivierung von CAPTCHA für non-listed forms hatte ich übersehen.
Es geht zwar, aber das HTML-Element wird irgendwo mitten in der Entityform platziert (die field-collection-Elemente werden ja als table-rows eingebaut, und irgendwo dazwischen steht das CAPTCHA, statt, wie man erwarten sollte, unmittelbar vor dem submit-Button).
Man müßte also ein table-Template anpassen ... aber das muß ja nicht sein.
Vielen Dank nochmal für die ausführlichen Hinweise, Michael