MyBB.de Forum

Normale Version: Modifikation an global.php auslagern...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Schönen guten Abend, alle Mann zusammen.

Ich hätte da mal eine kleine Frage bzw. ein kleines Problemchen, wo ich im Moment nicht weiterkomme. Deshalb hoffe ich einfach mal, dass mir hier jemand helfen kann.
Und zwar hatte ich vor Kurzen in meinem Forum die global.php ein wenig modifiziert, um zwei weitere global gültige Templates einzufügen (bzw. diese mit einer normalen PHP-Variable aufrufen zu können.
Der PHP-Code in der global.php ca. ab der Zeile 330 sieht in etwa so aus:
PHP-Code:
// Load appropriate welcome block for the current logged in user

if($mybb->user['uid'] != 0)

{

    
// User can access the admin cp and we're not hiding admin cp links, fetch it

    
if($mybb->usergroup['cancp'] == && $mybb->config['hide_admin_links'] != 1)

    {

        eval(
"\$admincplink = \"".$templates->get("header_welcomeblock_member_admin")."\";");

    }

    

    if(
$mybb->usergroup['canmodcp'] == 1)

    {

        eval(
"\$modcplink = \"".$templates->get("header_welcomeblock_member_moderator")."\";");

    }

    

    
// Format the welcome back message

    
$lang->welcome_back $lang->sprintf($lang->welcome_back$mybb->user['username'], $lastvisit);



    
// Tell the user their PM usage

    
$lang->welcome_pms_usage $lang->sprintf($lang->welcome_pms_usagemy_number_format($mybb->user['pms_unread']), my_number_format($mybb->user['pms_total']));

    eval(
"\$welcomeblock = \"".$templates->get("header_welcomeblock_member")."\";");

    eval(
"\$welcomeblock_navi = \"".$templates->get("header_welcomeblock_member_navi")."\";");
}

// Otherwise, we have a guest

else

{

    eval(
"\$welcomeblock = \"".$templates->get("header_welcomeblock_guest")."\";");

    eval(
"\$welcomeblock_navi = \"".$templates->get("header_welcomeblock_guest_navi")."\";");

So weit, so gut. Es hat ganz normal funktioniert, wenn ich die Templates mit
Code:
{$welcomeblock_navi}
aufgerufen habe.

Nur bin ich nun der Meinung, dass es nicht so gut ist, wenn ich in den Dateien direkt rumpfusche. Deshalb wollte ich das Ganze in eine Plugin-Datei auslagern. Der Code dazu sieht so (in gekürzter Form) aus:
PHP-Code:
$plugins->add_hook("global_start""diverses_global");

function 
diverses_global()
{
    global 
$mybb$templates;
    if(
$mybb->user['uid'] != 0)

    {
        eval(
"\$welcomeblock_navi = \"".$templates->get("header_welcomeblock_member_navi")."\";");
    }
    else
    {
        eval(
"\$welcomeblock_navi = \"".$templates->get("header_welcomeblock_guest_navi")."\";");
    }
    

Mein Problem ist nun lediglich, dass hier gar nichts passiert, wenn ich das Plugin aktiviere. Jedoch habe ich keine Ahnung, warum. Könnte vielleicht hier jemand helfen bzw. hat hier jemand die passende Lösung für das Problem?

Da ich mich mit dem Plugin-System vom MyBB bisher noch nicht sehr selber auseinandergesetzt habe, hoffe ich, dass mir hier jemand ein wenig unter die Arme greifen kann, sodass ich doch auch mit der Zeit etwas Ahnung von dem Ganzen bekomme. Wink

Gruß,
Chris / CKOne. Smile
Ich bin jetzt kein Profi was diese MyBB Plugins angeht aber könnte es sein, das die Variable $welcomeblock_navi noch nciht deklariert sit?!

vrsuch mal das:

PHP-Code:
global $mybb$templates

durch das:

PHP-Code:
global $mybb$templates,$welcomeblock_navi

zu ersetzten.

Vielleicht hilfts Wink

MfG
Getestet und zum Ergebnis gekommen, dass es nichts hilft...
Wo wird die Variable denn benutzt? Wird der Hook vorher ausgeführt?
Ähm... Die Variable wird im Header-Template aufgerufen.
Deine zweite Frage hab ich jetzt jedoch leider nicht ganz verstanden. Wovor soll der Hook ausgeführt werden? Huh
Dann habe ich auch keine Idee mehr. Normalerweise liegt es am oben genannten global-Problem.