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

Я хотел бы, чтобы пользователи могли создавать свои собственные «мини-форумы». Это похоже на то, что задумал этот пользователь, и сравнимо с возможностью создавать каналы в Slack.

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

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

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

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

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

2 лайка

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

3 лайка

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

1 лайк

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

5 лайков

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

Я прочитал руководство по группам, а также эту дискуссию о группах и категориях.

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

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

1 лайк

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

[quote=“JQ331, post:3, topic:152476”]В конечном итоге может оказаться сотни категорий и даже больше по мере масштабирования.[/quote]Говоря из личного опыта: когда у вас сотни категорий, это влияет на производительность. Команда Discourse отлично справилась с смягчением этой проблемы после того, как наше сообщество перегрузило систему, но это всё же стоит учитывать.

2 лайка

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

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

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

1 лайк

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

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

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

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

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

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

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

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

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

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

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

1 лайк

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

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

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

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

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

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