coffeincode / countdowncalendar
倒计时日历或圣诞日历的捆绑包
Requires
- php: ^7.1
- contao/core-bundle: ~4.4
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-22 19:26:46 UTC
README
这是一个 Advents-或更一般的 Countdown-Kalender-Erweiterung - 这是我的一个小练习,以便更深入地了解 Contao-Bundles 的结构和做法。这个包可以自由使用,我很高兴收到意见和建议,但不要期望这是无瑕疵的专业代码。我不提供任何保证,并建议不要在生产环境中使用此包。
什么是 CountdownCalendar?
这个扩展实际上是 Adventskalender,但为了使这个扩展在一年中也能使用,而不必提及“Advent”和“Weihnachten”,所以简单地将它称为 CountdownCalendar。
概念
CountdownCalendar 在前端以图片形式显示,图片上覆盖着“门”,类似于传统的 Adventskalender。当鼠标悬停时,当前日期的门和之前的门会打开。会出现一个按钮,打开一个模态框。在模态框中,显示各个门的描述和一个按钮,用于调用实际门的内含物。
在后台,日历组织如下:每个日历日都有一个开始日期,但这并不等同于“published”复选框,该复选框表示发布日历条目。为了允许在相同日期上使用多个日历日,使用了“Published”字段来显示这个门是否可以在前端输出。只有当日历日的日期达到或超过时,才有一个可追踪的链接和访问门内内容的权限。由于这个原因,前端预览功能有限,请参阅“测试和调试”部分。
内部结构
这个日历类似于一个消息频道,包括列表和读者。一个日历需要提供开始和结束时间以及要在背景中显示的图片。此外,必须指定要使用的图片大小和要应用的断点。通过指定每行要显示的门数(LG vs. MD vs. XS),门的宽度将根据容器大小相应调整。颜色属性目前尚不可用,目前必须通过后端中的额外 css-style 或通过在模块代码中调整 SCSS 变量来调整各自的配色方案。
背景图片
这个日历被设计成使用背景图片来控制容器的响应式行为。建议设置一个专门的图片大小来控制这种行为。这样可以确保日历容器在小屏幕上也有足够的高度来展示门,而不会重叠。图片大小应使用精确的尺寸工作,并且至少处理两个断点。在 xs 显示器上,建议将日历图片从横向转换为纵向,这在 Contao 中的响应式图片不是问题。
创建新的日历条目
日历日类似于新闻频道的新闻条目来创建,每个日历日都有一个摘要字段。读者页面的详细信息可以作为 Contao 中的常规内容元素选择。建议首先创建日历时间范围内的所有日,以确保没有遗漏。之后,可以通过重新排列列表来执行前端输出顺序。
测试和调试
日历自带调试模式,以便在达到日历数据之前测试日历的行为。一旦将日历设置为调试模式,就必须指定一个日期,从现在开始,所有前端日历请求都将使用此日期。这样就可以测试,是否在11月初能够确保12月22日的门都能正确打开,最后两扇门是否像预期的那样保持关闭。
这可以与设置中的“显示未发布元素”前端预览功能一起使用。由于调试模式会更改所有调用的前端输出,而不仅仅是前端预览,因此在所有设置完成后,也必须确保关闭它。