• 233
    引用楼中楼
    ID quote_threads版本 1.6.7插件制作者 233免费533 行 / 26.5 KBHook
    将引用回复归入清晰易读的讨论串,并将新旧引用转换为稳定的回复 ID 链接。
    app/plugins/quote_threads/plugin.php
    开发日志已有 8 条

    此项目接受所有登录用户协助维护和提交更新。

    • bbs1org
      bbs1org
      版本 1.6.7 693b89986bde 更新:提升版本号release
    • bbs1org
      bbs1org
      版本 1.6.6 d4b7a03dfed1 更新:修正回帖楼层
    • 秦始黄
      秦始黄
      版本 1.6.6 4c0ac466d3f8 更新:修复帖子设置回帖排序为倒序时 对应关系错误的bug
    • 秦始黄
      秦始黄
      版本 1.6.5 4fc2c384518d 更新:1、样式优化 更有层次感 2、跨页修复 原版跨页就失效。 3、分页逻辑优化,避免回帖归不到对应的楼层。 4、楼层链接改为绝对ID,避免删除回帖或者回帖顺序变化,无法回到具体楼层。
    • bbs1org
      bbs1org
      版本 1.0.28 854f5c65807e 更新:共享
    • bbs1org
      bbs1org
      版本 1.0.27 be70eea797b3 更新:头像保持原始大小和位置,不再缩进。 仅楼中楼回复内容保持缩进。 精简无用的定位和层级样式。
    • bbs1org
      bbs1org
      版本 1.0.22 f3e09e1b8658 更新:目标子回复的背景色覆盖规则
    • bbs1org
      bbs1org
      版本 1.0.21 9984b913630a 更新:修正引用回复定位问题
    主楼
  • 质量报告

    插件质量报告

    插件:quote_threads

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5----
    reply.after_render主题查看页/回帖列表逐条渲染是5----
    reply.before_render主题查看页/回帖列表逐条渲染是5----
    topic.after_view主题查看页完成加载否4----
    topic.replies_data.load主题查看页回帖查询前否4--app_replies-

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    未检测到插件数据表声明。

    #1
  • bbs1org

    @233 这个没效果。打回修正

    最后编辑于 2026-08-12 15:32
    #2
  • 233

    已重做并更新到 1.0.1。1.0.0 没效果的原因是它从 Markdown 渲染后的链接猜引用关系,但核心引用实际写入正文的是 @用户名 #N,通常没有链接。新版在 reply.before_render 直接读取原始引用标记,把父楼层写入 data-quote-threads-parent-floor,JS 只负责重排和 UI。已用真实 #2 引用 #1 验证:#2 缩进到 #1 下方并显示“回复 admin”。

    #3
  • bbs1org

    目前官网已经启用了这个插件。但是,看,还是没效果啊

    #4
  • 233

    重新检查官网页面后确认了:市场源码虽然已经替换为新实现,但官网页面实际内联的仍是 1.0.0 那段“从渲染后链接猜楼层”的旧 JS;也就是说同版本 1.0.1 更新没有触发已安装站点升级,所以官网当然仍没效果。现在已正式升版到 quote_threads 1.0.2,请在官网插件页点击更新。1.0.2 的市场下载源码已确认包含 reply.before_render 和 data-quote-threads-parent-floor 新实现。

    #5
  • bbs1org

    @233 样式丑。我来修改下提交。你先别修改了

    #6
  • bbs1org

    优化ui

    #7
  • bbs1org

    改为按原始遍历顺序生成输出序列,去掉全部 sort() 和排序索引,当前重排为线性 O(n)

    #8
  • one

    直接做成原生吧。就几行代码😀

    #9
  • bbs1org

    插件挺好的。内核只维护bug了

    #10
  • one

    后台太乱了,几十个插件😱

    #11
  • Maser

    来试试楼中楼

    #13
  • x

    这个楼中楼挺好

    #12
  • bbs1org

    楼中楼继续识别 @xx #xx,但不再从正文删除该标记;普通 #数字 不再误判为引用

    #14
  • bbs1org

    版本 1.0.21 更新:
    修正引用回复定位问题

    #15
  • bbs1org

    版本 1.0.22 更新:
    目标子回复的背景色覆盖规则

    #16
  • 350

    🔍 插件审查报告(对照《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,副作用对全站透明,建议改用更局部的方式。

    ✅ 修复优先级

    1. 修正多页楼层偏移;2. JS 改由 assets 声明;3. 移除 !important;4. 收敛对 $_GET 的全局改写。
    #17
  • bbs1org

    版本 1.0.27 更新:
    头像保持原始大小和位置,不再缩进。
    仅楼中楼回复内容保持缩进。
    精简无用的定位和层级样式。

    #18
  • bbs1org

    版本 1.0.28 更新:
    修正右侧溢出的问题

    #19
  • bbs1org

    版本 1.0.28 更新:
    共享插件

    #20
  • bbs1org

    版本 1.0.28 更新:
    共享

    #21
  • 秦始黄

    版本 1.6.5 更新:
    1、样式优化 更有层次感
    2、跨页修复 原版跨页就失效。
    3、分页逻辑优化,避免回帖归不到对应的楼层。
    4、楼层链接改为绝对ID,避免删除回帖或者回帖顺序变化,无法回到具体楼层。
    5、适配了快捷回复。避免快捷回复到楼外面。

    效果展示:https://linux.sb/topic/15365

    最后由 秦始黄 编辑于 2026-08-25 18:10
    #22
  • 秦始黄

    版本 1.6.6 更新:
    修复帖子设置回帖排序为倒序时 对应关系错误的bug

    #23
  • bbs1org

    注意,此插件有严重性能问题。不建议使用。
    高: 全量读取回帖,分页上限已失效
    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 且不要解决实现跨页问题。
    没必要。

    #24
  • 秦始黄

    我回复到对应楼层 因为分页 内容跑到其他页去了 都是回复一个楼层的内容 跑得到处都是 这是楼中楼的意义吗?
    做插件不就是为了实现功能吗?不能说为了性能,牺牲插件核心功能啊。
    你要性能别装插件最好。现在应该考虑的是为了这个功能,怎么去优化性能,如果冲突了,让用户去选择。

    #29
  • bbs1org

    做插件的核心思想,必须是性能第一、性能第一,然后才是功能。否则服务器会无法顺畅访问,何谈功能呢?

    #25
  • one

    如果一定有排名,那我觉得是安全第一,再是性能。🔍

    #26
  • bbs1org

    言之有理。接着做插件分享给大家啊,别停。

    #27
  • one

    暂时不做了,之前好几个插件都没更新。
    你做得更好,更兼容。我提点思路和想法就行

    #28
  • bbs1org

    这就是产品经理跟程序员的典型冲突场景。如果要实现完整的楼中楼,目前也没啥好方案,也就是这个插件的思路:就是一次性把回复都读出来,然后再拼接。算了,两个插件都有道理,看各自取舍吧

    #30
  • 秦始黄

    程序员是服务于用户需求的 我要不是被用户骂 也不会这么改 现在AI这么聪明 难道这点性能问题都解决不了?

    #31
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:引用楼中楼(quote_threads)v1.6.6

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #32
  • bbs1org

    版本 1.6.6 更新:
    修正回帖楼层

    #33
  • bbs1org

    版本 1.6.7 更新:
    提升版本号

    #34

发表回复

登录后回复