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

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

Суть в следующем: я хотел бы пометить группу (в моём случае — «Сотрудники»), и каждый раз, когда сотрудник публикует сообщение в теме, в списке тем добавлять специальный класс. Это позволит мне, например, добавить иконку или фоновое изображение, указывающее на то, что в теме есть ответ от сотрудника.

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

У нас есть для этого плагин (хотя, похоже, он нигде не задокументирован здесь, на Meta :thinking:): GitHub - discourse/discourse-group-tracker: Group Tracker plugin for Discourse · GitHub

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

Кроме того, внутри тем… пока группа установлена как основная группа для пользователя, мы добавляем класс к каждому сообщению (на примере Meta: у сообщений наших членов команды добавлен класс group-team:

1 лайк

О, это просто замечательно, сейчас же попробую этот плагин.

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

1 лайк

Привет, @awesomerobot

Мне удалось успешно установить плагин (что видно на этом скриншоте)

Однако, согласно инструкциям на GitHub, чтобы добавить группу,

В разделе «Управление» группы, за сообщениями которой вы хотите следить, установите флажок «Отслеживать сообщения, созданные участниками этой группы».

однако в разделе управления группой такой опции нет.

В настоящее время все темы помечаются иконкой.

Хм, если я правильно помню, плагин не работает с автоматическими группами (теми, которые идут в комплекте с Discourse по умолчанию), к которым относятся уровни доверия, модераторы и персонал… так что, думаю, вам нужно создать новую группу, и в этой группе вы должны увидеть настройки.

Да! Ты только что опередил меня. Создал новую группу сотрудников, и всё работает как по маслу.

Огромное спасибо, этот плагин просто идеален.

1 лайк

Заметил, что класс не применяется, когда пост цитируется в другой теме (из-за чего невозможно применить к нему те же стили, что и в самой теме [например, изменить цвет текста для постов сотрудников]).

Если этот плагин когда-либо будут дорабатывать, это было бы хорошим дополнением.

Редактирование: Смотря на этот самый сайт (meta), вижу, что цитаты действительно имеют класс для группы (у некоторых — no-group, у цитируемых членов команды — group-team), так что похоже, что это действительно поддерживается?

image

Мне нравится эта идея. Но она становится бесполезной, если есть более общие темы или сотрудники (или кто входит в эту группу) более активны как авторы. Поэтому у них должны быть отдельные учётные записи в зависимости от того, предоставляют ли они поддержку (или занимаются чем-то подобным, где нужны уведомления), или просто участвуют в обсуждениях.