自定义列表中的活动日历

:information_source: 摘要 为自定义列表添加日历功能
:eyeglasses: 预览 在此查看实际效果
:hammer_and_wrench: 代码库 Event List Calendar
:question: 安装指南 如何安装主题或主题组件
:open_book: Discourse 主题新手? Discourse 主题入门指南

:warning: 此插件需要同时使用 events 和 自定义列表插件。

为什么选择此插件而不是“近期活动”页面?

  • 提供侧边栏出口选项,而非完整日历视图
  • 包含主题列表
  • 可通过自定义列表插件针对多个类别或特定标签(via the custom lists plugin)

注意: 若要排除使用了某个标签的类别,请确保在自定义列表设置中使用 -category:SLUG。例如:tag:webinar,livestream -category:show-tell

日历视图:

侧边栏视图:

设置

支持为不同的列表/对象配置不同的日历

设置 描述
列表 slug Custom Topic Lists 中列表的 slug,例如 /lists/events 对应 events。必填。
布局 完整日历或近期活动侧边栏。必填。
显示新建按钮 在列表导航栏添加一个“新建”按钮。点击后编辑器以空白状态打开。
新建按钮标签 按钮文本,例如“新建活动”。编辑器按钮紧随其后(创建活动)。留空则默认为“新主题”。
新建按钮图标 从带有预览的图标选择器中选择一个图标。留空则默认为笔形图标。在手机上仅显示图标。
隐藏 Horizon 侧边栏按钮 仅适用于 Horizon。在此页面隐藏侧边栏的“新主题”按钮。否则,它将匹配上述按钮。
以活动开头 新主题将自动添加一个活动块,从下一个整点开始,持续一小时。
新建按钮类别 可选。新主题默认归入此类别,包括通过侧边栏按钮和 c 快捷键创建的主题。
新建按钮标签 可选。新主题默认添加这些标签,包括通过侧边栏按钮和 c 快捷键创建的主题。
隐藏主题列表 在此页面隐藏标准主题列表。

7 个赞

这真的太酷了!我觉得它会变得超级有用,并且能填补核心功能中缺失的整体网站即将活动列表。

不知为何,用于隐藏不包含活动的主题的切换按钮对我来说不起作用。我使用的是 Horizon 主题(抱歉,还没做进一步的测试)。我在想,是不是需要过滤器来处理活动筛选,而不是通过 TC 来隐藏它们?我会为此提交一个功能请求。

另外,在活动筛选列表中,我们真的需要将“新建主题”按钮改为“新建活动”按钮。能否在 TC 中添加这个功能?

1 个赞

我会测试一下 Horizon 主题,看看能找到什么问题。不过,还是感谢你提交了这个功能请求!

当然可以,这应该不难实现!

这在 Horizon 中现在应该可以正常工作了。如果你的功能请求获批,我会重新考虑这个问题。 :slight_smile:

已添加“新主题/事件”按钮!

我曾尝试从列表设置中提取过滤器,但如果存在多个标签或类别,情况会变得杂乱无章。

1 个赞

哇!感谢你倾听并迅速付诸行动。我真的很期待稍后给它一次试运行。

已经通过了!

好的,我现在试了一下——运行得很不错!而且非活动类型的主题在 Horizon 主题下也被很好地隐藏了。

不过,为了让它真正好用,还需要再做一处调整,并且最好针对 Horizon 主题进行特定的适配。

主要遗留问题

目前,该功能会在站点默认的主题创建分类中打开一个新主题。虽然作为概念验证这很棒,但它确实需要在“活动”上下文中(即在配置了活动的分类中)打开一个新主题,否则我们的用户会彻底迷失方向。

需要注意的是,如果你将站点默认的主题创建分类更改为活动分类,就会出现一个活动输入框,除非用户更改分类或深入使用 Markdown,否则很难将其移除。以我对用户的了解,他们很可能会卡住然后放弃!!!

我们应该如何处理?

我猜测核心 Events 插件的功能在这里可能有点难以处理。但也许你能找到一种巧妙的方法。我建议目标是让活动输入框无论选择哪个分类都出现(并保持在那里)。

一个合理的变通方法可能是让按钮在一个已配置的类别(即配置了活动的类别)中打开。如果用户输入了一些数据,即使他们更改分类,它也会保持激活状态。然而,如果他们先选择分类,就会丢失输入框。这可能需要进行一些引导说明。

棘手的 Horizon 主题

最后,Horizon 主题对“新主题”按钮做了一些漂亮/奇怪的处理(在桌面端位于左侧边栏的高处),这需要专门加以解决。

1 个赞

我成功整合了新的过滤查询 :+1:

我对 Composer 的计划是添加这些设置:

关于 Horizon 的一个快问:你希望将新的事件功能集成到左上角的“新话题”按钮中吗?还是应该保留你截图中的“新事件”按钮,并让它包含新的事件对象上下文?

1 个赞

看起来不错——希望它能顺利运行。我很期待测试一下!

其实我并不喜欢 Horizon 将“新建话题”按钮放在侧边栏的设计。而且我确实喜欢在日历正上方有一个好看且不同的“新建活动”按钮,因为我知道人们自然会看向那里。如果能用 calendar-plus 作为图标,并且采用与常规 Horizon 按钮相同的样式,那就更好了。

话虽如此,尽可能保持与 Horizon 主题其余部分的一致性是非常有道理的(即使我不喜欢它!)。这是在配置为活动的分类中 Horizon 的样子:

这是同一页面在移动端的显示效果:

在我看来,Horizon 的理想方案是:

  1. 在桌面端,保留日历上方的“新建活动”按钮,但将其样式设置为与侧边栏按钮相同
  2. 保留侧边栏按钮,但使其与新按钮完全一致
    • 如果需要,管理员可以通过 CSS 轻松隐藏此按钮,当然也可以通过设置来控制
  3. 在移动端,按照 Horizon 主题复制仅显示 calendar-plus 图标的按钮

抱歉没能给你一个明确的答案——但这类事情往往就是这样,对吧?

1 个赞

我想我已经捕捉到了所有内容。请更新一下,并告诉我你的想法:)