| Краткое описание | Discourse Events добавляет динамические и интерактивные функции календаря и событий на ваш сайт Discourse. | |
| Руководство по установке | Этот плагин входит в ядро Discourse. Отдельная установка плагина не требуется. |
Включение событий
Плагин Events можно включить с помощью переключателя или из его настроек, оба доступны на странице admin/plugins:
У нас хостинг? Этот плаген доступен на наших тарифных планах Business и Enterprise https://www.discourse.org/plugins/calendar.html
Функции
Что неудивительно, Discourse Events добавляет как функции календаря, так и функции событий на ваш сайт Discourse. С их помощью вы можете создавать отдельные календари тем для отслеживания важных событий или таймлайнов, отображать календари в категориях, добавлять календарь праздников для отметки отпусков, отсутствия или больничных, создавать интерактивные темы событий, а также отображать удобный календарный обзор всех ваших предстоящих событий.
Календари
Специальные календари могут быть созданы в нескольких темах, а те, которым вы хотите придать более высокую видимость, могут отображаться над списком тем категории.
Более подробную информацию о том, как создавать и использовать календари, можно найти здесь:
События
Функция Events позволяет вставлять интерактивные элементы в темы, которые ваши участники могут использовать для регистрации на участие или для участия в деятельности вашего сообщества. Все это сводится в отдельный общесайтовый календарь с возможностью добавить удобную ссылку в меню навигации. Больше информации о том, как создавать и использовать эту функцию, можно найти здесь:
Не следует путать с плагин Events от Pavilion (обратите внимание на множественное число)
Настройки календаря
| Название | Описание |
|---|---|
| calendar enabled | Включить плагин discourse-calendar. Это добавит поддержку тега [calendar][/calendar] в первом посте темы. |
| holiday calendar topic id | ID темы календаря отпусков/отсутствий сотрудников. |
| holiday status emoji | Определяет эмодзи, используемый для статуса отпуска. |
| delete expired event posts after | Посты с истекшими событиями будут автоматически удалены через (n) часов. Установите -1, чтобы отключить удаление. |
| all day event start time | События, для которых не указано время начала, начнутся в это время. Формат: ЧЧ:мм. Для 6:00 утра введите 06:00 |
| all day event end time | События, для которых не указано время окончания, закончатся в это время. Формат: ЧЧ:мм. Для 6:00 вечера введите 18:00 |
| calendar categories | Отображать календарь вверху категории. Обязательные настройки: categoryId и postId. Пример: categoryId=6;postId=453[1] Другие допустимые настройки: tzPicker[2], weekends[3] и defaultView[4]. |
| calendar categories outlet | Позволяет изменить, какой outlet должен отображать календарь категории. |
| working days | Установить рабочие дни. Вы можете отображать доступность группы с помощью тега timezones в посте, например: [timezones group=admins][timezones] |
| working day start hour | Время начала рабочих часов. |
| working day end hour | Время окончания рабочих часов. |
| close to working day hours extension | Установить время расширения в рабочих часах для выделения часовых поясов. |
| calendar automatic holidays enabled | Автоматически устанавливать статус отпуска на основе региона пользователя (примечание: вы можете отключить конкретные автоматические праздники в настройках плагина) |
| map events title | Маппинг заголовка календаря в боковой панели на основе категории. По умолчанию “Предстоящие события” |
Настройки событий
| Название | Описание |
|---|---|
| discourse post event enabled | Включает функции Events. Примечание: также необходимо, чтобы calendar enabled было включено. |
| discourse post event allowed on groups | Группы, которым разрешено создавать события. |
| displayed invitees limit | Ограничивает количество приглашенных, отображаемых на событии. |
| display post event date on topic title | Отображает дату события после заголовка темы. |
| use local event date | Использовать локальную дату после заголовка темы вместо относительного времени. |
| discourse post event edit notifications time extension | Расширяет (в минутах) период после окончания события, в течение которого приглашенные с статусом going все еще получают уведомления об изменении в исходном посте. |
| discourse post event allowed custom fields | Позволяет каждому событию устанавливать значение пользовательских полей. |
| events calendar categories | Отображать календарь событий вверху категории. |
| sort categories by event start date enabled | Включает сортировку тем категории по дате начала события. |
| disable resorting on categories enabled | Позволяет категориям отключить возможность для пользователей сортировать по категории событий. |
| sidebar show upcoming events | Показывать ссылку на предстоящие события в боковой панели под “Еще”. Требуется post event enabled |
| map events to color | Назначает цвет события указанному тегу или категории |
![]()
В эндпоинт
discourse-post-event/events.jsonдобавлен параметр для переключения между простым и подробным ответом. Чтобы получить подробный ответ, вы можете добавить?include_details=true:
/discourse-post-event/events.json?include_details=true
Создание событий через API
Вы можете создавать события через POST /posts.json с использованием BBCode [event][/event] в поле raw. Вот подробности о том, как настроить ваш запрос API:
- Используйте
POST /posts.jsonс параметромraw - Синтаксис события:
[event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event] - Буквальный символ новой строки
\nобязателен между открывающим и закрывающим тегами - Двойные кавычки должны быть экранированы при использовании JSON (
\") - Учетная запись пользователя API должна иметь разрешение на создание событий (администратор или группа с правами на создание событий)
- Установите категорию с помощью параметра
category, передав id категории в качестве значения.
События с прямым эфиром
Для живых событий используйте функцию прямого эфира, чтобы участники могли смотреть событие и участвовать в чате одновременно.
Событие с прямым эфиром включает:
- Видеопоток (например, с использованием YouTube)
- Календарное событие с использованием Discourse Events
- Сопутствующий чат канал, автоматически созданный для события
Требования к событиям с прямым эфиром
Для использования событий с прямым эфиром у вас должен быть включен chat enabled, поскольку прямой эфир создает чат-канал, сопровождающий ваше событие, в дополнение к discourse post event enabled и calendar enabled.
Если вы хотите использовать прямой эфир, но не хотите чат в других местах...
- Установите
chat allowed groupsв конфигурацию по умолчанию или включитеtrust_level_0, чтобы позволить совершенно новым пользователям участвовать в чате прямого эфира - Удалите группы из настройки
direct message enabled groups, чтобы предотвратить личные сообщения между пользователями - Не создавайте другие чат-каналы
Создание события с прямым эфиром
Чтобы создать событие с прямым эфиром:
- Откройте новую тему.
- Выберите значок + на панели инструментов композера и нажмите Создать событие (если событие еще не было добавлено к вашей теме).
- Вставьте ссылку на видео события (например, URL YouTube) в поле местоположения/URL.
- Включите переключатель “прямой эфир”
Затем вы увидите, что событие и прямой эфир были созданы, а также сопутствующий чат-канал на правой стороне.
Как только любой пользователь нажмет Участвую на событии, он автоматически присоединится к чат-каналу, что позволит ему участвовать в разговоре!
Прямые трансляции веб-семинаров Zoom
Вы можете использовать прямой эфир для проведения веб-семинаров Zoom непосредственно в Discourse, чтобы участники могли смотреть событие и участвовать в сопутствующем чат-канале, не покидая ваше сообщество.
Требования к веб-семинарам Zoom
В дополнение к требованиям к прямому эфиру, вам также необходимо настроить следующие параметры:
- Включите
livestream zoom enabled - Введите ключ Zoom Meeting SDK в настройку
livestream zoom sdk key - Введите секрет Zoom Meeting SDK в настройку
livestream zoom sdk secret
Для получения ключа и секрета Zoom Meeting SDK:
-
Перейдите на marketplace.zoom.us, нажмите Develop (Разработка), а затем Build app (Создать приложение).
-
Когда вас спросят, какой тип приложения вы создаете, выберите General App (Общее приложение) и нажмите Create (Создать).
-
На странице App Credentials (Удостоверения приложения) приложения скопируйте Client ID (Ключ SDK) и Client Secret (Секрет SDK).
-
В разделе Embed (Встраивание) включите разрешение Meeting SDK (SDK совещаний).
-
В вашем Discourse перейдите в Админ → Все настройки сайта и введите значения из шага 3 в
livestream zoom sdk keyиlivestream zoom sdk secret.
Для того чтобы веб-семинар Zoom работал правильно в Discourse:
-
Для участия в веб-семинаре не должно требоваться регистрация или пароль.
-
Отключите встроенный чат веб-семинара Zoom, чтобы обеспечить проведение всех обсуждений в едином чат-канале Discourse, чтобы держать весь чат в одном месте и обеспечить продолжение разговора после окончания веб-семинара.
Создание события прямого эфира для веб-семинара Zoom
Чтобы создать событие прямого эфира для вашего веб-семинара Zoom:
- Откройте новую тему, выберите значок + и нажмите Создать событие.
- Вставьте ссылку на ваш веб-семинар Zoom (например,
https://zoom.us/``...) в поле URL/Местоположение. - Включите Прямой эфир.
- Установите название события, время начала, время окончания и другие детали события по желанию.
- Опубликуйте тему.
Как и другие события с прямым эфиром, это событие будет создано с сопутствующим чат-каналом Discourse, к которому участники автоматически присоединяются после подтверждения участия “Участвую”.
Опыт участника
Вот как ваши участники будут переживать веб-семинар:
Перед событием
Кнопка Присоединиться к Zoom отображается за 30 минут до начала события. Вне этого окна кнопка отключена с сообщением о том, когда она станет доступной.
Во время события
Как только участники нажимают Присоединиться к Zoom, веб-семинар загрузится на страницу темы (или, если хост еще не начал событие, участнику придется подождать, пока он это сделает, чтобы увидеть видео).
Аудио не подключается автоматически при присоединении к веб-семинару; участникам необходимо нажать или коснуться значка аудио на панели инструментов Zoom, чтобы подключиться. Это ограничение Zoom SDK, и его нельзя изменить.
На мобильных устройствах веб-семинар открывается в полноэкранном виде Zoom (который также доступен на настольных компьютерах, добавив /zoom в конец URL темы события) с плавающей кнопкой Чат, на которую можно нажать, чтобы открыть панель наложения чата во время события.
После события
Кнопка Присоединиться к Zoom скрывается через 10 минут после времени окончания события. Чат-канал остается доступным для участников, пока вы не закроете его.
Интеграции с другими плагинами
Вы можете использовать компонент из этого плагина с Right Sidebar Blocks. Вам нужно убедиться, что желаемый маршрут включен в компоненте Right Sidebar Blocks. Имя блока будет upcoming-events-list. Исторически в самом плагине Calendar требовались дополнительные настройки, но это было упрощено.
Вот как по умолчанию будет выглядеть календарь в боковой панели.
Если вы не хотите отображать время, вы можете добавить пустое значение timeFormat в настройке блока компонента.
categoryId — это категория, над которой будет отображаться календарь.
postId — это пост, в котором вы разместили календарь с помощью [calendar][/calendar] ↩︎может отображать выбор часового пояса в правом верхнем углу календаря. По умолчанию false, можно включить с помощью tzPicker=true ↩︎
может скрывать субботы и воскресенья из календаря. По умолчанию true. Можно установить false с помощью weekends=false. ↩︎
defaultView устанавливает вид календаря (день, неделя и т.д.). Может быть установлено как:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (по умолчанию)
defaultView=listNextYear ↩︎






















