Zum Inhalt springen

Abfragen von Backend-Sprache

Erstellt am 12. Oktober 2010 · 8 Antworten · letzte Antwort am 15. Oktober 2010

Tags: Frage

robgordon ·

Hallo,

ich möchte gerne bestimmtes TS nur ausführen, wenn ein BE-User Deutsch als Oberflächensprache ausgewählt hat. Ansonsten soll ein Default-Wert ausgeführt werden. Sollte erweiterbar sein auf weitere Sprachen.

Jemand eine Idee?

Gruß,
Denis

Julian.​Hofmann ·

Hallo Denis.

Die Angabe der Sprache sollte in $GLOBALS['BE_USER']->user stecken. Über Conditions solltest Du auf den Wert zugreifen bzw. ihn prüfen können (zumindest in den neueren TYPO3-Versionen).

Viele Grüße
Julian

robgordon ·

Danke schonmal.

Du meinst, ich soll das per userFunc in Conditions machen und dann in der localconf.php eine Funktion schreiben, die den Inhalt in $GLOBALS prüft?

robgordon ·

Hm, Mist, das Feld "lang" in der be_user Tabelle ist gar nicht die Backend-Sprache, da steht bei allen "de", obwohl sie teilweise ein englisches Backend haben...

Julian.​Hofmann ·

Jain. Es kommt drauf an, die die BE-Sprache gesetzt ist.
Diese kann
- im BE-User-Datensatz gesetzt werden => lang-Spalte
- in den Einstellungen des BE-Users gesetzt werden => uc-Spalte

Wenn Du an der Sprache etwas festmachenw illst, dann solltest Du die BE-Sprache über die lang-Spalte (zusätzlich) festlegen. Denn nur dort ist sie von BE-Usern nicht änderbar, d.h. auch Deine daraus abgeleitete TS-Änderung nicht von User beeinflussbar.

robgordon ·

Leider soll jeder User seine Sprache beliebig ändern können, bei Bedarf und das TS dementsprechend auch reagieren...

An den Kram aus "uc" komme ich per TS wahrscheinlich nicht?

Julian.​Hofmann ·

Hm...

uc ist serialisiertes Array/Objekt. D.h. Du kannst es via TS als String ansprechen/behandeln. Ein BE_USER:user|uc = *de* könnte also klappen. Aber da müsstest Du sicherstellen, dass Du auch nur den richtigen Wert erwischt. Da dieser aber immer ein zweistelliger Wert sein wird, dürftest Du mit dem Drumherum ihn relativ sicher greifen können.

Ist sicherlich auch die Frage, wie sensibel die Änderung am TS sind bzw. wie kritisch es wäre, wenn die Änderung nicht 100% sicher greifen.

Oder dann doch wieder auf die ursprüngliche Idee der userFunc zurückgreifen, uc deserialisieren, Vergleich ausführen,...