• mingmeo
    更好的通知
    ID better_notice版本 1.2.1插件制作者 mingmeo免费1224 行 / 45.3 KBHook / 路由
    为论坛增加右上角头像及头像菜单,实时更新通知,提供与多个插件的适配。
    app/plugins/better_notice/plugin.php
    开发日志已有 2 条

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

    • banming
      banming
      版本 1.2.1 b4f51ef5b9d6 更新:# v1.2.1 - 修复 BUG,优化使用体验。release
    • banming
      banming
      版本 1.2.0 d57a8be24676 更新:# v1.2.0 > 插件曾在此版本更换ID - 新增与 `floating_notice` 悬停通知 公告系统适配 - 优化UI - 新增头像晃动效果
    主楼
  • 质量报告

    插件质量报告

    插件:better_notice

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    page.footer全站页面页脚否5----
    request.csrf_exempt请求 CSRF 豁免检查否2----

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

    数据字典

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

    #1
  • mingmeo

    版本 1.2.0 更新:

    v1.2.0

    插件曾在此版本更换ID

    • 新增与 floating_notice 悬停通知 公告系统适配
    • 优化UI
    • 新增头像晃动效果
    #2
  • mingmeo

    Better-Notice 更好的通知插件

    此插件曾更换 ID

    简介

    本插件将论坛顶部原有的"我的"链接替换为当前登录用户的头像,点击头像呼出通知管理面板,方便用户查看和管理系统通知。
    paste-20260815-122229.png

    通知数据来源

    插件直接使用论坛核心的 app_notifications 表,未额外创建数据表。

    轮询机制

    插件会定时获取新通知,如有则会弹出通知弹窗。
    paste-20260815-121803.png

    系统级弹窗

    插件会向用户申请通知权限,如成功获得权限,会在收到新通知时发送系统级通知。

    其他插件联动

    总览

    • 每日签到 与 更好的签到
    • floating-notice 悬浮通知

    每日签到 与 更好的签到

    若您安装了这两个插件的任一一个,插件会在头像菜单中添加 每日签到 按钮。
    paste-20260815-121943.png

    floating_notice 悬停通知

    若您安装了此插件,插件会增加一个选项卡,您可通过本插件的头像菜单查看公告,并隐藏悬停通知插件的通知窗。
    paste-20260815-122138.png

    亮点

    • 无额外数据表
    • 响应式
    • 轻量级
    • 动画流畅

    最后由 mingmeo 编辑于 2026-08-15 12:23
    #3
  • mingmeo

    版本 1.2.1 更新:

    v1.2.1

    • 修复 BUG,优化使用体验。
    #4
  • 350

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

    🔒 安全问题

    • CSRF 豁免范围过大:request.csrf_exempt 对整个 better_notice_api 路由返回 true(plugin.php:35),导致 read_one/unread_one/read_all/unread_all 等写操作(plugin.php:163/165 等)可被跨站请求伪造。建议只豁免只读的 notice_get,写操作保留 CSRF 校验。

    ⚡ 性能问题

    • 前端 3~8 秒轮询 notice_get(plugin.php:26),每次 COUNT + 拉取 50 条通知 + 逐条 markdown_html()(plugin.php:87-96),高频重复开销。建议轮询只返回未读计数,打开菜单时才渲染列表并做缓存。

    🐛 功能/规范缺陷

    • 直接写 app_notifications/app_users(plugin.php:163/165),绕过核心 mark_notifications_read()/notifications_unread_total(),未失效 me() 缓存,导致核心未读徽章不同步。建议改用核心接口。
    • 全局 * 选择器(plugin.php:303-305)与 #floating-notice-root{display:none!important}(plugin.php:253)覆盖核心/其它插件,建议限定作用域并去掉 !important。
    • ID/类名/全局 JS 无插件前缀:#user_popover(plugin.php:257)、window.createNotifyToast(plugin.php:1008),建议统一 better_notice_/better-notice- 前缀。
    • footer 回调 : string 可能返回 null(plugin.php:219),建议 (string)$html。

    ✅ 修复优先级

    先收紧 CSRF 豁免,再优化轮询,最后改用核心通知接口与统一命名前缀。

    #5
  • 399

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

    插件:更好的通知(better_notice)v1.2.1

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

    #6
  • mingmeo

    请注意:本插件现在与新版论坛冲突 建议不要安装

    #7
  • zaiwai

    咋不按最新版的更新一下。

    #8
  • mingmeo

    插件原来效果就不太理想,尤其是桌面端 而且现在论坛已经有头像了 最近也在维护我其他的项目 所以就不更新了

    #9

发表回复

登录后回复