# Поддержка сообщества — настраиваемое пожертвование

**URL:** https://meta.discourse.org/t/community-support-configurable-donation/412335
**Category:** Theme component
**Created:** [14.Сентябрь.2026 07:26:12 UTC](https://meta.discourse.org/t/community-support-configurable-donation/412335 "2026-09-14T07:26:12Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Don](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/don/32/228726_2.png) [@Don](https://meta.discourse.org/u/Don)
#### Post date: [14.Сентябрь.2026 07:26:12 UTC](https://meta.discourse.org/t/community-support-configurable-donation/412335/1 "2026-09-14T07:26:12Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Кратко** | Поддержка сообщества — настраиваемые пожертвования |
| 👓 | **Предпросмотр** | [Theme Creator](https://discourse.theme-creator.io/theme/Don/community-support) |
| 🛠 | **Репозиторий** | [GitHub - VaperinaDEV/community-support: Community Support - configurable donation · GitHub](https://github.com/VaperinaDEV/community-support) |
| ❤ | **Было полезно?** | [./support --coffee](https://meta.discourse.org/u/don) |
| ❓ | **Гид по установке** | [Как установить тему или компонент темы](https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682) |
| 📖 | **Новичок в темах Discourse?** | [Начальное руководство по использованию тем Discourse](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) |

Установить этот компонент темы

Привет 👋

Целью было сделать компонент достаточно гибким, чтобы он подходил для самых разных дизайнов и сценариев использования сообществ, при этом вся настройка оставалась в рамках настроек темы.

 ![Screenshot 2026-09-13 at 22.30.53](https://global.discourse-cdn.com/meta/original/4X/4/e/d/4edad9ef72e83d4ece81bc6e8283d7a37a81c155.png)

## ✨ Возможности

### ❤ Модальное окно для пожертвований / поддержки

Компонент может автоматически отображать модальное окно для поддержки.

Автоматическое модальное окно поддерживает:

- настраиваемую задержку открытия
- видимость на основе URL/пути
- видимость для участников/анонимных пользователей
- минимальный уровень доверия
- исключаемые группы
- настраиваемый срок жизни cookie для закрытия
- три размера модального окна: `normal`, `large`, `maximized`

Модальное окно также можно открыть вручную из любого места с помощью:

```plaintext
#donate

```

Это намеренно независимо от правил автоматической видимости, чтобы сообщество могло делиться ссылкой `#donate` или добавлять её в боковую панель, продолжая контролировать, где появляются автоматические призывы к поддержке.

* * *

### 💳 Способы пожертвований / поддержки

Несколько способов поддержки можно настроить с помощью **редактора объектов** в настройках Discourse.

Каждый способ может иметь:

- название
- описание
- провайдера
- владельца
- иконку
- URL
- текст кнопки
- копируемое значение
- статус «выбранное» (featured)
- переводы

Это не зависит от конкретного провайдера, поэтому компоненту не требуется определенный платежный провайдер.

Например, способ может просто указывать на существующую страницу PayPal, Revolut, Wise или другую страницу для оплаты/поддержки.

* * *

### 🌎 Локализация для каждого способа

Способы пожертвований поддерживают собственные переводы.

Селектор локалей включает доступные локали Discourse, и для каждого способа можно перевести:

- название
- описание
- текст кнопки
- метку копирования
- владельца
- провайдера

Если точная локаль недоступна, компонент использует базовую локаль, а затем английский язык или другой доступный перевод.

* * *

### 📊 Цель поддержки и прогресс-бар

Компонент включает опциональную цель поддержки и прогресс-бар.

Вы можете настроить:

- текущую сумму
- целевую сумму
- валюту
- метку поддержки
- период поддержки
- отображение прогресса
- место появления полосы поддержки

Поддерживаемые периоды:

- разовый
- ежемесячный
- ежегодный

Прогресс-бар также обрабатывает **превышение цели**.

Вместо того чтобы просто останавливаться на 100%, отображается фактический процент:

```plaintext
75% → обычный прогресс
100% → цель достигнута
125% → 25% в следующий цикл целей
220% → 20% в третий цикл целей

```

Визуальный прогресс-бар остается единой компактной полосой.

До первой цели:

```plaintext
background: tertiary-low
fill: tertiary

```

 ![Screenshot 2026-09-14 at 7.38.52](https://global.discourse-cdn.com/meta/original/4X/e/7/c/e7cdd70c39f654d15bdecdfe62e74557315f5ceb.png)

Ровно на 100%, 200%, 300% и т.д.:

```plaintext
background: success
fill: success

```

![Screenshot 2026-09-14 at 7.39.26](https://global.discourse-cdn.com/meta/original/4X/3/3/5/335a77570fa4617e2472591a4cae712ad507941f.png)

Между вехами:

```plaintext
background: success-low
fill: success

```

![Screenshot 2026-09-14 at 7.39.52](https://global.discourse-cdn.com/meta/original/4X/9/6/0/960c7a48edb8bc113d088edb2b1d27af7b441e4c.png)

Это означает, что сообщество может продолжать показывать значимый прогресс, даже если оно значительно превышает свою исходную цель.

* * *

### 👤 Аватары сторонников

Полоса поддержки может опционально отображать аватары сторонников.

Сторонники в настоящее время настраиваются вручную через объектную настройку `supporters`.

Каждый сторонник может иметь:

- имя пользователя
- сумму взноса
- валюту

Имя пользователя сопоставляется с профилем пользователя, поэтому информация о профиле/аватаре пользователя может отображаться автоматически.

Количество аватаров, отображаемых непосредственно в полосе поддержки, настраивается.

Например:

```plaintext
◉ ◉ ◉ ◉ ◉ +8

```

Если сторонников больше, чем настроенное количество видимых аватаров, остальные сторонники доступны через **DMenu**.

Меню сторонников может отображать:

- аватар
- имя пользователя
- ссылку на профиль
- сумму взноса
- валюту

 ![Screenshot 2026-09-14 at 7.42.12](https://global.discourse-cdn.com/meta/original/4X/a/2/f/a2faf4e1b04cbb9b34cdbfa4e7d69af8de9a233d.png)

Суммы взносов можно включать или отключать независимо.

Сторонников также можно заполнять из одной или нескольких **групп** , используя настройку `supporter_groups`. Это дополняет, а не заменяет вручную настроенный список сторонников.

* * *

### 🎨 Несколько дизайнов

Компонент включает три независимых визуальных дизайна:

- **Classic:** сбалансированное представление в стиле сообщества
- **Minimal:** уменьшенная визуальная отделка и компактное представление
- **Modern:** более сильная иерархия и более заметные карточки

Дизайн независим от выбранного вида, поэтому их можно свободно комбинировать.

* * *

### 🧩 Несколько видов

Компонент поддерживает несколько режимов представления:

- **Full:** полное содержимое поддержки с hero-блоком, выбранным способом и способами пожертвований
- **Compact:** уменьшенное представление для небольших размещений
- **Minimal:** представление, сфокусированное на способах
- **Progress:** только цель поддержки и прогресс

Это позволяет использовать один и тот же компонент в очень разных местах без дублирования настроек или стилей.

* * *

### 📓 Встраивание в посты

Содержимое поддержки можно встраивать непосредственно в посты.

Включите `enable_post_embed`, затем используйте:

```plaintext
[wrap=donate]
[/wrap]

```

 ![Screenshot 2026-09-13 at 22.32.42](https://global.discourse-cdn.com/meta/original/4X/5/e/d/5edbbdad8da8e8a72df63668729c1f3641208c91.png)

Дополнительные виды доступны непосредственно через обертку:

```plaintext
[wrap=donate-compact]
[/wrap]

[wrap=donate-minimal]
[/wrap]

[wrap=donate-progress]
[/wrap]

```

 ![Screenshot 2026-09-13 at 22.32.29](https://global.discourse-cdn.com/meta/original/4X/4/2/c/42c20478f95a6753990ea08f7155fe722f2a9ccc.png)

Обертка управляет видом, а глобальная настройка `design` управляет визуальным дизайном.

Это полезно, когда содержимое поддержки должно быть частью контекста конкретного поста, а не появляться как глобальный элемент интерфейса.

* * *

### 🔌 Поддержка plugin outlets

Компонент может рендерить виджет поддержки через plugin outlets.

Включите `outlet_enabled` и укажите желаемые имена outlets в `outlet_locations`, разделенные `|`.

Вид и дизайн outlet можно настроить независимо:

- `outlet_view`
- `outlet_design`

Это позволяет использовать компонент поддержки в таких местах, как списки тем, заголовки, подвалы и другие поддерживаемые outlets.

 ![Screenshot 2026-09-13 at 22.31.40](https://global.discourse-cdn.com/meta/original/4X/7/a/e/7ae83ed8cad9bd5a69ae4eed72e4c56f5f77d0a5.png)

* * *

### 📢 Совместимость с Discourse Ads

Компонент также можно использовать с плагином **Discourse Ads**.

Вместо прямой зависимости от плагина Ads, Community Support предоставляет стабильный маркер HTML для встраивания:

```html
<div data-donation-widget="support"></div>

```

Его можно скопировать в HTML-рекламу и разместить в нужном Ads outlet.

Компонент владеет разметкой и CSS, поэтому нет необходимости дублировать стилизацию пожертвований внутри самой рекламы.

Вид и дизайн можно опционально переопределить:

```html
<div
  data-donation-widget="support"
  data-view="compact"
  data-design="minimal"
></div>

```

Это означает, что одна и та же система поддержки может использоваться в разных размещениях Ads, сохраняя при этом единый дизайн.

* * *

### 🌐 Универсальные HTML-встраивания

Тот же механизм встраивания можно использовать и в других местах, поддерживающих HTML:

```html
<div data-donation-widget="support"></div>

```

HTML-маркер намеренно остается простым, в то время как компонент темы обрабатывает фактический рендеринг.

Это позволяет менять дизайн или реализацию компонента, не переписывая каждое отдельное встраивание.

* * *

### 👀 Управление видимостью

Автоматическое и глобально отображаемое содержимое поддержки можно контролировать с помощью нескольких настроек:

- **Показывать участникам**
- **Показывать анонимным пользователям**
- **Минимальный уровень доверия**
- **Исключаемые группы**
- **Отображать на главной странице**
- **Сопоставление URL/пути**

Исключаемые группы применяются к автоматически отображаемому содержимому поддержки, такому как модальные окна, виджеты plugin outlet и универсальные встраивания.

Контекстное содержимое остается доступным:

- `#donate`
- `[wrap=donate]`

Это позволяет исключать определенных пользователей из рекламного/автоматического UI поддержки, не мешая им получать доступ к явно распространенной ссылке на поддержку или контекстному блоку поддержки.

* * *

### 🍪 Управление закрытием / cookie

Когда автоматически открытое модальное окно закрывается, компонент может запомнить это решение.

Срок жизни cookie можно настроить как:

- none (нет)
- minute (минута)
- day (день)
- week (неделя)
- month (месяц)
- year (год)

Это предотвращает повторное появление автоматического модального окна для одного и того же посетителя в соответствии с выбранным сроком жизни.

* * *

## 📝 Базовые примеры

### Открыть модальное окно поддержки

```plaintext
#donate

```

### Встроить содержимое поддержки в пост

```plaintext
[wrap=donate]
[/wrap]

```

### Компактная версия для поста

```plaintext
[wrap=donate-compact]
[/wrap]

```

### Универсальное HTML-встраивание

```html
<div data-donation-widget="support"></div>

```

### Встраивание с настраиваемым представлением

```html
<div
  data-donation-widget="support"
  data-view="compact"
  data-design="minimal"
></div>

```

* * *

❤ [./support --coffee](https://meta.discourse.org/u/don)

---

_[View the full topic](https://meta.discourse.org/t/community-support-configurable-donation/412335)._
