| 摘要 | Discourse Calendar and Events 为您的 Discourse 站点添加动态且交互式的日历和活动功能。 | |
| 安装指南 | 此插件已捆绑在 Discourse 核心中。无需单独安装该插件。 |
启用日历和活动
可以通过开关或设置来启用日历和活动插件,这两者均可在您的 admin/plugins 页面访问:
功能
毫不奇怪,Discourse Calendar and Events 为您的 Discourse 站点添加了日历和活动功能。通过这些功能,您可以创建单个主题日历来跟踪重要场合或时间线,在类别中显示日历,添加假期日历来标记休假、缺席或病假,创建交互式活动主题,以及显示所有即将发生的活动的便捷访问日历摘要。
日历
可以在多个主题中创建自定义日历,并且您可以将希望提高可见性的日历显示在类别的主题列表上方。
您可以在以下链接中找到有关如何创建和使用日历的更详细信息:
活动
活动功能允许在主题中插入交互元素,您的成员可以使用这些元素报名参加或参与您社区的活动。所有这些都在一个专用的全站日历中汇总,并可以选择在导航菜单中添加一个便捷访问链接。您可以在以下链接中找到有关如何创建和使用此功能的更多信息:
这不应与 Pavilion 的 Events plugin(注意是复数形式)混淆
日历设置
| 名称 | 描述 |
|---|---|
| calendar enabled | 启用 discourse-calendar 插件。这将为主题的第一篇帖子添加对 [calendar][/calendar] 标签的支持。 |
| holiday calendar topic id | 员工假期/缺席日历的主题 ID。 |
| holiday status emoji | 定义用于假期状态的 emoji。 |
| delete expired event posts after | 包含过期活动的帖子将在 (n) 小时后自动删除。设置为 -1 以禁用删除。 |
| all day event start time | 未指定开始时间的活动将从此时开始。格式为 HH:mm。对于上午 6:00,输入 06:00 |
| all day event end time | 未指定结束时间的活动将在此时结束。格式为 HH:mm。对于下午 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
直播活动
对于实时活动,使用直播功能让成员观看活动并同时参与聊天。
直播活动包括:
- 视频流(例如使用 YouTube)
- 使用 Discourse Calendar and Events 的日历活动
- 为活动自动创建的配套 聊天 频道
直播活动的前提条件
要使用直播活动,您必须启用 chat enabled,因为直播会创建一个聊天频道来伴随您的活动,此外还需要 discourse post event enabled 和 calendar enabled。
创建直播活动
要创建直播活动:
- 打开一个新主题。
- 在编辑器工具栏中选择 + 图标并点击 Create Event(如果活动尚未添加到您的主题中)。
- 在活动视频链接(例如 YouTube URL)的位置/URL 字段中粘贴。
- 打开“livestream”开关
然后您将看到活动和直播已创建,以及右侧的配套聊天频道。
一旦任何用户在活动上点击 Going,他们将自动加入聊天频道,从而允许他们参与对话!
直播 Zoom 网络研讨会
您可以使用直播直接在 Discourse 中托管 Zoom 网络研讨会,以便成员可以在不离开社区的情况下观看活动并参与配套的聊天频道。
Zoom 网络研讨会的前提条件
除了 直播前提条件 外,您还需要配置以下设置:
- 打开
livestream zoom enabled - 在
livestream zoom sdk key设置中输入您的 Zoom Meeting SDK 密钥 - 在
livestream zoom sdk secret设置中输入您的 Zoom Meeting SDK 密钥
获取 Zoom Meeting SDK 密钥和密钥:
-
前往 marketplace.zoom.us,点击 Develop,然后点击 Build app。
-
当询问您正在创建什么类型的应用程序时,选择 General App 并点击 Create。
-
从应用程序的 App Credentials 页面,复制 Client ID(SDK 密钥)和 Client Secret(SDK 密钥)。
-
在 Embed 下,启用 Meeting SDK 权限。
-
在您的 Discourse 中,前往 Admin → All site settings 并在
livestream zoom sdk key和livestream zoom sdk secret中输入步骤 3 中的值。
为了让 Zoom 网络研讨会在 Discourse 中正常工作:
-
网络研讨会 不应需要注册或密码 即可加入。
-
禁用 Zoom 内置网络研讨会 聊天 以确保所有讨论都在单个 Discourse 聊天频道中进行,以保持所有聊天在一个地方,并确保研讨会结束后对话可以继续。
创建 Zoom 网络研讨会直播活动
要为您的 Zoom 网络研讨会创建直播活动:
- 打开一个新主题,选择 + 图标,并点击 Create Event。
- 在 URL/Location 字段中粘贴您的 Zoom 网络研讨会链接(例如
https://zoom.us/``...)。 - 打开 Livestream 开关。
- 根据需要设置活动名称、开始时间、结束时间和其他活动详细信息。
- 发布主题。
与其他直播活动一样,此活动将创建一个配套的 Discourse 聊天频道,成员在 RSVP 为“Going”后会自动加入。
成员体验
以下是您的成员体验网络研讨会的方式:
活动前
在活动开始前 30 分钟显示 Join Zoom 按钮。在此窗口之外,按钮将被禁用,并显示一条消息指示何时可用。
活动期间
一旦成员点击 Join Zoom,网络研讨会将加载到主题页面(或者,如果主持人尚未开始活动,成员需要等待他们开始才能看到视频)。
加入网络研讨会时音频 不会 自动连接;参会者需要点击或点击 Zoom 工具栏中的音频图标进行连接。这是 Zoom SDK 的限制,无法更改。
在移动设备上,网络研讨会以全屏 Zoom 视图打开(在桌面端也可以通过在活动主题 URL 末尾添加 /zoom 访问),并带有一个浮动 Chat 按钮,他们可以点击打开活动期间的聊天覆盖面板。
活动后
在活动结束时间后 10 分钟隐藏 Join Zoom 按钮。聊天频道将对参会者保持开放,直到您关闭它。
与其他插件的集成
您可以将此插件中的组件与 Right Sidebar Blocks 一起使用。您需要确保在 Right Sidebar Blocks 组件中启用了所需的路由。块名称将是 upcoming-events-list。历史上,日历插件本身需要额外的设置,但这已经简化。
这是侧边栏日历的默认外观。
如果您不想要时间,您可以在组件的块设置中添加一个空的 timeFormat 值。
由我们托管?此插件在我们的 Business 和 Enterprise 层级可用 Calendar | Discourse - Civilized Discussion
categoryId 是日历将显示在其上方的类别。
postId 是您放入日历的帖子 [calendar][/calendar] ↩︎它可以在日历右上角显示时区选择器。默认为 false,您可以通过 tzPicker=true 启用它 ↩︎
它可以隐藏日历中的周六和周日。默认为 true。您可以通过 weekends=false 将其设置为 false。 ↩︎
defaultView 将设置日历的视图(日、周等;)。可以设置为:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (默认)
defaultView=listNextYear ↩︎


















