- 官方通知ID official_notifications版本 1.0.2插件制作者 jesen免费176 行 / 12.9 KBHook / 路由 / 后台页管理员按主题发布有生效期的官方通知,支持点击处理、手动确认、一键忽略和跨设备已读状态。app/plugins/official_notifications/plugin.php开发日志已有 1 条
个人独立维护项目。
主楼 插件质量报告
插件:
official_notificationsHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 page.header 全站页面页头 否 5 - - - 读 plugin_official_notifications, plugin_official_notifications_processed 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_official_notifications字段 类型 可空 默认值 约束 id id 否 - 主键、自增 topic_id uint 否 - - title string 否 - - effective_at uint 否 - - expired_at uint 是 - - read_mode uint 否 - - created_by uint 否 - - created_at uint 否 - - deleted_at uint 是 - - deleted_by uint 是 - - plugin_official_notifications_processed字段 类型 可空 默认值 约束 user_id uint 否 - 主键 notification_id uint 否 - 主键 processed_at uint 否 - - 修复通知图标位置错误的问题
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题。SQL 全部参数化,软删除、写操作经
require_post()与 CSRF 校验,insert_ignore第三参与表主键一致。⚡ 性能问题
plugin.php:47在page.header钩子中对每个登录用户每页执行official_notifications_unread_exists()(plugin.php:39的one(...)),给所有页面增加一次未读查询,建议复用核心notifications_unread_total()或在app.boot做请求级缓存。plugin.php:79-81“一键忽略全部”逐条insert_ignore,plugin.php:96列表内逐条row('app_topics',...),建议改为批量插入与rows_by_ids()内存映射。
🐛 功能/规范缺陷
未发现明显问题。
✅ 修复优先级
- 每页未读查询(中);2. 批量操作去循环(低)。
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:官方通知(official_notifications)v1.0.2
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。