• bbs1org
    引用回复盖楼
    ID reply_quote_tree版本 1.2.2插件制作者 bbs1org免费260 行 / 13 KBHook
    将带楼层引用的回复自动归入同一讨论串并显示层级(新发布的引用回复也会即时归位);操作条布局与更多弹层已由内核提供。
    app/plugins/reply_quote_tree/plugin.php
    开发日志最新 10 条

    个人独立维护项目。

    • bbs1org
      bbs1org
      版本 1.2.2 796e89f1c4a2 更新:修正层级顺序错误问题release
    • bbs1org
      bbs1org
      版本 1.2.0 149c162b1ae9 更新:优化帖子操作区
    • bbs1org
      bbs1org
      版本 1.1.8 2b7389a17d7c 更新:回复与点赞靠左
    • bbs1org
      bbs1org
      版本 1.1.2 d059d463d20c 更新:每楼的操作移到内容下方,回复按钮靠左,楼层号与更多菜单靠右,除回复外的操作与复制链接收进弹层。
    • bbs1org
      bbs1org
      版本 1.0.16 e7d21ddf1389 更新:每楼的操作收进竖排三点菜单,电脑悬停或移动端点击展开,楼层号仍留在原处
    • bbs1org
      bbs1org
      版本 1.0.15 a6172c5baf83 更新:每楼的操作收进竖排三点菜单
    • bbs1org
      bbs1org
      版本 1.0.12 52faf7013f2c 更新:修复宽度问题
    • bbs1org
      bbs1org
      版本 1.0.12 065a134fe857 更新:提升版本号
    • bbs1org
      bbs1org
      版本 1.0.11 81bf1cdfbcb9 更新:修正回帖楼层
    • bbs1org
      bbs1org
      版本 1.0.11 c62d66b8a77b 更新:优化引用
    主楼
  • 质量报告

    插件质量报告

    插件:reply_quote_tree

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    reply.after_render主题查看页/回帖列表逐条渲染是5----
    reply.before_render主题查看页/回帖列表逐条渲染是5----
    topic.replies主题查看页回帖集合否4----

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

    数据字典

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

    #1
  • bbs1org

    版本 1.0.5 更新:
    回复不再散落在楼层之间。插件自动识别首个 @用户名 #楼号 引用,将关联回复收拢为连续讨论串,阅读上下文更清晰。
    子回复正文按头像宽度缩进,引用信息移至元信息末尾,并使用统一的引用图标与楼层链接。支持多层引用、保持真实楼号,并可安全处理循环引用。
    性能方面,插件仅处理当前分页已加载的回帖,不增加数据库查询、外部请求或前端重排。树状整理为线性复杂度,默认每页 50 条回帖下开销极低。
    下面必看,会严重影响服务器性能:
    默认不建议解决跨分页子回复聚合,主要原因:

    1. 会破坏分页语义

    将第二页子回复挪到第一页后,页数、每页数量和楼层分布都会不再稳定,用户返回、刷新或按楼层跳转时容易看到不同内容。

    1. 父回复需要重复展示

    若不移动子回复,就必须在第二页额外补出第一页的父回复;同一回复会出现在多个页面,阅读与引用链接的预期会变复杂。

    1. 完整聚合无法只查当前页

    要找到跨页子孙,需要查询索引关系并递归展开。若一个父回复有大量后代,必须设深度与数量上限,否则单次看帖可能扩张到整帖。

    1. 需要长期维护关系索引

    发帖、编辑、删除、导入和历史数据都要同步 回复 ID -> 父回复 ID。任何遗漏都会造成展示错误,历史回填还需要计划任务。

    1. 额外数据库成本常态化

    当前插件只处理已读取数组,零额外查询。跨页方案每次看帖至少增加关系查询、补充回复查询和用户信息批量查询。

    1. 楼层本身不是固定主键

    楼号由时间排序和分页计算得出。历史导入、时间修正或排序变化可能改变位置,使保存的 #楼号 与关系索引需要重新校正。

    1. 收益覆盖面有限

    大多数主题的回复量不会跨分页,或引用双方本来就在同页。为少数长帖增加全站持续的读写复杂度,性价比不高。
    当前方案按页整理,保留楼层、分页和性能边界,是更稳妥的默认实现。
    如果觉得分页的子回复非常重要,可以把每页显示的回复数调大。

    最后由 bbs1org 编辑于 2026-08-27 09:48
    #2
  • bbs1org

    版本 1.0.6 更新:
    修复新回复的引用层级显示

    #3
  • bbs1org

    版本 1.0.7 更新:
    将引用按钮的 data-floor 修正为真实楼号。
    AJAX 新引用回复插入后,移动到父回复现有后代的末尾。
    父回复跨页时不强行移动,避免跨页排序错误

    #4
  • 399

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

    插件:reply_quote_tree v1.0.7

    🔒 安全问题
    未发现明显问题。纯前端展示逻辑,无数据库读写、无路由、无用户输入落库;所有动态内容(用户名、楼层号)经 h() 转义后输出。

    ⚡ 性能问题
    未发现明显问题。核心处理集中在 topic.replies(每主题页一次)预处理排序分组,reply.before_render / reply.after_render 两个红区 Hook 内均为纯内存字符串操作(正则替换、数组查表),无任何 q/one/val 数据库调用,符合红区零 DB 读规则。

    🐛 功能/规范缺陷

    1. 命名前缀:函数、CSS 类、data-* 属性均以 reply_quote_tree_ / reply-quote-tree- 为前缀,未见冲突风险。
    2. manifest 注册的 3 个 Hook(topic.replies、reply.before_render、reply.after_render)均为核心真实存在的 Hook,用法正确。
    3. CSS 中未见写死字号(font-size 均未出现字面量 px 数字),符合规范。

    ✅ 修复优先级
    未发现需要修复的问题。整体实现严谨(防循环引用处理 reply_quote_tree_without_cycles、正则替换均有边界判断),是本次抽查中质量较高的插件。

    #5
  • bbs1org

    版本 1.0.11 更新:
    优化UI

    #6
  • bbs1org

    版本 1.0.11 更新:
    优化引用

    #7
  • bbs1org

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

    #8
  • bbs1org

    版本 1.0.12 更新:
    提升版本号

    #9
  • bbs1org

    版本 1.0.12 更新:
    修复宽度问题

    #10
  • bbs1org

    版本 1.0.15 更新:
    每楼的操作收进竖排三点菜单

    #11
  • bbs1org

    版本 1.0.16 更新:
    每楼的操作收进竖排三点菜单,电脑悬停或移动端点击展开,楼层号仍留在原处

    #12
  • bbs1org

    版本 1.1.2 更新:
    每楼的操作移到内容下方,回复按钮靠左,楼层号与更多菜单靠右,除回复外的操作与复制链接收进弹层。

    #13
  • bbs1org

    版本 1.1.8 更新:
    回复与点赞靠左

    #14
  • bbs1org

    版本 1.2.0 更新:
    优化帖子操作区

    #15
  • xdy0322

    卡片模式下三点菜单里的内容在很远的地方

    #16
  • bbs1org

    没看懂。。。

    #17
  • xdy0322

    正常应该鼠标悬停之后下面出现菜单,但是在卡片模式下悬停的菜单出现在右下角返回顶部的地方

    #19
  • one

    防止误操作。

    #18
  • bbs1org

    版本 1.2.2 更新:
    修正层级顺序错误问题

    #20

发表回复

登录后回复