{# Form Theme personnalisé pour les inputs avec badges #} {# Hérite du theme de base Symfony pour pouvoir utiliser parent() #} {% use "form_div_layout.html.twig" %} {# Override du widget pour les inputs texte et password #} {% block form_widget_simple %} {# Ajouter la classe 'input' seulement si elle n'est pas déjà présente #} {% set current_class = attr.class|default('') %} {% if 'input' not in current_class %} {% set attr = attr|merge({'class': (current_class ~ ' input')|trim}) %} {% endif %} {% if badge_show|default(false) %}
{{ parent() }} {% set badge_class = 'settings-badge settings-badge--' ~ badge_variant|default('success') %} {% if badge_url|default(false) %} {% else %} {% endif %} {% if badge_variant|default('success') == 'success' %} {% elseif badge_variant|default('success') == 'error' %} {% endif %} {{ badge_text|default('') }} {% if badge_url|default(false) %} {% else %} {% endif %}
{% else %} {{ parent() }} {# Utilises le use #} {% endif %} {% endblock %} {# Override du label pour utiliser la classe 'label' #} {% block form_label %} {% if label is not same as(false) %} {# Ajouter la classe 'label' seulement si elle n'est pas déjà présente #} {% set current_label_class = label_attr.class|default('') %} {% if 'label' not in current_label_class %} {% set label_attr = label_attr|merge({'class': (current_label_class ~ ' label')|trim}) %} {% endif %} {% endif %} {{ parent() }} {# Utilises le use #} {% endblock %} {# Override du form_row pour gérer la structure complète #} {% block form_row %}
{{ form_label(form) }} {{ form_widget(form) }} {% if help|default('') %} {{ help|raw }} {% endif %} {# Les erreurs sont affichées via les notifications flash, on les masque ici #} {# {{ form_errors(form) }} #}
{% endblock %} {# Masquer complètement les erreurs inline #} {% block form_errors %} {# Les erreurs sont gérées via le système de notifications flash #} {% endblock %}