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

**URL:** https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250
**Category:** Feature
**Created:** [18.Январь.2022 17:39:43 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250 "2022-01-18T17:39:43Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [18.Январь.2022 17:39:43 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/1 "2022-01-18T17:39:43Z")

</div>

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

 ![Screenshot from 2022-01-18 17-25-26](https://global.discourse-cdn.com/meta/original/3X/7/3/731329452a99f27c593cc8a439b9676504e6f06b.png)

Я знаю, что на meta существует [компонент Category Previews](https://meta.discourse.org/t/category-previews/155296), но он не поддерживает такой сценарий использования. Можно лишь вручную заменить ссылку на категорию в списке категорий. Однако пользователи без доступа всё равно не смогут перейти по обычной ссылке на категорию. Кроме того, ссылка на категорию не будет отображаться в других местах.

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

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [18.Январь.2022 17:44:45 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/2 "2022-01-18T17:44:45Z")

</div>

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

> [@Is there a way to show Category headings to users that can't access them?](https://meta.discourse.org/t/is-there-a-way-to-show-category-headings-to-users-that-cant-access-them/107045):
>
> I’ll try to explain blush Our club has various membership levels, the higher the membership level the more categories on our Discourse you have access too. We have a handful of categories that are completely hidden to people who don’t have access to them. In here we have things like club discounts, off topic discussions we don’t want indexed by search engines, etc. Is it possible to reveal the headings of some of these these categories to everyone (even to people not logged in), so they ca…

> [@How do I allow people to see categories but not access topics?](https://meta.discourse.org/t/how-do-i-allow-people-to-see-categories-but-not-access-topics/211507/1):
>
> Hi, how can I let people see a category but not let them see the topics unless they have permission?

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [18.Январь.2022 17:51:41 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/3 "2022-01-18T17:51:41Z")

</div>

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

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [18.Январь.2022 18:36:55 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/4 "2022-01-18T18:36:55Z")

</div>

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

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

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

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [18.Январь.2022 19:35:10 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/5 "2022-01-18T19:35:10Z")

</div>

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

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

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [18.Январь.2022 20:15:56 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/6 "2022-01-18T20:15:56Z")

</div>

> [@awesomerobot](#):
>
> Это потребует дополнительной категоризации, но может иметь меньше недостатков по сравнению с другими подходами…

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

> [@awesomerobot](#):
>
> но в настоящее время у нас нет запланированных работ по предпросмотру категорий.

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

 ![Screenshot from 2022-01-18 19-53-44](https://global.discourse-cdn.com/meta/original/3X/2/f/2f4ca6711bffbb51d56b2db2fd55d9d32cd4b604.png)

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

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

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [18.Январь.2022 23:21:34 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/7 "2022-01-18T23:21:34Z")

</div>

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

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

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

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

---

<div class="post-metadata">

### Author: ![jimkleiber](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jimkleiber/32/121814_2.png) [@jimkleiber](https://meta.discourse.org/u/jimkleiber)
#### Post date: [20.Январь.2022 04:35:49 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/8 "2022-01-20T04:35:49Z")

</div>

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

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [20.Январь.2022 10:28:27 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/9 "2022-01-20T10:28:27Z")

</div>

> [@jimkleiber](#):
>
> Я почти уверен, что они хотят возможность разрешать пользователям видеть только название категории, но не темы и сообщения внутри неё.

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

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

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

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [22.Январь.2022 05:04:08 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/10 "2022-01-22T05:04:08Z")

</div>

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

---

<div class="post-metadata">

### Author: ![jimkleiber](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jimkleiber/32/121814_2.png) [@jimkleiber](https://meta.discourse.org/u/jimkleiber)
#### Post date: [23.Январь.2022 21:31:25 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/11 "2022-01-23T21:31:25Z")

</div>

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

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

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

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [23.Январь.2022 22:01:23 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/12 "2022-01-23T22:01:23Z")

</div>

> [@jimkleiber](#):
>
> сообщить пользователям о его существовании и о том, что есть способ (через заявку, приглашение или даже оплату) получить к нему доступ.

Это можно реализовать с помощью этого плагина: [Discourse Category Lockdown](https://meta.discourse.org/t/advertise-activity-in-a-private-category-discourse-category-lockdown/70649)

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [03.Февраль.2022 00:45:11 UTC](https://meta.discourse.org/t/enabling-category-previews-for-restricted-paid-access-categories/215250/13 "2022-02-03T00:45:11Z")

</div>

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

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

 ![Screenshot from 2022-02-03 00-22-20](https://global.discourse-cdn.com/meta/original/3X/4/0/4081c7d532665015e4cbd78cb28e9b573b8f6f78.png)

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

 ![Screenshot from 2022-02-03 00-07-26](https://global.discourse-cdn.com/meta/original/3X/b/d/bd9c75bc2873c4108a0a3fd69bfedf6ca736fe71.png)

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

 ![Screenshot from 2022-02-03 00-07-01](https://global.discourse-cdn.com/meta/original/3X/f/5/f52f1da1012fef0fc4cf7842416511a010b7bfca.png)

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

 ![Screenshot from 2022-02-03 00-49-51](https://global.discourse-cdn.com/meta/original/3X/a/1/a13fa9b7ab59e2b4739d1935636c0f694103f880.png)

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

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

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

```

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