fieldset.html.twig 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. {#
  2. /**
  3. * @file
  4. * Default theme implementation for a fieldset element and its children.
  5. *
  6. * Available variables:
  7. * - attributes: HTML attributes for the <fieldset> element.
  8. * - errors: (optional) Any errors for this <fieldset> element, may not be set.
  9. * - required: Boolean indicating whether the <fieldeset> element is required.
  10. * - legend: The <legend> element containing the following properties:
  11. * - title: Title of the <fieldset>, intended for use as the text
  12. of the <legend>.
  13. * - attributes: HTML attributes to apply to the <legend> element.
  14. * - description: The description element containing the following properties:
  15. * - content: The description content of the <fieldset>.
  16. * - attributes: HTML attributes to apply to the description container.
  17. * - children: The rendered child elements of the <fieldset>.
  18. * - prefix: The content to add before the <fieldset> children.
  19. * - suffix: The content to add after the <fieldset> children.
  20. *
  21. * @see template_preprocess_fieldset()
  22. *
  23. * @ingroup themeable
  24. */
  25. #}
  26. {%
  27. set classes = [
  28. 'js-form-item',
  29. 'form-item',
  30. 'js-form-wrapper',
  31. 'form-wrapper',
  32. ]
  33. %}
  34. <fieldset{{ attributes.addClass(classes) }}>
  35. {%
  36. set legend_span_classes = [
  37. 'fieldset-legend',
  38. required ? 'js-form-required',
  39. required ? 'form-required',
  40. ]
  41. %}
  42. {# Always wrap fieldset legends in a <span> for CSS positioning. #}
  43. <legend{{ legend.attributes }}>
  44. <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
  45. </legend>
  46. <div class="fieldset-wrapper">
  47. {% if errors %}
  48. <div>
  49. {{ errors }}
  50. </div>
  51. {% endif %}
  52. {% if prefix %}
  53. <span class="field-prefix">{{ prefix }}</span>
  54. {% endif %}
  55. {{ children }}
  56. {% if suffix %}
  57. <span class="field-suffix">{{ suffix }}</span>
  58. {% endif %}
  59. {% if description.content %}
  60. <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div>
  61. {% endif %}
  62. </div>
  63. </fieldset>