英雄巴乔

博客园 首页 新随笔 联系 订阅 管理

PHPCMS2008的用户评论不能在内容页显示,用户发表评论后在评论页显示,这点不利于调动用户的互动积极性,下面介绍一个方法,把最新10条评论调到内容页实时显示,同时把评论页的盖楼、支持、反对功能亦移植到内容页,大大增强了用户互动的趣味性。

步骤一

在comment文件夹下新建comlist.php文件,内容如下:

<?php
require './include/common.inc.php';
header("Cache-Control: no-cache, must-revalidate"); //清空AJAX缓存,如果没清空的话,评论无法实时显示
if($_GET["keyid"])
{
$keyid = $_GET["keyid"];
$sql = "select * from phpcms_comment where keyid='".$keyid."' and status='1' order by addtime desc limit 0,10";//如果评论需要审核的话,请在sql语句中加上 status=1过滤掉未审核的评论,这里只显示前10条的评论,没有加入分页功能
$row = $db->select($sql);
include template('comment', 'ajax_list');
}
else
{
exit();
}
?>

步骤二

在templates\default\comment新建ajax_list.html,内容如下:

<!--begin 评论列表-->{loop $row $comment}
<div class="commentbox">
        <div class="commenthead"><span class="f_r">发表时间:{date("Y-m-d",$comment['addtime'])} </span><span>网友:{$comment['username']} IP地址:{substr($comment['ip'],0,4)}*.*.*</span><span>{$comment['url']}</span></div>
        <div class="commenttext"> {str_replace('[/blue]','</p></div>',str_replace('[/quote]','</div>',str_replace('[blue]','<div href="#" class="blue"><p>',str_replace('[quote]','<div class="reply">',$comment['content']))))} </div>
        <div class="commentfunction">
         <a href="javascript:ajaxload({$comment[commentid]});" >回复</a>|<span id="count_{$comment[commentid]}_1">
         <a id="votefor_{$comment[commentid]}" href="javascript:voteFor({$comment[commentid]});">支持[{$comment[support]}]</a></span>|<span id="count_{$comment[commentid]}_0">
         <a href="javascript:voteAgainst({$comment[commentid]});">反对[{$comment[against]}]</a></span>
      </div>
</div>
{/loop}
<!--end 评论列表-->

步骤三

打开templates\default\phpcms\show.html文件,修改如下:

1.在你想显示评论的位置加上<div id="comment_list"></div>(注:id值必须在当前页面是惟一的,如果该页面已存在的话,请用另一个ID值,可随意取,但必须保证是唯一的)

2.在

$().ready(function() {

下面加入

$('#comment_list').load("/comment/comlist.php?keyid={$keyid}");

重新生成内容页,就大功告成了!

贴士:如果想用户发表评论后不跳转到评论页,则参照下面的代码修改一下

1:在templates\default\phpcms\Show.html页面,找到

<form action="{$MODULE[comment][url]}?action=addpost" method="post">

改为

<form action="{$MODULE[comment][url]}?action=addpost&urltext={$url}" method="post">

2:在comment\comment.php页面,找到

showmessage('发表成功', $M['url'].'?keyid='.$keyid.'&verify='.$verify);

改为:

  //增加如果在文章页面发布,返回文章页面。if(isset($urltext)){
   showmessage('发表成功', $urltext."#comment_list");
  }
  else{
   showmessage('发表成功', $M['url'].'?keyid='.$keyid.'&verify='.$verify);
}
posted on 2010-12-07 00:32  英雄巴乔  阅读(493)  评论(0)    收藏  举报