field.html.twig 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. * @see template_preprocess_field()
  37. */
  38. #}
  39. {%
  40. set title_classes = [
  41. label_display == 'visually_hidden' ? 'visually-hidden',
  42. ]
  43. %}
  44. {% if label_hidden %}
  45. {% if multiple %}
  46. <div{{ attributes }}>
  47. {% for item in items %}
  48. <div{{ item.attributes }}>{{ item.content }}</div>
  49. {% endfor %}
  50. </div>
  51. {% else %}
  52. {% for item in items %}
  53. <div{{ attributes }}>{{ item.content }}</div>
  54. {% endfor %}
  55. {% endif %}
  56. {% else %}
  57. <div{{ attributes }}>
  58. <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
  59. {% if multiple %}
  60. <div>
  61. {% endif %}
  62. {% for item in items %}
  63. <div{{ item.attributes }}>{{ item.content }}</div>
  64. {% endfor %}
  65. {% if multiple %}
  66. </div>
  67. {% endif %}
  68. </div>
  69. {% endif %}