{% extends 'base.html.twig' %} {% block title %}Créer ma boutique — YimaShop{% endblock %} {# Site grand public : pas de modals d'application. #} {% block app_version_modal %}{% endblock %} {% block pwa_modals %}{% endblock %} {% block body %} {% set input_cls = 'w-full rounded-lg border border-gray-300 px-3 py-2.5 text-sm text-gray-900 focus:border-teal-500 focus:ring-1 focus:ring-teal-500 dark:border-gray-600 dark:bg-gray-800 dark:text-white' %} {% set label_cls = 'mb-1 block text-sm font-medium text-gray-700 dark:text-gray-200' %} {# Étape à afficher au retour serveur (erreurs de validation). #} {% set e1 = form.firstName.vars.errors|length + form.lastName.vars.errors|length + form.email.vars.errors|length + form.phone.vars.errors|length + form.plainPassword.first.vars.errors|length + form.plainPassword.second.vars.errors|length + form.plainPassword.vars.errors|length %} {% set e2 = form.companyName.vars.errors|length + form.city.vars.errors|length + form.ninea.vars.errors|length + form.rccm.vars.errors|length + form.logo.vars.errors|length %} {% set e3 = form.offer.vars.errors|length + form.referralCode.vars.errors|length %} {% set initialStep = e1 > 0 ? 0 : (e2 > 0 ? 1 : (e3 > 0 ? 2 : 0)) %} {% set steps = ['Informations', 'Boutique', 'Offre', 'Récapitulatif'] %}
{# ---- Colonne marketing ---- #} {# ---- Colonne formulaire ---- #}
YimaShop

Créer ma boutique

Votre accès sera activé après validation de votre inscription.

{% include 'flowbite_components/layout/_notifications_zone.html.twig' %}
{# ---- Indicateur d'étapes ---- #}
    {% for label in steps %}
  1. {{ loop.index }}
  2. {% endfor %}
{{ form_start(form, {'attr': {'id': 'register-form', 'novalidate': 'novalidate', 'enctype': 'multipart/form-data', 'data-initial-step': initialStep}}) }} {# ---- Étape 1 : informations ---- #}
{# attr fusionné : form_widget remplace la variable `attr` du type, ce qui perdrait maxlength/placeholder. #}
{{ form_label(form.firstName, null, {label_attr: {class: label_cls}}) }}{{ form_widget(form.firstName, {attr: form.firstName.vars.attr|merge({class: input_cls})}) }}{{ form_errors(form.firstName) }}
{{ form_label(form.lastName, null, {label_attr: {class: label_cls}}) }}{{ form_widget(form.lastName, {attr: form.lastName.vars.attr|merge({class: input_cls})}) }}{{ form_errors(form.lastName) }}
{{ form_label(form.email, null, {label_attr: {class: label_cls}}) }}{{ form_widget(form.email, {attr: form.email.vars.attr|merge({class: input_cls})}) }}{{ form_errors(form.email) }}
{{ form_label(form.phone, null, {label_attr: {class: label_cls}}) }}{{ form_widget(form.phone, {attr: form.phone.vars.attr|merge({class: input_cls})}) }}{{ form_errors(form.phone) }}
{{ form_label(form.plainPassword.first, null, {label_attr: {class: label_cls}}) }}
{{ form_widget(form.plainPassword.first, {attr: {class: input_cls ~ ' pr-11', 'data-password-input': ''}}) }}
{{ form_errors(form.plainPassword.first) }}
{{ form_label(form.plainPassword.second, null, {label_attr: {class: label_cls}}) }}
{{ form_widget(form.plainPassword.second, {attr: {class: input_cls ~ ' pr-11', 'data-password-input': ''}}) }}
{{ form_errors(form.plainPassword.second) }}
{# ---- Étape 2 : boutique ---- #} {# ---- Étape 3 : offre & parrainage ---- #} {# ---- Étape 4 : récapitulatif ---- #} {# ---- Navigation ---- #}
{{ form_end(form) }}
{# ---- Overlay (lightbox) du logo ---- #} {% endblock %}