MyBB.de Forum
Export-User > Sprachdatei für Frontend einbinden - 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: Export-User > Sprachdatei für Frontend einbinden (/thread-37480.html)



Export-User > Sprachdatei für Frontend einbinden - Gerti - 15.10.2020

Mal zwei Fragen zum PlugIn export_user
(Wobei das Nachstehende für alle PlugIn-Jungentwickler wichtig sein dürfte).

a) nach der Installation des PlugIn export_user steht die Sprachdatei im ACP für den Admin im Ordner ./inc/languages/sprache/admin/export_user.lang.php zur Verfügung.

Ich habe die Sprachdatei erweitert, um den User im ausgerufenen Template (Frontend) enstprechende Hinweise geben zu können.

Ergebnis:
In den Templates werden enthaltenen die Sprachvariablen nur im Backend, jedoch nicht im Frontend angezeigt.

Abhilfe:
Erstelle ich eine neue Sprachdatei in ./inc/languages/sprache/sprachdatei.lang.php, werden die Sprachvariablen sofort angezeigt. Dies setzt jedoch voraus, dass die Sprachvariable in der global.php im Abschnitt
PHP-Code:
// Load language 
eingebunden wird.

Mein Fragen:
Wie kann/muss man im PlugIn definieren,
1. dass die Sprachvariablen aus "a" für den User sichtbar werden
Alternativ:
2. dass die Sprachvariablen aus "b" für den User ohne Einbindung in die global.php funktioniert?

Das PlugIn zum Ansehen wie die Sprachdatei derzeit geladen wird steht hier zur verfügung.

Für mich ist die Lösungsfindung (von anderen PlugIns wird die Sprachdatei nicht in der "global.php" eingebunnen/geladen) eine unüberwindbare Mauer ist, während es für Programmierprofis vermutlich kein großes Hindernis darstellt.

Wäre nett wenn mit jemand mitteilen würde, was und wo ich im PlugIn (Link siehe oben) definieren muss um die Lösung  für "1" oder "2" zu erhalten.

Vorab besten Dank für jedwede Hilfestellung.


RE: Export-User > Sprachdatei für Frontend einbinden - itsmeJAY - 15.10.2020

(15.10.2020, 15:07)Gerti schrieb: Abhilfe:
Erstelle ich eine neue Sprachdatei in ./inc/languages/sprache/sprachdatei.lang.php, werden die Sprachvariablen sofort angezeigt. Dies setzt jedoch voraus, dass die Sprachvariable in der global.php im Abschnitt
PHP-Code:
// Load language 
eingebunden wird.

Mein Fragen:
Wie kann/muss man im PlugIn definieren,
1. dass die Sprachvariablen aus "a" für den User sichtbar werden

Du hast das schon richtig so gemacht. In den inc/languages/{sprache}/admin Ordner kommen nur die Sprachdateien, welche im Backend auch verfügbar sein sollen. Da kommt nichts rein, was im Frontend verfügbar gemacht werden soll.

(15.10.2020, 15:07)Gerti schrieb: Alternativ:
2. dass die Sprachvariablen aus "b" für den User ohne Einbindung in die global.php funktioniert?

Das kommt drauf an, wo du die Sprachdatei verwenden willst. In Abhängigkeit davon musst du die richtige Hook finden. Du könntest die Hook global_start dafür benutzen. Beispiel:

Im Plugin hinzufügen:

PHP-Code:
$plugins->add_hook("global_start""global_own_lang");

function 
global_own_lang(){
global 
$lang;
$lang->load("sprachdatei"); //ohne den Zusatz "lang.php" Heißt deine Datei also exportzusatz.lang.php, schreibst du hier nur exportzusatz rein.


Du kannst deine definierten Variablen anschließend wie folgt in PHP benutzen:
PHP-Code:
$lang->sprachVariable

bzw. in Templates so:

PHP-Code:
{$lang->sprachVariable

Ungetestet, einfach runtergeschrieben.

Gruß


RE: Export-User > Sprachdatei für Frontend einbinden - Gerti - 15.10.2020

Es funktioniert!

Besten Dank für die Unterstützung/Hilfestellung.


RE: Export-User > Sprachdatei für Frontend einbinden - itsmeJAY - 15.10.2020

(15.10.2020, 17:22)Gerti schrieb: Es funktioniert!

Hast du etwa etwas anderes erwartet?  Wink


RE: Export-User > Sprachdatei für Frontend einbinden - Gerti - 20.10.2020

Deine Kompetenz steht außer Frage.

Ich wollte dies in einem anderen PlugIn gleichfallls so verwirklichen, was aber fehl schlug.
Anstelle:
PHP-Code:
$plugins->add_hook("global_start", "global_own_lang");

function global_own_lang(){
global $lang;
$lang->load("sprachdatei"); //ohne den Zusatz "lang.php" Heißt deine Datei also exportzusatz.lang.php, schreibst du hier nur exportzusatz rein.
}  
habe ich nach einigen Versuchen dies
PHP-Code:
function ausführungsoption() {
  
  
global $db$mybb$lang;

  $lang->load("sprachdateiname"); 
versucht (Sprachdatei nach Start der PlugIn-Funktion laden), und siehe da es funktionierte. Somit habe ich auch Deinen Lösungsvorschlag neu umgesetzt und es funktioniert perfekt.

Danke für die Hilfestellungen.


RE: Export-User > Sprachdatei für Frontend einbinden - itsmeJAY - 20.10.2020

Ja, ist natürlich abhängig von der Hook die verwendet wird.


RE: Export-User > Sprachdatei für Frontend einbinden - Gerti - 20.10.2020

(20.10.2020, 12:11)itsmeJAY schrieb: Ja, ist natürlich abhängig von der Hook die verwendet wird.

Dann war es aus miener Sicht reienr Zufall das es bei mir gelungen ist.

Wäre jemand bereit, mir die Hintergrunde bzgl. "abhängig von der Hook die verwendet wird" hinsichtlich wie, was warum, wieso, weshalb etc. erläuteren? Ich würde gerne das Thema verstehen, damit man das auch in seiner (Aus-)Wirkung händeln kann. Es bringt ja nichts, mit Zufallstreffer (wie bei meinem Anliegen) zurecht zu kommen.