WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 09.08.2018 18:57:28

florian
Projektmanagement und Support WBCE CMS

Eingestellte Sprache des Benutzers im Frontend abfragen?

Man kann im Benutzerprofil ja angeben, welche Sprache man spricht, und so wird das Backend dann auch angezeigt. So weit, so gut.
Jetzt versuche ich aber schon seit zwei Stunden, an diese eingestellte Sprache im _Frontend_ (Template) heranzukommen. Aber LANGUAGE und $_SESSION['LANGUAGE'] liefern nur die eingestellte Seitensprache, nicht aber die Sprache zurück, die im Benutzerprofil hinterlegt ist.
Gibt es da irgend eine Lösung?

Online

#2 09.08.2018 19:42:01

webbird
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Das Problem hatte ich neulich schon mal aufgezeigt. Die Konstante LANGUAGE betrifft die aktuell gewählte Sprache und wird von ?lang=bla übersteuert. Schätze Du wirst eine DB-Abfrage machen müssen.


Some people just need a high-five. In the face. With a chair.

Offline

#3 09.08.2018 19:42:09

bernd
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Du könntest dir im Template was in der Art basteln (quick'n'dirty):

if (isset($_SESSION['USER_ID'])) {
	$user_id = $_SESSION['USER_ID'];
	$user_language = $database->get_one("SELECT `language` FROM `wbce_users` WHERE `user_id` = $user_id");
	$_SESSION['USER_LANGUAGE'] = $user_language;
}

Wobei sich mir die Frage aufdrängt, warum wird das eigentlich nicht gleich beim einlogen mitgemacht? Da wird so eine Menge "Kram" in der Session gespeichert, warum ausgerechnet das nicht?


2 x ROT13 hält besser ...

Online

Liked by:

florian, stefanek

#4 09.08.2018 19:45:33

webbird
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Das hab ich mich allerdings auch gefragt...


Some people just need a high-five. In the face. With a chair.

Offline

#5 09.08.2018 19:49:13

florian
Projektmanagement und Support WBCE CMS

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Yep, ich wollte die Sache auch erst in Core-Fehlerberichte posten.
@bernd: Danke für den Code. wbce_ muss mit dem tatsächlichen Tableprefix ersetzt werden, aber dann funktioniert's.  thumb_up

Urgh, hier geht gerade ein Gewitter los, ich fahr jetzt schnell den Rechner runter und zieh den Stecker.

Online

#6 09.08.2018 19:51:30

bernd
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

So wie ich das in der class.login sehe, wird da schon die User Sprache in $_SESSION['LANGUAGE'] gespeichert:

// Set language
            if ($results_array['language'] != '') {
                $_SESSION['LANGUAGE'] = $results_array['language'];
            }

Aber anscheinend bei mehrsprachigen Seiten später durch die Seitensprache überschrieben ?!? (Wilde Vermutung)

Würde vielleicht nicht schaden an der Stelle zusätzlich gleich noch eine $_SESSION['USER_LANGUAGE'] anzulegen?
Tut nicht weh, aber hilft vielleicht ;-)

Last edited by bernd (09.08.2018 19:55:20)


2 x ROT13 hält besser ...

Online

Liked by:

webbird

#7 10.08.2018 10:45:19

webbird
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Und dann noch die passende Funktion analog zu get_user_id() und Co... smile Weiß grad nicht welche class das ist.


Some people just need a high-five. In the face. With a chair.

Offline

#8 10.08.2018 10:49:44

florian
Projektmanagement und Support WBCE CMS

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Ich habe noch einiges an weiterer Zeit in diese Sache versenkt.
a) Das Problem ist, dass irgendwo™ die Konstante LANGUAGE definiert wird, die dann für alles weitere verwendet wird. Da kommt man dann nicht heran bzw. kann das logischerweise (da Konstante) nicht mehr ändern.
b) Der Versuch,mit  $_SESSION['LANGUAGE'] = $user_language wenigstens die Sessionvariable (sagt man das so?) zu ändern, führt zu sonderbaren Ergebnissen, so wird z.B. die /account/preferences.php dann nicht mehr angezeigt.
c) Versuche ich, von Hand mit ?lang=XY irgend eine andere Sprache zu erzwingen, sagt WBCE "Denkste" und generiert dann solche drolligen URLs wie seite.php?lang=DE&lang=XY. Und verwendet stumpf weiter DE. Das habe ich dann zwar irgendwo gefunden, wo das erzeugt wird, und eine zusätzliche Prüfung da reingebastelt, ob es schon einen Parameter lang gibt, aber dann wird auch gleich das fremdsprachige Menü (auf einer Seite mit Spracheinstellung deutsch) angezeigt.

Ich glaube, diese ganze Sprachensache ist dann wohl die nächste größere Baustelle. (Im konkreten Fall habe ich mir erstmal anders beholfen.)

Online

#9 10.08.2018 11:10:23

webbird
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Irgendwo = initialize.php


Some people just need a high-five. In the face. With a chair.

Offline

#10 10.08.2018 12:17:58

stefanek
Member

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Das System versucht natürlich die Sprache anzuzeigen, die auch in den Einstellungen der Seite gespeichert ist.
Will man jetzt auf einer Seite die z.B. als RU eingestellt ist dem User die Inhalte doch in EN zeigen, dann wundere ich mich: warum?
Oder geht es um einen kleinen Ausschnitt, der für den User in seiner Sprache angezeigt werden soll, und der Rest wird in der Sprache der Seiteneinstellung ausgegeben?

Ich persönlich denke nicht, dass dem System an dieser Stelle viel fehlt. Bis auf eine $_SESSION['USER_LANGUAGE'] Sessionvariable. Die sollte schon gesetzt sein und es wundert mich auch, dass sie nicht vorhanden ist.

Gruß,
Christian


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#11 10.08.2018 12:22:19

webbird
Developer

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Mich wundert vor allem, dass die bisher noch niemand gebraucht hat. big_smile


Some people just need a high-five. In the face. With a chair.

Offline

#12 10.08.2018 12:29:34

florian
Projektmanagement und Support WBCE CMS

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Im konkreten Fall ging es um zweierlei:
- Anzeige von account/preferences.php in der richtigen Sprache
- Ein Bereich auf einer zweisprachigen Webseite sollte nicht doppelt vorgehalten werden müssen, und ich hatte gedacht, man könnte je nach eingestellter Sprache unterschiedliche Texte ausgeben - z.B. für Überschriften, und dass z.B. auch auf der Seite eingebundene Module ihren Output gemäß Benutzersprache generieren. Wirklich zu Ende gedacht hatte ich das nicht, der Einwand von stefanek ist also durchaus berechtigt.

Eine Sessionvariable USER_LANGUAGE sollten wir in der nächsten Version einbauen.

Online

#13 10.08.2018 12:53:46

stefanek
Member

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

webbird wrote:

Mich wundert vor allem, dass die bisher noch niemand gebraucht hat. big_smile

Es gab denke ich einfach keine große Notwendigkeit dafür.
Zumal man mit einer Einzeiler SQL Abfrage die Sprache des Users auch ermittelt hat. Wahrscheinlich hat einfach bisher kein Hahn nach gekräht.

Trotzdem ist es sinnvoll sie zu haben.

florian wrote:

- Anzeige von account/preferences.php in der richtigen Sprache

Passiert es nicht automatisch? *wunder*


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#14 10.08.2018 13:04:56

florian
Projektmanagement und Support WBCE CMS

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Nein, das Verhalten ist ziemlich bizarr. Es wird die Sprache der zuletzt aufgerufenen "echten" Seite verwendet. Deshalb steht in der Auswahlliste für die Benutzersprache dann auch ein falscher Wert.
Sprich: Ein Benutzer, der als Sprache französisch ausgewählt hat, bekommt im Frontend das Preferences-Formular mit deutschen Beschriftungen und Vorauswahl "deutsch" bei "Sprache", wenn er vorher auf einer Seite gewesen ist, bei der deutsch als Seitensprache eingestellt war. Und umgekehrt (Spracheinstellung deutsch, vorher französische Seite aufgerufen, Formular in französisch.) m(

Online

#15 10.08.2018 13:22:23

stefanek
Member

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Ganz schön buggy....  lol
Ich habe da mal an einem Tool gearbeitet... dieses hätte ich in einer Bug freien Variante anzubieten (mit ein paar Anpassungen).

Gruß,
Christian

Last edited by stefanek (10.08.2018 13:22:48)


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#16 10.08.2018 13:31:32

florian
Projektmanagement und Support WBCE CMS

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

Wenn Du das Tool meinst, von dem ich glaube, dass Du es meinst, so muss ich Dich enttäuschen: auch damit tritt das Problem(chen) auf.

attachment.php?item=1367&download=1

Online

#17 10.08.2018 13:47:55

stefanek
Member

Re: Eingestellte Sprache des Benutzers im Frontend abfragen?

florian wrote:

Wenn Du das Tool meinst, von dem ich glaube, dass Du es meinst, so muss ich Dich enttäuschen: auch damit tritt das Problem(chen) auf.

Da lag keine Täuschung vor, denn es ist mir klar.
Weswegen ich "mit kleinen Anpassungen" in Klammern gesetzt habe.


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

Board footer

Powered by FluxBB

up