field.html.twig 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. label_display == 'inline' ? 'clearfix',
  47. ]
  48. %}
  49. {%
  50. set title_classes = [
  51. 'field__label',
  52. label_display == 'visually_hidden' ? 'visually-hidden',
  53. ]
  54. %}
  55. {%
  56. set ouid_classes = [
  57. 'first_part_home',
  58. ]
  59. %}
  60. {% if label_hidden %}
  61. {% if multiple %}
  62. <div{{ attributes.addClass(classes, 'field__items') }}>
  63. {% for item in items %}
  64. <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
  65. {% endfor %}
  66. </div>
  67. {% else %}
  68. {% for item in items %}
  69. <div {{ attributes.addClass(classes, 'field__item') }}>{{ item.content }}</div>
  70. {% endfor %}
  71. {% endif %}
  72. {% else %}
  73. <div{{ attributes.addClass(classes) }}>
  74. <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
  75. {% if multiple %}
  76. <div class="field__items">
  77. {% endif %}
  78. {% for item in items %}
  79. <div{{ item.attributes.addClass('field__item') }}>{{ item.content }}</div>
  80. {% endfor %}
  81. {% if multiple %}
  82. </div>
  83. {% endif %}
  84. </div>
  85. {% endif %}