Joomla:根据用户组添加页面类

Joomla:根据用户组添加页面类,joomla,usergroups,Joomla,Usergroups,约姆拉2.5 是否有一种方法可以将特定的css类添加到正文中,该类特定于登录用户的组 例如,我有四个用户组:个人特优、个人标准、公司特优和公司标准。我想要一些像: <body class="individual-standard"> <?php $user =& JFactory::getUser(); $pageclass =""; if(array_key_exists('Reg-D group ID',$user->gr

约姆拉2.5 是否有一种方法可以将特定的css类添加到正文中,该类特定于登录用户的组

例如,我有四个用户组:个人特优、个人标准、公司特优和公司标准。我想要一些像:

<body class="individual-standard">
<?php $user =& JFactory::getUser();
    $pageclass ="";
    if(array_key_exists('Reg-D group ID',$user->groups)){
    $pageclass .="reg-d";
    } else if(array_key_exists('Reg-C group ID',$user->groups)){
         $pageclass .=" reg-c";
         } else if(array_key_exists('Reg-B group ID',$user->groups)){
              $pageclass .=" reg-b";
              } else if(array_key_exists('Reg-A group ID',$user->groups)){
                   $pageclass .=" reg-a";
                   }
?>
这是body标签:

<body id="ff-<?php echo $fontfamily; ?>" class="<?php echo $fontstyle; ?> <?php echo $pstyle; ?> <?php echo $bgstyle; ?> <?php echo $pageclass; ?> iehandle">
<body id="ff-<?php echo $fontfamily; ?>" class="<?php echo $fontstyle; ?>  <?php echo $pstyle; ?> <?php echo $bgstyle; ?> <?php echo $pageclass; ?> iehandle">

首先获取用户组,然后按照下面的代码设置类-

在模板文件夹的index.php中

$user =& JFactory::getUser();
    $pageclass ="";
    if(array_key_exists('individual premium',$user->groups)){
    $pageclass .="individual-premium";
    }
    if(array_key_exists('corporate premium',$user->groups)){
    $pageclass .=" corporate-premium";
    }
     if(array_key_exists('corporate standard',$user->groups)){
    $pageclass .=" corporate-standard";
    }
     if(array_key_exists('individual standard',$user->groups)){
    $pageclass .=" individual-standard";
    }

       <body id="ff-<?php echo $fontfamily; ?>" class="<?php echo $fontstyle; ?>  <?php echo $pstyle; ?> <?php echo $bgstyle; ?> <?php echo $pageclass; ?> iehandle">
$user=&JFactory::getUser();
$pageclass=“”;
如果(数组\密钥\存在('individual premium',$user->groups)){
$pageclass.=“个人保险费”;
}
如果(数组\密钥\存在('corporate premium',$user->groups)){
$pageclass.=“公司溢价”;
}
如果(数组\键\存在('corporate standard',$user->groups)){
$pageclass.=“公司标准”;
}
如果(数组\键\存在('单个标准',$user->groups)){
$pageclass.=“个人标准”;
}
考虑到“隐藏”字段,“较低”的用户组将隐藏更多,“较高”的用户组将隐藏更少的字段(最高值为零),最好以金字塔的方式将其“独占”,例如:

<body class="individual-standard">
<?php $user =& JFactory::getUser();
    $pageclass ="";
    if(array_key_exists('Reg-D group ID',$user->groups)){
    $pageclass .="reg-d";
    } else if(array_key_exists('Reg-C group ID',$user->groups)){
         $pageclass .=" reg-c";
         } else if(array_key_exists('Reg-B group ID',$user->groups)){
              $pageclass .=" reg-b";
              } else if(array_key_exists('Reg-A group ID',$user->groups)){
                   $pageclass .=" reg-a";
                   }
?>

其中$user->groups变量返回用户组ID


我不确定代码,你觉得怎么样?

谢谢@Irfan。我刚刚更新了我的问题。我需要添加两个额外的用户组。我尝试了你的原始代码,但我不确定如何使用@user1670411:我已经更新了代码。如果没有,但是,如果你可以发布完整的代码,那就太好了。你是如何在你的应用程序中应用我的代码的?抱歉,但这仍然不起作用。我尝试了与您完全相同的代码。@user1670411:好的,您能给我$groups=&JFactory::getUser()->groups;打印($groups)以及更新后的输出;对不起,我的PHP知识有限。如何给出输出?关于编码标准的提示:
否则,如果两个单词作为
违反了PSR-12标准,则应将
elseif
作为一个单词来编写。由于您的条件块正在使用
elseif
语句,因此只会追加一个字符串;出于这个原因,我建议使用一个查找数组,该数组将允许对数据进行更简洁的转换——这也将更易于阅读和维护。因此,查找和转换可以如下所示:另外,我想提及另一个PSR-12冲突: