Cms技巧
分享创造价值 合作实现共赢

Cms技巧

当前位置: 首页 > 新闻动态 > Cms技巧

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

发布时间:2019-12-16 11:15:47作者:admin点击:

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

}

TOP

QQ客服

18910140161