[xnx_quest] 1.4.17 → 1.4.18
修复任务列表缓存注册键与实际键不一致:
$cacheKeys注册的是quest_list,而getQuestList实际使用的键是quest_list_all/quest_list_enabled。file/mysql/redis 驱动有原生deleteByPrefix不受影响;memcached 驱动(无原生前缀删除,靠注册表回退逐键删除)下任务列表缓存永远删不掉,后台新建/删除任务后列表只能等 300s TTL 自然过期才刷新。已改为注册两个实际键。
[核心] Redis 缓存驱动 SCAN 空页缺陷修复
cache_redis.class.php+xiunophp.min.php同步修复:旧写法while($keys = $link->scan($iterator, $pattern, 100))在迭代遇到空数组页时把空数组当 false 提前退出循环,键空间越大首页为空概率越高,前缀删除静默失败返回 0 键——表现为所有插件的pluginDeletePrefix失效(后台新建/删除任务、签到等缓存清理不生效,数据只能等 TTL 自然过期),后台"清空缓存"同样失效。改为
while(TRUE)+ 仅scan返回 FALSE 或游标归零时退出,空页继续迭代。顺带修复
cache_redis.class.php truncate()传入$this->cachepre被拼成bbs_bbs_*恒匹配不到键的双前缀问题。部署后需重启 PHP-FPM 或清 OPcache 使
min.php新字节码生效。
[核心] 新增插件通知聚合中心
统一三通道门面 plugin_notify_fire()(站内消息 + 邮件 + 红点一次调用分发,支持 throttle 节流/通道限定/接收者与邮箱覆盖,委托 AdminNotifyService 复用其 SMTP/管理员查询能力)。
红点拉取式聚合:
plugin_notice_count_all()遍历已启用插件的hook/plugin_notice_count.php隔离执行收集 count/url,KV 聚合单键core_plugin_noticeTTL 60s 自愈。后台通知设置页:新增 插件 → 通知设置 页(全局默认提醒邮箱、每插件三通道开关+专属邮箱、测试邮件预填当前管理员邮箱)。
侧边栏与列表红点:侧边栏插件菜单聚合徽章(>99 显示 99+),插件列表卡片红点角标(有 url 时点击直达待处理页)。
开发者文档:
docs/plugindev/18-plugin-notify-hub.md完整手册 +docs/xiunox-plugin-dev/references/notify-patterns.md速查版。三语新增 27 个语言键。
[xnx_verify] 1.2.9 → 1.3.1
1.3.0
试点接入通知聚合中心:新增
hook/plugin_notice_count.php红点数据源(待审核认证申请实时计数)。提交申请通知升级为
plugin_notify_fire(new_pending事件,300s 节流,旧核心回退AdminNotifyService::audit兼容)。审核通过/拒绝后主动失效红点聚合缓存,待办清零时清节流键。
1.3.1
管理员通知配置整合到统一通知设置中心:设置页移除旧"管理员通知"区块,替换为跳转提示卡片。
upgrade.php幂等迁移旧值到plugin_notify_config,迁移后删除旧键;install.php新装不再写入旧键。三语清理 7 个旧键,新增 2 个迁移提示键。
[xnx_quest] 1.4.18 → 1.4.19
接入通知聚合中心:新增
hook/plugin_notice_count.php红点数据源(复用getPendingCount与后台审核 Tab badge 同口径缓存)。两个申请入口(
submitApplication/submitCustomApplication)提交成功后调用plugin_notify_fire(new_pending事件 300s 节流,双入口共享同事件防刷屏)。reviewApplication审核通过/拒绝后主动失效红点缓存,待办清零清节流键。三语新增
quest_notify_admin_subject/body。
[xnx_medal] 1.0.8 → 1.0.9
新增红点数据源(待审核勋章申请计数)。
勋章申请提交通知升级
plugin_notify_fire(new_pending事件 300s 节流,旧核心回退audit+ignore_enabled)。auditApply审核后红点实时消失、待办清零清节流键。设置页移除旧通知表单,替换为跳转统一设置页提示卡片。
upgrade.php幂等迁移旧值到plugin_notify_config。三语清理 7 个旧键,新增 2 个迁移提示键。
[xnx_ad_selfbuy] 1.3.3 → 1.3.4
新增红点数据源(待审核广告订单计数,URL 带
tab=audit)。createOrder新订单通知升级plugin_notify_fire(new_pending事件 300s 节流)。auditOrder审核后红点实时消失、待办清零清节流键。后台管理页移除旧通知配置区块,替换为跳转提示卡片;
upgrade.php幂等迁移。三语清理 7 个旧键,新增 2 个迁移提示键。
[xnx_appcenter] 1.15.35 → 1.15.37
1.15.36
接入通知聚合中心(双审核流):新增红点数据源(待审应用 + 待审开发者双表合计,URL 指
app_auditTab)。应用提审两处升级
plugin_notify_fire共享new_pending事件,开发者申请用dev_new_pending独立事件,均 300s 节流。审核后红点实时消失、各自待办清零清对应节流键。
设置页移除旧通知区块,替换为跳转提示卡片。
upgrade.php幂等迁移(替换旧 v1.5.0 补键块防打架)。三语清理 9 个旧键,新增 2 个迁移提示键。
1.15.37
修复 PNG 校验误伤下载包/截图:
promoteAttach为图标/截图/下载包共用函数,v1.15.36 加在函数内部的 PNG 校验导致编辑应用上传 zip 或截图时误报「应用图标仅支持 PNG」;改为$must_png参数,仅图标两个调用点传true,截图与下载包不校验。
[xnx_report] 1.0.2 → 1.0.3
新增红点数据源(待处理举报计数)。
核心
ReportService::notifyAuditAdmins由AdminNotifyService::audit升级plugin_notify_fire(new_pending事件 300s 节流)。maybeClearAuditDebounce开头加plugin_notice_flush覆盖全部处理入口。设置页移除旧通知区块(kv+setting 双写两处清键)。
upgrade.php重写为幂等迁移(从 kv 与 setting 表两处读旧值迁移)。语言包清理 7 个旧键,新增 2 个迁移提示键。
[xnx_friendlink] 1.1.2 → 1.1.3
新增红点数据源(待审核友链申请计数,URL 指向插件独立后台管理页)。
route/apply.php裸notify_create(仅站内消息)升级plugin_notify_fire三通道(new_pending事件 300s 节流,旧核心回退保留原notify_create),硬编码中文消息改 lang 键。审核后红点实时消失、待办清零清节流键。
设置页移除
notify_admin_on_apply开关,新增跳转提示卡片。upgrade.php新建幂等迁移。三语新增 4 个通知语言键。
[xnx_home_block] v1.0.5
帖子列表新增置顶帖(仅全站置顶)、公告帖 Tab。
后台新增帖子/会员列表 Tab 多选开关(勾选启用 + 序号自定义排列顺序,全部不勾即隐藏该区域)。
推荐贴 ID 输入框改为单行,支持英文逗号或回车分隔。
[xnx_recharge] 积分充值插件 v1.0.0 → v1.0.3
v1.0.0(骨架)
conf.json预登记 10 个 hook 点。install.php建表xnx_recharge_plan/xnx_recharge_order(含order_no唯一键与三组查询索引)+ 16 项默认支付配置。uninstall.phpDROP 两表 +setting_delete。discover_register.php发现页自注册。model_inc_file.php注册三个 Service 占位类(RechargeService/AlipayService/WechatPayService)。model_cron_5_minutes_end.php定时关单 hook。三语语言包 81 键。
v1.0.1(AlipayService)
RSA2 签名/验签(请求签名保留
sign_type,通知验签剔除 sign/sign_type)。当面付
precreate(同步响应验签+斜杠二次验签兜底)、wap.pay跳转 URL。异步通知验签与金额元/分字符串精确换算,密钥 PEM 头自动补全(PKCS#8/PKCS#1 双格式探测)。
v1.0.2(支付异步回调链路)
hook/index_inc_route_before.php在全局 CSRF 前分发recharge-notify-alipay/wechat路由。route/notify.php实现支付宝 RSA2 验签入账 + 微信 APIv3 验签解密入账,验签失败走queryOrder查单兜底,幂等由completeOrder行锁保证。
v1.0.3(前台充值功能)
hook/model_route_table_end.php注册 recharge/recharge-pay/recharge-status/recharge-return/recharge-notify-* 六条路由。route/recharge.php四分支:默认充值页、pay 下单、status 轮询、return 同步回跳。view/htm/recharge.htm与pay_result.htm三栏骨架,含余额三卡、套餐网格、渠道卡、扫码 Modal。static/js/recharge.js原生 IIFE(套餐/渠道单选联动、fetch POST、二维码复用实例、3s 轮询、AbortController 超时)。static/css/recharge.css卡片选中态(border 高亮+CSS 变量适配暗色)。
[文档] 插件通知聚合中心接入文档
新增
docs/plugindev/18-plugin-notify-hub.md完整手册(三通道架构/红点 hook 协议/fire 参数表/旧通知配置迁移规范/接入检查清单/xnx_verify 范例)。新增
docs/xiunox-plugin-dev/references/notify-patterns.md速查版。SKILL.md 速查参考与 Hook 选择速查表、双 README 导航、两版 hooks-catalog 均登记
plugin_notice_count.php协议 hook。原
docs/plugin-notify-guide.md改为跳转 stub(单源维护)。
[优化] 统一通知设置页
全局默认提醒邮箱 placeholder 示例改为逗号分隔双邮箱样式,tip 文案注明“支持填写多个,用逗号分隔”(实际解析早已支持逗号/分号/空格/换行分隔并自动去重校验,本次仅补 UI 提示),三语同步。





