单击激活“创建事件”对话框

在过去的三年里,我一直在多个自托管的 Discourse 实例中广泛使用日历和事件功能。很高兴看到它发展成了如今这样令人印象深刻的功能套件。

然而,一个重大问题始终让我的用户感到困扰。

他们难以弄清楚如何实际发布一个事件。

这一问题一直存在,且在不同用户群体中普遍存在。尽管近期对流程和弹窗进行了改进,问题依然存在。

核心问题似乎在于:大多数用户并不熟悉也不直观地理解“将事件嵌入帖子”这一概念。基本上,他们需要能够一键启动事件创建。当前的流程如下:

  1. 创建新主题
  2. 点击编辑器栏上的“加号”按钮
    • 不是那个加号按钮,是另一个(是的,有两个)
  3. 点击“创建事件”
    • 是的,它确实在那里,你只需稍微向下滚动列表即可找到
  4. 填写所有详细信息
    • 一旦到达这一步,操作其实相当不错
  5. 整理 Markdown 中的混乱格式
    • 如果事件块与现有文本相邻,格式就会错乱。我的用户经常遇到这个问题。

看到问题所在了吗?

为缓解这一问题,我做了两件事。

一个主题分类器(TC)用于添加 订阅新建事件 按钮

效果如下:

使用向导实现一键操作

为了进一步扩展功能,我将这个“新建事件”按钮指向一个自定义向导(使用 https://meta.discourse.org/t/custom-wizard-plugin/73345),该向导随后生成事件块,从而让用户只需一次操作即可完成创建。以下是可上传的 .json 文件:

create-event-wizard.json (2.3 KB)

默认情况下,该文件设置为新西兰时间;请根据您的站点调整时区或添加下拉选项。

虽然这对我们的用户来说效果不错,但功能有限且略显脆弱。

更好的方案是提供一种方式,让用户能够直接进入事件创建流程(理想情况下从 /upcoming-events 页面和/或指定的事件分类出发),并将其作为插件的一部分实现。

4 个赞

谢谢,确实,我也在寻找一种简化的解决方案来创建活动。

顺便问一下,我不确定这是否可行,因为我创建的是游戏对局。我希望用户能点击“创建游戏桌”按钮,然后输入游戏桌名称(即主题名称),接着点击“下一步”,上传游戏图片,再点击“下一步”,输入游戏桌地点地址以便在地图上查看位置,最后点击“下一步”输入活动日期、参与人数和聊天频道。

我对自定义向导(custom wizard)不太熟悉,所以不确定这是否可行 :sweat_smile:

2 个赞

好消息是,我们正在积极致力于改进这一领域。

坏消息是,目前我们还没有这项工作预计完成的时间:slight_smile

5 个赞

是否可以是类似这样的查询端点:

https://domain.com/new-topic?title=My%20cool%20event%20topic&body=%5Bevent%20start%3D%222026-05-14%2012%3A00%22%20end%3D%222026-05-14%2012%3A30%22%20status%3D%22public%22%20timezone%3D%22Europe%2FLondon%22%20reminders%3D%22bumpTopic.3.days%22%5D%0APurpose%3A%20weekly%0A%5B%2Fevent%5D

我理解您无法以这种方式预填回复,因此这不适用于 Are there any plans to allow multiple events per thread or per post? 中提到的目的。

我认为我主要想表达的是:将所有主题事件保留在原始帖子(OP)中,但区分主要事件和次要事件,就像可以在原始帖子中设置投票一样。

我很想看看你的表单 :grin:

我不确定你在事件表单中是否通过 locate 插件处理了地理位置。它运行良好,但存在一个问题:该事件没有出现在类别的地图上,不过它确实出现在事件主题中的“查看地图”部分。我想可能是 Custom Wizard 跳过了某一步。

此外,我们可能会遇到一个问题,那就是 Custom Wizard 的未来前景,因为据我所知它已不再维护,然而它通过宏和自定义字段极大地简化了用户操作。

我在想,可以在主帖中设置一个投票,如果某个次要事件发生了实质性变更:系统会弹出一个提示,告知修改者投票将随之更新,该事件的投票将被清除,并询问是否通知曾为该事件投票的用户?

最近发布的日历订阅功能(@nathank 在其 Git 仓库中为其添加了一个按钮)可以支持所有主要事件,也可以按用户设置,在“仅主要事件”或“两者都包含”之间切换。

@nathank 我很乐意测试你的 JSON 表单,以测试事件。

提前感谢 :folded_hands::grin:

好的,我已将其添加到首帖:

它仍在维护中,只是没有进行积极开发。但它构建得非常稳固(这曾是我参与过的一个订阅产品),希望它还能继续存在一段时间。

1 个赞

感谢 @nathank 提供的 JSON 文件。你能解释一下为什么在事件的 Markdown 中,步骤 ID 前要加一个 w 吗?

我的表单和 locate 插件之间一直有个小问题。我想看看是否有人能测试一下我的 JSON,因为除了每次我必须在创建的主题中验证地址后,它才会出现在地图上并与其他所有事件一起显示之外,其他功能都正常。

这是为了将“向导”字段插值到生成的帖子文本中。

是的,定位功能与日历和事件之间的交互并不理想。@merefield 在整合定位功能与自定义向导插件方面做得非常出色,但将定位功能与日历和事件(自其新增的定位功能以来)整合的工作尚未完成。

我建议暂时不要使用定位插件来处理日历和事件。如果这一点对你很重要,可以与 @merefield 联系,探讨未来资助相关开发事宜。

2 个赞