Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Modifikation an global.php auslagern...
#1
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
Man kann nicht alles haben - zumindest nicht gleichzeitig.
Zitieren
#2
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
Zitieren
#3
Getestet und zum Ergebnis gekommen, dass es nichts hilft...
Man kann nicht alles haben - zumindest nicht gleichzeitig.
Zitieren
#4
Wo wird die Variable denn benutzt? Wird der Hook vorher ausgeführt?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Ä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
Man kann nicht alles haben - zumindest nicht gleichzeitig.
Zitieren
#6
Dann habe ich auch keine Idee mehr. Normalerweise liegt es am oben genannten global-Problem.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Einbindung der global.php itsmeJAY 4 2.261 26.04.2020, 13:39
Letzter Beitrag: itsmeJAY
  code auslagern hkkp 14 4.813 21.04.2015, 14:47
Letzter Beitrag: hkkp
  "Neue Seite" Den Inhalt auslagern und pflegen? Stronzo 8 3.990 12.12.2008, 00:25
Letzter Beitrag: ows