Hallo, Gast! (Registrieren)

Letzte Ankündigung: Sicherheitsupdate: MyBB 1.8.24 veröffentlicht (09.08.20)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Export-User > Sprachdatei für Frontend einbinden
#1
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.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#2
(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ß
Zitieren
#3
Es funktioniert!

Besten Dank für die Unterstützung/Hilfestellung.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#4
(15.10.2020, 17:22)Gerti schrieb: Es funktioniert!

Hast du etwa etwas anderes erwartet?  Wink
Zitieren
#5
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.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#6
Ja, ist natürlich abhängig von der Hook die verwendet wird.
Zitieren
#7
(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.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Sprachdatei einbinden in eigenem Plugin Wolffire 4 952 01.06.2018, 14:28
Letzter Beitrag: Wolffire
  Kalender ICal export Dulla 2 1.182 18.02.2014, 16:25
Letzter Beitrag: Dulla
  iCal-Export des Kalenders und die Sommerzeit icarus 2 2.215 27.09.2011, 09:26
Letzter Beitrag: icarus