«

EMLOG实现私密评论仅博客可见的方法

时间:2019-10-2 09:00     作者:博客志     分类: emlog教程


不管是EMLOG原生评论系统还是第三方社会化评论插件,目前都无法实现私密评论的功能,但是我们可以通过手动操作的方法实现这一功能,现在就来为大家分享一下EMLOG实现私密评论仅博客可见的方法。

一、操作步骤

1、打开模板文件module.php,添加如下代码

<?php
//私密评论
function comcontent($pl) {
    $patterns = array ("/@/","/\[blockquote\](.*?)\[\/blockquote\]/","/\[F(([1-4]?[0-9])|50)\]/"); 
    $replace = array ('回复了','<blockquote>$1</blockquote>','<img alt="表情" src="'.TEMPLATE_URL.'img/face/$1.webp" />'); 
    $pl=preg_replace($patterns, $replace, $pl);
    return $pl;
}
// 判断是否为私密评论
function isPrivateComment($comments){
    return(strstr($comments,"[私密评论]"));
}
// 显示私密评论
function showPrivateComment($comments,$post_email,$current_email){
    // 如果是私密评论 是管理员身份或者发布私密者本身才会显示
    if(isPrivateComment($comments)){
        if($post_email==$current_email or ROLE == ROLE_ADMIN){
            return $comments;
        }else{
            return "<font color='red'>##私密评论仅博主可见##</font>";
        }
    }else{
        return $comments;
    }
}
?>

2、将下面的JS代码添加到模板公用JS里

function addNumber(a) {
    document.getElementById("comment").value += a
}

3、继续打开module.php,找到如下代码

<?php echo $comment['content']; ?>

4、将上面的代码替换为如下代码

<?php echo showPrivateComment(comcontent($comment['content']),$comment['mail'],$_COOKIE["postermail"]); ?>

5、打开模板文件echo_log.php,在评论框下合适的位置添加如下按钮即可

<a  href="javascript:addNumber('[私密评论]')"><i class="fa fa-lock"></i></a>

二、原理解析

本教程可以实现用户评论的私密内容只能用户和管理员才能看见,别人是看不见的,前台会显示私密评论仅博客可见的字样

三、注意事项

本教程第3步,根据模板的不同所要查找的代码不同,请根据实际情况自行修正