Сделать просмотр категории более заметным для пользователей

Мне интересно сделать опцию «Следить за категорией» более заметной для пользователей.

  • Я понимаю, что могу стилизовать кнопку уведомлений в категории, но она всё равно останется небольшой и не слишком очевидной иконкой. Мне не удалось понять, как сделать более заметную цель.

  • Возможно ли добавить кнопку уведомлений для каждой категории на странице /categories? Это также послужило бы обзором того, за чем следит пользователь.

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

    Вот мой аргумент в пользу последнего: я отправляю последующее сообщение участникам нашего онлайн-мероприятия (которые уже являются участниками нашего форума). Я хотел бы добавить что-то вроде: «Если вам понравился этот вебинар по теме X, вы можете подписаться на уведомления о будущих мероприятиях и обсуждениях по этой теме: ССЫЛКА».

    Без ССЫЛКИ мне пришлось бы буквально описывать, как перейти на нужную страницу, нажать на соответствующую иконку и выбрать вариант из списка.

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

Мне это тоже показалось бы полезным. Уведомления по электронной почте содержат ссылки на страницу действий (если можно так выразиться) — отписка от темы и т. д. Было бы здорово иметь что-то подобное для наблюдения за категориями.

Проблема, которую я вижу в этом, заключается в том, что это, вероятно, станет вектором для CSRF-атак (кто-то может разместить ссылку где-либо, которая выполнит какое-либо действие в Discourse, и любой, кто нажмёт на неё, подвергнется этому действию в своём аккаунте, если он авторизован на сайте Discourse, на который указывает ссылка). Ссылку также можно замаскировать под короткую, например bit.ly/some-key.

В большинстве случаев (или во всех?) GET-запросы не должны изменять состояние. Тем не менее, такую проблему (уязвимость CSRF) можно избежать или хотя бы смягчить, если для выполнения конкретного действия (связанного с токеном) ссылка требует токен, сгенерированный модератором (или администратором). Однако я не уверен, оправдывает ли это усилия, хотя в случаях, подобных тому, на который вы указали, это может быть полезно (особенно для людей, которые не очень хорошо ориентируются в интернете).

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

Это возможное решение, как это происходит при отписке от рассылки.

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

Меня бы вполне устроила ссылка, ведущая на форум, где появляется диалоговое окно с вопросом вроде этого:

Хотите следить за первым постом в категории?

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

Да / Нет [кнопки]

Редакция: похоже, что API уже позволяет это делать (без диалога) для тем: Discourse API Docs

Посмотрев на это снова… В разделе «Настройки — категории» есть такой обзор, но он позволяет добавлять категории к пяти возможным статусам уведомлений. По сути, то, о чём мы думаем, было бы тем же самым, но наоборот: позволять добавлять статусы уведомлений в список категорий. Мне кажется, это было бы более интуитивно понятно.

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

Через несколько недель после того, как вы создали эту тему, был опубликован Categories Tracking Toggle #theme-component. Но вы участвовали в обсуждении там, так что для вас это ничего нового.

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