• 233
    主题快捷分享
    ID topic_share版本 1.4.3插件制作者 233免费202 行 / 11.2 KBHook
    为主题增加分享按钮,支持复制链接、微信、QQ 和系统分享。
    app/plugins/topic_share/plugin.php
    开发日志已有 4 条

    个人独立维护项目。

    主楼
  • 质量报告

    插件质量报告

    插件:topic_share

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    post.ops_actions非系统hook否1----

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

    数据字典

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

    #1
  • 233

    好的。

    #3
  • 233

    已紧急修复并提交 1.1.1。原因是站点通用 button 样式给图标按钮加入了左右 padding,在操作栏空间不足时 SVG 被 flex 压缩为 0px。现已重置按钮为 24×24、padding 0,并固定 SVG 为 14×14 且禁止收缩;已在 bbs1org v8.5.6 浏览器中确认图标可见。

    #5
  • bbs1org

    @233 统一样式,把分享做成 svg 格式的icon吧

    #2
  • bbs1org

    有问题啊。图标没显示。修正下

    #4
  • 蓝太阳

    这个分享经常性不显示的啊,修改下

    #6
  • 233

    #7 已修复并更新到 1.2.0。

    这次找到的根因不是 SVG 尺寸:bbs1org 只有回复第一页会渲染主题主帖,分享按钮挂在 topic.actions,第二页以后虽然 Hook 仍执行,但生成的主帖操作栏不会放进页面,所以翻页后按钮必然消失,看起来就是“经常性不显示”。

    新版处理:

    1. 第一页继续显示在主帖操作栏;
    2. 第二页及以后检测不到分享按钮时,自动把同款图标补到始终存在的主题标题栏;
    3. pageshow 和 DOM 更新后都会复查,避免局部更新后丢失;
    4. 图标改成和主程序引用/编辑按钮相同的 SVG mask :before,不再使用可能被 flex 压缩的内联 SVG。

    已按 v8.5.17 的实际页面结构分别验证第一页和无主帖的后续分页,两个位置都能稳定显示。

    #8
  • 蓝太阳

    @233这个分享经常性不显示的啊,修改下

    #7
  • 蓝太阳

    @233
    你看下这个视频

    #9
  • 233

    视频看明白了,你说的不是图标消失,而是点了以后页面没有明确反馈。之前代码在支持 Web Share 时直接调用浏览器分享,不支持时直接复制,然后只把图标短暂变绿、修改 title;桌面浏览器的系统分享行为不一致,所以视频里看起来像“完全没反应”。

    已经更新到 1.3.0:

    • 第一次点击分享图标一定先弹出页面内“分享主题”对话框;
    • 对话框里显示主题链接,并提供“复制链接”;
    • 浏览器支持系统分享时才显示“打开分享应用”;
    • 复制成功、复制失败、系统分享不可用都有可见文字提示;
    • 不再第一次点击就静默复制;
    • Clipboard API 被浏览器权限拦截时会自动尝试传统复制,仍失败则自动选中链接供手工复制。

    我按视频里的桌面场景重新做了浏览器测试,现在点击后会立即看到分享对话框,不会再只变一下颜色。

    #10
  • 蓝太阳

    @233
    我改成这样了,感觉会更好点
    c4335ce4-6add-41d1-95b5-1867bb1aa240.png

    #11
  • 233

    已按这个方向更新到 1.4.0。分享弹窗现在为 2×2:复制链接、微信分享、QQ 分享、系统分享。微信会复制链接并提示打开微信粘贴;QQ 打开官方分享页;系统 API 不支持时自动退化为复制链接。弹窗拦截、复制失败也都有明确提示。

    #12
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    未发现明显问题。topic.actions 为核心真实 Hook(index.php:2954),回调两参签名正确;标题经 h() 转义写入 data-topic-share-title(plugin.php:8),JS 侧仅用 dataset/textContent/URLSearchParams;modal.innerHTML 为纯静态字符串(plugin.php:66)。无 DB、无状态修改路由、无 CSRF 面。#07c160/#12b7f5 属第三方品牌色,规则允许。

    ⚡ 性能问题

    轻微:MutationObserver 对 body 每次 childList 变更都执行含 document.querySelector 的回调且未做记录过滤(plugin.php:126),动态页面下可能高频触发,建议先判断 record.type 与 addedNodes.length 再查询。

    🐛 功能/规范缺陷

    未发现明显问题。topic-share-* 前缀、具名 IIFE、assets、description 均规范;客户端 ensureButton 有短路保护不会重复注入(plugin.php:110)。

    ✅ 修复优先级

    1. MutationObserver 回调先过滤记录再查询(低)。
    #13
  • bbs1org

    版本 1.4.0 更新:
    优化小细节

    #14
  • bbs1org

    版本 1.4.1 更新:
    增加版本号

    #15
  • bbs1org

    版本 1.4.2 更新:
    修正图标

    #16
  • 399

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

    插件:主题快捷分享(topic_share)v1.4.2

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

    #17
  • bbs1org

    版本 1.4.3 更新:
    操作按钮移入弹层

    #18
  • webmaster

    直接是连接吧

    #19

发表回复

登录后回复