Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / themes / classy / templates / field / field.html.twig
1 {#
2 /**
3  * @file
4  * Theme override for a field.
5  *
6  * To override output, copy the "field.html.twig" from the templates directory
7  * to your theme's directory and customize it, just like customizing other
8  * Drupal templates such as page.html.twig or node.html.twig.
9  *
10  * Instead of overriding the theming for all fields, you can also just override
11  * theming for a subset of fields using
12  * @link themeable Theme hook suggestions. @endlink For example,
13  * here are some theme hook suggestions that can be used for a field_foo field
14  * on an article node type:
15  * - field--node--field-foo--article.html.twig
16  * - field--node--field-foo.html.twig
17  * - field--node--article.html.twig
18  * - field--field-foo.html.twig
19  * - field--text-with-summary.html.twig
20  * - field.html.twig
21  *
22  * Available variables:
23  * - attributes: HTML attributes for the containing element.
24  * - label_hidden: Whether to show the field label or not.
25  * - title_attributes: HTML attributes for the title.
26  * - label: The label for the field.
27  * - multiple: TRUE if a field can contain multiple items.
28  * - items: List of all the field items. Each item contains:
29  *   - attributes: List of HTML attributes for each item.
30  *   - content: The field item's content.
31  * - entity_type: The entity type to which the field belongs.
32  * - field_name: The name of the field.
33  * - field_type: The type of the field.
34  * - label_display: The display settings for the label.
35  *
36  *
37  * @see template_preprocess_field()
38  */
39 #}
40 {%
41   set classes = [
42     'field',
43     'field--name-' ~ field_name|clean_class,
44     'field--type-' ~ field_type|clean_class,
45     'field--label-' ~ label_display,
46   ]
47 %}
48 {%
49   set title_classes = [
50     'field__label',
51     label_display == 'visually_hidden' ? 'visually-hidden',
52   ]
53 %}
54
55 {% if label_hidden %}
56   {% if multiple %}
57     <div{{ attributes.addClass(classes, 'field__items') }}>
58       {% for item in items %}
59         <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
60       {% endfor %}
61     </div>
62   {% else %}
63     {% for item in items %}
64       <div{{ attributes.addClass(classes, 'field__item') }}>{{ item.content }}</div>
65     {% endfor %}
66   {% endif %}
67 {% else %}
68   <div{{ attributes.addClass(classes) }}>
69     <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
70     {% if multiple %}
71       <div class="field__items">
72     {% endif %}
73     {% for item in items %}
74       <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
75     {% endfor %}
76     {% if multiple %}
77       </div>
78     {% endif %}
79   </div>
80 {% endif %}