«

EMLOG管理后台添加昵称屏蔽和网址删除的功能

时间:2019-10-13 15:55     作者:博客志     分类: emlog教程


相信很多站长都有过和垃圾评论做斗争的经历,作为EMLOG站长来说,由于设计上的原因除了修改或删除之外站长无法更进一步的对垃圾评论进行处理,现在就来为大家分享一个在EMLOG后台评论管理界面增加昵称屏蔽和网址删除的方法,帮助更多EMLOG站长更好的维护自己的网站。

一、操作步骤

1、打开/include/model/comment_model.php文件,大概在第174行左右添加下面2个函数

 function delurlComment($commentId) {
        $row = $this->db->once_fetch_array("SELECT gid FROM ".DB_PREFIX."comment WHERE cid=$commentId");
        $blogId = intval($row['gid']);
        $commentIds = array($commentId);
        /* 获取子评论ID */
        $query = $this->db->query("SELECT cid,pid FROM ".DB_PREFIX."comment WHERE gid=$blogId AND cid>$commentId ");
        while ($row = $this->db->fetch_array($query)) {
            if (in_array($row['pid'],$commentIds)) {
                $commentIds[] = $row['cid'];
            }
        }
        $commentIds = implode(',',$commentIds);
        $this->db->query("UPDATE ".DB_PREFIX."comment SET url='' WHERE cid IN ($commentIds)");
        $this->updateCommentNum($blogId);
    }

    function delnameComment($commentId) {
        $row = $this->db->once_fetch_array("SELECT gid FROM ".DB_PREFIX."comment WHERE cid=$commentId");
        $blogId = intval($row['gid']);
        $commentIds = array($commentId);
        /* 获取子评论ID */
        $query = $this->db->query("SELECT cid,pid FROM ".DB_PREFIX."comment WHERE gid=$blogId AND cid>$commentId ");
        while ($row = $this->db->fetch_array($query)) {
            if (in_array($row['pid'],$commentIds)) {
                $commentIds[] = $row['cid'];
            }
        }  $commentIds = implode(',',$commentIds);
        $this->db->query("UPDATE ".DB_PREFIX."comment SET poster='该昵称被屏蔽' WHERE cid IN ($commentIds)");
        $this->updateCommentNum($blogId);
    }

2、继续在/include/model/comment_model.php,找到下面这段批量处理评论的代码

 function batchComment($action, $comments) {
        switch ($action) {
            case 'delcom':
                foreach($comments as $val) {
                    $this->delComment($val);
                }
                break;
            case 'hidecom':
                foreach($comments as $val) {
                    $this->hideComment($val);
                }
                break;
            case 'showcom':
                foreach($comments as $val) {
                    $this->showComment($val);
                }
                break;
        }
    }

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

 /**
     * 批量处理评论
     */
    function batchComment($action, $comments) {
        switch ($action) {
            case 'delcom':
                foreach($comments as $val) {
                    $this->delComment($val);
                }
                break;
            case 'hidecom':
                foreach($comments as $val) {
                    $this->hideComment($val);
                }
                break;
            case 'showcom':
                foreach($comments as $val) {
                    $this->showComment($val);
                }
                break;
            case 'delurlcom':
                foreach($comments as $val) {
                    $this->delurlComment($val);
                }
                break;
            case 'delnamecom':
                foreach($comments as $val) {
                    $this->delnameComment($val);
                }
                break;
        }
    }

4、打开/admin/comment.php文件,大概在第47行添加如下代码

if ($action=='delurl') {
    $id = isset($_GET['id']) ? intval($_GET['id']) : '';
    $Comment_Model->delurlComment($id);
    $CACHE->updateCache(array('sta','comment'));
    emDirect("./comment.php?active_delurl=true");
}
if ($action=='delname') {
    $id = isset($_GET['id']) ? intval($_GET['id']) : '';
    $Comment_Model->delnameComment($id);
    $CACHE->updateCache(array('sta','comment'));
    emDirect("./comment.php?active_delname=true");
}

5、继续在/admin/comment.php,大概在第84行添加如下代码

 if ($operate == 'delurl') {
        $Comment_Model->batchComment('delurlcom', $comments);
        $CACHE->updateCache(array('sta','comment'));
        emDirect("./comment.php?active_delurl=true");
    }
    if ($operate == 'delname') {
        $Comment_Model->batchComment('delnamecom', $comments);
        $CACHE->updateCache(array('sta', 'comment'));
        emDirect("./comment.php?active_delname=true");
    }

6、打开/admin/views/comment.php文件,找到如下代码

<?php if(isset($_GET['active_del'])):?><span class="actived">删除评论成功</span><?php endif;?>

7、在上述代码下添加如下代码

<?php if(isset($_GET['active_delname'])):?><span class="actived">屏蔽昵称成功</span><?php endif;?>
<?php if(isset($_GET['active_delurl'])):?><span class="actived">删除地址成功</span><?php endif;?>

8、继续在/admin/views/comment.php,找到如下代码

<?php echo $ip;?>

9、在上述代码下添加如下代码

<br />
        <span style="display:none;">
        <a href="javascript: em_confirm(<?php echo $value['cid']; ?>, 'delname');">屏蔽昵称</a>
        <a href="javascript: em_confirm(<?php echo $value['cid']; ?>, 'delurl');">删除地址</a>
        </span>

10、继续在/admin/views/comment.php,找到如下代码

<a href="javascript:commentact('pub');">审核</a>

11、在上述代码下添加如下代码

 <a href="javascript:commentact('delurl');">删除地址</a>
    <a href="javascript:commentact('delname');">屏蔽昵称</a>

12、继续在/admin/views/comment.php,找到如下代码

if(act == 'del' && !confirm('你确定要删除所选评论吗?')){return;}

13、在上述代码下添加如下代码

 if(act == 'delname' && !confirm('你确定要屏蔽所选评论的评论人昵称吗?')){return;}
    if(act == 'delurl' && !confirm('你确定要删除所选评论的评论人地址吗?')){return;}

14、打开/admin/views/js/common.js文件,找到如下代码

var msg = "你确定要删除该评论吗?";break;

15、在上述代码下添加如下代码

     case 'delname':
            var urlreturn="comment.php?action=delname&id="+id;
            var msg = "你确定要屏蔽所选评论的评论人昵称吗?";break;
        case 'delurl':
            var urlreturn="comment.php?action=delurl&id="+id;
            var msg = "你确定要删除所选评论的评论人地址吗?";break;

二、教程解析

通过对EMLOG核心数据进行修改,从而实现在EMLOG后台管理界面的评论管理处添加昵称屏蔽和网址删除的功能,使EMLOG站长在垃圾评论对抗方面更加得心应手

三、注意事项

1、本教程实现步骤非常复杂且需要修改核心文件,因此请务必按照教程一步一步严格执行,修改前注意备份相关文件