From 56fb49aa298043b7e6bf802bb4e45445937b1572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?benjamin=20melan=C3=A7on?= Date: Sat, 17 Nov 2018 16:21:48 -0500 Subject: [PATCH] Output authors as oxford comma'd list even without label --- .../field/field--field-authors.html.twig | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 agaric/templates/field/field--field-authors.html.twig diff --git a/agaric/templates/field/field--field-authors.html.twig b/agaric/templates/field/field--field-authors.html.twig new file mode 100644 index 0000000..37e97f4 --- /dev/null +++ b/agaric/templates/field/field--field-authors.html.twig @@ -0,0 +1,70 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + */ +#} +{# + Ensures that the visually hidden option for field labels works correctly. + @todo: Remove when https://www.drupal.org/node/2779919 is resolved. +#} +{% + set title_classes = [ + label_display == 'visually_hidden' ? 'visually-hidden', + ] +%} +{% set title_attributes = title_attributes.addClass(title_classes) %} + +{% if label_hidden %} + {% for item in items %} + {% if loop.length > 1 and loop.index == loop.length %}and {% endif %} + {{ item.content }}{% if loop.length > 2 and not loop.last %}, {% endif %} + {% endfor %} +{% elseif label_display == 'inline' %} + + {{ label }} + {% for item in items %} + {% if loop.length > 1 and loop.index == loop.length %}and {% endif %} + {{ item.content }}{% if loop.length > 2 and not loop.last %}, {% endif %} + {% endfor %} +

+{% else %} + + {{ label }} + {% for item in items %} + {{ item.content }} + {% endfor %} +

+{% endif %}