• jesen
    官方通知
    ID official_notifications版本 1.0.2插件制作者 jesen免费176 行 / 12.9 KBHook / 路由 / 后台页
    管理员按主题发布有生效期的官方通知,支持点击处理、手动确认、一键忽略和跨设备已读状态。
    app/plugins/official_notifications/plugin.php
    开发日志已有 1 条

    个人独立维护项目。

    • jesen
      jesen
      版本 1.0.2 3d3cd07abb34 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。release
    主楼
  • 质量报告

    插件质量报告

    插件:official_notifications

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    page.header全站页面页头否5---读 plugin_official_notifications, plugin_official_notifications_processed

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

    数据字典

    plugin_official_notifications

    字段类型可空默认值约束
    idid否-主键、自增
    topic_iduint否--
    titlestring否--
    effective_atuint否--
    expired_atuint是--
    read_modeuint否--
    created_byuint否--
    created_atuint否--
    deleted_atuint是--
    deleted_byuint是--

    plugin_official_notifications_processed

    字段类型可空默认值约束
    user_iduint否-主键
    notification_iduint否-主键
    processed_atuint否--
    #1
  • jesen

    修复通知图标位置错误的问题

    #2
  • 350

    🔍 插件审查报告(对照《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() 内存映射。

    🐛 功能/规范缺陷

    未发现明显问题。

    ✅ 修复优先级

    1. 每页未读查询(中);2. 批量操作去循环(低)。
    #3
  • 399

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

    插件:官方通知(official_notifications)v1.0.2

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

    #4
  • jesen

    旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。

    #5

发表回复

登录后回复