|
Verfasst am: 15. 06. 2010 [10:53]
|
|
McGregor
Themenersteller
Dabei seit: 05.11.2004
Beiträge: 583
|
Hi!
Ich habe mir eine Extension erstellt. Darin sind mehrere Tabellen.
Unter anderem auch zum Beispiel die Tabelle mit dem Namen "Methode". Darin sind 2 Felder mit Werten, die ich später benötige. Die Tabelle ist lokalisiert, d.h. die Einträge können in unterschiedlichen Sprachen vorliegen.
Jetzt habe ich eine weitere Tabelle, in der ich auf die einzelnen anderen Tabellen referenziere (auch die Tabelle Methode).
Wenn ich nun einen Datensatz anlege, dann kann ich auf die vorhandenen Einträge aus den Tabellen zugreifen (Database relation). Doch leider sehe ich dort alle Einträge der Tabelle, also auch die übersetzten Datensätze.
Ich bin dann hingegangen und habe in der tca.php folgende Einträge angepasst:
'methode' => array (
'exclude' => 0,
'label' => 'LLL:EXT:reference/locallang_db.xml:tx_reference_datasheet.contact',
'config' => array (
'type' => 'select',
'foreign_table' => 'tx_reference_methode',
'foreign_table_where' => 'AND tx_reference_methode.pid=###CURRENT_PID### AND tx_reference_methode.sys_language_uid IN (-1,0) ORDER BY tx_reference_methode.uid',
'size' => 1,
'minitems' => 0,
'maxitems' => 1,
)
d.h. ich habe im foreign_table_where -Eintrag den Zusatz "AND tx_reference_methode.sys_language_uid IN (-1,0)" hinzugefügt.
Das bewirkt, dass bei der Standard-Sprache nur die "richtigen" Felder zur Auswahl angezeigt werden.
Bei der Übersetzung jedoch werden auch die Werte der Standard-Sprache angezeigt.
Meiner Meinung nach müsste hier doch ein Marker eingesetzt werden, da sich die Sprache je nach Datensatz ändert, oder?
Wie muss ich die Abfrage anpassen?
Danke für Eure Hilfe
Grüße
McGregor
And when you kill a man you're a murderer
Kill many and you're a conqueror
Kill them all and you're a God
[Dave Mustaine - Megadeth - Countdown to Extinction]
|
|
Verfasst am: 21. 06. 2010 [15:51]
|
|
McGregor
Themenersteller
Dabei seit: 05.11.2004
Beiträge: 583
|
Hi!
Scheinbar habe ich mich nicht gut ausgedrückt.
Anbei ein Bild, was ich meinte.
In der Auswahl sollte jetzt nur
- Deutschland
- Frankreich
- Schweiz
- Australien
stehen.
Bei der Eingabe der Lokalisierung nur
- Germany
- France
- Switzerland
- Australia
Wie geht das?
Grüße
And when you kill a man you're a murderer
Kill many and you're a conqueror
Kill them all and you're a God
[Dave Mustaine - Megadeth - Countdown to Extinction]
Dateianhang
table_rel.jpg (Typ: image/jpeg, Größe: 36.81 Kilobyte) — 32 mal heruntergeladen
|
|
Verfasst am: 27. 06. 2010 [09:18]
|
|
matin
Dabei seit: 09.08.2008
Beiträge: 90
|
"foreign_table_where" => "AND (sys_language_uid=CAST('###REC_FIELD_sys_language_uid###' AS UNSIGNED) OR sys_language_uid= -1) ORDER BY tx_reference_methode.uid",
|