·设为首页收藏本站📧邮箱修改🎁免费下载专区🔐设置/修改密码👽群雄群聊
返回列表 发布新帖

Discuz DIY 加入随机调用修改方法!

1267 3
发表于 2021-3-10 08:36:54 | 显示全部楼层 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
简单的说,就是每隔一段时间(自己设定的数据缓存时间),即使没有新帖子,这个diy模块所调用的帖子也会变。
Discuz DIY 加入随机调用修改方法! 加入,随机,调用,修改,方法

具体操作:

1.打开/source/class/block/forum/block_threadhot.php,找到
  1. array('recommends', 'threadlist_orderby_recommends'),
复制代码

之下增加
  1. array('rands', '随机'),
复制代码

2.打开/source/class/block/forum/block_thread.php,找到
  1. $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'] : '';
复制代码

改为
  1. $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'] : '';
复制代码

3.找到
  1. $query = DB::query("SELECT DISTINCT t.*$sqlfieldFROM `".DB::table('forum_thread')."` t$sqlfrom WHERE {$maxwhere}t.readperm='0'$sqlAND t.displayorder>='0'ORDER BY t.$orderby DESCLIMIT $startrow,$items;");
复制代码

改为
  1. 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.*$sqlfieldFROM `".DB::table('forum_thread')."` t$sqlfrom WHERE {$maxwhere}t.readperm='0'$sqlAND t.displayorder>='0'ORDER BY t.$orderby DESCLIMIT $startrow,$items;");}
复制代码

就是在数据查询的外层加上了判断,如果是随机排序,查询里排序条件就用ORDER BY rand(),否则按原本的排序条件。
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论3

拾光Lv.8 发表于 2021-3-10 08:37:52 | 显示全部楼层
如果您的网站是gbk的,修改前请务必将block_thread.php文件编码格式转成gbk的,否则前台会乱码。
我要说一句 收起回复
IT618发布Lv.8 发表于 2021-3-10 08:38:16 | 显示全部楼层
block_thread.php文件内容没有中文字,不用转码。

block_threadhot.php,网站是gbk的,才要将编码格式转成gbk的。
我要说一句 收起回复
浅生Lv.8 发表于 2021-3-10 08:38:21 | 显示全部楼层
对的,你这个教程只改了 block_threadhot.php(热门帖)中的 orderby,DIY不选热门帖不就不起作用了么?
一点补充:一般DIY最后都有改动就变成了“高级自定义”使用的:block_thread.php,所以orderby的修改应该在这个文件里面。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:3.144.116.159,42.101.56.70,GMT+8, 2024-5-7 04:39 , Processed in 0.232612 second(s), 107 queries , Gzip On, Redis On.

Based on Discuz! W1.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表