language table relation [Gelöst]

  • McGregor McGregor
    Jedi-Ratsmitglied
    0 x
    610 Beiträge
    0 Hilfreiche Beiträge
    15. 06. 2010, 10:53

    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:

    1. 'methode' => array (
    2. 'exclude' => 0,
    3. 'label' => 'LLL:EXT:reference/locallang_db.xml:tx_reference_datasheet.contact',
    4. 'config' => array (
    5. 'type' => 'select',
    6. 'foreign_table' => 'tx_reference_methode',
    7. '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',
    8. 'size' => 1,
    9. 'minitems' => 0,
    10. 'maxitems' => 1,
    11. )

    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


  • 1
  • McGregor McGregor
    Jedi-Ratsmitglied
    0 x
    610 Beiträge
    0 Hilfreiche Beiträge
    21. 06. 2010, 15:51

    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

    Anhänge (1)
    table_rel.jpg image/jpeg 0,00 B 130 heruntergeladen
  • matin matin
    R2-D2
    0 x
    91 Beiträge
    0 Hilfreiche Beiträge
    27. 06. 2010, 09:18

    1. "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",

  • 1