data.html.twig 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. {% macro render_field(form, fields, scope) %}
  2. {% import _self as self %}
  3. {% for index, field in fields %}
  4. {%- set show_field = attribute(field, "input@") ?? field.store ?? true %}
  5. {% if field.fields %}
  6. {%- set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope -%}
  7. {{- self.render_field(form, field.fields, new_scope) }}
  8. {% else %}
  9. {% if show_field %}
  10. {%- set value = form.value(scope ~ (field.name ?? index)) -%}
  11. {% if value %}
  12. {% block field %}
  13. <div>
  14. {% block field_label %}
  15. <strong>{{ field.label|t|e }}</strong>:
  16. {% endblock %}
  17. {% block field_value %}
  18. {% if field.type == 'checkboxes' %}
  19. <ul>
  20. {% set use_keys = field.use is defined and field.use == 'keys' %}
  21. {% for key,value in form.value(scope ~ field.name) %}
  22. {% set index = (use_keys ? key : value) %}
  23. <li>{{ field.options[index]|e }}</li>
  24. {% endfor %}
  25. </ul>
  26. {% elseif field.type == 'checkbox' %}
  27. {{ (form.value(scope ~ field.name) == 1) ? "GRAV.YES"|t|e : "GRAV.NO"|t|e }}
  28. {% elseif field.type == 'select' %}
  29. {% set value = form.value(scope ~ field.name) %}
  30. {% if value is iterable %}
  31. <ul>
  32. {% set use_keys = field.use is defined and field.use == 'keys' %}
  33. {% for key, val in value %}
  34. {% set index = (use_keys ? key : val) %}
  35. <li>{{ field.options[index]|e }}</li>
  36. {% endfor %}
  37. </ul>
  38. {% else %}
  39. {{ field.options[value]|e }}
  40. {% endif %}
  41. {% else %}
  42. {% set value = form.value(scope ~ field.name) %}
  43. {% if value is iterable %}
  44. <ul>
  45. {% for val in value %}
  46. {% if val is iterable %}
  47. <ul>
  48. {% for v in val %}
  49. <li>{{ string(v)|e }}</li>
  50. {% endfor %}
  51. </ul>
  52. {% else %}
  53. <li>{{ string(val)|e }}</li>
  54. {% endif %}
  55. {% endfor %}
  56. </ul>
  57. {% else %}
  58. {{ string(value)|e|nl2br }}
  59. {% endif %}
  60. {% endif %}
  61. {% endblock %}
  62. </div>
  63. {% endblock %}
  64. {% endif %}
  65. {% endif %}
  66. {% endif %}
  67. {% endfor %}
  68. {% endmacro %}
  69. {% import _self as macro %}
  70. {{ macro.render_field(form, form.fields, '') }}