Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.27 veröffentlicht (22.06.21)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
IF-Bedingung für Boardsprache
#1
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.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#2
PHP-Code:
if($mybb->settings['bblanguage'] == "english")
{
 
//do it!

Zitieren
#3
Supi, funktioniert perfekt.

Besten Dank.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#4
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.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#5
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?
Zitieren
#6
(22.10.2020, 15: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.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#7
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.
Zitieren
#8
(22.10.2020, 15: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.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#9
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?
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.27 | PHP: 7.4.19 | SQL: 5.7.34
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#10
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.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  IF-Bedingung in "message" möglich!? Gerti 11 1.014 25.10.2020, 13:51
Letzter Beitrag: Gerti