# Category Calendar 的 defaultView="listNextYear" 未显示事件

**URL:** <https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209>\
**Category:** Support\
**Tags:** events\
**Created:** [2022年六月22日 07:03 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209 "2022-06-22T07:03:05Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年六月22日 07:03 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/1 "2022-06-22T07:03:05Z")

</div>

嗯，我的 `日历类别` 显示日历在类别主题列表的上方，但没有任何事件。有人能重现这个问题吗？

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年六月23日 09:41 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/2 "2022-06-23T09:41:36Z")

</div>

我已经安装了插件并进行了设置检查，到目前为止，我的“生日”同时显示在我的主题日历和分类日历中：

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/5/6/656e28041a662448089f88d7061629d967fdea1e.png)

不过，有几种不同的设置，所以我的简单设置可能无法涵盖您设置的方式。如果您能提供一些具体信息，我可以在我的测试设置中运行它们以进行检查？

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年六月23日 19:27 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/3 "2022-06-23T19:27:02Z")

</div>

我正在使用基本配置 + defaultView=listNextYear

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年六月27日 11:03 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/4 "2022-06-27T11:03:20Z")

</div>

> [@MarcP](#):
>
> 我正在使用基本配置+defaultView=listNextYear

我也尝试了一下，对我来说似乎运行得还可以。只是为了确认我做得对… 🙂

- 创建一个日历主题，在OP中加入以下代码：

```plaintext
[calendar]

[/calendar]

```

- 在日历主题中添加一个回复，例如：

```plaintext
It's my birthday!
[date-range from=2022-08-27 to=2022-08-27 timezone="Europe/London"]

```

- 在日历设置中，在`calendar categories`中设置例如 `categoryId=37;postId=1084;defaultView=listNextYear`

这会在我选择的类别上方显示：

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/c/6/8c66808663cfb89b1bcbe3f98f6d58d7a68b45ae.png)

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年六月27日 12:24 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/5 "2022-06-27T12:24:35Z")

</div>

是的，我正在做的正是这样。奇怪的是它对我不起作用，但过去确实起作用。

---

<div class="post-metadata">

**Author:** ![albert\_vu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/albert_vu/32/278482_2.png) [@albert\_vu](https://meta.discourse.org/u/albert_vu)\
**Post date:** [2022年七月21日 08:04 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/6 "2022-07-21T08:04:23Z")

</div>

您好 @JammyDodger，我们在公司的 [暂存站点](https://forum-dev-it.katalon.com/) 上遇到了同样的问题。我按照您的步骤操作了，但什么都没有显示。

但是，当我使用 Event 插件并开启了 `events calendar categories ` 选项，并在该类别中创建了一个活动时，它就显示得很正常。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年七月21日 08:55 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/7 "2022-07-21T08:55:15Z")

</div>

这很有趣。我不确定我做了什么不同的事情导致我的显示出来。🤔 你最后有没有把你的弄好，@MarcP？

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 08:59 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/8 "2022-07-21T08:59:50Z")

</div>

我不认为日历（类别）应该显示事件，但日期（官方插件）

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 09:26 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/9 "2022-07-21T09:26:43Z")

</div>

不，它仍然无法工作！最终不再使用它了。

@Benjamin_D 可以。它过去曾有效。日历小部件应该能够显示在类别之上。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年七月21日 09:38 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/10 "2022-07-21T09:38:10Z")

</div>

我觉得我的运行过程还是太简单了。我会深入研究，看看是否能找出我遗漏的地方（并希望能找到某种解决方案 🙂 🤞）

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 09:39 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/11 "2022-07-21T09:39:28Z")

</div>

它完全符合预期（并且过去对我来说是有效的）。这就是为什么我对它感到困惑。

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 10:07 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/12 "2022-07-21T10:07:02Z")

</div>

🤔 我认为事件分类可以使用 pavilion 插件实现：[Events Plugin 📅](https://meta.discourse.org/t/events-plugin/69776)  
我从未见过它与官方日历插件一起工作，该插件在几年前添加了一些事件功能。  
`[calendar]` 用于显示其主题的 `[date]`，这就是为什么 `category calendar` 选项要求 `postId`。  
`[event]` 的整个站点仅在 `upcoming-events` 路由的日历中显示（该路由也使用 js 库 fullcalendar 构建，就像 `calendar` 一样）

编辑：我的错，我从未见过这个：

> <https://github.com/discourse/discourse-calendar/blob/5a9ae9110859cea232f03ade444886b3b8a70fd1/config/settings.yml#L78-L81>

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 10:40 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/13 "2022-07-21T10:40:23Z")

</div>

如果我没理解错的话，您是想在日历中显示特定类别的事件，并利用 `defaultView` 参数，因为该参数在 `calendar categories` 选项中被接受（但在 `events calendar categories` 中则不被接受），并且参考了 [FEATURE: add events calendar on the category page (#248) · discourse/discourse-calendar@b900276 · GitHub](https://github.com/discourse/discourse-calendar/commit/b900276fb1cf81d6ed2baeb0755d4b6fe540ca85)

> 如果一个类别同时存在于 `events calendar categories` 和 `calendar categories` 中，则 `calendar categories` 具有优先权

嗯，我无法实现这一点，但这确实会很有用 😅

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 20:10 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/14 "2022-07-21T20:10:26Z")

</div>

> [@Benjamin\_D](#):
>
> 所以如果我理解正确的话，您正试图显示某个特定类别的事件

这是日历插件的一个功能：

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/2/5/725fc4094dd24569d7755ab555c2cb2dfe52088e.jpeg)

我从未安装过事件插件。

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 20:52 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/15 "2022-07-21T20:52:13Z")

</div>

> [@MarcP](#):
>
> > [@Benjamin\_D](#):
> >
> > 所以如果我没理解错的话，你正试图显示一个特定类别的事件
> 
> 这是日历插件的一个功能：

我真不这么认为。让我们回顾一下：

- 官方日历插件分为两部分：日历和事件
- 日历功能较早，用于通过 markdown `[date=....]` 显示假期和各种日期
- 事件功能（`[event ...]`）是后来添加的，允许我们进行 RSVP（可以独立启用，但与 discourse-calendar 插件一起安装），事件显示在日历中，该日历不是通过帖子中的 `[calendar] [/calendar]` markdown 构建的，而是通过特定路由 `/upcoming-events` 构建的
- `calendar categories` 允许我们指定诸如默认视图之类的选项，但不是 `events calendar categories`，这两者的工作方式截然不同（据我所理解）

常规日期的类别日历已存在于某些帖子中，会被检索，然后添加选项，[此处](https://github.com/discourse/discourse-calendar/blob/5a9ae9110859cea232f03ade444886b3b8a70fd1/assets/javascripts/initializers/discourse-calendar.js#L95-L104)  
但事件类别日历是为此次活动创建的，[事件按类别检索](https://github.com/discourse/discourse-calendar/blob/5a9ae9110859cea232f03ade444886b3b8a70fd1/assets/javascripts/initializers/discourse-calendar.js#L131) 并添加，但[未传递任何选项](https://github.com/discourse/discourse-calendar/blob/5a9ae9110859cea232f03ade444886b3b8a70fd1/assets/javascripts/initializers/discourse-calendar.js#L139-L144)。

总而言之，类别日历不应该显示事件，事件类别日历应该显示，但它不允许类别日历允许的任何选项。

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 21:03 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/16 "2022-07-21T21:03:13Z")

</div>

不确定我是否理解正确。

我过去通过在主题中发布文本+日期来添加事件。它会显示在该主题的第一个帖子中的[日历]标签中。

然后，我截图的设置允许我们在类别设置的顶部显示该日历。该设置描述（如截图所示）：在类别顶部显示日历。它从您提供的某个主题 ID 获取日历，并将其放置在您提供的某个类别 ID 的上方。

也许事件插件发生了一些变化，但我从未使用过它。

我认为这一切都与事件插件无关，因为我从未安装过它，而且它过去一直按上述方式工作。

> [@vinothkannans](#):
>
> ### 事件
> 
> 该插件有一个“事件”功能，但请将其视为处于 alpha 状态。它的工作方式完全不同，它会从多个主题中的条目创建一个全站日历，而不是每个主题的日历。有关更多信息，请参阅 [🗓 Discourse 事件](https://meta.discourse.org/t/discourse-event/149964)。

正如这里所示，事件与论坛范围内的事件有关。日历与基于主题的日历有关，而这正是我们正在讨论的。

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 21:06 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/17 "2022-07-21T21:06:03Z")

</div>

> [@MarcP](#):
>
> 通过在主题中发布文本+日期来创建事件

啊，是的！这些是日期，事件更像是这样：

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/4/e/24ec05ae66568cd30a624d116897a0524311cbfa.png)  
原始文本如下：

```plaintext
[event start="2022-07-22 10:12" status="public" name="testegsdg" url="test" end="2022-07-22 11:12" allowedGroups="trust_level_0"]
[/event]

```

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 21:08 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/18 "2022-07-21T21:08:32Z")

</div>

没错。如果未安装该插件，则不会使用“事件”功能。我共享的设置确实会在主题上方显示日历，但不会显示事件项目（或者为了避免与事件混淆，我们称之为日历项目）。而同一个日历小部件会在主题的第一个帖子中显示日历项目。

希望这能弄清楚这个主题的内容。

---

<div class="post-metadata">

**Author:** ![Benjamin\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benjamin_d/32/277831_2.png) [@Benjamin\_D](https://meta.discourse.org/u/Benjamin_D)\
**Post date:** [2022年七月21日 21:15 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/19 "2022-07-21T21:15:21Z")

</div>

> [@MarcP](#):
>
> 我们称它们为日历项

👍  
好的，那为什么它对你不起作用？ 🤔  
从上面的截图中，为什么 `categoryId` 前面有一个 `X`？

---

<div class="post-metadata">

**Author:** ![MarcP](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/marcp/32/160184_2.png) [@MarcP](https://meta.discourse.org/u/MarcP)\
**Post date:** [2022年七月21日 21:16 UTC](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209/20 "2022-07-21T21:16:36Z")

</div>

X 就像是禁用的 🤣 这样我就可以保存设置，并在 bug 解决后重新启用它，而不会丢失我的设置。

为什么它不起作用是个好问题。我甚至在新主题中尝试了一个全新的日历，看看“旧”日历主题是否有问题。

[下一頁](https://meta.discourse.org/t/category-calendar-with-defaultview-listnextyear-not-showing-events/231209.md?page=2)
