最新最全的移动资源,海量教程攻略!

网站首页 > 技术支持 > discuz > discuz使用教程 > discuz X3.4 diy随机调最新用帖子

discuz X3.4 diy随机调最新用帖子

作者: 资源猫 时间: 2020-03-03 17:46:11 人气: 6

简单的说,就是每隔一段时间(自己设定的数据缓存时间),即使没有新帖子,这个diy模块所调用的帖子也会变。
方式:加个选项,然后查询数据的时候把这个选项作为一个条件,选它就按它来调用。
具体操作:
1.打开/source/class/block/forum/block_threadhot.php,找到
array('recommends', 'threadlist_orderby_recommends'),
之下增加
array('rands', '随机'),
2.打开/source/class/block/forum/block_thread.php,找到
$orderby = isset($parameter['orderby']) ? (in_array($parameter['orderby'],array('lastpost','dateline','replies','views','heats','recommends')) ? $parameter['orderby'] : 'lastpost') : 'lastpost';
$lastposter = !empty($parameter['lastposter']) ? $parameter['lastposter'] : '';
改为
$orderby = isset($parameter['orderby']) ? (in_array($parameter['orderby'],array('lastpost','dateline','replies','views','heats','recommends','rands')) ? $parameter['orderby'] : 'lastpost') : 'lastpost';
$lastposter = !empty($parameter['lastposter']) ? $parameter['lastposter'] : '';
其实就是增加了,'rands'
3.找到
$query = DB::query( SELECT DISTINCT t.*$sqlfield
FROM ` .DB::table('forum_thread'). ` t
$sqlfrom WHERE {$maxwhere}t.readperm='0'
$sql
AND t.displayorder ='0'
ORDER BY t.$orderby DESC
LIMIT $startrow,$items;
);
改为
if($orderby=='rands'){
$query = DB::query( SELECT DISTINCT t.* $sqlfield FROM ` .DB::table('forum_thread'). ` t $sqlfrom WHERE {$maxwhere}t.readperm='0' $sql AND t.displayorder ='0' ORDER BY rand() LIMIT $startrow,$items;
}else{
$query = DB::query( SELECT DISTINCT t.*$sqlfield
FROM ` .DB::table('forum_thread'). ` t
$sqlfrom WHERE {$maxwhere}t.readperm='0'
$sql
AND t.displayorder ='0'
ORDER BY t.$orderby DESC
LIMIT $startrow,$items;
);
}
就是在数据查询的外层加上了判断,如果是随机排序,查询里排序条件就用ORDER BY rand(),否则按原本的排序条件。

感谢访问资源猫吧,本站所有资源均来自互联网或用户分享,如您发现本站存在侵权或违规内容,请来邮件告知我们! 资源分享/侵权下架/商务合作联系邮箱:qiazou77ziyuan@126.com