当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP框架实现的无限回复评论功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-25 15:28:30 浏览: 评论:0 

本文实例讲述了thinkPHP框架实现的无限回复评论功能,分享给大家供大家参考,具体如下:

如果只是简单的单回复的评论的话,那样操作是很简单的,但问题就是如何实现无限的回复评论呢!那么如果只是单回复的话,需要建好多的数据表,是根本不可能实现的。那么用TP框架实现无限回复评论(GitHub源代码下载地址:https://github.com/Jonybin/responsemessage)下载完成后,注意数据库的使用。

control控制器部分:

  1. function CommentList($pid = 0, &$commentList = array(), $spac = 0) { 
  2.     static $i = 0; 
  3.     $spac = $spac + 1; //初始为1级评论 
  4.     $List = M('comment')-> 
  5.         field('id,add_time,author,content,pid')-> 
  6.         where(array('pid' => $pid))->order("id DESC")->select(); 
  7.     foreach ($List as $k => $v) { 
  8.       $commentList[$i]['level'] = $spac//评论层级 
  9.       $commentList[$i]['author'] = $v['author']; 
  10.       $commentList[$i]['id'] = $v['id']; 
  11.       $commentList[$i]['pid'] = $v['pid']; //此条评论的父id 
  12.       $commentList[$i]['content'] = $v['content']; 
  13.       $commentList[$i]['time'] = $v['add_time']; 
  14.       // $commentList[$i]['pauthor']=$pautor; 
  15.       $i++; 
  16.       $this->CommentList($v['id'], $commentList$spac); 
  17.     } 
  18.     return $commentList

view视图部分:

  1. <volist name="commentList" id="vo"> 
  2.  <eq name="vo.pid" value="0"><hr class="solidline"/><else/><hr class="dottedline"/></eq> 
  3.  <div class="commentList " style="padding-left:{$vo['level']-1}cm"> 
  4.    <div><span class="user"> 
  5.    <if condition="($vo.pauthor eq NULL)">{$vo.author} 
  6.   <else /> {$vo.author}<span class="black" style="color: #000101">回复</span>{$vo.pauthor} 
  7.    </if> 
  8.  </span><a class="hf" id="{$vo.id}" style="float: right">回复</a><span class="hftime">{$vo.time|date="Y-m-d",###}</span></div> 
  9.    <div class="content">{$vo.content|reFace}</div> 
  10.  </div> 
  11. </volist> 

完整实例代码可点击此处本站下载。

Tags: thinkPHP无限回复评论

分享到: