dz x5为DIY模块增加随机排序选项,别让帖子沉下去 New
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窗口里的随机选项
首先,当然是在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窗口里的随机选项