Sprache des ACP (Backend) auslesen? - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html) +--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html) +--- Thema: Sprache des ACP (Backend) auslesen? (/thread-37500.html) |
Sprache des ACP (Backend) auslesen? - Gerti - 25.10.2020 1. Frontend Welche Sprache wird in der ./inc/settings.php in der Zeile cplanguage gespeichert? Egal welche Sprache im ACP für das Frontend eingestellt wird, es steht immer nur deutsch_du in der vorgenannten Zeile. Die eingestellte Sprache wird jedoch korrekt ausgeführt. Was läuft oder verstehe ich da inkorrekt? 2. Backend Stelle ich die Sprache für das Backend z.B. von deutsch_du auf english um, wird die Umstellung in der Spalte mybb_adminsoptions korrekt gepeichert und angewendet. 3a. Mit der Variable {$mybb_settings['cplanguage']} wird mir im generierten PN-Text die eingestellte Sprache des Frontend (Problem siehe "1") angezeigt 3b. Mit der Variable {$mybb_adminoptions['cplanguage']} wird mir die eingestellte Backendsprache nicht angezeigt. Frage, wie müssen die Syntaxe korrekt lauten, um die für das Backend eingestellte Sprache für IF-Bedingungen sowie zur lesbaren Ausgabe verwenden zu können? Zielsetzung: Wenn die Sprache des Users (Frontend) ungleich ACP-Sprache (Backend) dann zeige die eingestelle ACP-Sprache und tue etwas. Wenn die Sprache des Users (Frontend) = ACP-Sprache (Backend) dann tue nichts. Vorab besten Dank für Tipps, Anregungen, Erläuterungen und Hilfestellungen nachtrag, habe gerade festgestellt, das in der Tabelle mybb-adminoptions die Sprache nicht pauschal ausgelesen werden kann, da jeder als Admin (GID 4) eingetragene User seine eigene Sprache einstellen kann. Dies wird auch so in der Tabelle eingetragen (man lernt anhaltend hinzu) Erhält somit der in den Settings eingestellte Admin-User mit z.B. UID 1234 die PNs, soll dessen eingestellte Sprache ausgewertet werden und als IF-Bedingung verwendbar sein. Vermute mal dass dazu zuerst eine individuelle Variable zu deklarieren ist, dessen Ergebnis erst dann in IF-Bedingungen verwendet bzw. angezeigt werden kann. Wie kann man die eingestellte Sprache der über die Settings eingestellten User-ID = $mybb->settings['pn_empfaenger_uid'] ermittelt und verwendet werden? RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 25.10.2020 (25.10.2020, 13:11)Gerti schrieb: Mit der Variable {$mybb_settings['cplanguage']} wird mir im generierten PN-Text die eingestellte Sprache des Frontend (Problem siehe "1") angezeigt $mybb_settings['cplanguage'] greift das Setting für die ACP-Sprache ab und hat mit der Sprache im Frontend nichts zu tun. RE: Sprache des ACP (Backend) auslesen? - Gerti - 25.10.2020 (25.10.2020, 15:28)Schnapsnase schrieb: $mybb_settings['cplanguage'] greift das Setting für die ACP-Sprache ab und hat mit der Sprache im Frontend nichts zu tun.bblanguage ist Frontend, cplanguage ist Backend. So war mir das in Kenntnis. Weil in der settings.php nicht umgestellt wenn ich eine andere Backend_Sprache im ACP umstelle, vermute mal, dass da nur default verwaltet wird, nicht aber die inviduellen Einstellungen der Admins. Heute festgestellt: Es kann jeder Admins seine eigene Backend-Sprache festlegen (siehe Tabelle mybb_adminoptions). RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 25.10.2020 (25.10.2020, 15:37)Gerti schrieb: Heute festgestellt: Ja natürlich geht das, aber was willst Du damit sagen? Für mein Verständnis und ohne das ich mich weiter damit beschäftigt habe: In der DB kann unter den Settings ja nur die "default-Einstellung" abgelegt werden. Userspezifische Einstellungen können ja nur in der Tabelle "users" abgelegt sein, oder müssen Session-spezifisch geladen werden. - so meine Vorstellungen - RE: Sprache des ACP (Backend) auslesen? - Gerti - 25.10.2020 (25.10.2020, 16:22)Schnapsnase schrieb: In der DB kann unter den Settings ja nur die "default-Einstellung" abgelegt werden.Dies gilt nicht für den Adminbereich. Jeder Admin kann seine eigene ACP-Sprache definieren. Dies wird in der Tabelle mybb-adminoptions abgespeichert und je nachdem welcher Admin sich einloggt entsprechend ausgeführt. Beispiel: Admin-1 (mit UID=1) hat ACP-Sprache Deutsch_Du eingestellt, loggt sich Admin-1 ins ACP ein, wird ihm das ACP in Deutsch_Du angezeigt Admin-2 (mit UID=12) hat ACP-Sprache Deutsch_Sie eingestellt, loggt sich Admin-2 ins ACP ein, wird ihm das ACP in Deutsch_Sie angezeigt Admin-3 (mit UID=123) hat ACP-Sprache Englisch eingestellt, loggt sich Admin-3 ins ACP ein, wird ihm das ACP in Englisch angezeigt Admin-4 (mit UID=1234) hat ACP-Sprache Spanisch eingestellt, loggt sich Admin-4 ins ACP ein, wird ihm das ACP in Spanisch angezeigt Jeder Admin kann sich im Frontend unabhängig der ACP-Einstellung eine andere Sparche einstellen. Diese Gesamtmöglichkeit empfinde ich als ein tolles Feature. Nur wenn keine Sprache eingetragen ist, wird die Default-Sprache (Fallback) verwendet. Gehe mal davon aus, dass die Default-Sprache die Einstellung in der ./inc/settings.php ist, welche bei der Installation eingestellt wurde. Sollte es anders sein, kann kann vllt. StefanT mehr/näheres dazu mitteilen. RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 25.10.2020 Hast Recht. Ich habe es gerade getestet. Bei Einstellung "default" ist in der DB nichts eingetragen. Bei allen anderen (manuellen) Einstellungen wird es in der Tabelle mybb_adminoptions eingetragen. Du könntest hier also eine DB-Abfrage machen. Dann: PHP-Code: if ($meineAbfrage !== ($mybb->user['language'])) oder so ähnlich... RE: Sprache des ACP (Backend) auslesen? - Gerti - 26.10.2020 (25.10.2020, 18:19)Schnapsnase schrieb: Hast Recht. Ich habe es gerade getestet.Danke für die Bvestätigung meienr Erkenntnis (25.10.2020, 18:19)Schnapsnase schrieb: Bei Einstellung "default" ist in der DB nichts eingetragen.Doch! In der Tabelle mybb_settings steht in der Spalte Name "cplanguage", in der Spalte Optionscode "adminlanguage" und Spalte value die eingestelle Standardsprache (25.10.2020, 18:19)Schnapsnase schrieb: Bei allen anderen (manuellen) Einstellungen wird es in der Tabelle mybb_adminoptions eingetragen.Nicht anderen, sondern individuellen Einstellungen. Soll der in mybb_settings eingestellte Admin-User mit z.B. UID 1234 die PNs erhalten, soll dessen in mybb_adminoptions eingestellte Sprache ermittelt und in IF-Bedingungen verwendbar sein. Ist keine Sprache definiert, gilt als Fallback die Standardsprache aus mybb_settings (cplanguage). Ich weis nicht wie man die Sprache des Admins definiert (Fallback berücksichtigen) und dann damit wietr umgehen kann. Denke es muss zuerst eine individuelle Variable deklariert werden, dessen Ergebnis erst dann als IF-Bedingungen verwendet bzw. angezeigt werden kann. RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 26.10.2020 Verzeih mir evt. momentane Code-Fehler, da ich es nicht weiter geprüft habe. Eigentlich sollte das so ähnlich gehen: PHP-Code: $pn_admin = $mybb->settings['pn_empfaenger_uid']; PHP-Code: if (empty($pn_language)) { RE: Sprache des ACP (Backend) auslesen? - itsmeJAY - 26.10.2020 @Schnapsnase: Bitte beache, dass $db->query ersetzt wurde durch: https://docs.mybb.com/1.8/development/plugins/database-methods/#db-write_query Desweiteren bringt es nichts, nur einen Query zu schreiben und in eine Variable zu packen. Diesen musst du auch ausführen. Beispiel / Ergänzung zu deinem Code: PHP-Code: $pn_admin = $mybb->settings['pn_empfaenger_uid']; RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 26.10.2020 (26.10.2020, 11:11)itsmeJAY schrieb: Bitte beache, dass $db->query ersetzt wurde durch:Von ersetzt lese ich da nichts, sondern nur von "bevorzugt". Danke für die Vervollständigung meines Codes- war mir sicher, etwas übersehen zu haben... |