04 2015年06月

Discuz X3.0日志排行榜bug问题 未审核及回收站日志没有过滤

发布于:15时27分 | 来源:湛蓝天空  |   编辑:湛蓝  |   日志分类:DISCUZ  |   已聚集:人围观

近日发现Discuz x3.0排行榜中的日志列表出现大量未通过审核的广告垃圾信息,这些垃圾日志并未审核,更新缓存后也无效。后发现其实这是Discuz的bug,在缓存数据时并没有限制status状态。另外日志各排行榜的排序也都有问题,Discuz中默认只进行了hot和dateline的排序。

如下图中在source/class/table/table_home_blog.php 第37行

Discuz x3.0排行榜
当$status为0时是正常审核通过状态,但此时$wheresql 连接为空,即$wheresql = ‘’,这是就不能这样写。此处可以修改为:

$wheresql .= ' AND '.DB::field('status', $status);

在39行对$orderby处理时也要修改:
 

if(in_array($orderby, array('hot', 'dateline'))) {
$wheresql .= ' ORDER BY '.DB::order($orderby, $ordersc);

 

}

修改为:
 
switch ($orderby) {
    case 'views':
        $orderby = 'viewnum';
        break;
    case 'replies':
        $orderby = 'replynum';
        break;
    case 1:
        $orderby = 'click1';
        break;
case 2:
        $orderby = 'click2';
        break;
case 3:
        $orderby = 'click3';
        break;
case 4:
        $orderby = 'click4';
        break;
case 5:
        $orderby = 'click5';
        break;
}
 
if(in_array($orderby, array('hot', 'dateline','sharetimes','favtimes','viewnum','replynum','click1','click2','click3','click4','click5'))) {
$wheresql .= ' ORDER BY '.DB::order($orderby, $ordersc);
}

除非注明,均为湛蓝天空原创,转载请注明本文网址:http://skyhome.cn/discuz/499.html

标签:discuz(10)日志排行榜(1)
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)