MyBB.de Forum

Normale Version: Anzeige gruppenabhängig - nur wie?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

bin es vom wBB gewohnt, dass man über diverse if-then-else-Abfragen die Anzeige von Grafiken steuern kann. Wie schaut das beim MyBB aus? Möchte je anch Gruppe (Gast, Registriert, Admin) unterm Header eine etwas andere Navi anzeigen, wie stell ich das am besten an. Wink

Greetz & THX
ETESTS
Hallo ETESTS,
Das kannst du in der global.php mit ein "bisschen" php Code machen. Dabei hängt das bisschen je nachdem vom Umfang ab.
Hier eine Rohschablone wie du so etwas machen könntest:

PHP-Code:
if ($mybb->user['uid'] != '0')
{
    
// User ist kein Gast, aber wir wissen noch keine Usergruppe
    
$str "$mybb->user['additionalgroups']";
    
$array explode(','$str);
    foreach (
$array as $addtionalgroup)
    {
        if (
$mybb->user['usergroup'] == '4' || $addtionalgroup == '4')
        {
            
# User ist ein Admin
            
eval("\$adminnavi =\"".$tempalte->get("headernavigation_admin")."\";");
        }
        else
        {
            
# User ist ein normaler User
            
$adminnavi '';
            eval(
"\$usernavi =\"".$tempalte->get("headernavigation_user")."\";");
        }
    }
}
else
{
    
// User ist ein Gast und schon in einer Usergruppe
    
$adminnavi '';
    
$usernavi '';
    eval(
"\$guestnavi =\"".$tempalte->get("headernavigation_guest")."\";");

Jetzt kannst du dir Beispielsweiße Tempaltes erstellen. Die Maske ist beliebig erweiterbar, auch wenn es jetzt vielleicht etwas nach Wirrwarr aussieht. Getestet ist das ganze allerdings nicht.
Wie gut, dass ich nur noch 2 zusätzliche Gruppen zu den Standardgruppen habe. *g*

Danke - werde es mal versuchen. Smile

Im wBB wars so:
PHP-Code:
<if($wbbuserdata['userid'])><then><if(!$wbbuserdata['a_acp_or_mcp'])><then><img src="{$style['imagefolder']}/top_left_user.gif" border="0" alt="" title="" /></then></if><a href="usercp.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_usercp.gif" border="0" alt="{$lang->items['LANG_GLOBAL_USERCP']}title="{$lang->items['LANG_GLOBAL_USERCP']}/></a><if($wbbuserdata['receivepm']==1)><then><a href="pms.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_pms.gif" border="0" alt="{$lang->items['LANG_GLOBAL_PMS']}title="{$lang->items['LANG_GLOBAL_PMS']}/></a></then></if></then><else><img src="{$style['imagefolder']}/top_left.gif" border="0" alt="" title="" /><a href="register.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_register.gif" border="0" alt="{$lang->items['LANG_GLOBAL_REGISTER']}title="{$lang->items['LANG_GLOBAL_REGISTER']}/></a></else></if><a href="../page/"><img src="{$style['imagefolder']}/top_website.gif" border="0" alt="Zur Website" title="Zur Website" /></a><a href="calendar.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_calendar.gif" border="0" alt="{$lang->items['LANG_GLOBAL_CALENDAR']}title="{$lang->items['LANG_GLOBAL_CALENDAR']}/></a><a href="memberslist.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_members.gif" border="0" alt="{$lang->items['LANG_GLOBAL_MEMBERSLIST']}title="{$lang->items['LANG_GLOBAL_MEMBERSLIST']}/></a><a href="team.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_team.gif" border="0" alt="{$lang->items['LANG_GLOBAL_TEAM']}title="{$lang->items['LANG_GLOBAL_TEAM']}/></a><a href="search.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_search.gif" border="0" alt="{$lang->items['LANG_GLOBAL_SEARCH']}title="{$lang->items['LANG_GLOBAL_SEARCH']}/></a><a href="misc.php?action=faq&amp;sid=$session[hash]"><img src="{$style['imagefolder']}/top_faq.gif" border="0" alt="{$lang->items['LANG_GLOBAL_FAQ']}title="{$lang->items['LANG_GLOBAL_FAQ']}/></a><if($wbbuserdata['a_can_use_acp']==&& $wbbuserdata['a_acp_or_mcp']==1)><then><a href="acp/index.php" target="_blank"><img src="{$style['imagefolder']}/top_acp.gif" border="0" alt="{$lang->items['LANG_GLOBAL_ACP']}title="{$lang->items['LANG_GLOBAL_ACP']}/></a></then></if><if($wbbuserdata['a_can_use_acp']==&& $wbbuserdata['a_acp_or_mcp']==0)><then><a href="acp/index.php" target="_blank"><img src="{$style['imagefolder']}/top_modcp.gif" border="0" alt="{$lang->items['LANG_GLOBAL_MODCP']}title="{$lang->items['LANG_GLOBAL_MODCP']}/></a></then></if><a href="index.php?sid=$session[hash]"><img src="{$style['imagefolder']}/top_start.gif" border="0" alt="{$lang->items['LANG_GLOBAL_TOINDEX']}title="{$lang->items['LANG_GLOBAL_TOINDEX']}/></a><if(!$wbbuserdata['userid'])><then><img src="{$style['imagefolder']}/top_right.gif" border="0" alt="" title="" /></then></if><if($wbbuserdata['userid'])><then><if(!$wbbuserdata['a_acp_or_mcp'])><then><img src="{$style['imagefolder']}/top_right_user.gif" border="0" alt="" title="" /></then></if></then></if> 
Hab deinen Code so umgesetzt:
PHP-Code:
eval("\$htmldoctype = \"".$templates->get("htmldoctype"10)."\";");
//Abfrage für die TopNavi
if ($mybb->user['uid'] != '0')
{
    
// User ist kein Gast, aber wir wissen noch keine Usergruppe
    
$str "$mybb->user['additionalgroups']";
    
$array explode(','$str);
    foreach (
$array as $addtionalgroup)
    {
        if (
$mybb->user['usergroup'] == '4' || $addtionalgroup == '4')
        {
            
// User ist ein Admin
            
eval("\$topnavi_admin =\"".$tempalte->get("topnavi_admin")."\";");
        }
        else
        {
            
// User ist ein normaler User
            
$adminnavi '';
            eval(
"\$topnavi_normal =\"".$tempalte->get("topnavi_normal")."\";");
        }
    }
}
else
{
    
// User ist ein Gast und schon in einer Usergruppe
    
$adminnavi '';
    
$usernavi '';
    eval(
"\$topnavi_guest =\"".$tempalte->get("topnavi_guest")."\";");
}
//Ende der Navi-Abfrage
eval("\$header = \"".$templates->get("header")."\";"); 

Jedoch kommt dann beim Aufruf des Forums:
Code:
Fatal error: Call to a member function on a non-object in /home/rxdreusr/www.meine-domain.de/forum/global.php on line 348

In dieser Zeile steht:
Code:
eval("\$topnavi_admin =\"".$tempalte->get("topnavi_admin")."\";");

Hab bloß keinen Schimmer, wo mein Fehler liegt. Bin für die Erleuchtung dankbar. Smile

Grüße
Es muss in allen drei eval-Zeilen "template" statt "tempalte" heißen.
Bricktop schrieb:Es muss in allen drei eval-Zeilen "template" statt "tempalte" heißen.

*peinlich, peinlich*
*duck udn weg*

Danke dir. Wink
ETESTS

PS: Garlant trägt schuld. Wink
PPS: Nochmal Korrektur, es muss "templates" heißen.