MyBB.de Forum
IF-Bedingung für Boardsprache - 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: IF-Bedingung für Boardsprache (/thread-37487.html)

Seiten: Seiten: 1 2 3 4


IF-Bedingung für Boardsprache - Gerti - 20.10.2020

Halo,

die Standardforumssprache ist eingestellt auf "english"

Dies ist der Tabelle mybb_settings (siehe Grafik)
   
in der Spalte "value" auch eingetragen.

Wie kann man in einem PlugIn eine IF-Abfrage definieren damit eine Funktion abhängig der eingestelltenSprache (z.B."deutsch_du; deutsch_sie; english usw.) durchgeführt wird?

Der Versuch mit:
PHP-Code:
if (mybb->settings['english']) {
 Anweisung

warf in der PHP-Log-Datei nur eine Fehlermeldung bzgl. der 1. Zeile aus. Eigentlich logisch, weil ich ja innerhalb der Tabelle mybb_settings die Spalte "value" (siehe obige Grafik) abfragen muss. Aber wie?

Wie muss die Zeile 1 für "english; deutsch_du; deutsch_sie) wirklich lauten?

Danke vorab für Hinweise.


RE: IF-Bedingung für Boardsprache - SvePu - 20.10.2020

PHP-Code:
if($mybb->settings['bblanguage'] == "english")
{
 
//do it!




RE: IF-Bedingung für Boardsprache - Gerti - 20.10.2020

Supi, funktioniert perfekt.

Besten Dank.


RE: IF-Bedingung für Boardsprache - Gerti - 22.10.2020

Mit dem String
PHP-Code:
if($mybb->settings['bblanguage'] == "english")
{
 // Anweisung
}  
funktioniert es "global" soweit korrekt. Ich habe danach ein "else" gesetzt und somit kommt Alternativ Deutsch zur Ausführung.

Wenn im ACP die Standardsprache z.B. auf Deutsch eingestellt ist, und der User in seinem Benutzer-CP die Sprache auf English eingestellt hat, wäre es zielgerichteter, wenn man die eingestellte Usersprache verwenden könnte.

Wie müsste dann die IF-Bedingung lauten um die Sprache des Users, unabhängig der eingestellten Boardsprache, verwenden zu können?

Versucht habe ich für Englisch:
PHP-Code:
if($mybb->users['language'] == "english") {
   // Anweisung-1


und für Deutsch:
PHP-Code:
if(($mybb->users['language'] == "deutsch_du") OR if($mybb->users['language'] == "deutsch_du")){
   // Anweisung-2

Alles ohne Erfolg.

Wenn beim User keine Frage definiert ist (Fallback), soll
PHP-Code:
if($mybb->settings['bblanguage'] == "xxxxxx") {
  // Anweisung-1 oder Anweisung-2

verwendet werden. (Anweisung-1 / Anweisung-2 = je nach bblanguage)

Hätte mir jemand Bitte Umsetzung-/Lösungsvorschläge die erforderlichen IF-Bedingungen aufzuzeigen?

Vorab besten Dank für Hilfen.


RE: IF-Bedingung für Boardsprache - Schnapsnase - 22.10.2020

Statt
PHP-Code:
$mybb->users['language'
muss es heißen:
PHP-Code:
$mybb->user['language'

Was genau willst Du denn hier für wen ausgeben?


RE: IF-Bedingung für Boardsprache - Gerti - 22.10.2020

(22.10.2020, 14:23)Schnapsnase schrieb: Statt
PHP-Code:
$mybb->users['language'
muss es heißen:
PHP-Code:
$mybb->user['language'

Was genau willst Du denn hier für wen ausgeben?
Habe bereits beide Varianten versucht. Leider vergeblich.



Eine PN soll in der Sprache des User versendet werden. Was ja global siehe oben funktioniert.

@Nachtrag
Lösung gefunden. Ich hole mir die Spracheinstellunbg des Users mit
PHP-Code:
$userlanguage htmlspecialchars_uni($user['language']); 
und danach die If-Bedingung für Ausführung in Englisch mit:
PHP-Code:
if ($userlanguage == "english") {
    
Anweisung-1
  

bzw. die IF-bedigung für Deutsch_Du und Deutsch_Sie
PHP-Code:
if ($userlanguage != "english") {
    
Anweisung-2
  

Funktioniert perfekt.


RE: IF-Bedingung für Boardsprache - Schnapsnase - 22.10.2020

Du müsstest hier wahrscheinlich erst mal abfragen, ob überhaupt ein User eingeloggt ist...
Schau dazu mal hier ab Zeile 58, wie die Sprachen geladen werden.

Da müsste ich mal eine Weile testen. Aus dem Hut zaubern kann ich das auf die Schnelle nicht.  Wink

_________________
Nachtrag:
Letztlich handelt es sich ja nur um 2 Sprachen.
Was spricht dagegen, diese PN mehrsprachig zu versenden.
Das ist heute in vielen mails Standard.


RE: IF-Bedingung für Boardsprache - Gerti - 22.10.2020

(22.10.2020, 14:50)Schnapsnase schrieb: Du müsstest hier wahrscheinlich erst mal abfragen, ob überhaupt ein User eingeloggt ist...
Schau dazu mal hier ab Zeile 58, wie die Sprachen geladen werden.

Da müsste ich mal eine Weile testen. Aus dem Hut zaubern kann ich das auf die Schnelle nicht.  Wink

_________________
Nachtrag:
Letztlich handelt es sich ja nur um 2 Sprachen.
Was spricht dagegen, diese PN mehrsprachig zu versenden.
Das ist heute in vielen mails Standard.

Danke für den Hinweis, den Hut brauchst Du nciht zu bemühen. Ich schrieb doch bereits das es problemlos funktioniert. Dies unabhängig ober der User ON- oder Offline ist.


RE: IF-Bedingung für Boardsprache - Gerti - 22.10.2020

Hätte mir jemand einen/den SQL-Befehl um die im ACP eingestellte "bblanguage" aus der Tabelle mybb_settings in die Tabelle mybb_users Spalte "language" zu übertragen?


RE: IF-Bedingung für Boardsprache - Schnapsnase - 22.10.2020

Warum, wenn es denn nach Deiner letzten Aussage problemlos funktioniert?
Ich denke, dass Du hier mal die Karten auf den Tisch legen und nicht nur Beispiel-Codes preisgeben solltest.
Nur so kann Dir ein Wissender evtl. weiterhelfen.