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


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

(22.10.2020, 19:22)Schnapsnase schrieb: 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.
Jeder hat seine eigene Vorgehensweise Entwicklungen/Modernisierungen auszuüben. Wenn meine Vorgehensweise auf mybb.de nicht gewünscht respektiere ich dieses selbstverständlich. Es bieten sich mri dann zwei Alternativen.
1. ich frage auch mybb.com
2. ich erspare mir die zeitliche Mühe und widme mich dem Beruf bzw. der Freizeit.

Mich verwundet Deine Aufforderung "Karten auf den Tisch legen", wo Du doch die aktuelle Testversion in Deinem Testforum hast und das von mir aufgezeigte Problem (untenstehend im Detail nochmals definiert) selbst nachvollziehen kannst.

Das PlugIn selbst funktioniert absolut Problemlos. Doch wie bei jeder Entwicklung/Modernisierung fallen einem auch noch die (un-)möglichen Szenarien ein.

Im Normalfall wird in der Tabelle mybb_users in der Spalte "language" nichts eingetragen, es wird automatisch die  Standardsprache verwendet. Wenn ein User seine Sprache jedoch z.B. auf Englisch stellt, wird die ausgewählte Sprache in der Spalte eingetragen.

Die generierte PN richtet sich nach der Sprachauswahl des Users und es wird derzeit verwendet:
"if language == english" dann tue versende PN in Englisch bzw. "if langauge != english" dann versende PN in Deutsch.
Geestern kam ich durch Zufall darauf, dass wenn ein Forum die Standardsprache English eingestellt hat und die meisten (alle) User diese verwenden, dann ist meine IF-Bedingung nicht mehr zutreffend, es würde bei allen die PN in Deutsch versenden.

Ergo, ist mein  derzeigter Lösungsansatz wie folgt:
übernehme ich bei der Installation die Standardsprache des Forums zu den Usern, dann würden meine IF-Definitionen zunächst einmal wieder korrekt funktionieren.

Gerade beim Schreiben dieser Message fällt mir auf:
Alternativ könnte man die Abfrage Verknüpfen mit der Abfrage von "my_bb->settings['language']" und der "my_bb->users['language']".
Ergo:
1. Standardsprache = Deutsch ungleich Usersprache = Englisch
2. Standardsprache = Englisch ungleich Usersprache = Deutsch
und viele Variationen mehr.

Würde mich freuen wenn Du zu den Wissenden gehörst und mir da eine Lösungsvariante aufzeigen könntest.


RE: IF-Bedingung für Boardsprache - itsmeJAY - 23.10.2020

Moin,

das erste was ich lese, mit einem Auge schlafend, ist der Beitrag hier am heutigen Tag. Deshalb frage ich mich was an diesem Thema so schwierig ist seit 2 Seiten? Toungue

Ich kennen den Code zwar nicht, aber nutz halt sowas wie:

PHP-Code:
if (!empty($mybb->user['language']) && $mybb->user['language'] != $mybb->settings['language'] ) {
// sende in der Sprache $mybb->user['language']
} else {
// sende in der Sprache $mybb->settings['language'] 



Mit dem Handy geschrieben, Syntaxfehler möglich.


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

(23.10.2020, 06:42)Gerti schrieb: Geestern kam ich durch Zufall darauf, dass wenn ein Forum die Standardsprache English eingestellt hat und die meisten (alle) User diese verwenden, dann ist meine IF-Bedingung nicht mehr zutreffend, es würde bei allen die PN in Deutsch versenden.

Warum sollte das so sein?
Du hast doch klar definiert, dass nur deutsch versendet wird, wenn nicht englisch eingestellt ist.
Ich komme da momentan nicht ganz mit - habe Deinen Code aber auch noch nicht gesehen.


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

(23.10.2020, 07:01)Schnapsnase schrieb: Warum sollte das so sein?
Du hast doch klar definiert, dass nur deutsch versendet wird, wenn nicht englisch eingestellt ist.
Ich komme da momentan nicht ganz mit - habe Deinen Code aber auch noch nicht gesehen.
Du liest und verstehst auch was ich geschrieben habe?

Du hast das PlugIn nicht erst seit gestern und kannst durchaus vor dem Posten den Code sehen. itsmeJAY hat den Code noch nicht gesehen und trägt sofort konstruktiv und zielgerichtet zur Lösungsfindung bei.

Wie ich im vorigen Beirag schrieb:
In alle meinen IF-Bedingungen ging ich leichtsinnigerweise immer von der Standardsprache Deutsch aus. Bin froh das mir dieser Irrglaube noch vor einer Veröffentlichung aufgefallen ist.

Wenn für ein PlugIn Sprachdateien in Deutsch und Englisch zur Verfügung stehen, muss auch davon ausgegangen werden dass die Standardsprache "wahlweise" eingestellt wird.

@itsmeJAY
besten Dank für den konstruktiven Tipp. werde es mal versuchen und berichten


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

(23.10.2020, 07:40)Gerti schrieb: ...tsmeJAY hat den Code noch nicht gesehen und trägt sofort konstruktiv und zielgerichtet zur Lösungsfindung bei.

Ja, er (itsmeJAY) hat mir auf dem Gebiet auch sehr viel voraus.
Ich muss viele Dinge erst hinterfragen, bevor ich mich an eine Lösung tasten kann.
Nun gut, die Lösung ist ja jetzt da...


RE: IF-Bedingung für Boardsprache - itsmeJAY - 23.10.2020

(23.10.2020, 08:05)Schnapsnase schrieb: Nun gut, die Lösung ist ja jetzt da...

keine Ahnung, wie gesagt: Ich habe dies noch fast schlafend mit dem Handy verfasst, vielleicht stimmt da auch was nicht Wink Da ist Gerti jetzt gefragt Big Grin


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

(23.10.2020, 08:37)itsmeJAY schrieb: Ich habe dies noch fast schlafend mit dem Handy verfasst,
 Ist ein Zeichen, dass Du schlafend mehr drauf hast, als ich im wachen Zustand. Big Grin 

Da ich die Thematik aber immer noch nicht richtig verstanden habe, noch keine Zeit hatte mir den Code genau anzusehen und Gerti meint, dass ich seine Beiträge nicht richtig lese und verstehe, wäre es mir sehr recht, wenn Deine Variante funktioniert. Wink


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

@itsmeJAY
Habe die Anweisung gestestet und es wird immer nur die Standardsprache verwendet.

#########

Da fällt mir hierzu mein Beitrag (siehe Nachtrag) dazu ein, dass ich die Variable
PHP-Code:
$my_bb->user['language'
(weil im PlugIn nicht auslesbar - warum eigentlich?) mit
PHP-Code:
$userlanguage = htmlspecialchars_uni($user['language']);  
umgesetzt habe und die Auswahl dann mit:
PHP-Code:
if ($userlanguage == "english") {
bzw.
if (
$userlanguage != "english") { 
einbindete.

#########

a) warum lässt sich im PlugIn die Variable
PHP-Code:
$my_bb->user['language'
nicht verwenden? Wäre das gelöst kann man auf "b" verzichten.

b) wie sollte/könnte die Variable
PHP-Code:
my_bb->users['language'
(um-)defniert werden, dass man sie in Deinem Lösungsvorschlag verwenden kann?


RE: IF-Bedingung für Boardsprache - itsmeJAY - 23.10.2020

(23.10.2020, 08:49)Gerti schrieb: Da fällt mir hierzu mein Beitrag (siehe Nachtrag) dazu ein, dass ich die Variable

dein "Beitrag" leitet auf "schwabbauer%20funk" weiter...

Es gibt übrigens keine Variable my_bb, sondern lediglich $mybb als Objekt und die entsprechenden Attribute.

Somit solltest du überprüfen, ob du wirklich $my_bb->user['language']  verwendest und dieses ggf. ersetzen. Zusätzlich könntest du in der Funktion oben $mybb global machen. 

Also, je nachdem wo du $mybb->user['language'] verwenden willst:


PHP-Code:
function myFunction() {
global 
$mybb;

var_dump($mybb->user['language']);


Das ist aber alles blind..... ein gewisser Code wäre nicht verkehrt um richtig weiterhelfen zu können.


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

1. Standardsprache ist Deutsch.
2. Standardsprache ist Englisch

Egal welche Sprache (Standard oder Englisch) der User analog oder entgegen der Standardsprache eingestellt hat, wird die PN immer in Deutsch generiert.

Hier der von dir angeregte Code in welchem das "var_dump" bereits berücksichtigt ist:
PHP-Code:
function myFunction() {
 global 
$mybb;
var_dump($mybb->user['language']);
}

if (!empty(
$mybb->user['language']) && $mybb->user['language'] != $mybb->settings['language'] ) {

$subject 'Englisch';
$body 'Hello english user';

} else {

$subject 'Deutsch';
$body 'Hallo deutscher Benutzer';


An welchen User die PN gesendet wird, wird im nachfolgendem array so
PHP-Code:
'toid' => array((int)$user['uid']), 
definiert. Vielleicht hilft dass, die IF-Bedingung funktioneller zu gestalten.

Mit diesem Beitrag (Nachtrag) hat es ja funktioniert, aber da wurde die $users['language'] (Inhalt umgewandet in Variable $userlanguage) verwendet.

Gebe zu, ich bin da schlcihtweg überfordert. Die Therorie sagt mir, dass dies doch umsetzbar sein muss, die Praxis stellt, zumindest für mich, eine (unüberwindbare?) Hürde dar.