Zum Inhalt springen

TCS columns type select : bestimmtes Feld als Label in Selectbox auslesen?

Erstellt am 22. November 2011 · 3 Antworten · letzte Antwort am 25. November 2011

Tags: TCA, tt_address, Frage

dnalor ·

Hallo zusammen,

in einer Extension erweitere ich tt_address_group um ein Feld, das die UID eines Datensatzes aus der Tabelle static_countries speichern soll.

Der BE-User soll im Formular eines tt_address_group-Datensatzes eine Selectbox sehen, die mit den cn_iso_2 Länderkürzeln gefüllt ist. Das TCA für diese Selectbox / für dieses Feld sieht so aus:

"tx_ttaddressextend_laenderkuerzel" => Array (
"exclude" => 1,
"label" => LLL:EXT:tt_address_extend/locallang_db.xml:tt_address_group.tx_ttaddressextend_laenderkuerzel",
"config" => Array (
"type" => "select",
"foreign_table" => "static_countries",
"foreign_table_where" => "ORDER BY static_countries.cn_iso_2",
"size" => 1,
"minitems" => 0,
"maxitems" => 1,
)
)

Im BE-Formular enthält nun die selectbox allerdings nicht die Werte der Spalte cn_iso_2 sondern die Werte der Spalte cn_short_en.

Also statt wie benötigt "AD", "AE", "AF" ... steht "Andorra", "United Arab Emirates", "Afghanistan" etc.

Ich konnte bisher keine Konfigurationsmöglichkeit finden, mit der ich angeben kann, dass die Selectbox die Werte aus der Spalte cn_iso_2 enthalten soll.

Ich bräuchte quasi sowas (frei erfunden):
"foreign_table_field" => "cn_iso_2"

Kennt jemand von euch eine Lösung für dieses Problem?
Vielen Dank schon mal für eure Hilfe!

dnalor ·

Hi Mischa,

du hast Recht, das ist das einfachste. Habs jetzt jetzt auch mal so gemacht und es funktioniert :-)

Ich frage mich nur, ob es auch grundsätzlich eine andere Lösung für das Problem gibt, weil die Änderung des Labels ja auch die Listenansicht im BE beeinflusst. Alle Länder aus static_countries über die Listenansicht angeschaut, sieht man jetzt ja auch die Kürzel anstatt den Namen - die an der Stelle ja sinnvoller wären. Hast du noch eine Idee?

Danke schon mal!

mischa ·

Das Zauberwort wäre dann eine Userfunc. Beim Anlegen im Kickstarter kannst du das Häckchen (Preprocessing) bei der Selectbox auswählen. Dann kannst du die Selectbox selber zusammenstöpseln.