来自 添加事件:将过滤器添加到话题筛选器查询语言(Discourse Events 插件扩展) 的后续请求:
event: 过滤器现已合并并可正常运行——谢谢!
然而,我发现了一个在实际应用中限制其功能性的缺口:/filter 路由(因此也包括自定义话题列表插件)仅查询常规话题。消息被完全排除在外,因为它们使用独立的路由系统(/topics/private-messages-group/... / topics/private-messages/...)。
这意味着,同时使用消息和公开讨论的社区无法构建一个统一的“所有事件”视图。你需要两个独立的页面,并且无法跨两者组合过滤器。
值得注意的是,搜索系统已经能够通过 in:all 跨两种架构(archetype)进行范围限定——但它无法告诉我哪些结果是事件。过滤器系统识别事件——但它看不到消息。两者单独使用都不够完善!
问题
event:any 将显示所有包含事件的公开话题,但会静默跳过在私信(PM)中创建的任何事件。对于使用私信进行邀请、协调或仅限受邀者参与事件的群组来说,这是一个显著的盲点。
@pfaffman 也遇到了同样的限制——findFilteredTopics 无法访问 archetype = 'private_message' 类型的话题:
建议的解决方案
允许 /filter 路由通过架构选择器可选地包含私信,例如:
event:any archetype:regular,privatemessage
或者使用更简单的布尔标志:
event:any include-messages
使用场景
作为社区经理,我希望侧边栏有一个链接,可以显示站点上的每一个事件——无论是公开的还是私人的,以免在两个独立的视图之间遗漏任何内容。