本文实例讲述了thinkPHP框架实现的无限回复评论功能。分享给大家供大家参考,具体如下:
如果只是简单的单回复的评论的话,那样操作是很简单的。但问题就是如何实现无限的回复评论呢!那么如果只是单回复的话,需要建好多的数据表,是根本不可能实现的。那么用TP框架实现无限回复评论(GitHub源代码下载地址:https://github.com/Jonybin/responsemessage)下载完成后,注意数据库的使用。
control控制器部分:
function CommentList($pid = 0, &$commentList = array(), $spac = 0) { static $i = 0; $spac = $spac + 1; //初始为1级评论 $List = M("comment")-> field("id,add_time,author,content,pid")-> where(array("pid" => $pid))->order("id DESC")->select(); foreach ($List as $k => $v) { $commentList[$i]["level"] = $spac; //评论层级 $commentList[$i]["author"] = $v["author"]; $commentList[$i]["id"] = $v["id"]; $commentList[$i]["pid"] = $v["pid"]; //此条评论的父id $commentList[$i]["content"] = $v["content"]; $commentList[$i]["time"] = $v["add_time"]; // $commentList[$i]["pauthor"]=$pautor; $i++; $this->CommentList($v["id"], $commentList, $spac); } return $commentList;}
view视图部分:
<volist name="commentList" id="vo"> <eq name="vo.pid" value="0"><hr class="solidline"/><else/><hr class="dottedline"/></eq> <div class="commentList " style="padding-left:{$vo["level"]-1}cm"> <div><span class="user"> <if condition="($vo.pauthor eq NULL)">{$vo.author} <else /> {$vo.author}<span class="black" style="color: #000101">回复</span>{$vo.pauthor} </if> </span><a class="hf" id="{$vo.id}" style="float: right">回复</a><span class="hftime">{$vo.time|date="Y-m-d",###}</span></div> <div class="content">{$vo.content|reFace}</div> </div></volist>
完整实例代码可点击此处本站下载。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。