63 lines
2.0 KiB
Twig
63 lines
2.0 KiB
Twig
{#
|
|
/**
|
|
* @file
|
|
* Theme override for field_dates on "evenement" nodes.
|
|
*
|
|
* Splits the daterange value into separate year/month/day parts (see
|
|
* leshed_preprocess_field() in leshed.theme) so start/end can be styled
|
|
* independently instead of relying on the default <time> rendering.
|
|
*
|
|
* Available on each item, in addition to the default `content`/`attributes`:
|
|
* - item.start_date: { year, month, month_name, day } or unset if empty.
|
|
* - item.end_date: { year, month, month_name, day } or unset if empty.
|
|
*
|
|
* @see template_preprocess_field()
|
|
* @see leshed_preprocess_field()
|
|
*
|
|
* @ingroup themeable
|
|
*/
|
|
#}
|
|
{%
|
|
set title_classes = [
|
|
label_display == 'visually_hidden' ? 'visually-hidden',
|
|
]
|
|
%}
|
|
|
|
{% macro date_parts(date) %}
|
|
<time datetime="{{ date.iso }}">
|
|
<span class="date-part date-day">{{ date.day }}</span>
|
|
<span class="date-part date-month">{{ date.month }}</span>
|
|
<span class="date-part date-year">{{ date.year }}</span>
|
|
</time>
|
|
{% endmacro %}
|
|
{% import _self as dates %}
|
|
|
|
{% if label_hidden %}
|
|
{% for item in items %}
|
|
<div{{ attributes.addClass("field-item", "digit-dates") }}>
|
|
{% if item.start_date %}
|
|
{{ dates.date_parts(item.start_date) }}
|
|
{% endif %}
|
|
{% if item.end_date and (item.end_date.year != item.start_date.year or item.end_date.day != item.start_date.day) %}
|
|
<span class="date-sep">→</span>
|
|
{{ dates.date_parts(item.end_date) }}
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
{% else %}
|
|
<div{{ attributes }}>
|
|
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
|
|
{% for item in items %}
|
|
<div{{ item.attributes.addClass("field-item", "field-dates") }}>
|
|
{% if item.start_date %}
|
|
{{ dates.date_parts(item.start_date) }}
|
|
{% endif %}
|
|
{% if item.end_date and (item.end_date.year != item.start_date.year or item.end_date.day != item.start_date.day) %}
|
|
<span class="date-sep">→</span>
|
|
{{ dates.date_parts(item.end_date) }}
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|