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
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
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
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?
Ähm, nein.
Via Condition/Bedingung direkt prüfen. Also in der Art
[globalVar = BE_USER:user|uid=1]
// mach was
[end]
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...
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.
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?
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,...
mit userFunc und unserialize() hat es funktioniert, danke.