Nachfolger von XForm
Doku
https://github.com/yakamara/redaxo_yform_docs/blob/master/de_de/main_navi.md
Plugins
Tools
Verschiedene Tools zum Verbessern der Formularfelder
- Select2 -
- Daterangepicker
- InputValidate
Daterangepicker
- Configurator: assets/addons/yform/plugins/tools/bootstrap-daterangepicker/demo.html
- braucht folgende JS/CSS im Template
- jQuery[.min].js
- bootstrap[.min].js
assets/addons/yform/plugins/tools/bootstrap-daterangepicker/moment.min.js
assets/addons/yform/plugins/tools/bootstrap-daterangepicker/daterangepicker.js
assets/addons/yform/plugins/tools/bootstrap-daterangepicker/daterangepicker.css
und ein jQueryScript, das alle Datepicker einer Page anspricht
<script>
$('input[class~="daterangepicker"]').daterangepicker({
"singleDatePicker": true,
"showWeekNumbers": true
});
</script>
Modul
Debug Modus
Ist der Debug-Modus im Modul aktiviert, so werden Debug Informationen für alle SQL-Abfragen ausgegeben, die Daten aus den Tabellen lesen, z.B: bei radio_sql oder select_sql Feldern.
Felder
Attribute
Wenn in der Pipe-Darstellung ein [attribute]-Parameter vorhanden ist, können die Attribute als JSON-Format eingegeben werden, z.B. {"placeholder": "Text eingeben","required":"required"}
Wenn kein [attribute]-Parameter vorhanden ist, kann das mit objparams erledigt werden. Z. B. objparams|values.<FELDNAME>.placeholder|Nachricht eingeben
Übersicht
| Value | notice | require | attributes | inline |
| checkbox | OK | OK | | |
| choice_check | OK | group_attributes class:has-required | | attributes class:radio-inline/checkbox-inline |
| choice_select | OK | group_attributes class:has-required | | |
| date, datetime | OK | OK | | |
| mediafile | OK | attributes class:form-is-required | | |
| text | OK | OK | | |
| textarea | OK | OK | | |
| upload | OK | attributes class:form-is-required | | |
append/prepend
Bei einem Feld vom Typ 'text' kann in den wrapper Container des input-Feldes noch HTML Code eingefügt werden:
- davor (links): mit
objparams|values.<FELDNAME>.prepend|<HTML-CODE> oder mit prepend-Parameter in der pipe-Notation
- danach (rechts): mit
objparams|values.<FELDNAME>.append|<HTML-CODE> oder mit append-Parameter in der pipe-Notation
Der Code wird automatisch gewrappt in <span class="input-group-addon"><HTML-CODE></span>, außer wenn er mit <div class="input-group-btn"> beginnt, dann wird kein wrap benötigt.
Kann benutzt werden um Text oder Icons einzufügen (s. https://www.w3schools.com/bootstrap/bootstrap_forms_inputs2.asp)
Inline Felder
Listen von Radiobuttons oder Checkboxen, können auch inline ausgegeben werden. Dazu muß bei Verwendung von Bootstrap nur die CSS-Klasse radio-inline bzw. checkbox-inline angegeben werden z.B.
choice|radiofield|Auswahl 3|{"PKW":"p","LKW":"l","Krad":"k"}|1|0||||||{"class":"radio-inline"}
Values
choice
Universalfeld für select, mehrere checkboxen und radiobuttons
Parameter choices gibt die Auswahlliste an. Mögliche Formate:
- CSV: val1=label1,val2=label2 ...
- JSON: {"label":"val1","label2":"val2"}
recaptcha
Bot-Abwehr von Google. Für jede Website muß bei Google ein Schlüsselpaar angefordert werden, damit das Ganze funktioniert (s. reCaptcha Doku)
upload
- Verwendung im Frontend: Lädt die Datei in das Verzeichnis
redaxo\data\addons\yform\plugins\manager\upload\frontend.
- Verwenung im Backend: ???
Dem Dateinamen wird jeweils ein unique key der Session vorangestellt. Alle Buchstaben werden in klein umgewandelt.Folgende Zeichen werden beibehalten, alle anderen mit underscore ersetzt
- a-z
- A-Z
- 0-9
- dot
- minus
- dollar
- plus
Validations
date/datetime Felder prüfen
geht mit validate|type|<FELDNAME>|date|<FEHLERMELDUNG>; prüft auf definitiv korrektes Datum und berücksichtigt sogar Schaltjahre. D.h: 2017-11-31 gibt nen Fehler, 2017-02-29 gibt nen Fehler, 2016-02-29 ist gültig
Actions
Templates
Die Templates für den generierten Code der Formularelemente befinden sich im Verzeichnis redaxo/src/addons/yform/ytemplates. Deshalb folgendes Vorgehen:
- Templates in REx5Dev modifizieren
- Kopieren in ytemplates-dci
- ytemplates-dci kopieren nach Rex5install
- auf Zielserver: nach jedem Update von yform die Dateien von ytemplates-dci nach ytemplates kopieren.