div_layout.html.twig 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. {% block field__rows %}
  2. {% spaceless %}
  3. {{ form_errors(form) }}
  4. {% for child in form.children %}
  5. {{ form_row(child) }}
  6. {% endfor %}
  7. {% endspaceless %}
  8. {% endblock field__rows %}
  9. {% block field__enctype %}
  10. {% spaceless %}
  11. {% if multipart %}enctype="multipart/form-data"{% endif %}
  12. {% endspaceless %}
  13. {% endblock field__enctype %}
  14. {% block field__errors %}
  15. {% spaceless %}
  16. {% if errors|length > 0 %}
  17. <ul>
  18. {% for error in errors %}
  19. <li>{% trans error.messageTemplate with error.messageParameters from 'validators' %}</li>
  20. {% endfor %}
  21. </ul>
  22. {% endif %}
  23. {% endspaceless %}
  24. {% endblock field__errors %}
  25. {% block field__rest %}
  26. {% spaceless %}
  27. {% for child in form.children %}
  28. {% if not child.rendered %}
  29. {{ form_row(child) }}
  30. {% endif %}
  31. {% endfor %}
  32. {% endspaceless %}
  33. {% endblock field__rest %}
  34. {% block field__label %}
  35. {% spaceless %}
  36. <label for="{{ id }}">{% trans label %}</label>
  37. {% endspaceless %}
  38. {% endblock field__label %}
  39. {% block attributes %}
  40. {% spaceless %}
  41. id="{{ id }}" name="{{ name }}"{% if class %} class="{{ class }}"{% endif %}{% if read_only %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}
  42. {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %}
  43. {% endspaceless %}
  44. {% endblock attributes %}
  45. {% block field__widget %}
  46. {% spaceless %}
  47. {% set type = type|default('text') %}
  48. <input type="{{ type }}" {{ block('attributes') }} value="{{ value }}" />
  49. {% endspaceless %}
  50. {% endblock field__widget %}
  51. {% block text__widget %}
  52. {% spaceless %}
  53. {% set type = type|default('text') %}
  54. {{ block('field__widget') }}
  55. {% endspaceless %}
  56. {% endblock text__widget %}
  57. {% block password__widget %}
  58. {% spaceless %}
  59. {% set type = type|default('password') %}
  60. {{ block('field__widget') }}
  61. {% endspaceless %}
  62. {% endblock password__widget %}
  63. {% block hidden__widget %}
  64. {% set type = type|default('hidden') %}
  65. {{ block('field__widget') }}
  66. {% endblock hidden__widget %}
  67. {% block hidden__row %}
  68. {{ form_widget(form) }}
  69. {% endblock hidden__row %}
  70. {% block textarea__widget %}
  71. {% spaceless %}
  72. <textarea {{ block('attributes') }}>{{ value }}</textarea>
  73. {% endspaceless %}
  74. {% endblock textarea__widget %}
  75. {% block options %}
  76. {% spaceless %}
  77. {% for choice, label in options %}
  78. {% if form.choiceGroup(label) %}
  79. <optgroup label="{{ choice }}">
  80. {% for nestedChoice, nestedLabel in label %}
  81. <option value="{{ nestedChoice }}"{% if form.choiceSelected(nestedChoice) %} selected="selected"{% endif %}>{{ nestedLabel }}</option>
  82. {% endfor %}
  83. </optgroup>
  84. {% else %}
  85. <option value="{{ choice }}"{% if form.choiceSelected(choice) %} selected="selected"{% endif %}>{{ label }}</option>
  86. {% endif %}
  87. {% endfor %}
  88. {% endspaceless %}
  89. {% endblock options %}
  90. {% block choice__widget %}
  91. {% spaceless %}
  92. {% if expanded %}
  93. <div {{ block('attributes') }}>
  94. {% for choice, child in form %}
  95. {{ form_widget(child) }}
  96. {{ form_label(child) }}
  97. {% endfor %}
  98. </div>
  99. {% else %}
  100. <select {{ block('attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
  101. {% if not multiple and not required %}
  102. <option value="">{{ empty_value }}</option>
  103. {% endif %}
  104. {% if preferred_choices|length > 0 %}
  105. {% set options = preferred_choices %}
  106. {{ block('options') }}
  107. <option disabled="disabled">{{ separator }}</option>
  108. {% endif %}
  109. {% set options = choices %}
  110. {{ block('options') }}
  111. </select>
  112. {% endif %}
  113. {% endspaceless %}
  114. {% endblock choice__widget %}
  115. {% block checkbox__widget %}
  116. {% spaceless %}
  117. <input type="checkbox" {{ block('attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
  118. {% endspaceless %}
  119. {% endblock checkbox__widget %}
  120. {% block radio__widget %}
  121. {% spaceless %}
  122. <input type="radio" {{ block('attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
  123. {% endspaceless %}
  124. {% endblock radio__widget %}
  125. {% block datetime__widget %}
  126. {% spaceless %}
  127. <div {{ block('attributes') }}>
  128. {{ form_errors(form.date) }}
  129. {{ form_errors(form.time) }}
  130. {{ form_widget(form.date) }}
  131. {{ form_widget(form.time) }}
  132. </div>
  133. {% endspaceless %}
  134. {% endblock datetime__widget %}
  135. {% block date__widget %}
  136. {% spaceless %}
  137. {% if widget == 'text' %}
  138. {{ block('text__widget') }}
  139. {% else %}
  140. <div {{ block('attributes') }}>
  141. {{ date_pattern|replace({
  142. '{{ year }}': form_widget(form.year),
  143. '{{ month }}': form_widget(form.month),
  144. '{{ day }}': form_widget(form.day),
  145. })|raw }}
  146. </div>
  147. {% endif %}
  148. {% endspaceless %}
  149. {% endblock date__widget %}
  150. {% block time__widget %}
  151. {% spaceless %}
  152. <div {{ block('attributes') }}>
  153. {{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }}{% if with_seconds %}:{{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}{% endif %}
  154. </div>
  155. {% endspaceless %}
  156. {% endblock time__widget %}
  157. {% block number__widget %}
  158. {% spaceless %}
  159. {# type="number" doesn't work with floats #}
  160. {% set type = type|default('text') %}
  161. {{ block('field__widget') }}
  162. {% endspaceless %}
  163. {% endblock number__widget %}
  164. {% block integer__widget %}
  165. {% spaceless %}
  166. {% set type = type|default('number') %}
  167. {{ block('field__widget') }}
  168. {% endspaceless %}
  169. {% endblock integer__widget %}
  170. {% block money__widget %}
  171. {% spaceless %}
  172. foo {{ money_pattern|replace({ '{{ widget }}': block('field__widget') })|raw }}
  173. {% endspaceless %}
  174. {% endblock money__widget %}
  175. {% block url__widget %}
  176. {% spaceless %}
  177. {% set type = type|default('url') %}
  178. {{ block('field__widget') }}
  179. {% endspaceless %}
  180. {% endblock url__widget %}
  181. {% block percent__widget %}
  182. {% spaceless %}
  183. {% set type = type|default('text') %}
  184. {{ block('field__widget') }} %
  185. {% endspaceless %}
  186. {% endblock percent__widget %}
  187. {% block file__widget %}
  188. {% spaceless %}
  189. <div {{ block('attributes') }}>
  190. {{ form_widget(form.file) }}
  191. {{ form_widget(form.token) }}
  192. {{ form_widget(form.name) }}
  193. </div>
  194. {% endspaceless %}
  195. {% endblock file__widget %}
  196. {% block collection__widget %}
  197. {% spaceless %}
  198. {{ block('form__widget') }}
  199. {% endspaceless %}
  200. {% endblock collection__widget %}
  201. {% block repeated__row %}
  202. {% spaceless %}
  203. {{ block('field__rows') }}
  204. {% endspaceless %}
  205. {% endblock repeated__row %}
  206. {% block field__row %}
  207. {% spaceless %}
  208. <div>
  209. {{ form_label(form) }}
  210. {{ form_errors(form) }}
  211. {{ form_widget(form) }}
  212. </div>
  213. {% endspaceless %}
  214. {% endblock field__row %}
  215. {% block form__widget %}
  216. {% spaceless %}
  217. <div {{ block('attributes') }}>
  218. {{ block('field__rows') }}
  219. {{ form_rest(form) }}
  220. </div>
  221. {% endspaceless %}
  222. {% endblock form__widget %}