nathank
(Nathan Kershaw)
1
在过去的三年里,我一直在多个自托管的 Discourse 实例中广泛使用日历和事件功能。很高兴看到它发展成了如今这样令人印象深刻的功能套件。
然而,一个重大问题始终让我的用户感到困扰。
他们难以弄清楚如何实际发布一个事件。
这一问题一直存在,且在不同用户群体中普遍存在。尽管近期对流程和弹窗进行了改进,问题依然存在。
核心问题似乎在于:大多数用户并不熟悉也不直观地理解“将事件嵌入帖子”这一概念。基本上,他们需要能够一键启动事件创建。当前的流程如下:
- 创建新主题
- 点击编辑器栏上的“加号”按钮
- 点击“创建事件”
- 是的,它确实在那里,你只需稍微向下滚动列表即可找到
- 填写所有详细信息
- 整理 Markdown 中的混乱格式
- 如果事件块与现有文本相邻,格式就会错乱。我的用户经常遇到这个问题。
看到问题所在了吗?
为缓解这一问题,我做了两件事。
一个主题分类器(TC)用于添加 订阅 和 新建事件 按钮
效果如下:
使用向导实现一键操作
为了进一步扩展功能,我将这个“新建事件”按钮指向一个自定义向导(使用 https://meta.discourse.org/t/custom-wizard-plugin/73345),该向导随后生成事件块,从而让用户只需一次操作即可完成创建。以下是可上传的 .json 文件:
create-event-wizard.json (2.3 KB)
默认情况下,该文件设置为新西兰时间;请根据您的站点调整时区或添加下拉选项。
虽然这对我们的用户来说效果不错,但功能有限且略显脆弱。
更好的方案是提供一种方式,让用户能够直接进入事件创建流程(理想情况下从 /upcoming-events 页面和/或指定的事件分类出发),并将其作为插件的一部分实现。
4 个赞
谢谢,确实,我也在寻找一种简化的解决方案来创建活动。
顺便问一下,我不确定这是否可行,因为我创建的是游戏对局。我希望用户能点击“创建游戏桌”按钮,然后输入游戏桌名称(即主题名称),接着点击“下一步”,上传游戏图片,再点击“下一步”,输入游戏桌地点地址以便在地图上查看位置,最后点击“下一步”输入活动日期、参与人数和聊天频道。
我对自定义向导(custom wizard)不太熟悉,所以不确定这是否可行 
2 个赞
好消息是,我们正在积极致力于改进这一领域。
坏消息是,目前我们还没有这项工作预计完成的时间:slight_smile
5 个赞
Ethsim2
(Ethan )
4
是否可以是类似这样的查询端点:
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)中,但区分主要事件和次要事件,就像可以在原始帖子中设置投票一样。
我很想看看你的表单 
我不确定你在事件表单中是否通过 locate 插件处理了地理位置。它运行良好,但存在一个问题:该事件没有出现在类别的地图上,不过它确实出现在事件主题中的“查看地图”部分。我想可能是 Custom Wizard 跳过了某一步。
此外,我们可能会遇到一个问题,那就是 Custom Wizard 的未来前景,因为据我所知它已不再维护,然而它通过宏和自定义字段极大地简化了用户操作。
Ethsim2
(Ethan )
6
我在想,可以在主帖中设置一个投票,如果某个次要事件发生了实质性变更:系统会弹出一个提示,告知修改者投票将随之更新,该事件的投票将被清除,并询问是否通知曾为该事件投票的用户?
Ethsim2
(Ethan )
7
最近发布的日历订阅功能(@nathank 在其 Git 仓库中为其添加了一个按钮)可以支持所有主要事件,也可以按用户设置,在“仅主要事件”或“两者都包含”之间切换。
@nathank 我很乐意测试你的 JSON 表单,以测试事件。
提前感谢 

nathank
(Nathan Kershaw)
9
好的,我已将其添加到首帖:
它仍在维护中,只是没有进行积极开发。但它构建得非常稳固(这曾是我参与过的一个订阅产品),希望它还能继续存在一段时间。
1 个赞
gilles
10
感谢 @nathank 提供的 JSON 文件。你能解释一下为什么在事件的 Markdown 中,步骤 ID 前要加一个 w 吗?
我的表单和 locate 插件之间一直有个小问题。我想看看是否有人能测试一下我的 JSON,因为除了每次我必须在创建的主题中验证地址后,它才会出现在地图上并与其他所有事件一起显示之外,其他功能都正常。
nathank
(Nathan Kershaw)
11
这是为了将“向导”字段插值到生成的帖子文本中。
是的,定位功能与日历和事件之间的交互并不理想。@merefield 在整合定位功能与自定义向导插件方面做得非常出色,但将定位功能与日历和事件(自其新增的定位功能以来)整合的工作尚未完成。
我建议暂时不要使用定位插件来处理日历和事件。如果这一点对你很重要,可以与 @merefield 联系,探讨未来资助相关开发事宜。
2 个赞