Плагин или другой способ требовать пост и лайк?

Я настраиваю свой форум. Как пользователь я уже несколько раз пользовался Discourse, но, очевидно, его настройка — это совершенно новое для меня дело.

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

Что касается правил, мне, скорее всего, придется создать для них отдельный пост, чтобы пользователи могли на него отреагировать — это нормально. Я могу разблокировать раздел «Знакомства», чтобы они могли создать новый пост, но мне придется вручную проверять каждый такой пост и убеждаться, что они лайкнули пост с правилами, прежде чем вручную повышать их уровень доверия.

Я начал изучать уровни доверия. Теоретически я мог бы создать уровень доверия 2, к которому они стремились бы, но проблема с постами всё равно остаётся, поэтому я не смог найти чистого способа автоматизировать этот процесс. Поэтому я подумал, что стоит спросить, не знает ли кто-нибудь о плагине или о чём-то ещё, что я упустил, чтобы реализовать это или найти другой логичный способ.

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

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

Заранее спасибо за любую помощь.

1 лайк

Принятие правил можно реализовать с помощью плагина политики: Discourse Policy

Вы можете добавить политику с текстом «Я принимаю эти правила» в конец соответствующей темы с правилами. После принятия политики пользователи могут автоматически добавляться в созданную вами группу, например: accepted_guidelines.

Затем вы можете настроить категории так, чтобы публиковать сообщения в них могли только участники группы accepted_guidelines.

Создание поста-знакомства немного сложнее… На мой взгляд, у нас нет способа управлять членством в группах на основе того, где именно пользователь опубликовал сообщение. Один из возможных обходных путей — использование Discourse Automation.

Там есть скрипт под названием «User Group Membership through Badge» (Членство в группе через значок). Вы можете потребовать от пользователей включать эмодзи в их пост-знакомство… Это даст значок «Первый эмодзи», а автоматизация добавит их в группу posted_introduction.

Это немного более продвинутый вариант: вы можете создать специальный значок за публикацию поста-знакомства, а затем настроить автоматизацию для использования этого значка для управления членством в группе. Дополнительная информация здесь: Creating triggered custom badge queries

Запрос на получение значка за пост в конкретной теме может выглядеть примерно так:

SELECT p.user_id, min(p.created_at) granted_at, MIN(p.id) post_id
FROM badge_posts p
WHERE p.topic_id = TOPIC-ID-HERE
AND (:backfill OR p.id IN (:post_ids))
GROUP BY p.user_id
2 лайка

Спасибо. Думаю, я изучу плагин политик Discourse, а что касается поста, то, вероятно, оставлю его проверку ручной. Так я смогу не только увидеть пост, но и убедиться, что он соответствует моим ожиданиям, а не является спамом, созданным лишь для быстрого размещения. Благодарю за помощь.

1 лайк