我如何将独特的 CSS 样式应用于我的 Concrete 5.7 网站的一部分,仅供管理员用户使用?
2 回答
1
我不会假设管理员组的 ID 为 3,这样的代码很容易出错。更好地使用常量concrete5定义:
$u = new User();
$adminGroup = Group::getByID(ADMIN_GROUP_ID);
if ($u->inGroup($adminGroup)) {
...
}
您也可以通过其名称获取组,至少如果您不更改它;-)
$adminGroup = Group::getByName('Administrators');
基于您的代码的完整解决方案将如下所示:
<?php
$u = new User();
$adminGroup = Group::getByID(ADMIN_GROUP_ID);
$bodyClass = 'user-is-non-admin';
if ($u->inGroup($adminGroup)) {
$bodyClass = 'user-is-admin';
}
?>
<body class="<?=$bodyClass?>">
于 2016-02-10T08:26:32.103 回答
1
我发现的最好方法是<body>
根据用户是否是管理员将类应用于您的标签。
从 Concrete 5.7.5.6 开始,“ Administrators ”组的 ID 为 3,因此此代码应该可以工作:
<?php
$isAdminUser = !empty((new User())->getUserGroups()[3]);
$bodyClass = $isAdminUser
? 'user-is-admin'
: 'user-is-non-admin';
?>
<body class="<?= $bodyClass ?>">
然后你可以像这样写你的CSS......
.user-is-admin .alert { }
.user-is-non-admin .alert { }
于 2016-01-27T03:49:22.600 回答