| 摘要 | 社区支持 - 可配置的捐赠 | |
| 预览 | Theme Creator | |
| 仓库 | GitHub - VaperinaDEV/community-support: Community Support - configurable donation · GitHub | |
| 觉得有用吗? | ./support --coffee | |
| 安装指南 | 如何安装主题或主题组件 | |
| 初次接触 Discourse 主题? | 使用 Discourse 主题的初学者指南 |
安装此主题组件
你好 ![]()
我们的目标是使其足够灵活,以适应非常不同的社区设计和用例,同时将所有配置完全保留在主题设置中。
功能
捐赠/支持模态框
该组件可以选择性地自动显示支持模态框。
自动模态框支持:
- 可配置的打开延迟
- 基于 URL/路径的可见性
- 成员/匿名可见性
- 最低信任级别
- 排除的群组
- 可配置的关闭 Cookie 生命周期
- 三种模态框尺寸:
normal(正常)、large(大)、maximized(最大化)
也可以通过以下方式从任何地方手动打开模态框:
#donate
这是有意独立于自动可见性规则的,因此社区可以分享 #donate 链接或将其添加到侧边栏,同时仍然控制自动支持提示出现的位置。
捐赠/支持方式
可以使用 Discourse 的对象设置编辑器配置多种支持方式。
每种方式可以拥有:
- 名称
- 描述
- 提供商
- 所有者
- 图标
- URL
- 按钮文本
- 可复制的值
- 精选状态
- 翻译
这是与提供商无关的,因此该组件不需要特定的支付提供商。
例如,一种方式可以简单地指向现有的 PayPal、Revolut、Wise 或其他支付/支持页面。
每种方式的本地化
捐赠方式支持自己的翻译。
语言选择器包含可用的 Discourse 语言,并且每种方式都可以翻译:
- 名称
- 描述
- 按钮文本
- 复制标签
- 所有者
- 提供商
如果没有确切的语言可用,组件会回退到基础语言,然后是英语/其他可用的翻译。
支持目标 & 进度条
该组件包含一个可选的支持目标和进度条。
您可以配置:
- 当前金额
- 目标金额
- 货币
- 支持标签
- 支持周期
- 进度显示
- 支持条出现的位置
支持的周期:
- 一次性
- 每月
- 每年
进度条还处理超额支持。
它不会简单地停在 100%,而是继续显示实际百分比:
75% → 正常进度
100% → 达到目标
125% → 进入下一个目标周期的 25%
220% → 进入第三个目标周期的 20%
视觉进度条保持为单个紧凑的条。
在第一个目标之前:
background: tertiary-low
fill: tertiary
在恰好 100%、200%、300% 等时:
background: success
fill: success

在里程碑之间:
background: success-low
fill: success

这意味着即使社区显著超过其原始目标,也可以继续显示有意义的进度。
支持者头像
支持条可以选择性地显示支持者头像。
支持者目前通过 supporters 对象设置手动配置。
每个支持者可以拥有:
- 用户名
- 贡献金额
- 货币
用户名会根据用户资料进行解析,因此可以自动显示用户的个人资料/头像信息。
直接显示在支持条中的头像数量是可配置的。
例如:
◉ ◉ ◉ ◉ ◉ +8
如果支持者数量超过配置的可见头像数量,剩余的支持者可以通过DMenu访问。
支持者菜单可以显示:
- 头像
- 用户名
- 资料链接
- 贡献金额
- 货币
可以独立启用或禁用贡献金额。
还可以使用 supporter_groups 设置从一个或多个群组中填充支持者。这补充了手动配置的支持者列表,而不是替换它。
多种设计
该组件包含三种独立的视觉设计:
- Classic(经典): 平衡的社区风格展示
- Minimal(极简): 减少视觉装饰和紧凑的展示
- Modern(现代): 更强的层次感和更突出的卡片
设计独立于所选视图,因此两者可以自由组合。
多种视图
该组件支持几种展示模式:
- Full(完整): 包含英雄区域、精选方式和捐赠方式的完整支持内容
- Compact(紧凑): 用于较小放置位置的简化展示
- Minimal(极简): 以方式为重点的展示
- Progress(进度): 仅支持目标和进度
这允许在非常不同的位置使用相同的组件,而无需重复配置或样式。
帖子嵌入
支持内容可以直接嵌入到帖子中。
启用 enable_post_embed,然后使用:
[wrap=donate]
[/wrap]
可以通过包装器直接访问其他视图:
[wrap=donate-compact]
[/wrap]
[wrap=donate-minimal]
[/wrap]
[wrap=donate-progress]
[/wrap]
包装器控制视图,而全局 design 设置控制视觉设计。
当支持内容需要成为特定帖子上下文的一部分,而不是作为全局 UI 元素出现时,这非常有用。
插件出口支持
该组件可以通过插件出口渲染支持小部件。
启用 outlet_enabled 并在 outlet_locations 中指定所需的出口名称,用 | 分隔。
出口视图和设计可以独立配置:
outlet_viewoutlet_design
这使得可以在主题列表、页眉、页脚和其他支持的出口位置使用支持组件。
Discourse Ads 兼容性
该组件也可以与 Discourse Ads 插件一起使用。
而不是直接依赖 Ads 插件,Community Support 提供了一个稳定的 HTML 嵌入标记:
<div data-donation-widget="support"></div>
这可以复制到 HTML 广告中,并放置到所需的 Ads 出口中。
组件拥有标记和 CSS,因此无需在广告本身中重复捐赠样式。
可以选择性地覆盖视图和设计:
<div
data-donation-widget="support"
data-view="compact"
data-design="minimal"
></div>
这意味着可以在不同的 Ads 位置重用相同的支持系统,同时保持一致的设计。
通用 HTML 嵌入
相同的嵌入机制也可以用于其他支持 HTML 的位置:
<div data-donation-widget="support"></div>
HTML 标记有意保持简单,而主题组件处理实际的渲染。
这使得可以在不重写每个单独嵌入的情况下更改设计或组件实现。
可见性控制
自动和全局渲染的支持内容可以通过几个设置进行控制:
- 对成员显示
- 对匿名用户显示
- 最低信任级别
- 排除的群组
- 在主页上显示
- URL/路径匹配
排除的群组应用于自动渲染的支持内容,例如模态框、插件出口小部件和通用嵌入。
上下文内容仍然可用:
#donate[wrap=donate]
这使得可以排除某些用户访问促销/自动支持 UI,同时不阻止他们访问明确分享的支持链接或上下文支持块。
关闭 / Cookie 控制
当自动打开的模态框被关闭时,组件可以记住该决定。
Cookie 生命周期可以配置为:
- 无
- 分钟
- 天
- 周
- 月
- 年
这防止自动模态框根据所选的生命周期反复向同一访客出现。
基本示例
打开支持模态框
#donate
在帖子中嵌入支持内容
[wrap=donate]
[/wrap]
紧凑帖子版本
[wrap=donate-compact]
[/wrap]
通用 HTML 嵌入
<div data-donation-widget="support"></div>
带有自定义展示的嵌入
<div
data-donation-widget="support"
data-view="compact"
data-design="minimal"
></div>





