请下载覆盖一下即可。
一、功能简介
- 举报中心:对主题 / 回复 / 博客 / 博客评论 / 用户 五类目标发起举报,分类
spam/porn/illegal/attack/flood/fake/other
- 自动预警:同一内容被举报达
auto_audit_count(默认 3)次,后台自动标红待处理
- 防滥用频控:每用户每日举报上限
daily_limit(默认 5)+ 同一用户对同一内容举报冷却 cooldown(默认 300 秒)
- 小黑屋封禁:将违规用户移入封禁用户组(
ban_group_id 后台填写,不硬编码),默认封 ban_days 天(0/空=永久);封禁用户登录时拦截(auth_login_check)
- 通知联动:举报提交 / 处理结果写入核心通知中心(
notify_enabled 开关)
- 后台处理:待处理 / 已处理 / 已驳回 三种状态流转,附处理日志
二、目录结构
plugins/mod_system/
├── plugin.json # 插件清单(route_register / admin_route_register / route_before_dispatch / auth_login_check / thread_operation_after / post_report_button / blog_detail_operation_after / blog_comment_operation_after / profile_user_card_after / footer_links / nav_drawer_links)
├── Plugin.php # 配置(modsystem_* 前缀存 settings)+ 建表 + 封禁/举报/通知服务
├── AdminController.php # 后台举报处理 / 黑名单 / 配置管理
├── FrontController.php # 前台举报提交
├── hook/
│ ├── route_register.php # 前台举报路由
│ ├── admin_route_register.php # 后台路由(/admin/mod-system)
│ ├── route_before_dispatch.php # 举报提交前置处理
│ ├── auth_login_check.php # 黑名单用户登录拦截
│ ├── thread_operation_after.php / post_report_button.php / blog_detail_operation_after.php / blog_comment_operation_after.php # 各内容举报按钮注入
│ ├── profile_user_card_after.php # 用户信息卡举报入口
│ ├── footer_links.php / nav_drawer_links.php # 举报/规则入口
├── views/ # admin_index / blacklist / _reports_panel / _config_panel / _feedback
└── lang/ # zh.php / en.php / zh_tw.php
三、数据表(插件独立库 plugins/mod_system/data/mod_system.sqlite)
| 表 |
用途 |
mod_reports |
举报记录(target_type / target_id / reporter_id / category / status[pending |
mod_bans |
封禁记录(user_id / ban_group_id / reason / expire_at / operator_id) |
mod_logs |
处理日志(操作人 / 动作 / 目标 / 时间) |
- 建表由
Plugin::db() 进程内自愈触发(幂等 CREATE TABLE IF NOT EXISTS),上传即用,无需手动激活
- 配置存核心库
settings 表,键前缀 modsystem_
- 卸载删表会清空举报 / 封禁 / 日志记录,请谨慎
四、路由
| 方法 |
路径 |
说明 |
| POST |
/report |
提交举报(CSRF + 频控) |
| GET |
/admin/mod-system |
后台举报列表 + 处理 |
| GET |
/admin/mod-system/blacklist |
黑名单(封禁/解封) |
| POST |
/admin/mod-system/config |
保存治理配置 |
五、注意事项
- 封禁/解封用户应走核心
User 组切换能力,勿直接改核心库
- 举报提交受 RateLimiter 频控保护,防批量刷举报
- 通知联动依赖核心通知中心,关闭
notify_enabled 后仅停发通知、不取消举报