Включение предварительного просмотра категорий для закрытых платных разделов

Одно из того, чего мне постоянно не хватает и что крайне неудобно обходить в Discourse, — это превью категорий. Работая с клиентами над темами Discourse, я часто сталкиваюсь со случаями, когда категории ограничены (либо только для авторизованных пользователей, либо для платных участников), но при этом они хотят публично показывать все доступные разделы, чтобы привлекать больше регистраций. Пример, который мне приводили несколько раз, — это интерфейс Circle. Все пространства видны, но если у пользователя нет доступа, он видит баннер с примечанием и призывом к действию для получения доступа:

Я знаю, что на meta существует компонент Category Previews, но он не поддерживает такой сценарий использования. Можно лишь вручную заменить ссылку на категорию в списке категорий. Однако пользователи без доступа всё равно не смогут перейти по обычной ссылке на категорию. Кроме того, ссылка на категорию не будет отображаться в других местах.

Мне бы очень хотелось увидеть встроенную возможность для превью ограниченных категорий. Если эта опция включена, ссылка на категорию должна отображаться как и другие ссылки на категории. При переходе по ней должны быть видны только заголовок категории и тема «О категории».

3 лайка

@manuel, это одно и то же или как-то связано? :thinking:

2 лайка

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

2 лайка

Можете ли вы сделать родительскую категорию доступной для чтения всеми, но недоступной для записи, а затем разрешить чтение и запись в подкатегориях только тем пользователям, которым предоставлен доступ?

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

Конечно, это еще одно временное решение, однако в настоящее время у нас не запланирована работа по предпросмотру категорий.

3 лайка

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

Или же просто список категорий с описанием?

1 лайк

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

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

В Discourse есть публичный и секретный режимы. А режим приватный/ограниченный по умолчанию работает так, как упомянул @Heliosurge: просмотр тем категории, но без возможности публикации или ответа. Однако такая настройка требуется довольно редко, так как обычно она уже покрыта отсутствием авторизации на сайте.

Я считаю, что более распространённым значением по умолчанию для режима приватный/ограниченный была бы просто страница категории с замком и описанием.

5 лайков

Если вы хотите, чтобы категория была открыта, но ответы на посты были запрещены.

Перейдите в настройки категории.

| Группа | Права доступа |
| Все | Просмотр |
| ИмяГруппы | Просмотр/Создание/Ответ |

Существует еще одна страница, где при попытке опубликовать пост или ответить может появиться сообщение, например, «Запросить доступ».

1 лайк

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

4 лайка

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

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

В этом и заключается суть этой темы с предложением функции: я считаю, что первый вариант встречается чаще, но его сложно реализовать в Discourse. Второй вариант запрашивается реже, но в настоящее время является стандартным поведением в Discourse.

2 лайка

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

1 лайк

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

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

1 лайк

Это можно реализовать с помощью этого плагина: Discourse Category Lockdown

1 лайк

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

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

Чтобы показать категории, независимо от того, есть ли у пользователя фактический доступ или нет, я добавил закрытые категории, плюс создал для каждой из них публичные «теневые» категории. Вот мой административный вид всех категорий для «Community Builders» и «Translators»:

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

Как только пользователь получает фактический доступ к закрытой категории, я скрываю публичную с помощью CSS. Допустим, пользователь вступил в группу «Translators». Он увидит следующее:

Я использую компонент для адресации групп пользователей через CSS: GitHub - discourse/discourse-groups-css-classes-in-body · GitHub

Затем объявление становится довольно простым:

body.group-translators {
    .category-box-translators-join,
    .select-kit-row[data-name="Join Translators"] {
        display: none !important;
    }
}

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

4 лайка