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) |
RE: Sprache des ACP (Backend) auslesen? - Gerti - 26.10.2020 Danke für die Lösungsvariante. Irgendwo habe ich noch einen Fehler in der Umsetzung im Abschnitt "Zusatztext". Nachstehend das gesamte Kontrukt: PHP-Code: $pn_admin = $mybb->settings['pn_empfaenger_uid']; RE: Sprache des ACP (Backend) auslesen? - itsmeJAY - 26.10.2020 $pn_language ist ein array und kann somit nicht über deine Abfrage funktionieren. Poste hier mal bitte das Ergebnis von: var_dump($pn_language); Du musst auf das Array so zugreifen: $pn_language['index'] ; RE: Sprache des ACP (Backend) auslesen? - Gerti - 26.10.2020 (26.10.2020, 13:32)itsmeJAY schrieb: Poste hier mal bitte das Ergebnis von: Ausgabergebnisse "mybb_adminoptions" Eingestellt "keine Sprache": PHP-Code: array(1) { ["cplanguage"]=> string(0) "" } Eingestellt "Deutsch_Du": PHP-Code: array(1) { ["cplanguage"]=> string(10) "deutsch_du" } Eingestellt "Deutsch_Sie": PHP-Code: array(1) { ["cplanguage"]=> string(11) "deutsch_sie" } Eingestellt "English": PHP-Code: array(1) { ["cplanguage"]=> string(7) "english" } Somit dürfte das array korrekt sein. (26.10.2020, 13:32)itsmeJAY schrieb: Du musst auf das Array so zugreifen:Also mit: PHP-Code: if($pn_language['index'] == "deutsch_du") { PHP-Code: if(empty($pn_language['index'])) { RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 26.10.2020 (26.10.2020, 13:32)itsmeJAY schrieb: Du musst auf das Array so zugreifen: @JAY Frage nebenbei: Da in diesem speziellen Fall das array immer nur einen Wert hat (oder eben leer ist), ist doch der Index immer [0], oder sehe ich das falsch?? Also: PHP-Code: if($pn_language[0] == "deutsch_du") { RE: Sprache des ACP (Backend) auslesen? - itsmeJAY - 26.10.2020 @Gerti: Versuch mal: PHP-Code: $pn_admin = $mybb->settings['pn_empfaenger_uid']; @Schnapsnase: ja, das gilt aber nur für indizierte Arrays ohne Schlüssel, also bspw: PHP-Code: $array = array("foo", "bar", "hello", "world"); Um auf "foo" zuzugreifenm würde hier PHP-Code: var_dump($array[0]); Im oben genannten Beispiel (von Gerti) müssen wir allerdings folgendes beachten: https://www.w3schools.com/php/php_arrays_associative.asp Du (Schnapsnase) gehst allerdings von folgendem indizierten Array aus: https://www.w3schools.com/php/php_arrays_indexed.asp Achja, wenn wir sowieso bei Arrays sind, haben wir auch noch das multidimensionale Array - das könntet ihr euch im gleichen Zuge direkt mit angucken! https://www.w3schools.com/php/php_arrays_multidimensional.asp RE: Sprache des ACP (Backend) auslesen? - Schnapsnase - 26.10.2020 (26.10.2020, 15:10)itsmeJAY schrieb: Du (Schnapsnase) gehst allerdings von folgendem indizierten Array aus: Danke JAY, ich habe den Unterschied verstanden... RE: Sprache des ACP (Backend) auslesen? - Gerti - 26.10.2020 Mittelerweile klappt es Dank eurer Geduld und Unterstützung so gut wie perfekt. Zum jedoch alle Unwegbarkeiten bzgl. der Spracheinstellungen zu umgehen, würde ich gerne noch einen Befehl beim Aktivieren einbinden. Wenn $mybb->users['language'] = "leer" (somit default) dann fülle $mybb->users['language'] mit mybb->settings['bblanguage'] (ist default). Sollte bereits eine Sprachangabe in $mybb->users['language'] vorhanden sein, soll diese belassen werden. Mit dieser Vorgehensweise würde ich keinem User und keinem Forum schaden bzw. negatives bewerkstelligen (lasse mich gerne eines Besseren belehren). Es würde mir zig Variationen bzgl. der ansonsten kombinierten Sprachdarstellungen ersparen. Sind die Werte mit obiger Anweisung einmal eingestellt, kann ich mit vier IF-Bedingungen bei derzeit drei Sprachen (deutsch_du; deutsch_sie; english) alle hierbei möglichen Szenarien abfangen. RE: Sprache des ACP (Backend) auslesen? - StefanT - 26.10.2020 (26.10.2020, 11:11)itsmeJAY schrieb: Bitte beache, dass $db->query ersetzt wurde durch:Das hast du falsch verstanden. $db->write_query ergibt für SELECT-Abfragen keinen Sinn. $db->simple_select wäre hier die schönere Lösung, gerne in Kombination mit $db->fetch_field und einer Absicherung gegen SQL-Injection. RE: Sprache des ACP (Backend) auslesen? - itsmeJAY - 26.10.2020 Ich habe das richtig verstanden, wollte Schnapsnase nur darauf hinweisen, dass wenn er die Methode Query nimmt, er lieber write_query nehmen sollte. Mir ist bewusst das die simple_select Methode dafür besser geeignet wäre. Dadurch hätte ich den obigen Kollegen aber wieder den Code vermiest. dennoch danke für die Info. RE: Sprache des ACP (Backend) auslesen? - StefanT - 26.10.2020 (26.10.2020, 20:09)itsmeJAY schrieb: Ich habe das richtig verstanden, wollte Schnapsnase nur darauf hinweisen, dass wenn er die Methode Query nimmt, er lieber write_query nehmen sollte.Das stimmt aber nicht, query und write_query werden für verschiedene Zwecke verwendet. Die korrekte Verwendung siehst du beispielsweise bei simple_select und update_query. |