# Ограничить публикацию в категории, пока они не «лайкнут» тему

**URL:** <https://meta.discourse.org/t/restrict-posting-in-a-category-until-they-like-a-topic/397191>\
**Category:** Support\
**Tags:** automation\
**Created:** [26.Февраль.2026 20:17:03 UTC](https://meta.discourse.org/t/restrict-posting-in-a-category-until-they-like-a-topic/397191 "2026-02-26T20:17:03Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)\
**Post date:** [27.Февраль.2026 16:58:34 UTC](https://meta.discourse.org/t/restrict-posting-in-a-category-until-they-like-a-topic/397191/8 "2026-02-27T16:58:34Z")

</div>

На случай, если кому-то ещё будет интересно это сделать, вот краткое описание того, что я сделал:

1. Сначала вам нужно включить Badge SQL через CLI вашего сервера Discourse:

```bash
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true

```

1. Далее найдите ID темы, с которой участники должны взаимодействовать, чтобы получить значок. В моём случае ID темы — 117.

![Screenshot 2026-02-27 113204](https://global.discourse-cdn.com/meta/original/4X/8/5/f/85f7bc087b5813f7ed8656d235c0554a84535f78.png)

1. Создайте свой пользовательский значок:
  1. Администрирование → Значки → Новый
  2. Дайте значку любое название (например, «Читатель правил B/S/T»)
  3. Выберите тип значка, иконку и добавьте описание
  4. Если вы выполнили шаг 1, вы увидите поле запроса, где можно ввести SQL-запрос. Вставьте этот запрос (замените p.topic\_id = 117 на ваш ID темы):
    1. 

```sql
SELECT DISTINCT ON (pa.user_id)
  pa.user_id,
  pa.post_id,
  pa.created_at granted_at
FROM post_actions pa
JOIN posts p ON pa.post_id = p.id AND p.post_number = 1
WHERE pa.post_action_type_id = 2
  AND p.topic_id = 117
  AND (:backfill OR pa.post_id IN (:post_ids))

```

  5. Убедитесь, что отмечены опции **Запускать запрос на отзыв ежедневно** и **Запрос нацелен на сообщения**.
  6. Триггер должен быть установлен на **Когда пользователь действует над сообщением**.

2. Теперь создайте автоматизацию:
  1. Сначала создайте новую группу, в которую будут добавляться участники. Я назвал её bst\_rules\_agreed, и настройки сделаны так, что членство могут видеть только владельцы группы и модераторы. Никаких эффектов уровня доверия не требуется.
  2. Далее перейдите в Плагины → Автоматизация
    1. Добавьте новую автоматизацию
      1. Выберите **Членство в группе пользователей через значок**
      2. Триггер: **Повторяющийся**
        1. Периодичность: у меня установлено каждый час. Выберите подходящий для вас вариант.
        2. Выберите дату начала

      3. Параметры скрипта:
        1. Значок: выберите созданный вами значок
        2. Группа: выберите созданную вами группу

Вот и всё. Теперь у вас должна быть система, которая гарантирует, что участники согласились с правилами категории, прежде чем смогут публиковать сообщения в ней.

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

---

_[View the full topic](https://meta.discourse.org/t/restrict-posting-in-a-category-until-they-like-a-topic/397191)._
