Moin zusammen,
ich bin gerade etwas am verzweifeln. Ich versuche eine Subpalette auszugeben, wenn in einem Select kein Wert ausgewählt wurde.
Das Select-Feld holt sich seine Daten aus einer anderen Tabelle.
1.pngCode:'home' => [ 'inputType' => 'select', 'foreignKey' => 'tl_gs_home.name', 'eval' => [ 'submitOnChange' => true, 'includeBlankOption' => true, 'tl_class' => 'w50' ], 'sql' => "int(10) unsigned NOT NULL default '0'", ],
Per 'foreignKey' werden Werte aus einer anderen Tabelle gezogen. Zusätzlich wird über 'includeBlankOption' die Option '-' hinzugefügt.
Nun würde ich gerne zusätzliche Felder einblenden, wenn die Option '-' ausgewählt wurde.
2.png
In der Contao-Dokumentation steht dazu, dass man eine Subpallette aus "{feldname}_{feldwert}" erstellen kann. https://docs.contao.org/dev/reference/dca/palettes/
Die über "includeBlankOption" hinzugefügte Option besitzt kein Value. Nach ein paar vardumps in der DC_Table.php stellte sich heraus, dass der Wert für die Subpalette als "0" interpretiert werden würde.
Dementsprechend müsste der Schlüssel für die Subpalette also 'home_0' sein. Leider kommt hier aber nichts zurück, da die 0 per if statement gefiltert wird.
https://github.com/contao/contao/blo...able.php#L3292
Nun habe ich versucht, das Problem über Callbacks zu umschiffen, indem ich beim Laden aus der Datenbank den Wert von "0" in "none" ändere und beim Schreiben in die Datenbank von "none" wieder in "0", sodass ich den Schlüssel für die Subpalette einfach "home_none" nennen kann. Das Problem ist, dass Callbacks bei den Subpaletten komplett ignoriert werden, da der Wert hier direkt aus der Datenbank gezogen wird.
https://github.com/contao/contao/blo...hp#L3297-L3299
Die einzige Idee, die mir bisher gekommen ist, ist eine zusätzliche Dropdown-Liste, über die man zwischen den beiden Varianten hin und her switchen kann. Vielleicht hat ja noch jemand eine Idee, wie man es auch ohne zusätzliche DropDown-Liste hinbekommt.
Ich hatte zur Lösung des Problems bereits einen Pull Request erstellt. Leider bisher ohne Reaktion.
https://github.com/contao/contao/pull/5112
Lesezeichen