一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2015-06-07 编辑:简简单单 来源:一聚教程网

近日发现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);

 

}

热门栏目