添加管理员设置以更改默认日历视图(月/周/日程)

您好 :waving_hand:

对于高度依赖“即将举行的活动”页面的网站,许多社区成员更喜欢默认的周视图。目前,/upcoming-events 始终先加载月视图,即使用户更喜欢周(或日、年)视图。


功能请求

添加一个简单的管理员站点设置,以配置 /upcoming-events 默认加载的视图:

upcoming events default view:
  - /upcoming-events/month   (当前默认)
  - /upcoming-events/week
  - /upcoming-events/year

为什么这很重要

  • 周视图对于教学时间表、轮班模式和活动密集的社区来说更实用
  • 减少用户每次访问页面时重复切换的次数
  • 提高用户体验与移动日历应用的奇偶校验,后者默认使用周视图

当前的解决方法

管理员可以通过主题组件强制重定向到 /upcoming-events/week,但这:

  • 是一个临时的解决方案
  • 适用于所有人(难以限定范围)
  • 无法提供真正的管理员用户体验控制

谢谢!这个小小的改动将极大地改善以活动为中心的社区的可用性 :raising_hands:

2 个赞

这是将默认值硬编码为 Week 而不是 Month。很简单,但还不是站点设置——它为更可接受的改进奠定了基础

为什么不直接使用 app.yml 变量?

Ember 代码不读取任意环境变量。Discourse 只将声明的站点设置(config/settings.yml, client: true)暴露给客户端。这就是为什么你必须:

  • 在核心中添加设置(然后通过 app.yml 设置),或者
  • 避免使用设置并使用主题组件重定向。

如何解决通用 URL,以便您可以在侧边栏上使用自定义链接?

现在这些将无法正常工作:

/upcoming-events/day
/upcoming-events/week
/upcoming-events/month
/upcoming-events/year
1 个赞

我“习惯了”即将发生的事件按钮,该按钮无法在侧边栏上配置,管理员设置也可以设置用户偏好的默认值。而不是所有用户都被迫设置自己的侧边栏按钮/部分,或者接受一个全局部分。

我希望我已经在我提交的拉取请求中更改了正确的代码,我们只需要根据设置来切换我更改的内容?…

@yuriy 你能为此添加一个网站设置吗?应该很简单。

4 个赞

@Ethsim2,你确实做到了 :smiley:

新的设置日历即将发生的事件默认视图现已可用。更改已在以下位置实现:

5 个赞

再次感谢您完成此项工作——管理员默认视图设置是用户体验上的一个巨大进步 :+1:

既然现在有了这个功能,也许可以考虑一个小的后续增强:允许用户选择用个人偏好覆盖站点默认设置,同时将管理员设置作为后备选项。

这样既能让站点拥有一个明确的默认标识(周视图 vs 月视图),又能让个人选择最适合他们的方式——类似于大多数日历应用的运作方式。一个简单的优先级顺序,如

显式 URL → 用户偏好 → 站点默认

将保持行为的可预测性和向后兼容性。

我并不是建议这取代当前的设置——如果认为它符合更广泛的用户体验方向,这只是一个可能的后续步骤。

1 个赞