1

我如何将独特的 CSS 样式应用于我的 Concrete 5.7 网站的一部分,仅供管理员用户使用?

4

2 回答 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 回答