templates/shop/new.html.twig line 1
{% extends 'base2.html.twig' %}{% block title %}New Shop{% endblock %}{% block body %}{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}{# Début de mon formulaire #}<divclass="dark:bg-background lg:ml-42 ml-0 mt-0 min-h-[calc(100vh-80px)] p-7"><section class="dark:bg-background"><div class="container mx-auto">{# templates/author/validation.html.twig #}{# DEBUT partie création du compte utilisateur #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">Création du compte utilisateur</h4><div class="grid lg:grid-cols-2 grid-cols-1 gap-7">{# DEBUT champ Prénom #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.firstName) }}</div>{{ form_widget(form.users.firstName) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.firstName) }}</div></div>{# DEBUT champ Nom #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.lastName) }}</div>{{ form_widget(form.users.lastName) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.lastName) }}</div></div>{# DEBUT champ email #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.email) }}</div>{{ form_widget(form.users.email) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.email) }}</div></div>{# DEBUT champ téléphone #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.phoneNumber) }}</div>{{ form_widget(form.users.phoneNumber) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.phoneNumber) }}</div></div>{# DEBUT champ password #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.password) }}</div>{{ form_widget(form.users.password) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.password) }}</div></div>{# DEBUT champ password_confirmed #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.users.password_confirmed) }}</div>{{ form_widget(form.users.password_confirmed) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.users.password_confirmed) }}</div></div></div></div>{# FIN partie création du compte utilisateur #}{# DEBUT partie informations générales #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">Informations de base</h4><div class="grid lg:grid-cols-2 grid-cols-1 gap-7">{# DEBUT champ myBusiness #}<div class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.myBusiness) }}</div>{{ form_widget(form.myBusiness, {'id': 'myBusinessField'}) }}<p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>Cet information permet de renseigner automatiquement certains champs et affiche vos horaires d'ouverture sur votre fiche. </br>Pour récupérer votre ID Google My Business : <a href='https://www.google.fr/' target="_blank" class='text-sky-500'> cliquez ici ← </a></p><div class="text-red-500 text-xs italic">{{ form_errors(form.myBusiness) }}</div></div>{# DEBUT champ nom #}<div id="shopName" class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.name) }}</div>{{ form_widget(form.name) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.name) }}</div></div>{# DEBUT champ sous-titre #}<div class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.subtitle) }}</div>{{ form_widget(form.subtitle) }}<p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>Le sous-titre doit comporter entre 10 et 90 caractères.<span id="subtitle-character-color"><span id="subtitle-character-count">0</span> caractères</span></p><div class="text-red-500 text-xs italic">{{ form_errors(form.subtitle) }}</div></div>{# DEBUT champ email #}<div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.email) }}</div>{{ form_widget(form.email) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.email) }}</div></div>{# DEBUT champ téléphone #}<div id="shopPhone" class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.phoneNumber) }}</div>{{ form_widget(form.phoneNumber) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.phoneNumber) }}</div></div></div></div>{# FIN partie informations générales #}{# DEBUT partie localisation du commerce #}<div id="shopLocation" class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">Localiser votre commerce</h4><div class="grid lg:grid-cols-2 grid-cols-1 gap-7"><div class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.adressStreet) }}</div>{{ form_widget(form.adressStreet) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.adressStreet) }}</div></div><div class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.adressStreet2) }}</div>{{ form_widget(form.adressStreet2) }}<div class="text-red-500 text-xs italic"></div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.addressPostalCode) }}</div>{{ form_widget(form.addressPostalCode) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.addressPostalCode) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.addressCity) }}</div>{{ form_widget(form.addressCity) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.addressCity) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.latitude) }}</div>{{ form_widget(form.latitude) }}<p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>Pour obtenir les coordonnées GPS de votre adresse : <a href='https://www.coordonnees-gps.fr/' target="_blank" class='text-sky-500'> cliquez ici ← </a></p><div class="text-red-500 text-xs italic">{{ form_errors(form.latitude) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.longitude) }}</div>{{ form_widget(form.longitude) }}<p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>Pour obtenir les coordonnées GPS de votre adresse : <a href='https://www.coordonnees-gps.fr/' target="_blank" class='text-sky-500'> cliquez ici ← </a></p><div class="text-red-500 text-xs italic">{{ form_errors(form.longitude) }}</div></div></div></div>{# FIN partie localisation du commerce #}{# DEBUT partie à propos du commerce #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">Les détails de votre commerce</h4><div class="grid lg:grid-cols-2 grid-cols-1 gap-7"><div class="col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.about) }}</div>{{ form_widget(form.about) }}<p class='cursor-pointer text-sm italic text-gray-700 dark:text-gray-400 mb-4'>Votre texte de description peut comporter 1000 caractères maximum.<span id="about-character-color"><span id="character-count">0</span> caractères</span></p><div class="text-red-500 text-xs italic">{{ form_errors(form.about) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.facebook) }}</div>{{ form_widget(form.facebook) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.facebook) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.twitter) }}</div>{{ form_widget(form.twitter) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.twitter) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.linkedin) }}</div>{{ form_widget(form.linkedin) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.linkedin) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.instagram) }}</div>{{ form_widget(form.instagram) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.instagram) }}</div></div><div id="shopWebsite" class="lg:col-span-1 col-span-2">{{ form_row(form.website) }}</div></div></div>{# FIN partie à propos du commerce #}{# DEBUT partie photos du commerce #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold mb-7">Les photos de votre commerce</h4><div class="grid lg:grid-cols-2 grid-cols-1 gap-7"><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture1) }}</div>{{ form_widget(form.picture1) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture1) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture2) }}</div>{{ form_widget(form.picture2) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture2) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture3) }}</div>{{ form_widget(form.picture3) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture3) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture4) }}</div>{{ form_widget(form.picture4) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture4) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture5) }}</div>{{ form_widget(form.picture5) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture5) }}</div></div><div class="lg:col-span-1 col-span-2"><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.picture6) }}</div>{{ form_widget(form.picture6) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.picture6) }}</div></div></div></div>{# FIN partie photos du commerce #}{# DEBUT partie categories #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><div class="flex justify-between items-center mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">Catégories du commerce</h4></div><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.categories) }}</div>{{ form_widget(form.categories) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.categories) }}</div></div>{# FIN partie categories #}{# DEBUT partie tags #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><div class="flex justify-between items-center mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">Petits plus du commerce</h4></div><div class='text-base text-gray-700 dark:text-gray-200 block mb-3'>{{ form_label(form.tags) }}</div>{{ form_widget(form.tags) }}<div class="text-red-500 text-xs italic">{{ form_errors(form.tags) }}</div></div>{# FIN partie tags #}{# DEBUT partie informations cachées #}<div class="hidden"><div class="flex justify-between items-center mb-7"><h4 class="text-gray-700 dark:text-gray-300 text-xl font-semibold">Hidden info</h4></div><div class="lg:col-span-1 col-span-2">{{ form_row(form.available) }}</div><div class="lg:col-span-1 col-span-2">{{ form_row(form.verified) }}</div><div class="lg:col-span-1 col-span-2">{{ form_row(form.createdAt) }}</div><div class="lg:col-span-1 col-span-2">{{ form_row(form.users.roles) }}</div><div class="lg:col-span-1 col-span-2">{{ form_row(form.users.picture) }}</div><div class="lg:col-span-1 col-span-2">{{ form_row(form.users.about) }}</div></div>{# FIN partie informations cachées #}{# DEBUT mention légale #}<div class="bg-white shadow-front-2 dark:bg-foreground rounded-lg p-6 mb-7"><div class="flex items-center mb-7">{{ form_widget(form.legalCheck) }}<label for="legalCheck" class="text-gray-700 dark:text-gray-300 text-base font-semibold ml-3">J'ai pris connaissance des<a class="underline text-blue-500" href="#">conditions générales d'utilisation</a>du site et des<a class="underline text-blue-500" href="#">mentions légales</a><div class="text-red-500 text-xs italic">{{ form_errors(form.legalCheck) }}</div></label></div></div>{# FIN mention légale #}{# DEBUT submit #}<div class="flex flex-wrap sm:justify-start justify-center">{{ form_row(form.submit) }}</div>{# FIN submit #}</div></section></div>{# FIN de mon formulaire #}{{ form_end(form) }}<script>// Sélectionner le champ "myBusiness"var myBusinessField = document.getElementById('myBusinessField');// Sélectionner les champs "name" et "shopLocation"var nameField = document.getElementById('shopName');var shopLocationField = document.getElementById('shopLocation');var shopPhoneField = document.getElementById('shopPhone');var shopWebsiteField = document.getElementById('shopWebsite');// Fonction pour masquer ou afficher les champs "name" et "shopLocation" en fonction de la valeur de "myBusiness"function toggleFields() {if (myBusinessField.value !== '') {//nameField.classList.add('hidden'); // Masquer le champ "name"shopLocationField.classList.add('hidden'); // Masquer le champ "shopLocation"shopPhoneField.classList.add('hidden'); // Masquer le champ "shopLocation"shopWebsiteField.classList.add('hidden'); // Masquer le champ "shopLocation"} else {//nameField.classList.remove('hidden'); // Afficher le champ "name"shopPhoneField.classList.remove('hidden'); // Afficher le champ "shopLocation"shopLocationField.classList.remove('hidden'); // Masquer le champ "shopLocation"shopWebsiteField.classList.remove('hidden'); // Masquer le champ "shopLocation"}}// Appeler la fonction une première fois au chargement de la pagetoggleFields();// Ajouter un écouteur d'événement pour détecter les changements de valeur dans "myBusiness"myBusinessField.addEventListener('input', toggleFields);</script>{% endblock %}