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

本文实例讲述了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程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容