| 简介 | 一个轻量级主题组件,在删除帖子前请求确认 | |
| 代码仓库 | GitHub - scavin/discourse-confirm-delete · GitHub | |
| 安装指南 | 如何安装主题或主题组件 | |
| Discourse 主题新手? | Discourse 主题使用入门指南 |
安装此主题组件
我分享一个小型主题组件,它在删除帖子前增加了一个确认步骤。
默认情况下,点击删除按钮会立即执行 Discourse 的标准删除操作。此组件首先显示 Discourse 原生的危险确认对话框,有助于防止意外删除。
它有什么作用?
当用户点击帖子上的 删除 按钮时,该组件会显示一个确认对话框:
删除帖子
您确定要删除此帖子吗?
可用的操作有:
- 取消 — 关闭对话框,不执行任何操作
- 删除 — 继续执行 Discourse 原有的删除操作
主要特性
使用 Discourse 原生对话框 UI
使用红色危险风格的删除按钮
保留 Discourse 原有的删除行为
不更改权限检查
不修改 Discourse 核心代码
无需插件
不使用 jQuery 或 window.confirm()
不进行 DOM 点击模拟
支持桌面端和移动端
提供英文和简体中文翻译
其他语言回退至英文
管理员可通过主题翻译覆盖文本
工作原理
该组件使用 Discourse 官方前端 API:
apiInitializerpost-menu-buttons值转换器- 内置的
dialog.deleteConfirm()服务
它将帖子菜单中的删除按钮组件替换为一个小型包装器。确认后,包装器调用原始的 deletePost 操作。
这意味着该组件不重新实现删除功能,不发出自己的 API 请求,也不绕过 Discourse 现有的授权逻辑。
安装后:
- 在 管理 → 自定义 → 主题 中打开该组件
- 将其添加到需要启用的主题中
- 刷新主题页面
- 点击帖子上的删除按钮以测试确认对话框
翻译
该组件目前包含:
- 英文 (
en) - 简体中文 (
zh_CN)
对话框标题、消息、取消按钮和删除按钮均使用主题翻译键。欢迎提供更多翻译。
兼容性
专为使用现代 Glimmer 帖子菜单和插件 API 的当前 Discourse 版本设计。
希望这个小组件能帮助防止意外删除帖子。欢迎反馈、错误报告、翻译和建议! ![]()
