去评论
dz插件网

dz x5为DIY模块增加随机排序选项,别让帖子沉下去 New

admin
2026/04/16 21:10:22
下面是留底保存的帖子记录,原来的思路,也是可见的效果。刚看到有网友说关于DIY模板更新内容的问题,个人感觉,有必要分享一下这个解决随机排序的问题。这是Trae解决的,我可没这个脑子。下面直接复制原文:


首先,当然是在DIY时,添加一条随机的选项。【略】


再到语言文件设置语言,中文显示嘛,不然是字母了。文件路径:source\i18n\SC_UTF8\block\lang_threadlist.php,约80行添加:'threadlist_orderby_random' => '按随机顺序排序',


再修改和修复:source\function\function_block.php


1, 修复代码结构问题在 block_get_batch 函数中,修复了代码重复和嵌套错误,将重复的 block_no_cache 检查合并为单一条件判断:


javascript



▼ 展开



2. 分离随机排序模块和普通模块处理在 block_get_batch 函数中,实现了随机排序模块和普通模块的分离处理逻辑:


javascript



▼ 展开



3. 强制刷新随机排序内容在 block_fetch_content 函数中,检测模块是否使用随机排序,并设置强制刷新标志:


javascript



▼ 展开



修复原理


1. 识别随机排序模块 :通过检测模块参数中是否包含 "orderby":"random" 来判断是否为随机排序模块


2. 绕过缓存 :对随机排序模块设置 forceupdate = true ,确保每次都重新生成内容


3. 分离处理 :在批量获取模块时,将随机排序模块和普通模块分开处理,避免随机模块被缓存4. 优化代码结构 :清理重复的缓存控制代码,使逻辑更加清晰


主要修改的文件有:


1,source\i18n\SC_UTF8\block\lang_threadlist.php  //添加自定义语言


2,source\function\function_block.php  //效果实现


3,source\class\block\forum\block_thread.php  //diy窗口里的随机选项