在官方的wiki中,针对批评部份的标签调用是集成了批评楼号的,即标签{$comment.FloorID}。这个标签是不盘算子批评的,所以并非采纳key直接盘算出的楼号。经由测试,我们会发明,这个楼号存在肯定BUG!具体表现为:ZblogPHP假如开启了批评倒序,楼号依然是从输出的第一条入手下手盘算楼层,如许并不轻易人人的运用,作为一位开发者,假如运用如许的代码来开发zblog主题或插件,显著会让人以为很不专业!下面我就针对这一问题来给人人一步一步申明下如何能准确的完成ZBLOG的正/倒序批评输出楼号!
ZBlog开发中完成批评的楼层号准确输出的具体方法代码
空话不多说,我们以默许主题的相干文件为例,找到主题文件夹下template/comments.php文件
第一步,找到评分输出的轮回位置:
{foreach $comments as $key => $comment}{template:comment}{/foreach}{php}$where = array(array('=', 'comm_LogID', $article->ID),array('=', 'comm_RootID','0'),array('=', 'comm_IsChecking', 0));$_comments = $zbp->GetCommentList('*',$where,null,null,null);$commentsRootSum = count($_comments)+1;{/php}上面的变量$commentsRootSum就是一级批评的总数。
第三步,为每一个批评赋倒序楼号值:
{foreach $comments as $key => $comment}{$commentRootFloor=$commentsRootSum-$comment.FloorID}{template:comment}{/foreach}末了,在你想要的位置输出楼号,(这里要换到单条批评的模板,默许主题为template/comment.php)增加代码即可:
{if $comment.Level=='1'}{$commentRootFloor}楼{/if}上面的代码需要在开启倒序今后才准确输出,为了保证正序倒序都能一般,所以调改一下代码为:
{php}if($option['ZC_COMMENT_REVERSE_ORDER']=='1') { $where = array(array('=', 'comm_LogID', $article->ID),array('=', 'comm_RootID','0'),array('=', 'comm_IsChecking', 0)); $_comments = $zbp->GetCommentList('*',$where,null,null,null); $commentsRootSum = count($_comments)+1;}else{ $commentsRootSum = 0;}{/php}{foreach $comments as $key => $comment} {$commentRootFloor=abs($comment.FloorID-$commentsRootSum)} {template:comment}{/foreach}好了,如今就可以一般的倒序输出批评的楼号了,不过只针对一级批评做了,如要对子批评排楼,就本身去推断修正吧。
注重:我们这里要把查询的代码放在轮回的表面,不然要涌现反复Query,浪费资源。

评论列表