{% use 'form_div_layout.html.twig' %} {# ---------- FORM START / END ---------- #} {% block form_start -%} {{ parent() }} {%- endblock %} {% block form_end -%} {{ parent() }} {%- endblock %} {# ---------- ROW ---------- #} {# ---------- ROW : Version Esport / Neubrutaliste ---------- #} {% block form_row %}
{# Label avec style forcé #} {{ form_label(form, null, { 'label_attr': {'class': 'font-black uppercase italic text-xs tracking-widest text-gray-900 mb-2'} }) }} {# Widget (Input, Select, etc.) #}
{{ form_widget(form) }}
{# Erreurs de validation #} {% if not form.vars.valid %}
{{ form_errors(form) }}
{% endif %}
{% endblock %} {# ---------- LABEL ---------- #} {% block form_label %} {% if label is not same as(false) %} {% endif %} {% endblock %} {# ---------- ERRORS ---------- #} {% block form_errors %} {% if errors|length > 0 %} {% endif %} {% endblock %} {# ---------- WIDGET DISPATCH ---------- #} {% block form_widget %} {% if compound %} {{ block('form_widget_compound') }} {% else %} {{ block('form_widget_simple') }} {% endif %} {% endblock %} {# --- STYLE COMMUN POUR WIDGETS (Light Mode) --- #} {# ---------- SIMPLE INPUTS (text, email, number...) ---------- #} {% block form_widget_simple %} {% set type = type|default('text') %} {% endblock %} {# ---------- TEXTAREA ---------- #} {% block textarea_widget %} {% endblock %} {# ---------- CHECKBOX : Alignée en ligne ---------- #} {% block checkbox_widget %} {% endblock %} {# ---------- RADIO ---------- #} {% block radio_widget %} {% endblock %} {# ---------- FILE ---------- #} {% block file_widget %} {% endblock %} {% block choice_widget_expanded %}
{% for child in form %}
{{ form_widget(child) }}
{% endfor %}
{% endblock %}