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

php输出楼层号,ZBlog开发中实现评论楼层号正确输出的具体方法代码相关推荐

  1. 移动端微信公众号页面开发中 使用了footer标签导致页面错位

    移动端微信公众号页面开发中 使用了< footer>标签导致页面错位 之前也用过这个标签没出现过此类问题 在微信开发者工具中发现把footer 改成div 样式就正常了

  2. C语言试题四十九之只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 n 给出了字符串的长度,h字符串中前导*号的个数,e给出了字符串中最后的*个数

    1. 题目 假定输入的字符串中只包含字母和*号.请编写函数function,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除.形参n 给出了字符串的长度,形参h给出了字符串中前导* ...

  3. c语言使单片机输出低电平,单片机开发中的一些实用技巧

    很多朋友正在学习单片机开发技术,但开发中免不了要碰到这样.那样的问题,有些问题可能无碍大局,但有一些问题却直接影响到产品的成本.体积.性能.这里介绍笔者的几个技巧,希望对大家的工作有帮助. 一.C语言 ...

  4. 微信公众平台开发中提示“该公众号提供的服务出现故障”问题解决

    问题描述: 在处理室内数据推送的时候,服务器能正常接收并处理请求,,客户端也能正常接收消息 但是在每次收到消息后,微信界面会出现,"该公众号提供的服务出现故障"字样. 解决思路一: ...

  5. 微信公众号第三方开发之一创建微信公众号第三方平台

    首先声明,在接下来一系列公众号第三方开发教程中,核心原理是参照下面博主的源码: http://www.cnblogs.com/sujingnan/p/4397203.html 拓展业务需求的. 为什么 ...

  6. c语言字母输出什么意思,C语言中字符的输入输出以及计算字符个数的方法详解...

    C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成, ...

  7. Linux驱动开发中与设备树相关的6种debug方法

    整理出了6种驱动开发时与设备注册.设备树相关的调试方法,彼此间没有优先级之分,每种方法不一定是最优解,但可以作为一种debug查找问题的手段,快速定位问题原因.例如在芯片验证时,不同时钟频率下系统启动 ...

  8. 在软件开发中实施人工智能和敏捷管理的9种方法

    来源:mush博客 自1956年年成立以来,人工智能已经彻底改变了企业决策和部署资源的方式. 几十年来,人工智能通过帮助各行各业的企业蓬勃发展,证明了其价值.从汽车制造厂的机器人到预测货币和库存变动到 ...

  9. 中图法分类号 计算机视觉方面,中图法分类号tp39中国图象图形学报.doc

    中图法分类号tp39中国图象图形学报 中图法分类号:TP391.4 文献标识码:A 文章编号: 论文引用格式: 利用背景加权和选择性子模型更新的视觉跟踪算法 黄安奇,侯志强,余旺盛,刘翔 空军工程大学 ...

最新文章

  1. 修改2k自动登陆的脚本
  2. IOS代码添加控件,控件移动,放大,缩小,旋转
  3. html 页面中的 base href 和 target
  4. java避免内存泄露_Java防止非静态内部类内存泄漏
  5. Windows 10修改环境变量方法
  6. token 微信access 过期_如何设计 QQ、微信等第三方账号登陆 ?以及设计数据库表!...
  7. python识别文字tesseract
  8. MRS,MSR指令详解
  9. mongodb执行sql脚本文件
  10. 基于php014居民小区物业管理系统
  11. CSS 中文字体格式
  12. ACM比赛代码文件读写调试方案
  13. 线性代数学习笔记——第六讲——矩阵的转置
  14. SpringMVC 生命周期
  15. arduino智能浇花系统_基于Arduino单片机的智能浇花器
  16. 【积水成渊-逐步定制自己的Emacs神器】2:基本的定制Emacs
  17. matlab模糊控制图怎么导出_matlab模糊控制工具箱的使用
  18. 最全的博客、网站提交入口(备用)
  19. android文件打印--printerShare
  20. HEXO启动,初始化,本地页面成功启动,(Win 7 64 bit)可以在浏览器打开http://localhost:4000

热门文章

  1. html有序列表和无序列表互相嵌套,关于列表的嵌套,下列说法正确的是( )。 答案:无序列表和有序列表可以相互嵌套与 之间相当于一个容器,可以嵌套无序列表、有序列表等网页元素...
  2. oracle19c 安装权限_Oracle19c 安装及SQL developer连接
  3. 为什么多个线程不可能同时抢到一把锁_并发基础理论:原子性问题、锁、管程...
  4. 一篇文章搞懂数据仓库:三范式与反范式
  5. CompletableFuture详解~创建实例
  6. Spring Data JPA 从入门到精通~@Procedure 储存过程的查询方法
  7. BigDecimal总结
  8. STM32与SHT1X温湿度传感器通讯
  9. pep8 python 编码规范_实用的python编码规范
  10. Linux的实际操作:文件和文件夹的权限解读