Das Addon yform_field
ergänzt YForm um weitere Feldtypen, Validierungen und Aktionen.
- E-Mail Attachments - nur eine Zeile, um Anhänge aus Formularen an E-Mails zu hängen
- Echtes Datetime-Value - optimierte HTML5-Ausgabe mit optionaler Einschränkung per min/max-Auswahl
be_media
mit Bildvorschau - zeigt statt der Dateinamen die gewählten Bilder als Vorschaube_manager_relation
als SET - erweitert be_manager_relation um die Möglichkeit, ein Feld als echtes DB-FeldSET
anzulegen- YRewrite-Domains - SELECT-Auswahl mit der System-Domain und allen YRewrite-Domains (sofern installiert)
- Tabs - Formular-Felder in Tabs gruppieren
- Im REDAXO-Backend unter
Installer
abrufen und - anschließend unter
Hauptmenü
>AddOns
installieren.
Die gewünschten Feldtypen, Validierungen und Actions stehen automatisch bereit.
Stellt ein Eingabefeld für Datum + Uhrzeit zur Verfügung
Stellt ein Select-Feld vom Typ multiple
zur Verfügung, in dem als Auswahl die System-Domain (bzw. "alle") zur Verfügung steht, oder bei installiertem YRewrite auch alle passenden Domains.
Erzeugt in der YForm Datentabelle eine Vorschau des aktuell gewählten Bilds
Exakt dasselbe Feld wie be_manager_relation
nur mit der zusätzlichen Auswahlmöglichkeit des Datenbankfeldtyps SET
, verwendbar in allen 1:n
-Beziehungen, die direkt im Feldwert gespeichert werden.
Tipp: Ändere in der Datenbanktabelle
yform_field
die Felddefinition deines bestehendenbe_manager_relation
-Felds zube_manager_relation_set
und lösche den REDAXO-Cache, statt das Feld zu löschen und neu anzulegen.
Ähnlich zu be_user
mit dem Unterschied, den Backend-Benutzer zuweisen zu können, bspw. für zusätzliche Rechtevergabe oder Verantwortlichkeiten.
Erlaubt HTML in der Ausgabe des Labels von choice
, was auch gemäß HTML5 möglich ist, um bspw. ein Bild anstelle oder zusätzlich zur Auswahl zu stellen.
Tipp: Ändere in der Datenbanktabelle
yform_field
die Felddefinition deines bestehendenchoice
-Felds zuchoice_html
und lösche den REDAXO-Cache, statt das Feld zu löschen und neu anzulegen.
Nützlich für statistische Zwecke, wenn ein Formular seitenübergreifend eingebunden wurde und man wissen möchte, von wo es ausgefüllt wurde.
Stellt auf Basis einer regulären Checkbox weitere Eingabe-Informationen zur Verfügung, um bspw. auf AGB oder Datenschutzerklärung hinzuweisen, wie in diesem Beispiel:
Pipe-Schreibweise: name|label|no_db|attributes|notice|output_values|text|linktext|article_id
Ähnlich wie bei Fieldsets können Formulare über Tab-Sets optisch strukturiert werden. Dazu wird das Tab-Value am Anfang einer Feldgruppe eingefügt. Nach der letzten Gruppe muss ein abschließendes Tab-Value gesetzt werden.
Im Formular sind mehrere Tab-Sets möglich, die dann aber eindeutig benannt sein müssen und sich nicht überlappen dürfen.
Es müssen mindestens drei Tab-Values (derselben Gruppe) im Formular sein:
- erster Tab: beginnt einen Tab und baut das Tab-Menü über alle Tabs des Tab-Sets auf.
- innerer Tab: jeder innere Tab schließt den vorhergehenden ab und öffnet den eigenen Container
- letzter Tab: ohne eigenen Eintrag im Tab-Menü, schließt den vorhergehenden Container und die Gruppe
Wenn in einem Tab ein Feld mit Fehlermeldung steckt, wird der Tab optisch markiert und aktiviert.
Wurde das Formulat mit "Übernehmen" gespeichert, wird der zuletzt aktive Tab bei der Wiederanzeige aktiv gesetzt. Ausnahme: in einem anderen Tab ist ein Feld mit Fehlermeldung.
Ein Formular kann mehrere Tab-Sets enthalten, allerdings nicht geschachtelt. In dem Fall müssel alle zu einem Tab-Set gehörenden Tab-Value denselben Gruppennamen bekommen.
Die Aktion attach
muss vor der Aktion für den E-Mail-Versand notiert werden - logisch, sonst wird erst die Mail versendet und dann der Anhang beigefügt.
Szenario für Bewerberformulare: Durch geschickte Kombination und Reihenfolge lässt sich zunächst eine Bestätigungs-Mail an einen Bewerberin ohne Anhang versenden, anschließend wird die Action eingetragen und zum Schluss eine weitere Mail-Aktion an das Unternehmen - diese ist dann mit Anhang.
Die Aktion conversion_push
sendet ein Conversion-Tracking-Event an Google Analytics (gtag.js), wenn die Seite mit dem Formular aufgerufen wird.
Der Google Tag Manager ist initialisiert, bspw. über einen Consent-Manager. Und dieser erstellt einen eigenen EventListener gtagLoaded
, z.B. auf diese Art und Weise:
script = document.createElement('script');
script.src = 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX';
script.async = 'async';
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
// Fügen Sie einen EventListener für das load-Ereignis hinzu
script.addEventListener('load', function() {
// Erstellen Sie ein neues Event
var event = new Event('gtagLoaded');
// Lösen Sie das Event aus
window.dispatchEvent(event);
});
// Fügen Sie das Skript-Tag zum Dokument hinzu
document.head.appendChild(script);
// action|conversion_push|google_ads|event:conversion|send_to:AW-XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX|value:1|currency:EUR
z.B.: action|conversion_push|google_ads|conversion|AW-XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX|999|EUR
// Conversion nur zählen, wenn kein REDAXO-Benutzer eingeloggt ist
if(rex_backend_login::createUser() == null) {
echo conversion_push::google_ads('conversion', "AW-XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX", 999, 'EUR');
}
Es sind keine weiteren Einstellungen vorhanden.
Siehe auch: https://github.com/alexplusde/yform_field/issues
MIT Lizenz, siehe LICENSE.md
Alexander Walther
https://www.alexplus.de
https://github.com/alexplusde
Projekt-Lead
Alexander Walther