研究了一下emlog,下载了一个模板,使用过程中,发现没有登录可见的功能!
我想要的是管理员登录可见!
于是乎看了看官方文档:
可以直接使用的常量
变量、常量 类型 说明
Option::EMLOG_VERSION 常量 获得当前emlog版本号
ROLE 常量 当前用户角色(用户组):admin 管理员、writer 注册用户 、visitor 访客
ROLE_ADMIN 常量 admin 管理员
ROLE_WRITER 常量 writer 注册用户
ROLE_VISITOR 常量 visitor 访客
UID 常量 当前用户UID
BLOG_URL 常量 站点完整地址
ISLOGIN 常量 是否登录状态,true登录 false未登录
根据上面的文档,于是我写了一下代码!
主要是针对内容页实现登录可见!
PHP代码修改
找到文章模版echo_log.php文件。
打开,找到输出文章内容的变量$log_content!
修改一番:
<?php
if(ROLE == 'admin'){
echo styleContent($log_content);
}else{
echo hiddenContent($log_content,'<div class="hiddenContent">涉及到机密,管理员可见</div>');
}
?>

css代码美化
.hiddenContent{
font-size: 15px;
border: 1px dashed red;
color: red;
text-align: center;
padding: 25px 0;
}

PHP新增的函数
模版所在的module.php文件里,增加下面两个函数:
// 处理内容,直接输出
function styleContent($string){
$string = str_replace(array('[hide]','[/hide]'),'',$string);
$string = str_replace("<br />","</p><p>",$string);
echo $string;
}
// 隐藏内容,不可见
function hiddenContent($string, $prompt) {
$pattern = "/\[hide\](.*?)\[\/hide\]/";
$replacement = $prompt;
$result = preg_replace($pattern, $replacement, $string);
return $result;
}
使用方式
后台编辑文章的时候,将你需要隐藏的内容用[hide]和[/hide]括起来即可!