🧩 Zusätzliche Feldtypen, Validierungen und Aktionen für REDAXO 5 YForm 4
⚠️ HINWEIS: Dies ist ein Fork der letzten bekannten nicht-kommerziellen Version von yform_field.
Dieses Repository enthält die ursprüngliche Open-Source-Version des Addons vor der Kommerzialisierung.
Das Addon yform_field ergänzt YForm um weitere Feldtypen, Validierungen und Aktionen.
| Feldtyp | Beschreibung |
|---|---|
be_hidden |
Hidden-Feld im Backend verfügbar machen |
be_manager_relation_set |
be_manager_relation mit Datenbankfeldtyp SET |
be_media_preview |
Bildvorschau in der YForm-Datentabelle |
be_user_select |
Zuweisung von REDAXO-Benutzern |
choice_html |
Erlaubt HTML innerhalb des Labels von choice |
choice_status |
Ein choice-Feld, das einen Status-Wechsler in der Übersicht anzeigt |
custom_link |
Stellt ein Link-Widget für mehrere Link-Typen bereit |
datestamp_offset |
Ein datestamp-Feld, mit einem Offset in die Zukunft |
datetime_local |
HTML5-Eingabefeld für Datum und Uhrzeit |
domain |
Auswahlfeld mit System-Domain und YRewrite-Domains |
form_url |
Erfasst die URL, von der das Formular abgeschickt wurde |
number_lat |
Eingabefeld für einen Breitengrad (-90°...90°) |
number_lng |
Eingabefeld für einen Längengrad (-180°...180°) |
openai_prompt |
Erweitert den Inhalt eines Feldes mithilfe der OpenAI API |
openai_spellcheck |
Automatische Rechtschreib- und Grammatikprüfung mithilfe der OpenAI API |
privacy_policy |
Checkbox mit Link für Anwendungsfälle wie AGB und Datenschutzerklärung |
radio |
Das YForm 3 radio-Feld |
radio_sql |
Das YForm 3 radio-Feld mit SQL-Abfrage |
select |
Das YForm 3 select-Feld |
select_sql |
Das YForm 3 select-Feld mit SQL-Abfrage |
seo_title |
Ein seo_title-Feld, das Text aus Feldern mit eigenem Text kombiniert - perfekt fürs URL-Addon |
showvalue_extended |
Ein erweitertes showvalue-Feld |
submit_once |
Ein submit-Feld, das einen Doppelklick verhindert |
tabs |
Gruppiert Formular-Felder in Tabs |
thumbnailws |
Ein thumbnailws-Feld, das ein Vorschaubild von einer URL via thumbnail.ws-API generiert |
| Validierung | Beschreibung |
|---|---|
pwned |
Passwörter gegen "Have I Been Pwned"-API prüfen |
| Aktion | Beschreibung |
|---|---|
attach |
Anhänge an E-Mails hängen |
attach_signature |
Signatur aus Signatur-Feldtyp als Anhang hinzufügen |
conversion_push |
Conversion-Tracking für Google Ads |
history_push |
URL und Titel in den Browserverlauf einfügen |
to_session |
Formularwerte in die Session speichern |
yform_field repariert Bugs und Funktionen in YForm, wenn Felder von yform_field darauf basieren.
- Erhöhung der Darstellung von Feldern im Table Manager von 30 auf 200
- Klonen von Datensätzen mit UUID-Feldern
- Im REDAXO-Backend unter
Installerabrufen und - anschließend unter
Hauptmenü>AddOnsinstallieren.
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
Erlaubtes HTMLps://user-images.githubusercontent.com/3855487/209685003-546ac381-ad23-4d4e-a16d-79fcb855ba3f.png)
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_fielddie Felddefinition deines bestehendenbe_manager_relation-Felds zube_manager_relation_setund 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_fielddie Felddefinition deines bestehendenchoice-Felds zuchoice_htmlund 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 Formular 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üssen 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/FriendsOfREDAXO/yform_field/issues
MIT Lizenz, siehe LICENSE.md
Vielen Dank an Alexander Walther für die ursprüngliche Entwicklung und Bereitstellung dieses Addons als Open-Source-Projekt.


