php输出楼层号,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,浪費資源。
總結
以上是生活随笔為你收集整理的php输出楼层号,ZBlog开发中实现评论楼层号正确输出的具体方法代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高职计算机专业用什么软件,【计算机专业论
- 下一篇: 京东开普勒php接口,IOS菜鸟初学第十