Zum Inhalt springen

TCA: Zuordnung (m:n) auf Sysfolder begrenzen?

Erstellt am 20. Juni 2014 · 2 Antworten · letzte Antwort am 23. Juni 2014

Tags: TCA, Frage

fuzz ·

Hallo,

wenn ich z.B. mit einer Extbase Extension einen datensatz anlege und es gibt noch Datensätze für z.B. Gruppen die dem einen Datensatz zugeordnet werden sollen... werden diese aus allen Sysfoldern angezeigt.

Ich möchte jetzt aber z.B. über TSconfig definieren das nur Gruppen (Datensätze) aus einem bestimmten Sysfolder für den datensatz im aktuellen Sysfolder zugeordnet werden können.

Beispiel:
Adressen (Sysfolder ID:1) kann nur Adressgruppen zuordnen aus Sysfolder ID:4
oder
Personen (Sysfolder ID:2) kann nur Adressgruppen zuordnen aus Sysfolder ID:6

wie kann man das im Backend lösen?

Danke vielmals!

Julian.​Hofmann · · Beste Antwort

Hallo.

Wenn ich Dich richtig verstehe, dann sollten Dir die Marker in foreign_table_where helfen:

You can use markers in the WHERE clause:
• ###REC_FIELD_[field name]###
• ###THIS_UID### - is current element uid (zero if new).
• ###CURRENT_PID### - is the current page id (pid of the record).
• ###STORAGE_PID###
• ###SITEROOT###
• ###PAGE_TSCONFIG_ID### - a value you can set from Page TSconfig dynamically.
• ###PAGE_TSCONFIG_IDLIST### - a value you can set from Page TSconfig dynamically.
• ###PAGE_TSCONFIG_STR### - a value you can set from Page TSconfig dynamically.

Viele Grüße
Julian

fuzz ·

jau das war es... danke!
so habe ich es jetzt gelöst damit bin ich flexibel falls man den wert nicht angibt nimmt er alles 🙂

'foreign_table_where' => ' AND ((\'###PAGE_TSCONFIG_IDLIST###\' <> \'\' AND FIND_IN_SET(tx_nnaddress_domain_model_group.pid,\'###PAGE_TSCONFIG_IDLIST###\')) OR (\'###PAGE_TSCONFIG_IDLIST###\' = \'\')) AND tx_nnaddress_domain_model_group.sys_language_uid=###REC_FIELD_sys_language_uid### ORDER BY tx_nnaddress_domain_model_group.title ',