2026-06-25 更新日志
勋章系统 - 版块门控功能
新增版块勋章门控:设置版块所需勋章,用户需拥有任一勋章才能访问(OR 逻辑)
新建 xnx_forum_medal 关联表,插件自建表不改系统结构
后台勋章设置页新增「版块门控」tab,可配置每个版块所需的勋章
拦截点:版块列表页(forum_top_list_before)、帖子详情页(thread_info_start)、回帖(post_get_post)
管理员组(gid=1,2)豁免,帖子作者可查看自己帖子
拦截时显示友好提示页,列出所需勋章并引导用户去勋章墙获取
性能优化:版块-勋章映射请求级缓存,用户勋章ID请求级缓存,避免重复查库
勋章系统优化
合并「我的勋章」页面到勋章墙,统一在三栏布局中展示佩戴/取消佩戴/申请记录
移除左侧栏「我的勋章」导航项和
medals-my子路由勋章卡片添加佩戴/取消佩戴按钮,支持 htmx 局部刷新
免费勋章申请前先检查条件是否满足,不满足时显示「条件不足」提示而非申请按钮
勋章卡片添加
is_wearing标记,已佩戴勋章显示蓝色边框和图标
伪静态切换风险点修复
针对项目当前 url_rewrite_on=4(.html 后缀风格)配置,系统性修复了切换伪静态后可能导致功能失效的风险点。
高风险修复
前端 URL 生成函数全模式支持:
xn.url()(xiuno.js)补齐on=4/on=5分支,避免返回空字符串XN.url()(xiuno-modern.js)补齐on=4分支,避免缺少.html后缀触发 301
模板相对路径静态资源:
my_avatar_page.htm的 cropper.min.js 改为$conf['view_url']拼接rank.htm的 anime.umd.min.js 改为$conf['view_url']拼接
Referer 安全校验兼容 .html 后缀:
http_referer()正则兼容.htm和.html两种后缀user_http_referer()去掉user-login.htm等 5 处硬编码.htm后缀检测
中风险修复
跳转 URL 统一通过 url() 生成:
route/mod.php7 处置顶/加精/关闭/删除/移动等操作的redirect_url由'./'改为url('index')xiuno-modern.js积分检查 fallback URL 改为通过XN.url()生成bbs.js置顶操作 fallback URL 改为通过xn.url()生成index.inc.php搜索跳转改为通过url('search', array(...))生成,不再硬编码search.htm
