select.html.twig 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. {% extends "forms/field.html.twig" %}
  2. {% block global_attributes %}
  3. data-grav-selectize="{{ (field.selectize is defined ? field.selectize : {})|json_encode()|e('html_attr') }}"
  4. {{ parent() }}
  5. {% endblock %}
  6. {% block input %}
  7. <div class="{{ form_field_wrapper_classes ?: 'form-select-wrapper' }} {{ field.size }} {{ field.wrapper_classes }}">
  8. <select name="{{ (scope ~ field.name)|fieldName ~ (field.multiple ? '[]' : '') }}"
  9. class="{{ form_field_select_classes }} {{ field.classes }}"
  10. {% if field.id is defined %}id="{{ field.id|e }}" {% endif %}
  11. {% if field.style is defined %}style="{{ field.style|e }}" {% endif %}
  12. {% if field.disabled %}disabled="disabled"{% endif %}
  13. {% if field.autofocus in ['on', 'true', 1] %}autofocus="autofocus"{% endif %}
  14. {% if field.novalidate in ['on', 'true', 1] %}novalidate="novalidate"{% endif %}
  15. {% if required %}required="required"{% endif %}
  16. {% if field.multiple in ['on', 'true', 1] %}multiple="multiple"{% endif %}
  17. {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
  18. {% if field.form %}form="{{ field.form }}"{% endif %}
  19. {% if field.key %}
  20. data-key-observe="{{ (scope ~ field.name)|fieldName }}"
  21. {% endif %}
  22. >
  23. {% if field.placeholder %}<option value="" disabled selected>{% if grav.twig.twig.filters['tu'] is defined %}{{ field.placeholder|tu|raw }}{% else %}{{ field.placeholder|t|raw }}{% endif %}</option>{% endif %}
  24. {% for key, item_value in field.options %}
  25. {% if item_value is iterable %}
  26. <optgroup label="{{ key }}">
  27. {%for subkey, suboption in item_value %}
  28. {% set selected = field.selectize ? suboption : subkey %}
  29. {% set item_value = field.selectize and field.multiple ? suboption : subkey %}
  30. <option {% if subkey == value or (field.multiple and selected in value) %}selected="selected"{% endif %} value="{{ suboption }}">
  31. {% if grav.twig.twig.filters['tu'] is defined %}
  32. {{ suboption|tu|raw }}{% else %}{{ suboption|t|raw }}
  33. {% endif %}
  34. </option>
  35. {% endfor %}
  36. </optgroup>
  37. {% else %}
  38. {% set selected = field.selectize ? item_value : key %}
  39. {% set val = field.selectize and field.multiple ? item_value : key %}
  40. <option {% if key == value or (field.multiple and selected in value) %}selected="selected"{% endif %} value="{{ val }}">{%- if grav.twig.twig.filters['tu'] is defined -%}{{ item_value|tu|raw }}{% else %}{{ item_value|t|raw }}{%- endif -%}</option>
  41. {% endif %}
  42. {% endfor %}
  43. </select>
  44. </div>
  45. {% endblock %}