您的位置:首页 > 其它

Discuz!教程之DIY主题模块增加主题随机排序功能

2017-06-14 13:46 399 查看


如图,添加后的效果,Discuz默认规则里面是没有随机排序的,本教程介绍如果添加随机排序:

修改文件 \source\class\block\forum\block_thread.php

1、参考文件有三个修改点,请按照修改点修改。

2、如果您的网站是gbk的,修改前请务必将block_thread.php文件编码格式转成gbk的,否则前台会乱码。

修改点1

找到代码

'orderby' => array(
'title' => 'threadlist_orderby',
'type'=> 'mradio',
'value' => array(
array('lastpost', 'threadlist_orderby_lastpost'),
array('dateline', 'threadlist_orderby_dateline'),
array('replies', 'threadlist_orderby_replies'),
array('views', 'threadlist_orderby_views'),
array('heats', 'threadlist_orderby_heats'),
array('recommends', 'threadlist_orderby_recommends'),
),
'default' => 'lastpost'
),


修改为

'orderby' => array(
'title' => 'threadlist_orderby',
'type'=> 'mradio',
'value' => array(
array('lastpost', 'threadlist_orderby_lastpost'),
array('dateline', 'threadlist_orderby_dateline'),
array('replies', 'threadlist_orderby_replies'),
array('views', 'threadlist_orderby_views'),
array('heats', 'threadlist_orderby_heats'),
array('recommends', 'threadlist_orderby_recommends'),
array('rand', '随机排序'),
),
'default' => 'lastpost'
),


修改点2

找到代码

$orderby	= isset($parameter['orderby']) ? (in_array($parameter['orderby'],array('lastpost','dateline','replies','views','heats','recommends')) ? $parameter['orderby'] : 'lastpost') : 'lastpost';
修改为

$orderby	= isset($parameter['orderby']) ? (in_array($parameter['orderby'],array('lastpost','dateline','replies','views','heats','recommends','rand')) ? $parameter['orderby'] : 'lastpost') : 'lastpost';
修改点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=='rand'){
$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;" );
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: