王尘宇王尘宇

研究百度干SEO做推广变成一个被互联网搞的人

ZBlog开发中完成批评楼层号准确输出的具体方法代码

在官方的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,浪费资源。

相关文章

评论列表

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。