后台管理界面:软件/分类/状态可配,反馈可改挂归属 (#1)
## 新增 lib/admin_taxonomy.php - 软件:增删改、排序、启停;新增时自动预置 Bug/功能建议/其他 三个分类 - 分类:在选定软件下增删改、排序、启停 - 状态:改名、改「给用户看的话」、排序、启停;标识不可改(历史数据靠它对应) - 反馈改挂:th_move,可把反馈移到别的软件/分类,跨软件的非法分类会被拒 ## 安全与边界 - 所有动作走 CSRF 校验(沿用现有机制) - 不能删最后一个软件 / 没有分类的软件至少要留一个启用分类 - 有反馈挂着的软件或分类不能删,提示改为停用(停用后前台消失、数据保留) - th_move 加入 fb_admin_is_taxonomy_act 白名单,否则会被「问题不存在」静默吞掉 ## admin.php 接线 - 引入模块 + 动作分发 + tab 白名单加 taxonomy/statuses + 导航两项 - 前置检查放行不依赖 $t 的动作(否则新增软件报「问题不存在」) - 全部问题列表:加软件筛选、分类跟着软件走;修掉三处仍在用旧 fb_statuses()/fb_categories() 的遍历(那会渲染出错) - 详情页加「归属」表单,软件徽章可显示 ## 其他文件 - api.php:状态/分类改数据库;新增 ?sw= / ?software_id= / ?cid= 过滤, 老的 ?category=<slug> 仍可用(在所属软件内解析) - thread.php:详情页显示软件与分类徽章 - config.example.php:移除 categories / statuses,改由数据库管理 ## 修掉两个真实 bug 1. 移除配置后出厂分类兜底只剩 4 个,漏了「同步问题」—— 建库后核对数量才发现 2. th_move 不在白名单,POST 后返回 200 却静默不生效 验证:后台 e2e 29/29;改挂与联动 13/13;PHP 8.5 全部入口 0 弃用; 19 个 PHP 文件语法全过。
This commit is contained in:
+8
-16
@@ -50,22 +50,14 @@ return [
|
||||
// 对访客 IP 做加盐哈希(数据库只保存哈希,不保存明文 IP)。★ 请修改为随机值 ★
|
||||
'ip_salt' => 'CHANGE_ME_random_salt',
|
||||
|
||||
/* ---------------- 问题分类 ---------------- */
|
||||
'categories' => [
|
||||
'usage' => '使用问题',
|
||||
'bug' => 'Bug 反馈',
|
||||
'feature' => '功能建议',
|
||||
'sync' => '同步问题',
|
||||
'other' => '其他',
|
||||
],
|
||||
|
||||
/* ---------------- 处理状态 ---------------- */
|
||||
'statuses' => [
|
||||
'open' => '待处理',
|
||||
'doing' => '处理中',
|
||||
'resolved' => '已解决',
|
||||
'closed' => '已关闭',
|
||||
],
|
||||
/* ---------------- 问题分类与处理状态:已移入数据库 ----------------
|
||||
* 不再写在这里。安装时会把出厂值写进 data/ 的数据库,
|
||||
* 之后在「管理后台 → 软件与分类 / 处理状态」里增删改,改这里无效。
|
||||
*
|
||||
* 出厂分类(首个软件下):使用问题 / Bug 反馈 / 功能建议 / 同步问题 / 其他
|
||||
* 出厂状态(5 个):待处理 / 处理中 / 已解决 / 已关闭 / 不予考虑
|
||||
* 每个状态都带一句「给用户看的话」,会在通知邮件里发给提交人。
|
||||
*/
|
||||
|
||||
/* ---------------- 邮件通知(SMTP) ---------------- */
|
||||
'smtp' => [
|
||||
|
||||
Reference in New Issue
Block a user