本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:WWW/plugins/mod_system/说明.md。
社区治理(mod_system)插件说明
版本:1.0.0 | 作者:FlintHub | 状态:⏸️ 停用(默认未启用)
功能:举报中心 + 违规小黑屋封禁 + 通知联动,社区内容治理一体化
一、功能简介
- 举报中心:对主题 / 回复 / 博客 / 博客评论 / 用户 五类目标发起举报,分类
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后仅停发通知、不取消举报