# Разрешить пользователям создавать собственные подфорумы групп (как каналы в Slack)?

**URL:** https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476
**Category:** Feature
**Created:** [23.Май.2020 19:02:06 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476 "2020-05-23T19:02:06Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [23.Май.2020 19:02:06 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/1 "2020-05-23T19:02:06Z")

</div>

Я хотел бы, чтобы пользователи могли создавать свои собственные «мини-форумы». Это похоже на то, что задумал [этот пользователь](https://meta.discourse.org/t/hiring-user-creating-categories-plugin/90075), и сравнимо с возможностью создавать каналы в Slack.

Как и в случае с владельцем собственного форума, создатель должен иметь возможность публиковать сообщения в верхней части «подфорума» и выбирать, какие другие пользователи могут участвовать в нём.

Если бы пользователи могли создавать свои собственные категории, это было бы очень близко к такой функциональности. Однако, судя по ответам на запрос пользователя, приведённый выше, это потребовало бы слишком много ресурсов и не рекомендуется.

Я понимаю, что это не входит в базовый функционал Discourse. Есть ли способ реализовать это или что-то похожее?

Я публикую это здесь, а не в #Marketplace, потому что хочу разобраться, как сделать это самостоятельно (в том числе, если это означает доработку кода поверх Discourse).

И если это просто невозможно в Discourse, я открыт к другим предложениям (хотя, конечно, я бы предпочел остаться на Discourse!)

---

<div class="post-metadata">

### Author: ![maiki](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/maiki/32/233950_2.png) [@maiki](https://meta.discourse.org/u/maiki)
#### Post date: [23.Май.2020 21:05:23 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/2 "2020-05-23T21:05:23Z")

</div>

Я создаю для людей собственные категории, если они просят об этом и объясняют, как хотели бы их настроить, а затем делаю это. У нас очень мало высококачественных подфорумов, используемых в качестве блогов. 🙂

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [23.Май.2020 21:20:35 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/3 "2020-05-23T21:20:35Z")

</div>

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

---

<div class="post-metadata">

### Author: ![sunjam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sunjam/32/175682_2.png) [@sunjam](https://meta.discourse.org/u/sunjam)
#### Post date: [23.Май.2020 22:23:16 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/4 "2020-05-23T22:23:16Z")

</div>

Вы можете сделать это с помощью Групп. Изучите возможность создания групп, где пользователи могут вступать и общаться внутри группы, что может быть более гибким, чем категории.

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [24.Май.2020 01:12:21 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/5 "2020-05-24T01:12:21Z")

</div>

Могут ли группы работать так же, как каналы в Slack, но с постами на форуме Discourse вместо чатов в Slack?

Я прочитал [руководство по группам](https://meta.discourse.org/t/guide-to-groups/110064/20), а также [эту дискуссию](https://meta.discourse.org/t/good-use-cases-for-groups-to-better-understand-groups-vs-categories/62875) о группах и категориях.

Как я понимаю, группы — это просто集合 людей, и когда один участник группы что-то говорит, остальные участники получают уведомление? Это не совсем то, что мне нужно.

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

---

<div class="post-metadata">

### Author: ![Heather\_Dudley](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heather_dudley/32/151925_2.png) [@Heather\_Dudley](https://meta.discourse.org/u/Heather_Dudley)
#### Post date: [24.Май.2020 05:03:19 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/6 "2020-05-24T05:03:19Z")

</div>

Почему бы не использовать теги? Теги может создать любой пользователь, и при клике на тег вы попадаете в подраздел, состоящий из постов с этим тегом. Это также позволяет настроить уведомления, специфичные для этого тега, и создавать новые темы с уже добавленным тегом. Пример можно увидеть здесь с нашим тегом «фэнтези».

 ![image](https://global.discourse-cdn.com/meta/original/3X/b/c/bc5993e4ffda23b97ec9b6945bf8462a4b066137.png)[quote=“JQ331, post:3, topic:152476”]В конечном итоге может оказаться сотни категорий и даже больше по мере масштабирования.[/quote]Говоря из личного опыта: когда у вас сотни категорий, это влияет на производительность. Команда Discourse отлично справилась с смягчением этой проблемы после того, как наше сообщество перегрузило систему, но это всё же стоит учитывать.

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [24.Май.2020 12:03:30 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/7 "2020-05-24T12:03:30Z")

</div>

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

Как вы думаете, можно ли настроить так, чтобы каждый пост в этом «подфоруме» автоматически получал этот тег, и пользователи не могли его удалить? (При этом я хочу, чтобы они могли удалять и добавлять другие теги по своему желанию.)

А как насчёт предоставления создателю подфорума особых прав управления страницей, связанной с этим тегом? Например, возможность закреплять посты в верхней части страницы и, возможно, решать, кто может публиковать на этой странице?

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [24.Май.2020 14:57:30 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/8 "2020-05-24T14:57:30Z")

</div>

Ещё одна мысль: могу ли я использовать API для реализации того, что я задумал — создания канала, похожего на Slack, с ограниченным доступом?

РЕДАКТИРОВАНИЕ: Постараюсь упростить свой предыдущий пост:

Я понимаю, как с помощью функции тегов создать страницу, которая выглядит _почти_ как подфорум.

Предполагаю, что могу добавить HTML в начало страницы, чтобы дать подфоруму название и описание. Также я вижу, как можно разместить приложение перед форумом, где пользователь нажимает кнопку «Создать подфорум», после чего через API создаётся тег, и пользователя перенаправляет на страницу этого тега.

Пока всё хорошо. НО, даже если я готов проявить творческий подход с отдельным приложением, взаимодействующим с API Discourse, возможно ли реализовать следующие ключевые требования:

1. Когда создатель подфорума создаёт тему в этом подфоруме, эта тема закрепляется вверху подфорума. И самое главное:

2. Возможность публиковать сообщения в этом подфоруме **ограничена людьми, которых одобрил создатель**.

Мне подходит, если процесс одобрения будет происходить в отдельном приложении, которое я напишу (если в самом Discourse такой возможности нет), но есть ли способ в рамках «чистого Discourse» или «Discourse + приложение, подключающееся к API» сделать так, чтобы только определённая группа пользователей могла публиковать сообщения в подфоруме?

Помня о том, что для каждого подфорума будет своя группа разрешённых пользователей. И это должно работать как подфорум со своей собственной страницей (как каналы в Slack) — поэтому использования только личных сообщений будет недостаточно.

Возможно, для этого предназначены группы ( **связывание групп с конкретным и уникальным тегом?** ), но я ещё не смог разобраться в этом.

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

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [26.Май.2020 23:50:26 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/9 "2020-05-26T23:50:26Z")

</div>

Привет, @Heather_Dudley, я начинаю понимать, как использовать теги, чтобы приблизиться к решению этой задачи. Ещё раз спасибо за ваш ответ.

Я заметил, что на странице сводки по тегам, если создать новый пост, тег появляется автоматически. Делаете ли вы что-то, чтобы пользователи случайно не удалили тег из новой темы?

Другими словами, я пытаюсь понять, как предотвратить удаление пользователями первого тега, который появляется при создании темы со страницы тегов (при этом позволяя им добавлять или удалять другие теги).

---

<div class="post-metadata">

### Author: ![Heather\_Dudley](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heather_dudley/32/151925_2.png) [@Heather\_Dudley](https://meta.discourse.org/u/Heather_Dudley)
#### Post date: [27.Май.2020 00:16:57 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/10 "2020-05-27T00:16:57Z")

</div>

Нет, не совсем. Попытки сделать что угодно, чтобы «не дать пользователям делать X», — это пустая трата времени. Объясните им правила. Удаляйте посты, в которых не указаны теги, и поясняйте причину.

На уровне категории можно сделать обязательным указание тегов:

 ![Screenshot_20200526-201425](https://global.discourse-cdn.com/meta/original/3X/4/1/4197cfc025af5900d057b48d17353dda8ede63b9.jpeg)

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [27.Май.2020 01:09:38 UTC](https://meta.discourse.org/t/allow-users-to-create-their-own-group-sub-forums-like-slack-channels/152476/11 "2020-05-27T01:09:38Z")

</div>

Спасибо. Рад это слышать.
