| 摘要 | Discourse Events 为您的 Discourse 站点添加了动态且交互式的日历和活动功能。 | |
| 安装指南 | 此插件已随 Discourse 核心一起捆绑提供。无需单独安装该插件。 |
启用活动
可以通过切换开关或从其设置中启用 Events 插件,两者均可在您的 admin/plugins 页面访问:
由我们托管?此插件在我们的 Business 和 Enterprise 套餐中可用 https://www.discourse.org/plugins/calendar.html
功能
不出所料,Discourse Events 为您的 Discourse 站点同时添加了日历和活动功能。通过这些功能,您可以创建单独的帖子日历来跟踪重要场合或时间线,在类别中显示日历,添加假日日历以标记休假、缺席或病假,创建交互式活动帖子,以及显示所有即将举行的活动的易于访问的日历摘要。
日历
可以在多个帖子中创建自定义日历,并且您希望给予更高可见性的日历可以显示在类别的帖子列表上方。
您可以在以下位置找到有关如何创建和使用日历的更详细信息:
活动
活动功能允许在帖子中插入交互元素,您的成员可以使用这些元素报名参加或参与您社区的活动。所有这些都在一个专门的站点范围日历中汇总,并可选择在导航菜单中添加一个易于访问的链接。您可以在以下位置找到有关如何创建和使用此功能的更多信息:
这不应与 Pavilion 的 Events 插件 混淆(注意是复数形式)
日历设置
| 名称 | 描述 |
|---|---|
| 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 | 允许更改应显示类别日历的 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 | 根据类别映射侧边栏日历的标题。默认为 “Upcoming events” |
活动设置
| 名称 | 描述 |
|---|---|
| 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 创建活动
您可以使用 raw 字段中的 [event][/event] BBCode 通过 POST /posts.json 创建活动。以下是设置您的 API 请求的详细信息:
- 使用带有
raw参数的POST /posts.json - 活动语法:
[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设置中移除组,以防止用户之间的私信 - 不要创建其他聊天频道
创建直播活动
要创建直播活动:
- 打开一个新主题。
- 选择编辑器工具栏中的 + 图标并点击 创建活动(如果尚未将活动添加到您的主题中)。
- 在活动视频链接(例如 YouTube URL)粘贴到位置/URL 字段中。
- 打开“直播”开关
然后您会看到活动和直播已创建,右侧还有一个伴随的聊天频道。
一旦任何用户在活动上点击 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 网络研讨会创建直播活动:
- 打开一个新主题,选择 + 图标,并点击 创建活动。
- 将您的 Zoom 网络研讨会链接(例如
https://zoom.us/``...)粘贴到 URL/Location 字段中。 - 打开 Livestream。
- 根据需要设置活动名称、开始时间、结束时间和其他活动详细信息。
- 发布主题。
与其他直播活动一样,此活动将创建一个伴随的 Discourse 聊天频道,成员在回复为“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。历史上,Calendar 插件本身需要额外的设置,但现在已经简化了。
这是侧边栏日历的默认外观。
如果您不想要时间,可以在组件的块设置中添加一个空的 timeFormat 值。
categoryId 是日历将显示在其上方的类别。
postId 是您放置日历的帖子,使用 [calendar][/calendar] ↩︎它可以在日历右上角显示时区选择器。默认为 False,您可以使用 tzPicker=true 启用它 ↩︎
它可以隐藏日历中的星期六和星期日。默认为 True。您可以使用 weekends=false 将其设置为 false。 ↩︎
defaultView 将设置日历的视图(天、周等;)。它可以设置为:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (默认)
defaultView=listNextYear ↩︎


















