| Краткое описание | Discourse Calendar and Events добавляет динамические и интерактивные функции календаря и событий на ваш сайт Discourse. | |
| Руководство по установке | Этот плагин поставляется в составе ядра Discourse. Отдельная установка плагина не требуется. |
Включение календаря и событий
Плагин «Календарь и события» можно включить либо с помощью переключателя, либо через его настройки, оба варианта доступны на странице admin/plugins:
Возможности
Неудивительно, что Discourse Calendar and Events добавляет на ваш сайт Discourse как функции календаря, так и функции событий. С их помощью вы можете создавать индивидуальные календари тем для отслеживания важных дат или хронологии, отображать календари в категориях, добавлять календарь праздников для отметки отпусков, отсутствий или больничных, создавать интерактивные темы событий, а также показывать удобный сводный календарь всех ваших предстоящих событий.
Календари
Индивидуальные календари можно создавать в нескольких темах, а те, которым вы хотите придать большую видимость, можно отображать над списком тем категории.
Более подробную информацию о том, как создавать и использовать календари, можно найти здесь:
События
Функция «Событие» позволяет вставлять интерактивные элементы в темы, которые ваши участники могут использовать для регистрации на участие в мероприятиях вашего сообщества. Все это сводится в отдельный общесайтовый календарь с возможностью добавления удобной ссылки в меню навигации. Более подробную информацию о том, как создавать и использовать эту функцию, можно найти здесь:
Не следует путать это с плагин 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 | Позволяет изменить, какой выход должен отображать календарь категории. |
| 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 | Включает функции событий. Примечание: также необходимо включить 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 Calendar and Events
- Соответствующий чат канал, автоматически созданный для события
Предварительные требования для событий в прямом эфире
Чтобы использовать события в прямом эфире, у вас должно быть включено chat enabled, поскольку прямой эфир создает чат-канал для сопровождения вашего события, в дополнение к discourse post event enabled и calendar enabled.
Создание события в прямом эфире
Чтобы создать событие в прямом эфире:
- Откройте новую тему.
- Выберите значок + на панели инструментов редактора и нажмите Создать событие (если событие еще не было добавлено в вашу тему).
- Вставьте ссылку на видео события (например, URL YouTube) в поле местоположения/URL.
- Включите переключатель “livestream”
Затем вы увидите, что событие и прямой эфир были созданы, а также соответствующий чат-канал справа.
Как только любой пользователь нажмет Going (Иду) на событии, он автоматически присоединится к чат-каналу, что позволит ему участвовать в разговоре!
Прямой эфир вебинаров Zoom
Вы можете использовать прямой эфир для проведения вебинаров Zoom непосредственно в Discourse, чтобы участники могли смотреть событие и участвовать в соответствующем чат-канале, не покидая ваше сообщество.
Предварительные требования для вебинаров Zoom
В дополнение к предварительным требованиям для прямого эфира, вам также потребуется настроить следующие параметры:
- Включите
livestream zoom enabled - Введите ключ SDK встречи Zoom в настройке
livestream zoom sdk key - Введите секрет SDK встречи Zoom в настройке
livestream zoom sdk secret
Для получения ключа и секрета SDK встречи Zoom:
-
Перейдите на marketplace.zoom.us, нажмите Develop (Разработка) и нажмите Build app (Создать приложение).
-
Когда вас спросят, какой тип приложения вы создаете, выберите General App (Общее приложение) и нажмите Create (Создать).
-
На странице App Credentials (Учетные данные приложения) скопируйте Client ID (ID клиента, Ключ SDK) и Client Secret (Секрет клиента, Секрет SDK).
-
В разделе Embed (Встраивание) включите разрешение Meeting SDK (SDK встречи).
-
В вашем Discourse перейдите в Admin → All site settings (Админ → Все настройки сайта) и введите значения из шага 3 в
livestream zoom sdk keyиlivestream zoom sdk secret.
Чтобы вебинар Zoom работал правильно в Discourse:
-
Вебинар не должен требовать регистрации или пароля для входа.
-
Отключите встроенный чат вебинара Zoom, чтобы обеспечить проведение всего обсуждения в едином чат-канале Discourse, сохраняя все сообщения в одном месте и гарантируя, что разговор может продолжаться после окончания вебинара.
Создание события прямого эфира вебинара Zoom
Чтобы создать событие прямого эфира для вашего вебинара Zoom:
- Откройте новую тему, выберите значок + и нажмите Создать событие.
- Вставьте ссылку на ваш вебинар Zoom (например,
https://zoom.us/``...) в поле URL/Местоположение. - Включите Livestream (Прямой эфир).
- Установите название события, время начала, время окончания и другие детали события по желанию.
- Опубликуйте тему.
Как и другие события прямого эфира, это событие будет создано с соответствующим чат-каналом Discourse, к которому участники автоматически присоединяются после того, как отметят статус «Иду».
Опыт участников
Вот как ваши участники будут воспринимать вебинар:
До события
Кнопка Join Zoom (Присоединиться к Zoom) отображается за 30 минут до начала события. Вне этого окна кнопка отключена с сообщением о том, когда она станет доступной.
Во время события
Как только участники нажимают Join Zoom (Присоединиться к Zoom), вебинар загружается на страницу темы (или, если ведущий еще не начал событие, участнику придется подождать, пока он это сделает, чтобы увидеть видео).
Аудиосоединение не устанавливается автоматически при входе на вебинар; слушателям нужно нажать или коснуться значка аудио на панели инструментов Zoom для подключения. Это ограничение SDK Zoom, и его нельзя изменить.
На мобильных устройствах вебинар открывается в полноэкранном виде Zoom (который также доступен на настольных компьютерах путем добавления /zoom в конец URL темы события) с плавающей кнопкой Chat (Чат), на которую можно нажать, чтобы открыть панель наложения чата во время события.
После события
Кнопка Join Zoom (Присоединиться к Zoom) скрывается через 10 минут после времени окончания события. Чат-канал остается доступным для участников до тех пор, пока вы его не закроете.
Интеграция с другими плагинами
Вы можете использовать компонент из этого плагина с Right Sidebar Blocks. Вам нужно убедиться, что желаемый маршрут включен в компонент Right Sidebar Blocks. Имя блока будет upcoming-events-list. Исторически в самом плагине Календаря требовались дополнительные настройки, но это было упрощено.
Так будет выглядеть боковой календарь по умолчанию.
Если вы не хотите отображать время, вы можете добавить пустое значение timeFormat в настройку блока компонента.
Хостинг у нас? Этот плагин доступен в наших тарифных планах Business и Enterprise Calendar | Discourse - Civilized Discussion
categoryId — это категория, над которой будет отображаться календарь.
postId — это пост, в котором вы разместили календарь с помощью [calendar][/calendar] ↩︎может отображать выбор часового пояса в правом верхнем углу календаря. По умолчанию false, можно включить с помощью tzPicker=true ↩︎
может скрывать субботу и воскресенье в календаре. По умолчанию true. Можно установить false с помощью weekends=false. ↩︎
defaultView установит вид календаря (день, неделя и т.д.). Может быть установлено как:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (по умолчанию)
defaultView=listNextYear ↩︎


















