Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Benutzergruppen abhängiger Link im User-CP
#1
Hallo,

wie der Betreff schon andeutet, möchte ich per Plugin einen Link im Benutzer-CP erzeugen, der aber abhängig von der Benutzergruppe erscheint oder eben nicht.

Ich schaffe es nach folgendem Prinzip, einen entsprechend abhängigen Link zu erstellen, der aber dann im Benutzer-CP direkt unter Benutzer-CP Home erscheint:
PHP-Code:
$plugins->add_hook('usercp_menu''mein_plugin_run');
....
function 
mein_plugin_activate()
{.....

$template = array(
    
"title"        => "mein_plugin_usercp_nav_gallery",
    
"template"    => "<tr><td class=\"trow1 smalltext\"><a href=\"meinPlugin.php?username={\$mybb->user[\'username\']}\" class=\"usercp_nav_item usercp_nav_usersgallery\">{\$lang->ucp_nav_usergallery}</a></td></tr>",
    
"sid"        => -1
);
....
}

function 
mein_plugin_run()
{
....
    if (
$mybb->usergroup['cancp'])
    {
        eval(
"\$usercpmenu .= \"".$templates->get("mein_plugin_usercp_nav_gallery")."\";");
    }
....


Wie gesagt, das funktioniert soweit. Ich würde den Link aber gerne im Bereich des Templates usercp_nav_misc unterbekommen.
Hierzu hatte ich in dem Plugin schon probiert, eine Variable in dem Template usercp_nav_misc zu erzeugen und diese dann in der run-Funktion des Plugins abhängig von der Benutzergruppe mit folgendem Inhalt zu füllen
Code:
<tr><td class=\"trow1 smalltext\"><a href=\"meinPlugin?username={\$mybb->user['username']}\" class=\"usercp_nav_item usercp_nav_usersgallery\">{\$lang->ucp_nav_usergallery}</a></td></tr>
Die Variable ist im Template usercp_nav_misc vorhanden, aber sie wird nicht mit Leben gefüllt. Es erscheint kein Link, eine Fehlermeldung gibt es aber auch nicht.

Über Ideen und Tipps würde ich mich freuen. Wink
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#2
Schau mal in der inc/functions_user.php ~Zeile 400, da werden die Teile der Menus selber als Hook "eingeharkt". Mithilfe der Priorität könntest du die gewünschte Stelle aussuchen und dann direkt so etwas benutzen:
PHP-Code:
eval("\$usercpmenu .= \"".$templates->get("xxx")."\";"); 
Alternativ beim Hook usercp_menu_built das Menü noch nachträglich verändern, z.B. mit str_replace.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
(29.09.2011, 18:56)StefanT schrieb: Mithilfe der Priorität könntest du die gewünschte Stelle aussuchen und dann direkt so etwas benutzen:
PHP-Code:
eval("\$usercpmenu .= \"".$templates->get("xxx")."\";"); 
Da musste ich erst ein wenig suchen, schlussendlich war das aber genau der richtige Tipp. Danke Dir!

(29.09.2011, 18:56)StefanT schrieb: Alternativ beim Hook usercp_menu_built das Menü noch nachträglich verändern, z.B. mit str_replace.
Wie das umgesetzt wird hätte mich interessiert, habe es aber leider nicht hin bekommen.

viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren