FriendsOfREDAXO / FriendsOfREDAXO/tricks
YForm Pipe Notation Syntax
- Dominant language
- SCSS
- Stars
- 112
- Forks
- 31
- Avg merge
- 23h 3m
- Merged PRs (30d)
- 3
Description
Die Kurzerklärung zum select Element lautet:
`select|name|label|Frau=w,Herr=m|[no_db]|defaultwert|multiple=1|selectsize`
Wenn ich hier zum Beispiel nur name, label, felder und dann noch multiple setzen will, kann ich statt
`select|name|label|Opt1=opt1,Opt2=opt2,Opt3=opt3|||1`
auch das schreiben:
`select|name|label|Opt1=opt1,Opt2=opt2,Opt3=opt3|#multiple:1`
die Zwischen-Pipes kann ich weglassen, weil ich mit der `#`-Notation Keys angebe, die von YForm unabhängig von ihrer Position erkannt werden.
Es lassen sich auch mehrere Attribute hinzufügen:
`text|geburtstag|Geburtstag*|#required:required|#grid:,datepicker`
YForm lässt über die Notation `# + Attributname` nur bestimmte Attribute zu (z.B. `['placeholder', 'autocomplete', 'pattern', 'required', 'disabled', 'readonly']` für ein `input[type="text"]`. Wenn das nicht ausreicht kann man über `#attributes:{"json":"objekt"}` alle möglichen Attribute setzen:
`select|anrede|Anrede*|Bitte wählen=,Frau=Frau,Herr=Herr|#attributes:{"required":""}`
`text|vorname|Vorname*|#attributes:{"required":"","autofocus":"","placeholder":"zb Willi"}`
Beispielformular
```
select|anrede|Anrede*|Bitte wählen=,Frau=Frau,Herr=Herr|#attributes:{"required":""}
text|vorname|Vorname*|#attributes:{"required":"","autofocus":""}
text|nachname|Nachname*|#attributes:{"required":""}
text|strasse_nr|Straße & Nr*|#attributes:{"required":""}
text|plz_ort|PLZ & Ort*|#attributes:{"required":""}
text|geburtstag|Geburtstag*|#grid:,datepicker|#attributes:{"required":"","data-yearrange":"c-100:c"}
email|email|E-Mail*|#attributes:{"required":""}
checkbox|irgendwasakzeptiert|Hiermit aktzeptiere ich irgendwas|#attributes:{"required":""}
submit||Chaka!
action|showtext|Danke fürs Mitmachen|
|
|0action|tpl2email|name_des_emailtemplates||empfaenger@adresse.de
```
Die #-Notation ist nicht auf Attributes beschränkt sondern funktioniert mit jedem Key. Auch das Label könnte man damit an eine beliebige stelle setzen:
`|#label:Foo|`
Man könnte also nur noch benannte keys nutzen:
`text|#name:first_name|#label:Vorname|#...` oder eben auch:
`text|#label:Vorname|#name:first_name|#...`
Man kann so übrigens auch eigene Keys hinzufügen, und die dann im eigenen Template auslesen. Man braucht dazu also die Value-Klasse nicht anfassen.
Ist übrigens nichts Pipe-spezifisches, auch wenn man YForm über PHP nutzt kann man beide Varianten nutzen:
`['first_name', 'Vorname']` (unbennant, Reihenfolge ist wichtig)
`['name' => 'first_name', 'label' => 'Vorname']` (mit Keys, Reihenfolge ist egal)
`|first_name|Vorname|` und `|#name:first_name|#label:Vorname|` werden 1:1 in die beiden obigen PHP-Varianten übersetzt.
Und man kann aber eben auch beides mischen:
Pipe: `|first_name|Vorname|#attributes:...|`
PHP: `['first_name', 'Vorname', 'attributes' => '...']`
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.