alexplusde / yform_field

đŸ§© ErgĂ€nzt YForm um weitere Feldtypen, Validierungen und Actions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

đŸ§© ZusĂ€tzliche Values, Validates und Actions fĂŒr REDAXO 5 YForm 4

Das Addon yform_field ergÀnzt YForm um weitere Feldtypen, Validierungen und Aktionen.

Features

  • 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 Vorschau
  • be_manager_relation als SET - erweitert be_manager_relation um die Möglichkeit, ein Feld als echtes DB-Feld SET anzulegen
  • YRewrite-Domains - SELECT-Auswahl mit der System-Domain und allen YRewrite-Domains (sofern installiert)
  • Tabs - Formular-Felder in Tabs gruppieren

blaupause test_redaxo_index php_page=yform_manager_table_field table_name=rex_staff func=choosenadd list=731ec268

Installation

  • Im REDAXO-Backend unter Installer abrufen und
  • anschließend unter HauptmenĂŒ > AddOns installieren.

Die gewĂŒnschten Feldtypen, Validierungen und Actions stehen automatisch bereit.

Feldtypen

datetime_local HTML5-Eingabefeld

Stellt ein Eingabefeld fĂŒr Datum + Uhrzeit zur VerfĂŒgung

image

domain Auswahlfeld

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.

image

be_media_preivew mit Bildvorschau

Erzeugt in der YForm Datentabelle eine Vorschau des aktuell gewÀhlten Bilds

image

be_manager_relation_set SET als Datenbankfeldtyp

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 bestehenden be_manager_relation-Felds zu be_manager_relation_set und lösche den REDAXO-Cache, statt das Feld zu löschen und neu anzulegen.

be_user_select - REDAXO-Benutzer zuordnen

Ähnlich zu be_user mit dem Unterschied, den Backend-Benutzer zuweisen zu können, bspw. fĂŒr zusĂ€tzliche Rechtevergabe oder Verantwortlichkeiten.

choice_html HTML innerhalb des durch Choice erzeugten Labels erlauben

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 bestehenden choice-Felds zu choice_html und lösche den REDAXO-Cache, statt das Feld zu löschen und neu anzulegen.

form_url - Erfahre, von wo das Formular abgeschickt wurde

NĂŒtzlich fĂŒr statistische Zwecke, wenn ein Formular seitenĂŒbergreifend eingebunden wurde und man wissen möchte, von wo es ausgefĂŒllt wurde.

privacy_policy - AGB und Tracking-EinverstÀndnis abfragen

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:

image

Pipe-Schreibweise: name|label|no_db|attributes|notice|output_values|text|linktext|article_id

tabs - Formular-Felder in Tabs gruppieren

Ä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.

Actions

attach - AnhÀnge an E-Mails hÀngen

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.

conversion_push - Conversion-Tracking

Die Aktion conversion_push sendet ein Conversion-Tracking-Event an Google Analytics (gtag.js), wenn die Seite mit dem Formular aufgerufen wird.

Voraussetzung

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);
Pipe-Schreibweise
// 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

Standalone-Implementierung
// 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');
}

Einstellungen

Es sind keine weiteren Einstellungen vorhanden.

Tipps und Tricks

Weitere Tipps und Tricks

Siehe auch: https://github.com/alexplusde/yform_field/issues

Lizenz

MIT Lizenz, siehe LICENSE.md

Autoren

Alexander Walther
https://www.alexplus.de https://github.com/alexplusde

Projekt-Lead
Alexander Walther

Credits

About

đŸ§© ErgĂ€nzt YForm um weitere Feldtypen, Validierungen und Actions.

License:MIT License


Languages

Language:PHP 98.3%Language:JavaScript 1.4%Language:SCSS 0.3%