[quote_threads]引用楼中楼热
- 引用楼中楼ID quote_threads版本 1.6.7插件制作者 233免费533 行 / 26.5 KBHook将引用回复归入清晰易读的讨论串,并将新旧引用转换为稳定的回复 ID 链接。app/plugins/quote_threads/plugin.php开发日志已有 8 条
此项目接受所有登录用户协助维护和提交更新。
主楼点赞与点评1bbs1org2026-08-27
插件质量报告
插件:
quote_threadsHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 app.boot 全站请求启动 否 5 - - - - reply.after_render 主题查看页/回帖列表逐条渲染 是 5 - - - - reply.before_render 主题查看页/回帖列表逐条渲染 是 5 - - - - topic.after_view 主题查看页完成加载 否 4 - - - - topic.replies_data.load 主题查看页回帖查询前 否 4 - - app_replies - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
- bbs1org2026-08-12
已重做并更新到 1.0.1。1.0.0 没效果的原因是它从 Markdown 渲染后的链接猜引用关系,但核心引用实际写入正文的是
@用户名 #N,通常没有链接。新版在reply.before_render直接读取原始引用标记,把父楼层写入data-quote-threads-parent-floor,JS 只负责重排和 UI。已用真实 #2 引用 #1 验证:#2 缩进到 #1 下方并显示“回复 admin”。- bbs1org2026-08-12
重新检查官网页面后确认了:市场源码虽然已经替换为新实现,但官网页面实际内联的仍是 1.0.0 那段“从渲染后链接猜楼层”的旧 JS;也就是说同版本 1.0.1 更新没有触发已安装站点升级,所以官网当然仍没效果。现在已正式升版到
quote_threads1.0.2,请在官网插件页点击更新。1.0.2 的市场下载源码已确认包含reply.before_render和data-quote-threads-parent-floor新实现。- bbs1org2026-08-12
- bbs1org2026-08-12
优化ui
- bbs1org2026-08-12
改为按原始遍历顺序生成输出序列,去掉全部 sort() 和排序索引,当前重排为线性 O(n)
- bbs1org2026-08-12
这个楼中楼挺好
- bbs1org2026-08-14
- bbs1org2026-08-15
版本 1.0.21 更新:
修正引用回复定位问题 - bbs1org2026-08-15
版本 1.0.22 更新:
目标子回复的背景色覆盖规则 🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题(红区钩子回调链内无数据库读取,正则无回溯风险,注入的楼层为整数)。
⚡ 性能问题
未发现明显问题。
🐛 功能/规范缺陷
- 多页时父楼层计算偏移:第 10 行用当前页内索引
$i+1当作楼层,未加页码偏移($page-1)*$page_size,第 2 页起通过replyid=解析到的父楼层会错位,跨页引用也无法命中当前页映射。建议用 ctx 的 page/page_size 计算绝对楼层。 - 固定 JS 未走 assets:第 20 行在
page.footer注入内联<script>,而 manifest 仅声明了 CSS(第 25 行),应按规范把 JS 声明到assets['js']并移除<script>标签。 - 第 21 行 CSS 使用
!important(margin:6px 0 6px 40px!important),规范要求无理由不得使用。 - 第 7 行在
app.boot每请求改写超全局$_GET['replyid']以兼容reply_id,副作用对全站透明,建议改用更局部的方式。
✅ 修复优先级
- 修正多页楼层偏移;2. JS 改由 assets 声明;3. 移除
!important;4. 收敛对$_GET的全局改写。
- 多页时父楼层计算偏移:第 10 行用当前页内索引
- bbs1org2026-08-24
版本 1.0.27 更新:
头像保持原始大小和位置,不再缩进。
仅楼中楼回复内容保持缩进。
精简无用的定位和层级样式。 - bbs1org2026-08-24
版本 1.0.28 更新:
修正右侧溢出的问题 - bbs1org2026-08-25
版本 1.0.28 更新:
共享插件 - bbs1org2026-08-25
版本 1.0.28 更新:
共享 版本 1.6.5 更新:
1、样式优化 更有层次感
2、跨页修复 原版跨页就失效。
3、分页逻辑优化,避免回帖归不到对应的楼层。
4、楼层链接改为绝对ID,避免删除回帖或者回帖顺序变化,无法回到具体楼层。
5、适配了快捷回复。避免快捷回复到楼外面。效果展示:https://linux.sb/topic/15365
最后由 秦始黄 编辑于 2026-08-25 18:10版本 1.6.6 更新:
修复帖子设置回帖排序为倒序时 对应关系错误的bug- bbs1org2026-08-27
注意,此插件有严重性能问题。不建议使用。
高: 全量读取回帖,分页上限已失效
plugin.php (line 73) 对每次看帖执行 SELECT * FROM app_replies ...,没有 LIMIT。随后又遍历全文建立楼号、父子关系、分支和分页数据。
这使一次看帖从核心原本的每页 50 条、最大 200 条,变成处理整帖 N 条回复。长帖会显著增加数据库传输、PHP 内存和 CPU,且正文越长影响越大。
高: 单页响应可能包含整条超长讨论串
plugin.php (line 112) 至 plugin.php (line 125) 会把同一根回复的所有子孙放入根回复所在页面,没有数量上限。
如果一个根回复有数百或数千个子回复,第一页会返回并渲染全部内容。前端的折叠仅在 HTML 已加载、DOM 已创建后才隐藏内容,无法降低服务端或首屏开销。
中等: 分页会产生空页或不稳定页码
核心仍按总回复数生成分页,但插件按讨论串重新分配内容页。一个大讨论串被归到第一页后,后续核心页码仍存在,却可能没有任何回复数据。这同时会影响 replyid、floor 跳转与浏览器历史。
请使用这个插件 https://bbs1.org/topic/953 且不要解决实现跨页问题。
没必要。 我回复到对应楼层 因为分页 内容跑到其他页去了 都是回复一个楼层的内容 跑得到处都是 这是楼中楼的意义吗?
做插件不就是为了实现功能吗?不能说为了性能,牺牲插件核心功能啊。
你要性能别装插件最好。现在应该考虑的是为了这个功能,怎么去优化性能,如果冲突了,让用户去选择。- bbs1org2026-08-27
- bbs1org2026-08-27
- bbs1org2026-08-27
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:引用楼中楼(quote_threads)v1.6.6
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
- bbs1org2026-09-06
版本 1.6.6 更新:
修正回帖楼层 - bbs1org2026-09-06
版本 1.6.7 更新:
提升版本号