MyBB.de Forum
Menüpunkt nur für bestimmte Gruppen anzeigen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.6.x (https://www.mybb.de/forum/forum-58.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-59.html)
+---- Thema: Menüpunkt nur für bestimmte Gruppen anzeigen (/thread-26675.html)



Menüpunkt nur für bestimmte Gruppen anzeigen - me.lina - 17.10.2012

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


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - Jockl - 17.10.2012

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.


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - me.lina - 17.10.2012

Danke für deine Antwort, das mit der Variable versteh ich grad nicht ganz, wie du das meinst.

lg


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - Jockl - 17.10.2012

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.


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - Juventiner - 03.11.2012

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.


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - King Louis - 03.11.2012

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.


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - Juventiner - 03.11.2012

Und sekundäre Gruppen, wäre es aufwändig?


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - King Louis - 03.11.2012

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


RE: Menüpunkt nur für bestimmte Gruppen anzeigen - Juventiner - 04.11.2012

Danke, hat alles funktioniert!