Open alxndr-w opened 5 years ago
oder meintest du noch was anderes damit
nachsehen
Hallo Thomas, Ich bin ehrlich gesagt auch noch nicht so ganz durchgestiegen, wie man individuelle Attribute pro Option definieren kann. Es ist mir wohl gelungen auf alle Optionen gleiche Attribute zu setzen, das funktioniert gemäß Dokumentation. Die Funktion für die option_attributes wird aber nur einmal aufgerufen. Es ist mir nicht gelungen ihr den Wert des jeweiligen option Values zu übergeben, um dann entsprechende option_attributes zurück- und auszugeben. Ich habe dann aufgegeben. Es wäre ein echtes Killerfeature, insofern bin ich sehr an einer Lösung interessiert. Lg, Wolfgang
@dtpop
Am YForm value müsstest du nur das Callable notieren
Foo::bar
oder foo_bar
Dein Callable würde dann so notiert
class Foo {
public static function bar($value, $label) {
return [];
}
}
Ich müsste nachsehen warum das $attributes in der notice notiert wurde.
Danke Thomas & Alex! Ich habe mal einen PR gemacht. Gerne nochmal checken: https://github.com/yakamara/redaxo_yform_docs/pull/133
@tbaddade ich hätte gerade sogar den Use Case, dass es nützlich wäre, Formularname und Feldname mit zu übergeben, statt pur value/label, weil ich sonst für jedes Choice-Feld in diesem Formular (ein Preiskonfigurator) eine eigene Funktion/Methode erstellen muss.
Vielleicht wäre es sinnvoll, dies noch als 3. Parameter zu übergeben.
Ich bin auch der Meinung, dass die vorhandenen Attribute überschreibbar/entfernbar sein sollten und daher fände ich es sinnvoll, die $attributes auch mit zu übergeben.
Den Fall könntest du auch über eine Property steuern. z.B.
Den Fall könntest du auch über eine Property steuern. z.B.
Wie meinen?
Nach weiterem Nachdenken: Ich finde, Properties sind an der Stelle ein Umweg (falls überhaupt möglich?) und man sollte es schon direkt verfügbar haben.
@tbaddade kannst du noch wie hier festgestellt Formularname und Feldname im Callback verfügbar machen? Damit die aufgerufene Methode weiß, um welches Formular es sich handelt.
Die Option
choice_attributes
ist teilweise undokumentiert oder fehlerhaft:Beispiel:
Attribute für jede Auswahl (choice_attributes) Mit dieser Option können zu jeder Auswahl zusätzliche HTML-Attribute hinzugefügt werden. Callable: foo($attributes, $value, $label); foo::bar($attributes, $value, $label) oder JSON: {"class": "choicable", "DE": {"data-language": "de-de"}}
Korrekt wäre aktuell
Mit dieser Option können zu jeder Auswahl zusätzliche HTML-Attribute hinzugefügt werden. Callable:
foo
ruft eine Funktion auf, bspw.foo($value, $label) { return ["class" => "meineklasse"] }
auf,foo:bar
ruft die Methodefoo::bar($value, $label)
auf, oder JSON: {"class": "choicable", "DE": {"data-language": "de-de"}}@tbaddade oder meintest du noch was anderes damit, warum da $attributes hin/weggehört?