PHP MyBB Forum Language variablen

DreamGamer

Lieutenant
Registriert
Feb. 2017
Beiträge
543
Hallo, ich war bis jetzt in so vielen Forum und komme selbst nicht weiter. Ich möchte eine Language variable in meinem MyBB Forum hinzufügen wenn ich alles richtig gesehen habe muss dafür einfach unter /inc/language/english z.b. eine Name.lang.php hinzugefügt werden. Weshalb ich eine Datei namens navbar.lang.php dort drin habe die wie folgt aussieht:
Code:
<?php
/**
 * MyBB 1.8 English Language Pack
 * Copyright 2014 MyBB Group, All Rights Reserved
 *
 */

$l['navbar_home'] = "Home";
$l['navbar_forum'] = "Forum";
$l['navbar_contact'] = "Contact";
$l['navbar_more'] = "More";
$l['navbar_privacy_policy'] = "Privacy Policy";
$l['navbar_terms_of_use'] = "Terms of Use";
$l['navbar_team_members'] = "Team Members";

?>
Daraufhin habe ich in der Header datei eine zweite Navbar bzw. eine mainnavbar angelegt. Mit dieser Funktioniert auch alles wenn ich ganz normalen Text drin habe. Aber wenn ich dann probiere meine Language variable zu benutzen also so
Code:
<a class="active" href="{$mybb->settings['bburl']}"> {$lang->navbar_forum}</a>
Passiert einfach nichts am Ende sieht dann der Code so aus:
Code:
<a class="active" href="http://127.0.0.1/forum"></a>
Und ich verstehe nicht warum im Admin Dashbord unter Language wird navbar.lang.php erkannt ohne probleme auch mit jeder variable. Und wenn ich eine andere variable probiere also z.b. "{$lang->online_online_plural}" passiert am Ende auch nichts. Ich verzweifel sitze seit 2 Wochen in diesem Problem war bereits im MyBB Forum unterwegs kriege dort aber keine antwort bei Stackoverflow war ich auch unterwegs dort kriege ich auch keine antwort. Meine letzte Hoffung liegt in diesem Forum. Ich habe mit mitlerweile den ganzen Source Code von dem MyBB Forum durchgelesen und gemerkt das andere neue language Datei von z.b. Plugins initzialisiert werden. Deshalb habe ich diese Plugin geschrieben was eig. die navbar.lang.php laden sollte:
Code:
<?php
if(!defined("IN_MYBB"))
{
    die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

$plugins->add_hook("index_start", "addlanguageplugin");

function addlanguageplugin_info()
{  
    return array(
        "name"                  => "addLanguagePlugin",
        "description"           => "A plugin that add Language values that you want!",
        "website"               => "",
        "author"                => "DreamGamer",
        "authorsite"            => "",
        "version"               => "2.4",
        "compatibility"     => "18*",
        "codename"          => "addlanguageplugin",
    );
}

function addlanguageplugin_is_installed()
{
    global $db;
}

function addlanguageplugin_install()
{
    global $db, $lang, $mybb;
}

function addlanguageplugin_uninstall()
{
    global $db;
    
    rebuild_settings();
}

function addlanguageplugin_admin_lang_load()
{
    global $lang;
} 

function addlanguageplugin()
{
    global $db, $lang, $mybb, $templates, $theme, $addlanguageplugin;
    $lang->load("navbar");
}

function addlanguageplugin_templatelist()
{
    global $mybb;
}

Das sollte eig. einfach nur die navbar Datei laden funktioniert auch alles aber es wird mir immernoch nichts angezeigt. Ich bin für jede Antwort offen und würde auch lieber auf irgendeine andere Foren Software wechseln aber die guten kosten nurmal Geld und dieses habe ich nicht. Also ich freue mich über jede Hilfe.


MFG DreamGamer
 
Konkret kann ich Dir nicht helfen, da ich die Software nicht kenne. Nur ein allgemeiner Tip deswegen. Du sagst ja Du hast den Code gelesen, was schonmal gut ist, aber hast Du auch einen Debugger konfiguriert? Wenn nicht mach das mal und Stepp Dich mal Stück für Stück durch ein anderes Plugin durch, was die Language Datei benutzt, da fällt einem evtl. leichter das nachvollziehen als nur beim Lesen des Codes.

Alternative Software fällt mir noch phpbb ein.

Edit:Hier gibt’s noch etwas in der Doku: https://docs.mybb.com/1.6/Plugin-Methods/
 
Zuletzt bearbeitet:
OMG du hast mich auf die idee gebracht in einer anderen Datei einfach mal eine vorhandenen variable zu ersetzten also wo bereits {$lang->forumteamonline_stats} steht habe ich {$lang->navbar_home} wie oben hineingeschrieben und dort funktioniert es nicht das bedeutet aber das das language initzialisieren funktioniert hat jetzt ist nurnoch die Frage warum es in der Header Datei nicht funktioniert. Was meinst du mit Debugger konfiguriert? Und ich schaue gleich mal n die docs rein vllt. helfen diese mir noch weiter wenn nicht heißt es nochmal 10 - 30k zeilen lesen.


MFG DreamGamer
 
xDebug ist ein PHP Debugger, den musst auf dem Webserver und in Deiner Entwicklungsumgebung einrichten. Dann kannst Du den Programmablauf unterbrechen, Zeile für Zeil durchgehen, Dir Variableninhalte anschauen, Reihenfolge der Funktionsaufrufe (Callstack) anschauen etc. Einfach schauen was wo passiert.

Ich denke in einem anderen Plugin einfach auf Deine Language Variablen zugreifen geht nicht, dann musst Du in dem Plugin auch Deine Language Datei laden... In der Doku steht ja einer Stelle auch $lang->load("foobar"); Sowas muss in dem Plugin auch irgendwo stehen und das musst Du dann auch mit Deinem Namen ersetzen denke ich.
 
Also "$lang->load("navbar")" habe ich ja schon im Plugin in der addLanguageValue funktion. Und ich glaube ich bin einfach zu dumm aber ich bekomme XDebug nicht installiert nur über PHPStorm aber dort habe ich nurnoch n paar Tage die Testversion normalerweise benutze ich Sublime Text 3 darüber soll ich dann das Package XDebug installieren aber ich habe kein XDebug Package in Sublime vllt. sollte ich noch anmerken das ich Sublime nicht gekauft habe. Liegt es daran oder mache ich etwas falsch?

EDIT:
Mitlerweile habe ich XDebug installiert bekommen in Sublime ohne die gekaufte Version. Aber sobald ich auf Debugging Starten(Lauch Browser) klicke öffnet sich der browser mit der richtigen URL aber die Seite lädt der Breakingpoint wird ignoriert und in Sublime wird nichts angezeigt. Warum ist dies so?
 
Zuletzt bearbeitet:
Hast Du xDebug auf dem Webserver eingerichtet? Sagt phpinfo(), dass xdebug aktiv ist?

Ich kenne Sublime nicht, kenne xDebug nur mit Eclipse und phpStorm und da war es meist auch etwas frickelig, das richtig eingerichtet zu bekommen mit der richtigen xDebug Konfig und starten der Debug Session... Google spuckt aber einiges zu xdebug und sublime aus.

Hier gibts noch einen Wizard, der Dir die richtige Server Konfig generiert:
https://xdebug.org/wizard.php
 
Also in Sublime sehe ich die XDebug abteilung wenn ich unter XDebug gehe und Debuggen(Lauch Browser) aber es wird einfach nichts angezeigt. Und ja bei phpinfo wird alles richtig angezeigt z.b. wenn es PHP Fehler ist kommt im Browser etwas von XDebug aber mehr auch nicht irgendwie.


MFG DreamGamer


EDIT:
Jetzt nach einem PC Neustart werden mit in Sublime die kästen angezeigt von XDebug aber diese sind immer leer beim Debugen und der Breakpoint funktioniert auch nicht warum auch immer.


EDIT:
Habe jetzt alles nach dieser Anleitung gemacht die alles ziemlich einfach beschreibt. *LINK ENTFERNT Ich darf keine Links posten cool* Aber es geht immernoch nichts es wird einfach nichts in Sublime ausggegebn trotz das es in Sublime die XDebug area gibt.
 
Zuletzt bearbeitet:
Zurück
Oben