feat(order): Affiche les formules et ajoute la page de résumé de commande.
```
This commit is contained in:
Serreau Jovann
2025-10-28 09:57:39 +01:00
parent c3ddaf85c6
commit 1e893dbe90
3 changed files with 471 additions and 369 deletions

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Controller\Order;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
@@ -49,6 +50,386 @@ class HomeController extends AbstractController
];
const options = [];
const formulesList = [
[
'id' => 1,
'name' => 'ESY-PERSO',
'audience' => 'Idéal pour les E.I. et les Portfolios',
'price' => '50',
'period' => ' € H.T. / mois',
'commitment' => 'Engagement 24 mois',
'color' => 'indigo',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Site One page (une seule page)',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Choix de la police, style, taille',
'Gestion de l\'interlignage et interlettrage',
'Gestion des balises (Gras, italique, etc.)',
'Choix couleur de police et arrière plan',
'Surlignage, Indice et exposant',
'Insertion ligne de séparation',
'Alignement et retraits',
'Liste à puces et numérotée',
'Intégration d\'un lien',
'Bloc citation',
'Liste des caractères spéciaux',
'Gestion des colonnes de texte',
'Intégration image et fichier',
'Moteur de recherche, remplacer par',
'Nettoyage des textes',
],
'Fonctionnalités' => [
'Gestionnaire de pages',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Sliders',
'Effets Parallaxes',
'Photothèques',
'Vidéothèques',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Lecture automatique du texte',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés',
'Sauvegardes automatisées',
'Cryptage des espaces serveurs',
'Gestion de la sécurisation des serveurs',
'Mises à jour des serveurs',
],
],
],
[
'id' => 2,
'name' => 'ESY-START',
'audience' => 'Idéal pour les Mairies Associations',
'price' => '150',
'period' => ' € H.T. / mois',
'commitment' => 'Engagement 24 mois',
'color' => 'blue',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
'Limité à 10 pages',
],
'Editeur de texte' => [
// Note : Simplifié pour la répétition, car identique à ESY-PERSO
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
'Modules options de base',
'Gestionnaire de pages',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Livres dor',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
// Note : Simplifié pour la répétition, car identique à ESY-PERSO
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
],
],
[
'id' => 3,
'name' => 'ESY-BUSINESS',
'audience' => 'Idéal pour les Pme - Pmi - Artisans',
'price' => '300',
'period' => ' € H.T. / mois',
'commitment' => 'Engagement 12 mois soit 3600 € H.T.',
'color' => 'green',
'highlight' => true, // Pour la mettre en évidence
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Esy-Defender Standard',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
'Modules avec options avancées',
'Gestion de contenu',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Actualités',
'Évènements / Agenda',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Newsletters',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Pages privées',
'Comptes utilisateurs',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Traduction automatisée par IA',
'Reconnaissance du langage',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
'Options' => [
'Graphisme privé',
'Fonctionnalité privée',
],
],
],
[
'id' => 4,
'name' => 'ESY-PREMIUM',
'audience' => 'La formule royale',
'price' => '3139,00',
'period' => ' €',
'commitment' => 'soit 8,60 €/jour pendant 1 an',
'color' => 'purple',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'ReCaptcha',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
// Identique à ESY-BUSINESS plus certaines spécificités comme "Livres dor" et prise en charge du remplissage
'Gestion de contenu',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Actualités',
'Évènements / Agenda',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Newsletters',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Livres dor',
'Pages privées',
'Comptes utilisateurs',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Traduction automatisée par IA',
'Reconnaissance du langage',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
'Options' => [
'Graphisme privé',
'Fonctionnalité privée',
'Remplissage du site inclus (on s\'occupe de tout)',
],
],
],
];
#[Route('/commande/process', name: 'commande_process')]
public function process(Request $request): Response
{
if(!$request->query->has('formule'))
return $this->redirectToRoute('commande');
$formule = $request->query->get('formule');
if(!isset(self::formulesList[$formule]))
return $this->redirectToRoute('commande');
return $this->render('order/process.twig', [
'formules' => self::formules,
'currentFormule' => self::formulesList[$formule],
]);
}
#[Route('/commande', name: 'commande')]
public function index(): Response
@@ -56,371 +437,7 @@ class HomeController extends AbstractController
return $this->render('order/display.twig', [
'formules' => self::formules,
'listFormules' => [
[
'id' => 1,
'name' => 'ESY-PERSO',
'audience' => 'Idéal pour les E.I. et les Portfolios',
'price' => '50',
'period' => '/ mois',
'commitment' => 'Engagement 24 mois',
'color' => 'indigo',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Site One page (une seule page)',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Choix de la police, style, taille',
'Gestion de l\'interlignage et interlettrage',
'Gestion des balises (Gras, italique, etc.)',
'Choix couleur de police et arrière plan',
'Surlignage, Indice et exposant',
'Insertion ligne de séparation',
'Alignement et retraits',
'Liste à puces et numérotée',
'Intégration d\'un lien',
'Bloc citation',
'Liste des caractères spéciaux',
'Gestion des colonnes de texte',
'Intégration image et fichier',
'Moteur de recherche, remplacer par',
'Nettoyage des textes',
],
'Fonctionnalités' => [
'Gestionnaire de pages',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Sliders',
'Effets Parallaxes',
'Photothèques',
'Vidéothèques',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Lecture automatique du texte',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés',
'Sauvegardes automatisées',
'Cryptage des espaces serveurs',
'Gestion de la sécurisation des serveurs',
'Mises à jour des serveurs',
],
],
],
[
'id' => 2,
'name' => 'ESY-START',
'audience' => 'Idéal pour les Mairies Associations',
'price' => '150',
'period' => ' € / mois',
'commitment' => 'Engagement 24 mois',
'color' => 'blue',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
'Limité à 10 pages',
],
'Editeur de texte' => [
// Note : Simplifié pour la répétition, car identique à ESY-PERSO
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
'Modules options de base',
'Gestionnaire de pages',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Livres dor',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
// Note : Simplifié pour la répétition, car identique à ESY-PERSO
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
],
],
[
'id' => 3,
'name' => 'ESY-BUSINESS',
'audience' => 'Idéal pour les Pme - Pmi - Artisans',
'price' => '300',
'period' => ' € H.T. / mois',
'commitment' => 'Engagement 12 mois soit 3600 € H.T.',
'color' => 'green',
'highlight' => true, // Pour la mettre en évidence
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'Esy-Defender Standard',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
'Modules avec options avancées',
'Gestion de contenu',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Actualités',
'Évènements / Agenda',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Newsletters',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Pages privées',
'Comptes utilisateurs',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Traduction automatisée par IA',
'Reconnaissance du langage',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
'Options' => [
'Graphisme privé',
'Fonctionnalité privée',
],
],
],
[
'id' => 4,
'name' => 'ESY-PREMIUM',
'audience' => 'La formule royale',
'price' => '3139,00',
'period' => ' €',
'commitment' => 'soit 8,60 €/jour pendant 1 an',
'color' => 'purple',
'highlight' => false,
'features' => [
'Caractéristiques' => [
'Site Internet sécurisé et crypté',
'Mises à jour automatiques',
'Sauvegardes automatisées',
'ReCaptcha',
'Licence HTTPS',
'Respect du : RGPD',
'Assistance technique incluse',
'Surveillance des erreurs en temps réel',
'Site Internet personnalisable',
'Gestion du nom de domaine (optionnel)',
'Sites Internet multilingues + 100 langages',
'Site Map automatisé',
'Optimisation référencement Naturel 100%',
'Hébergement sur serveurs sécurisés',
'Données cryptées',
'Sauvegardes cryptées',
],
'Editeur de texte' => [
'Caractéristiques complètes d\'édition de texte',
],
'Fonctionnalités' => [
// Identique à ESY-BUSINESS plus certaines spécificités comme "Livres dor" et prise en charge du remplissage
'Gestion de contenu',
'Intégration d\'images et Vidéos dimages',
'Recadrage des images CROP',
'Conservation des images dorigine',
'Importation de vidéos',
'Banque dIcônes',
'Favicon',
'Barre de navigation administrable',
'Pied de page administrable',
'Duplication de zones et modules',
'Fond d\'écran commun ou individualisé',
'Sliders',
'Effets Parallaxes',
'Actualités',
'Évènements / Agenda',
'Mises en avant',
'Photothèques',
'Vidéothèques',
'Lecteur de PDF',
'Page de couverture',
'Création de Formulaires Personnalisés',
'Formulaires de contact',
'Réseaux sociaux',
'Newsletters',
'Fil dAriane',
'Boutons (Création de boutons)',
'Notifications',
'Titres (création de titres personnalisés) H1',
'Plan du site',
'Cartes interactives payantes Google Map',
'Cartes interactives gratuites Open Street',
'Livres dor',
'Pages privées',
'Comptes utilisateurs',
'Stockage de données : cloud Site conseil',
'Mentions légales Cookies',
'Données personnelles',
'Conditions générales dutilisation',
],
'Outils - Utilitaires' => [
'Esy-analytics',
'Traitement erreur 404',
'Search Console',
'Analyse de la rapidité du Site Internet',
'Google Page Speed Insights',
'Reconnaissance vocale',
'Lecture automatique du texte',
'Traduction automatisée par IA',
'Reconnaissance du langage',
'Intégration des Google Fonts',
'Intégration des Adobe Fonts',
],
'Hébergement - serveur' => [
'Infrastructure Serveurs dédiés, Sauvegardes automatisées, Cryptage, Sécurisation, Mises à jour',
],
'Options' => [
'Graphisme privé',
'Fonctionnalité privée',
'Remplissage du site inclus (on s\'occupe de tout)',
],
],
],
]
'listFormules' => self::formulesList,
]);
}

View File

@@ -9,8 +9,8 @@
</div>
<div class="grid grid-cols-1 gap-8 lg:grid-cols-2 xl:grid-cols-4">
{% for formule in listFormules %}
<div id="formule-{{ formule.id }}"
{% for key,formule in listFormules %}
<div id="formule-{{ key }}"
class="card flex flex-col p-6 transition duration-300 transform hover:scale-[1.02]
{% if formule.highlight is defined and formule.highlight %}
border-4 border-{{ formule.color }}-600 shadow-xl
@@ -44,7 +44,7 @@
</div>
<button
onclick="selectFormule({{ formule.id }})"
onclick="selectFormule({{ key }})"
class="mt-auto w-full py-3 px-6 rounded-lg text-white font-semibold shadow-md
bg-{{ formule.color }}-600 hover:bg-{{ formule.color }}-700 focus:outline-none focus:ring-4 focus:ring-{{ formule.color }}-300 transition duration-150">
Commander
@@ -70,7 +70,7 @@
}
// TODO: Mettre en place ici la logique de redirection ou d'envoi de l'ID au panier/processus de commande
// Exemple: window.location.href = "{{ path('commande') }}?formule=" + formuleId;
Exemple: window.location.href = "{{ path('commande_process') }}?formule=" + formuleId;
}
</script>
{% endblock %}

View File

@@ -0,0 +1,85 @@
{% extends 'order/base.twig' %}
{% block content %}
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<h1 class="text-4xl font-extrabold text-gray-900 text-center mb-8">
Récapitulatif de votre commande
</h1>
{#
⚠️ DÉFINITION FICTIVE DE currentFormule:
Supprimez ce bloc {% set %} en production.
La variable doit être passée par votre contrôleur.
#}
<div class="mb-6">
<a href="{{ path('commande') }}" class="inline-flex items-center text-gray-600 hover:text-indigo-600 transition duration-150">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M10 19l-7-7m0 0l7-7m-7 7h18" />
</svg>
<span class="font-medium">Retour à la sélection des formules</span>
</a>
</div>
{# Vérification pour s'assurer qu'une formule est bien présente #}
{% if currentFormule is defined and currentFormule is not empty %}
<div class="card flex flex-col p-8 md:p-10 border-4 border-{{ currentFormule.color }}-600 shadow-2xl bg-white rounded-xl">
<div class="mb-8 border-b pb-4 border-gray-200">
<h2 class="text-4xl font-extrabold text-gray-900 mb-2">{{ currentFormule.name }}</h2>
<p class="text-lg font-semibold text-{{ currentFormule.color }}-600">{{ currentFormule.audience }}</p>
</div>
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-end mb-8">
<div>
<p class="text-sm font-medium text-gray-500 mb-1">Prix de la formule</p>
<p class="text-6xl font-extrabold text-gray-900">
<span class="text-7xl font-extrabold text-{{ currentFormule.color }}-600">{{ currentFormule.price }}</span>
<span class="text-2xl font-medium text-gray-500">{{ currentFormule.period }}</span>
</p>
</div>
<p class="text-base text-gray-700 mt-4 sm:mt-0 sm:text-right font-semibold">
{{ currentFormule.commitment }}
</p>
</div>
<div class="space-y-6">
<h3 class="text-xl font-bold text-gray-900 border-b pb-2">Fonctionnalités Incluses :</h3>
{% for category, items in currentFormule.features %}
<div class="mb-4">
<h4 class="text-lg font-bold text-gray-800 bg-gray-50 p-2 rounded-md border-l-4 border-{{ currentFormule.color }}-500">
{{ category }}
</h4>
<ul class="text-base space-y-2 text-gray-700 mt-3 pl-2">
{% for item in items %}
<li class="flex items-start">
<span class="text-{{ currentFormule.color }}-500 mr-2 mt-1 text-lg">★</span>
<span class="flex-1">{{ item }}</span>
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>
<div class="mt-10">
<button
class="w-full py-4 px-6 rounded-lg text-white font-bold text-xl shadow-lg
bg-{{ currentFormule.color }}-600 hover:bg-{{ currentFormule.color }}-700 focus:outline-none focus:ring-4 focus:ring-{{ currentFormule.color }}-300 transition duration-150">
Passer à l'étape suivante (Informations Client)
</button>
</div>
</div>
{% else %}
<p class="text-center text-xl text-red-600 p-8 border border-red-300 bg-red-50 rounded-lg">
Aucune formule n'a été sélectionnée ou n'est disponible.
Veuillez retourner à la page de sélection.
</p>
{# Vous pourriez ajouter un lien de retour ici si nécessaire #}
{% endif %}
</div>
{% endblock %}