MyBB.de Forum

Normale Version: Menüpunkt nur für bestimmte Gruppen anzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi, ich komm einfach nicht weiter.
Ich weiß wie man neue Seiten erstellt und wie man die Seite unaufrufbar für bestimmte Gruppen macht, aber wie blendet man bereits den Menüpunkt aus?

Ich hab versucht im header template (ist ja html) durch einfügen von php auszublenden, aber es kann den befehl nicht so verarbeiten wie direkt in einer php-datei.

Der Befehl:
Code:
if($mybb->usergroup['gid'] != 1 and $mybb->usergroup['gid'] != 2 and $mybb->usergroup['gid'] != 7)
{ .............}

lg
Du kannst in der global.php eine entsprechende Abfrage einsetzen, bevor das Template header aufgerufen wird. Innerhalb der if-Abfrage kannst Du eine Variable für den Link festlegen und HTML nutzen. Diese Variable setzt Du dann im Template header an entsprechender Stelle ein.
Danke für deine Antwort, das mit der Variable versteh ich grad nicht ganz, wie du das meinst.

lg
Beispiel:
PHP-Code:
if($mybb->usergroup['gid'] != "1")
{
   
$Dein_Link "<li>hier kommt der <a href=\"URL\">HTML-Code</a> für den Link rein</li>";
}

eval(
"\$header = \"".$templates->get("header")."\";"); 
Dann setze $Dein_Link in das Template header in den Menübereich ein.
Hi,
ich mag einen Menüpunkt für die Usergruppen 4 und 7 freigeben, außerdem soll man den Menüpunkt auch sehen, wenn man eine der beiden Gruppen nur als zusätzöiche Gruppe hat.
Wie ist das möglich? Mit einer

PHP-Code:
if($mybb->usergroup['gid'] == "4")

Sehe ich bspw. gar nichts, obwohl ich Gruppe 4 als Standart habe.

King Louis

Deine IF-Abfrage müsste dann wie folgt lauten:
PHP-Code:
if($mybb->user['usergroup'] == "4" || $mybb->user['usergroup'] == "7"

Wobei in dem Falle nur die primäre Gruppe geprüft würde.
Und sekundäre Gruppen, wäre es aufwändig?

King Louis

Dafür gibt es verschiedene Funktionen. Falls du die PluginLibrary bei dir installiert hast, könntest du deren "is_member" Funktion nutzen. Ansonsten folgende einfügen (am besten in die "inc/functions.php"):
PHP-Code:
function user_in_group($user$allowedgroups)
{
    
$allowedgroups explode(","$allowedgroups);
    
$groups explode(','$user['additionalgroups']);
    if(
is_array($groups))
        
array_push($groups$user['usergroup']);
    else
        
$groups = array($user['usergroup']);

    
$in false;
    foreach (
$groups as $group) {
        if(
in_array($group$allowedgroups)) {
           
$in true;
        }
    }
    return 
$in;


Die Nutzung davon sähe dann wie folgt aus:
PHP-Code:
if(user_in_group($mybb->user"4,7")) 

Das ganze ist aber sicherlich noch verbesserungswürdig Wink
Danke, hat alles funktioniert!