举报插件(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-centerHTML 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.php中param()调用未关闭 HTML 转义的问题,与security_allowed_email_domains保持一致已清理 tmp 缓存





