XIUNO BBS X版 更新记录贴 20260626

举报插件(xnx_report)全面优化

安全修复

  • 后台举报管理页增加***权限检查(gid>2拒绝访问)

  • 前台举报路由增加封禁用户(gid=0)检查

  • 修复前端 message() 返回 code 为字符串类型,所有 res.code === 0 改为 parseInt(res.code) === 0

功能增强

  • 后台举报列表增加内容可点击链接(帖子→/thread-{tid},评论→帖子锚点,用户→/user-{uid})

  • 后台举报列表增加分页导航

  • 后台举报列表增加 IP 列显示

  • 新增"删除并封禁"组合操作(delete_ban),单条和批量均支持

  • 举报记录表新增 target_uid 字段(冗余存储目标作者UID),解决内容删除后无法封禁作者的问题

  • install.php 增加兼容升级逻辑,为已有表自动添加 target_uid 字段

前端优化

  • 举报弹窗标题动态化("举报帖子"/"举报评论"/"举报用户")

  • 统一三个hook中举报按钮样式(统一使用 <a> 标签)

  • 修复 setting.htm 中 cardtext-center HTML class 缺空格问题

  • 后台设置表单增加防重复提交(disabled按钮+loading文案)

  • 操作后刷新改用 location.href = location.href 避免POST重提交

架构优化

  • ReportService 解耦插件依赖,内置配置读写方法,不再 include plugin common.php

  • common.php 改为委托给 ReportService(向后兼容)

  • 自动审核通知增加防重复(cache_set 60秒去重)

  • 批量处理举报优化:批量读取记录+去重通知,避免N条举报产生2N条通知

  • 语言包完善,新增后台管理、设置、错误等40+条翻译key

EdgeOne 插件伪静态兼容修复

  • 修复 autoPurgeAfterPost 硬编码 .htm 后缀导致伪静态模式下缓存刷新 URL 不匹配的问题,改用 url() 函数自动适配当前伪静态格式

  • 缓存刷新增加版块列表页,发帖/回帖后同时刷新帖子页、版块页和首页

  • hook 文件传递 $fid 参数以支持版块页刷新

thread.func.php 伪静态兼容修复

  • 修复 $thread['url']$thread['user_url'] 硬编码 .htm 后缀的问题,改用 url() 函数适配伪静态格式

评论/回复审核按钮

  • 新增 mod-audit_post 路由,处理回帖的审核通过/驳回操作

  • 在帖子详情页的回复列表(一级回复和二级回复)中,为***/版主添加审核通过和审核驳回按钮

  • 审核按钮仅在回复处于待审或驳回状态时显示(audit_status != 1)

  • 使用 fetch + toast 方式提交审核操作,成功后自动刷新页面

标题字数限制

  • SecurityConfigService 新增 security_subject_min_length(默认2)和 security_subject_max_length(默认128)配置项

  • 后台「设置-安全-发帖限制」页面新增「标题最低字数」和「标题最高字数」配置项

  • 发帖路由 thread.php 添加标题字数校验,替换原硬编码 128 字符上限

  • 前端发帖页标题输入框添加 maxlength 属性和字数要求提示

  • 更新 zh-cn/zh-tw/en-us/ja-jp/ko-kr/th-th/ru-ru 语言包,添加 *****_subject_min_chars、*****_subject_max_chars、subject_too_short、subject_too_long、subject_char_requirement 翻译 key

i18n 语言包完整性优化

  • 根据 i18n 硬编码审计报告,向 zh-cn/zh-tw/en-us 三个语言包添加缺失的语言键

  • bbs_common.php:新增 19 个键(主题外观扩展、作者标签、头像权限、通知类型扩展、页脚错误等)

  • bbs_*****.php:新增 72 个键(后台主题切换、页脚品牌、快捷操作、AI 设置、API 调试、OPcache 缓存状态、表头单位、固定链接等)

  • bbs_install.php:新增 17 个键(安装界面扩展、安全提示等)

  • 已清理 tmp 缓存,审计报告更新至 .trae/specs/i18n-hardcoded-audit/audit-report.md

模板硬编码文本替换

  • 前台模板(view/htm/):替换 header_nav.inc.htm(主题设置面板16处)、post_list.inc.htm(作者标签)、my_avatar.htm(头像权限提示)、my_notice.htm(通知类型6处)、my_security.htm(Error标签)、forum_index.htm(by标签)、footer_nav.inc.htm(页脚信息)、user_ai_setting.htm(AI提供商名称)等文件中的硬编码文本为 lang() 调用

  • 后台模板(*****/view/htm/):替换 19 个文件共 73 处硬编码文本,包括 header_nav.inc.htm(主题切换器15处)、footer.inc.htm(品牌信息3处)、other_cache_setting.htm(OPcache状态22处)、setting_ai.htm(AI设置5处)、setting_nav.htm(表头7处)等

  • 安装模板(install/view/htm/):替换 5 个文件共 21 处硬编码文本,包括 index.htm(3处)、license.htm(1处)、db.htm(7处JS字符串)、success.htm(9处安全提示)、header.inc.htm(1处meta author)

  • 已清理 tmp 缓存

iframe 白名单保存无效修复

  • 修复「其他设置」页 iframe 域名白名单保存后内容丢失的问题

  • 根因:SecurityConfigService::save_config() 的类型校验分支未为 security_iframe_whitelist(多行字符串)做特殊处理,落入默认分支被 intval() 转成整数

  • 修复:为该字段添加按行清理空白与空行、保留换行符的字符串处理

  • 同时修复 *****/route/security.phpparam() 调用未关闭 HTML 转义的问题,与 security_allowed_email_domains 保持一致

  • 已清理 tmp 缓存

最新回复

请先登录后再回复 登录

uid:1 管理
关注
随遇而安,随缘而行
发帖 39
评论 220
粉丝 9
关注 1
发新帖
目录

扫码手机打开本帖