Как принудительно установить обязательный тег для создания темы в конкретной категории через JS темы (Blackout theme)?

Всем привет,

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

Я использую тему Blackout (или кастомную тему) и хочу добавить эту валидацию на стороне клиента с помощью JavaScript.

Есть ли способ добавить такое условие в JavaScript темы (например, в пользовательский код темы Blackout), чтобы:

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

Если да, не могли бы вы поделиться примером или лучшим подходом к реализации этого?

Заранее спасибо!

Я довольно уверен, что это можно сделать с помощью встроенных инструментов.

В настройках категории посмотрите на:

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

Здравствуйте,

Я выполнил все шаги.
Я создал группу тегов и добавил в неё один тег.

  1. В настройках категории, в разделе Теги > Обязательная группа тегов, я выбрал эту группу.

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

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

Я прикрепил скриншоты, демонстрирующие:

Пожалуйста, помогите разобраться: является ли это ошибкой, или я что-то упустил?

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

@S.AAKASH_MUTHIAH

Оказывается, это ограничение не распространяется на администраторов…

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

Мы внутри компании обсуждаем, как можно улучшить ситуацию: либо применить это ограничение глобально, либо хотя бы сделать поведение системы более понятным.

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

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

@S.AAKASH_MUTHIAH, удалось ли вам решить вашу проблему? Мне кажется, что совет от @chapoi подходит для вашего случая. Просто помните, что вы как администратор не затрагиваетесь этим, так же как и не затрагиваетесь другими ограничениями для не-администраторов.