Concord: тема в стиле Discord для Discourse

:information_source: Сводка Тема для Discourse, которая превращает ваш сайт в чат-сервер в стиле Discord, где всё является каналом
:hammer_and_wrench: Репозиторий github.com/awesomerobot/concord
:question: Гид по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Начальное руководство по использованию тем Discourse

Установить эту тему

Это тема, которая заставит ваш сайт на Discourse ощущаться как самодостаточная альтернатива Discord!

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

Concord превращает всё в каналы и отображает все каналы в пользовательском боковом меню:

  • Категории — это каналы форума
  • Чат-каналы — это текстовые каналы
  • Голосовые комнаты (из голосового плагина) — это голосовые каналы
  • Теги также могут быть каналами тегов (по желанию)

Шапка становится шапкой канала с названием текущего канала, описанием и действиями. Личные сообщения (DM) находятся в своем собственном виде, в правом боковом меню есть список участников, показывающий, кто онлайн, а общесайтовые страницы (о сайте, группы, значки, администрирование и т.д.) перемещаются в отдельное меню.

:warning: Это кардинально меняет макет Discourse, поэтому он может быть несовместим с некоторыми плагинами или компонентами тем. Также он зависит от некоторых очень недавних изменений в ядре, поэтому убедитесь, что вы обновили Discourse перед установкой (вам нужна сборка от 15 октября 2026 года или новее).

Настройка

Для Concord требуется изменить несколько настроек сайта, поэтому вот что нужно проверить в настройках вашего сайта Discourse после установки.

В качестве администратора вы можете просмотреть все эти настройки одновременно, вставив это в конец URL вашего сайта Discourse:

/admin/site_settings/category/all_results?filter=any:navigation_menu|default_homepage|chat_enabled|chat_allowed_groups|enable_public_channels|voice_allowed_groups|voice_create_room_allowed_groups|enable_user_status|tagging_enabled

:information_source: Обратите внимание, что вам нужно включить голос из предстоящих изменений, чтобы увидеть соответствующие настройки, /admin/config/upcoming-changes

Настройка сайта Что установить
navigation menu sidebar (обязательно, список каналов является боковым меню)
chat enabled enabled, если вы хотите иметь текстовые каналы и личные сообщения
chat allowed groups те, кто должен иметь возможность общаться; включите anonymous_users для просмотра без входа в систему
enable public channels enabled, чтобы сотрудники могли создавать текстовые каналы
voice enabled enabled, если вы хотите иметь голосовые каналы
voice allowed groups те, кто должен иметь возможность присоединяться к голосовым каналам
voice create room allowed groups те, кто должен иметь возможность создавать голосовые каналы
enable user status необязательно, статусы отображаются на аватарах в панели пользователя и в шапке
tagging enabled необязательно, необходимо только при включении настройки темы include tags
default homepage необязательно, но теперь вы можете установить здесь любой выбранный вами чат-канал

Создание каналов

Кнопка + рядом с названием вашего сайта открывает модальное окно «создать канал». Оно предлагает только типы каналов, создание которых вам разрешено:

  • Forum создает категорию (любой, кто может создавать категории)
  • Text создает чат-канал (сотрудники)
  • Voice создает голосовую комнату (настройка voice create room allowed groups)

Каждый тип может быть сделан приватным для набора групп. Вы можете изменить это позже через пункт Privacy в меню … канала в боковом меню.

В Discourse чат-каналы получают свои разрешения от категории, поэтому каждый текстовый канал, который вы создаете в этой теме, получает пустую «базовую» категорию, вложенную внутри родительской категории chat-channels. Эти категории скрыты из списка каналов, поэтому вам не нужно о них думать… но не публикуйте в них темы (обычным пользователям это запрещено)! Когда вы удаляете текстовый канал из его меню … в боковом меню, его базовая категория также удаляется.

Организация каналов в боковом меню

Каналы можно группировать в сворачиваемые разделы. Администраторы могут создавать, переименовывать, переставлять и удалять разделы из меню … на заголовке раздела, а также перемещать каналы между ними из меню … каждого канала. Все, что не входит в раздел, перечисляется сверху, в алфавитном порядке.

Разделы действуют для всего сайта, поэтому все видят одинаковый макет. Изменения появляются у других людей при следующей загрузке страницы.

Настройки темы

Название Описание
include tags Включить теги пользователя в боковом меню в качестве каналов (выключено по умолчанию)
include chat channels Включить чат-каналы в качестве текстовых каналов (включено по умолчанию)
ai conversations link Показывать кнопку для разговоров с ИИ-ботами рядом с названием сайта для тех, кто может их использовать (требуется Discourse AI с включенным Chatbot)
remember last channel Открывать снова тот канал, в котором человек находился в последний раз, когда он возвращается на ваш сайт
chat container category Slug категории, содержащей базовые категории для текстовых каналов, по умолчанию chat-channels
sidebar sections Разделы и каналы в каждом из них; вы можете управлять ими из бокового меню, это просто место хранения данных
member list roles Группы, отображаемые как роли в верхней части списка участников, в определенном порядке (по умолчанию администраторы и модераторы)

Другие важные моменты

  • Каждый видит каждый канал, к которому имеет доступ; пока нет способа скрыть отдельные каналы из своего собственного списка. Отключение звука в канале по-прежнему работает как обычно для уведомлений.
  • Открытие текстового канала означает присоединение к нему, как в Discord. Если кто-то покидает канал, он все равно остается в списке, поэтому отключение звука — лучший вариант для тишины.
  • Подкатегории не имеют своего места в списке каналов; вместо этого они отображаются в виде блоков вверху родительского канала форума. Тема, как правило, предполагает плоскую структуру, но вы можете выбрать родительскую категорию для канала форума, отредактировав его после создания.
  • Удаление текстового канала со страницы настроек самого чата скрыто для каналов с базовой категорией, поэтому они всегда удаляются из меню … канала (что также очищает категорию). Если канал удален каким-либо другим способом, например через API, базовая категория останется, и вам придется удалить ее самостоятельно.
  • Чат всегда открывается на полной странице, никогда в выдвижной панели.
  • «Онлайн» в списке участников означает активность где угодно на сайте в последние несколько минут, а не только в чате. Люди, скрывающие свое присутствие, остаются скрытыми.
  • На сайтах с очень большим количеством каналов в список загружаются только первые 500 текстовых каналов. Аналогично, список участников приватного чат-канала загружает своих первых 250 участников заранее, а остальные — по мере прокрутки.
  • Делание голосового канала приватным добавляет текущих членов выбранных вами групп (до 200). Люди, которые присоединятся к этим группам позже, не получат доступа автоматически, так как голосовые комнаты не имеют групповых разрешений. Вам придется вручную приглашать дополнительных участников.
  • Если вы позже перейдете с Concord, базовые категории для ваших текстовых каналов все еще будут там (и будут видны на /categories), поэтому, возможно, вы захотите удалить их.

Здесь еще так много того, что мы можем сделать, но это прочная основа, если вы ищете самодостаточную альтернативу Discord (или используете нашу платную хостинг-платформу discourse.org!).

Как всегда, отзывы и мнения приветствуются!

10 лайков