Drupal 9本地文化活动站点活动内容类型日期管理方案咨询
适配你需求的最优无代码实现方案
字段配置
- 先创建「活动类型」分类词汇,仅设置3个选项:单日期活动、多时段活动、跨周期无时段活动,在events内容类型添加对应的Term Reference字段,设为必填项。
- 安装
Conditional Fields模块(Drupal生态通用的字段条件控制模块,无需代码即可实现字段显隐、必填性的条件规则) - 基于核心
Datetime/Datetime Range模块,仅需新增2个日期字段:field_event_datetime:日期时间类型,在字段设置页将「时间输入增量」设为15分钟,自动隐藏秒级精度,开启无限多值field_event_date_range:仅日期类型的日期范围字段,配置结束日期为必填
条件逻辑配置
在events内容类型的条件字段设置页,配置如下规则:
- 活动类型选择单日期活动/多时段活动时:
- 显示
field_event_datetime并设为必填 - 隐藏
field_event_date_range
- 显示
- 活动类型选择跨周期无时段活动时:
- 显示
field_event_date_range并设为必填 - 隐藏
field_event_datetime
- 显示
录入规则适配
- 单日期活动:
field_event_datetime填1个对应时间即可 - 多时段活动:不需要新建重复node,直接给
field_event_datetime添加多个值,每个值对应一场活动的时间,多值天然是时间分组,不需要额外做字段关联 - 跨周期活动:直接填起止日期即可,无冗余输入项
View筛选逻辑
创建「当日活动」视图时,设置两个OR关系的条件组:
- 针对单日期/多时段活动:
field_event_datetime的日期部分等于当前日期 - 针对跨周期活动:
field_event_date_range的开始日期 ≤ 当前日期,且field_event_date_range的结束日期 ≥ 当前日期
方案优势
- 全配置化实现,无自定义代码,后续Drupal版本升级无兼容风险
- 编辑操作友好,选完活动类型自动展示对应需要填写的字段,无冗余输入项,多时段活动不需要重复创建内容节点
- 完全符合你弃用重复日期功能的要求,所有活动时间均为手动录入,不会出现自动生成的无效活动信息
内容的提问来源于stack exchange,提问作者hip
相关产品推荐
相关产品推荐

