TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

language table relation


Autor Nachricht
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:

PHP
'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]
Profil
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
Profil
Verfasst am: 27. 06. 2010 [09:18]
matin
Dabei seit: 09.08.2008
Beiträge: 90
PHP
"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",
Profil