如何在Concrete 5.7中为管理员用户应用不同的CSS样式?

时间:2016-01-27 03:49:23

标签: concrete5 concrete5-5.7

如何为管理员用户将具体的CSS样式应用于Concrete 5.7网站的某个部分?

2 个答案:

答案 0 :(得分:1)

我发现的最佳方式是根据用户是否为管理员,在您的<body>代码中应用课程。

从具体的5.7.5.6开始,管理员&#39; group的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 { }

答案 1 :(得分:1)

我不会假设管理员组的ID为3,这样的代码容易出错。更好地使用常量concrete5定义:

use Crypt::OpenSSL::AES;
use Crypt::CBC;
use MIME::Base64;


#---------------------------------------------------------------------------
sub InitAES
#---------------------------------------------------------------------------
{
 my ($k) = @_;

return (Crypt::CBC->new(
-key    => $k,
-cipher => "Crypt::OpenSSL::AES"
));
}

#---------------------------------------------------------------------------
 sub EnCryptAES
#---------------------------------------------------------------------------
   {
 my ($d, $k) = @_;
if (!defined($d)) { return(0); }
if (!defined($k)) { return(0); }

 $cipher = &InitAES($k);

return (encode_base64($cipher->encrypt($d)));
}

#---------------------------------------------------------------------------
sub DeCryptAES
#---------------------------------------------------------------------------
{
 my ($e, $k) = @_;
 if (!defined($e)) { return(0); }
 if (!defined($k)) { return(0); }

 $cipher = &InitAES($k);
 return ($cipher->decrypt(decode_base64($e)));
}

您也可以按名称获取该组,至少如果您不进行更改; - )

$u = new User();
$adminGroup = Group::getByID(ADMIN_GROUP_ID);
if ($u->inGroup($adminGroup)) {
   ...
}

基于您的代码的完整解决方案将如下所示:

$adminGroup = Group::getByName('Administrators');