Заставить пользователей выбирать подкатегорию?

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

Я прекрасно понимаю, что это не тот способ, которым задуманы категории в Discourse. Но не всегда легко найти новые способы реорганизации категорий из старого движка форума с иной структурой категорий, и мои пользователи довольны текущей реорганизацией, несмотря на «проблему», которую я опишу позже (см. абзац с видео).

Родительская категория содержит 4 подкатегории.

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

Однако проблема заключается в том, что кнопка «Новая тема» становится серой, а при наведении появляется символ :no_entry_sign:, что совсем не привлекает внимание.
Если нажать на неё (хотя ничего не подсказывает, что её можно нажать из-за иконки), появляется наше пользовательское сообщение (например: «Пожалуйста, выберите подкатегорию для создания темы»), которое также отображается в верхней части страницы категории (верхняя строка в видео).

Предполагаю, что есть простой способ на JS убрать класс disabled у этой конкретной кнопки?
Но даже если мы это сделаем, возникает ещё одна проблема: пользователи ожидают, что при нажатии на привлекательную кнопку (обычное состояние, курсор-указатель) откроется редактор сообщения, а не сообщение «Пожалуйста, выберите одну из подкатегорий для создания темы». Не станет ли это отпугивающим фактором, поскольку форум предназначен для привлечения новых людей, а не только для текущих пользователей?
Или, возможно, мы можем полностью скрыть кнопку… Но это может выглядеть странно, так как кнопка «Новая тема» будет присутствовать в других родительских категориях, которым разрешено создавать темы?

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

Каков ваш совет?

Что, если добавить ссылки на подкатегории в модальное окно или вместе с новой ссылкой на тему?

Например:

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

<a href="/new-topic?category=parent/subcategory1">Подкатегория1</a>
<a href="/new-topic?category=parent/subcategory2">Подкатегория2</a>
<a href="/new-topic?category=parent/subcategory3">Подкатегория3</a>


Вы также можете изменить кнопку с помощью CSS. Вот пример:

#create-topic {
  &.btn[disabled]:not(.is-loading),
  &.btn.disabled:not(.is-loading) {
    opacity: 1;
    cursor: pointer;
    &:hover,
    &:focus {
      background: var(--primary-medium);
      color: var(--secondary);
      svg {
        color: var(--secondary);
      }
    }
  }
}

Есть несколько интересных способов организовать что-то подобное.

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

В теме Air есть группировка категорий с заголовками в списке.

Например:

Название группы категорий Заголовок 1

  • перечисленные категории

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

В родительской категории я держу разрешение «Просмотр», а в дочерних — полное разрешение.

Компонент темы «Скрытие категорий» хорошо работает для очистки меню «гамбургер», показывая только родительские категории.

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

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

Что касается темы, мы решили оставить поведение по умолчанию.

Я могу это реализовать. Мне кажется, что Discourse в некоторых аспектах слишком перегружен. Я уже убрал «Предлагаемые темы» через CSS и пытаюсь сделать интерфейс более понятным для тех, кому сложно пользоваться технологиями. Они жалуются, что не могут ничего найти. Я до сих пор не понимаю, как облегчить им жизнь. Они привыкли к Google Docs и WhatsApp, но это ужасно.

Мое предложение по функционалу: вместо отображения списка постов при открытии категории должен показываться список подкатегорий, а под ним — список постов этой категории. Чтобы увидеть посты подкатегории, нужно открыть её. Так мозгу гораздо проще это структурировать. Я бы сказал,

Я понимаю :slight_smile:

Возможная перегруженность для новых пользователей также обсуждалась здесь:


Если у вас есть просьба о добавлении функции, пожалуйста, разместите её в #feature, так как эта тема была посвящена принуждению пользователей выбирать подкатегорию при создании тем в определённых категориях. :slight_smile:

Если вы знаете, как реализовать то, что хотите (или у вас есть вопросы по этому поводу), не стесняйтесь поделиться этим в Development — это может быть полезно и для других :slight_smile:

Хочу добавить немного информации о принудительном выборе подкатегории.

Я наткнулся на этот пост, когда искал решение:
Minimum category / sub-category dept level to post a topic - #3 by rbrlortie (решение не совсем то, что мне нужно, и устарело).

В прошлом году из любопытства я зарегистрировался на форуме @rbrlortie и заметил, что при выборе родительской категории селектор категорий автоматически заполнялся подкатегорией по умолчанию — это было удобно. Но сегодня я проверил, и теперь это работает иначе.