当前位置:首页 > 教程资料 > 正文

作者: 会飞的鱼

全网最全的网络资源分享网站

手机扫码查看

标签:

emlog

Emlog修改核心代码实现评论置顶功能

fee主题已经加入了置顶代码大家不需要再增加。只需要按照以下步骤进行即可,可能教程有点麻烦,如果不会就下载懒人包替换进去吧。

我用的是emlog6.0.1,其他版本的不要用懒人包。

教程开始

        1、执行sql语句创建评论置顶需要的字段

ALTER TABLE  `emlog_comment` ADD  `comment_top` ENUM(  'n',  'y' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  'n' AFTER  `hide`;

    2、找到路径文件/include/model/comment_model.php

        修改第38行中的

$sql = "SELECT * FROM ".DB_PREFIX."comment as a where $andQuery ORDER BY a.date ASC $condition";

    为

$sql = "SELECT * FROM ".DB_PREFIX."comment as a where $andQuery ORDER BY a.comment_top,a.date ASC $condition";

    然后参照图片在186行左右后面插入以下代码

 

修改核心代码截图.png

function topComment($commentId) {
    $this->isYoursComment($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 comment_top='y' WHERE cid IN ($commentIds)");
	$this->updateCommentNum($blogId);
}


function notopComment($commentId) {
    $this->isYoursComment($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 comment_top='n' WHERE cid IN ($commentIds)");
	$this->updateCommentNum($blogId);
}

    然后在271行左右后面插入以下代码

case 'topcom':
foreach($comments as $val) {
	$this->topComment($val);
}
case 'notopcom':
foreach($comments as $val) {
	$this->notopComment($val);
}

核心代码修改.png

        3、找到路径文件/admin/comment.php

        在58行之后插入以下代码

核心代码修改2.png

 

if ($action=='top') {
	$id = isset($_GET['id']) ? intval($_GET['id']) : '';
	$Comment_Model->topComment($id);
	$CACHE->updateCache(array('sta','comment'));
	emDirect("./comment.php?active_top=1");
}
if ($action=='notop') {
	$id = isset($_GET['id']) ? intval($_GET['id']) : '';
	$Comment_Model->notopComment($id);
	$CACHE->updateCache(array('sta','comment'));
	emDirect("./comment.php?active_notop=1");
}

    然后在98行左右后面插入以下代码

if ($operate == 'top') {
	$Comment_Model->batchComment('topcom', $comments);
	$CACHE->updateCache(array('sta','comment'));
	emDirect("./comment.php?active_top=1");
}
if ($operate == 'notop') {
	$Comment_Model->batchComment('notopcom', $comments);
	$CACHE->updateCache(array('sta','comment'));
	emDirect("./comment.php?active_notop=1");
}

    到这里整个核心代码都插入完成了,之后则是后台模板与前台模板的置顶操作按钮以及标识符等细节代码插入

 

        之后的操作小杰讲使用Emlog默认的后台模板以及前台主题进行插入,如有差异请自行调试插入。

        4、打开后台模板文件/admin/views/comment.php

        在第5行左右插入以下代码

后台模板提示.png

 

<?php if(isset($_GET['active_top'])):?><span class="actived">置顶评论成功</span><?php endif;?>
<?php if(isset($_GET['active_notop'])):?><span class="actived">取消置顶成功</span><?php endif;?>

    在57行左右插入置顶标识符输出(这里小杰统一使用top文字进行标识,当然你们也可以替换成图片或者图标进行输出标识)

 

后台模板置顶标识符.png

<?php if($value['comment_top']=='y'){echo '<b>TOP</b>';}?>

    在66左右插入以下代码

 

后台模板置顶按钮插入.png

 

<?php if($value['comment_top'] == 'y'):?>
<a href="comment.php?action=notop&amp;id=<?php echo $value['cid']; ?>">取消置顶</a>
<?php else: ?>
<a href="comment.php?action=top&amp;id=<?php echo $value['cid']; ?>">置顶</a>
<?php endif;?>

    那么后台的置顶按钮,置顶操作提示,置顶标识符都已经插入完毕,之后我们打开前台模板文件/content/templates/default/module.php

 

        找到评论列表处

评论列表置顶标识符.png

        插入以下代码

<?php if($comment['comment_top']=='y'){echo '<span>TOP</span>';}?>

    到这里Emlog修改核心代码实现评论置顶功能的操作就全部完成了。

        预览图

预览.png

该功能只支持一级评论,二级评论无效,但是如果一级评论置顶后,跟随的二级评论也还是会跟在一级评论后面

教程转载杨小杰博客

文件下载

附件:懒人包

文件大小:2.2 M

更新时间:2019年4月18日 10:05:02

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,若为付费资源,请在下载后24小时之内自觉删除,若作商业用途,请到原网站购买,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!

未经允许不得转载:

作者: 会飞的鱼, 转载或复制请以 超链接形式 并注明出处 会飞的鱼
原文地址: 《Emlog修改核心代码实现评论置顶功能》 发布于2019-4-18

分享到:
打赏

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏