XIUNOX 更新日志 2026-09-02 [复制链接]

管理员组

🧩 插件拆分:xnx_home_block → xnx_block_post + xnx_block_user

  • xnx_home_block 拆分为两个独立插件:帖子区块xnx_block_post,轮播+帖子列表+推荐位)与会员区块xnx_block_user,最新/活跃/土豪会员),各自独立启用/配置/卸载。

  • 置顶 Tab 图标改为 ti ti-pin(原 ti-pinned 已废弃)。

  • CSS/JS/语言包按 xbp-/xbu- 前缀拆分。


💰 新增:推荐位上墙购买功能(两插件同构)

  • 后台设置:推荐位总坑位数、是否开放购买、积分类型/数量(0=免费)、时效天数。

  • 前台入口:未满坑位时在推荐 Tab 内显示「我要上墙」入口:

    • 帖子区块:用户选择自己的帖子提交。

    • 会员区块:一键确认上墙(推荐自己)。

  • 扣费与记录:经 CreditsService 扣积分(行锁+事务+流水)后写入购买记录,到期查询过滤自动下架。

  • 后台管理表:新增「当前上墙购买记录」表(帖子标题/会员名、支付信息、到期时间),支持管理员提前下架。


🔄 数据迁移(幂等)

  • 新插件 install.php 自动迁移旧数据:

    • 旧轮播表 RENAME 保留。

    • 旧设置键复制拆分(show_members=0 映射为会员 Tab 全空隐藏,member_tabs 自动前置 recommend)。

  • 升级顺序:先装两个新插件(自动迁移)→ 卸载旧 xnx_home_block → 删除服务器旧目录。


🛡️ 安全与修复

  • 安全:上墙确认弹窗内积分名称经 XN.escapeHtml 转义后入 innerHTML;POST 走中央 CSRF 校验 + XN.ajax 头 + csrf_token 字段三重保险。

  • 修复xnx_block_post 上墙弹窗 [object HTMLDivElement] 乱码 → XN.confirmoptions.body 改为 HTML 字符串;选中 tid 改为弹窗创建后同步捕获。

  • 修复:扫描器 2 个警告清零:BlockUserService 头像兜底 htmlspecialcharsesc_attr()block_user.js 头像渲染 insertAdjacentHTMLDOMParser + adoptNode


🎨 后台设置页拆分 Tab

  • 两插件各分「基础设置」与「推荐位与上墙」两个 Tab,模板拆 setting_basic / setting_wall

  • POST 按 Tab 分支接收字段,再 array_merge 保存防跨 Tab 丢配置。


🔧 产品定死展示数量

  • 帖子每 Tab 5 条,帖子推荐位总坑位 5 个Service 常量 THREAD_COUNT/RECOMMEND_SLOTS)。

  • 会员榜单 10 个MEMBER_COUNT),会员推荐位坑位数保留可配置。

  • 删除对应后台字段。


📦 其他插件更新

xnx_friendlink 1.1.3 → 1.1.4

  • 移动端友链/酷站卡片从页脚 bbs-footer 内部移到主内容区 </main> 之前(footer_start.htm),不再挤在版权区里。

xnx_project_cost 1.2.4 → 1.2.5

  • 后台左侧菜单项样式修复:side-nav-icon/side-nav-text(CSS 中不存在的类)改为核心 menu-icon/menu-text span 结构。

xnx_comment_skin 1.3.1 → 1.4.0

  • 个人装扮从“自己看自己”改为全员可见(含游客)buildPageCss 签名由 viewer_uid 改为按页面楼层作者批量预取(getAuthorsActiveGoods 两条 IN 查询+预填偏好缓存),CSS 按作者 data-uid 逐楼生效。

  • 评论区装扮装饰图可点击跳转装扮商城:新增 post_list_inc_message_after.htm hook 渲染角标链接(定位锚点=宿主 .message.aie-content),个人装扮不再输出 ::after 角标避免重叠。

  • 三语言同步改写为“全员可见”语义。


⚙️ 核心优化

admin 后台插件/模板识别机制重构

  • 废除 plugin_is_theme() 的目录名/关键词猜测(会误判“主题编辑器”类插件)。

  • conf.json type 字段为唯一权威源theme/template/skin),type 未声明时回退 db 存量值。

  • plugin_db_init()conf.json 显式声明 type 与 db 不一致时自愈同步。

  • 已清 tmp/model_plugin.func.php


🎯 会员推荐位 UI 改进

  • 上墙入口改为走马灯末位的 “加号占位卡”(虚线框 + ti-plus + “我要上墙”,样式同会员卡),有剩余坑位即常驻显示(自己已上墙时点击弹窗提示已在墙上)。

  • 推荐会员走马灯 少于 6 个时不循环(静态排列,超出宽度可手动横向滚动),满 6 个才启用克隆+自动滚动。

最新回复
  • xiunox 一级用户组

    更新日志已读,几条值得点赞:插件拆分配合幂等迁移,升级路径清晰;上墙功能把“扣费动账”收敛到 CreditsService,行锁+事务+流水,方向正确。前端安全细节也到位,insertAdjacentHTMLDOMParser、角标避免重影,这些容易踩的坑处理得很干净。
    核心优化里以 conf.jsontype 为唯一权威源很合理,建议在文档里写明旧目录的升级判定逻辑,避免某些“主题编辑器”类插件被误判。
    补充个小观察:会员推荐位“少于 6 个不循环”能避免视觉重复,但若只有 5 个且宽度不够,自动横向滚动配合手势可能仍需测试,建议留意。【 AI 自动回复,仅供参考】

    20小时前

请先登录后再回复 登录