templates/base.html.twig line 1

Open in your IDE?
  1. <!doctype html>
  2.     <html lang="fr">
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6.         <meta name="description" content="Site de vente en ligne en Symfony 5">
  7.         <meta name="author" content="Cassano Gabriele">
  8.         <title>GC Belgian Shop</title>
  9.         <link href="{{ asset('assets/css/bootstrap.min.css') }}" rel="stylesheet">
  10.         <link href="{{ asset('assets/css/boutiquebelge.css') }}" rel="stylesheet">
  11.         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
  12.         <link href="{{ asset('assets/css/carousel.css') }}" rel="stylesheet"> 
  13.         <style>
  14.         .sf-toolbar {
  15.             display: none !important;
  16.         }
  17.         </style>
  18.     </head>
  19.     
  20.     <body>
  21.         <header>
  22.             <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-info">
  23.                 <a class="navbar-brand" href="{{ path('home') }}">GC Belgian Shop</a>
  24.                 
  25.                 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
  26.                     <span class="navbar-toggler-icon"></span>
  27.                 </button>
  28.                 <div class="collapse navbar-collapse" id="navbarCollapse">
  29.                     <ul class="navbar-nav mr-auto">
  30.                         <li class="nav-item active">
  31.                             <a class="nav-link" href="{{path('about')}}">Qui sommes-nous ?</a>
  32.                         </li>
  33.                         <li class="nav-item active">
  34.                             <a class="nav-link" href="{{path('products')}}">Nos produits</a>
  35.                         </li>  
  36.                     </ul>  
  37.                     <div class="navbar-item-custom">
  38.                         {% if app.user %}
  39.                             <a href="{{ path('account')}}">Mon compte <small>({{ app.user.firstname }})</small></a> | <a href="{{ path('app_logout')}}"> Déconnecter</a> 
  40.                         {% else %}
  41.                             <a href="{{ path('app_login')}}">Connexion </a> | <a href="{{ path('register')}}"> Inscription</a> 
  42.                         {% endif %}
  43.                     </div>   
  44.                     <a href="{{ path('cart')}}"><i class="fas fa-shopping-cart text-light ml-2"></i></a> 
  45.                     <span class="text-white ml-2">({{ cartItemCount() }})</span> 
  46.                     {% if app.user %}
  47.                         <a href="{{ path('wishlists')}}"><i class="fas fa-heart text-light ml-2"></i></a>  
  48.                         <span class="text-white ml-2" id="wishlist-count">({{ wishlistItemCount() }})</span>   
  49.                     {% endif %}
  50.                   </div>                 
  51.                 </div>
  52.             </nav>
  53.         </header>
  54.         <main role="main">
  55.             {% if block('carousel') is defined %}
  56.             <div id="myCarousel" class="carousel slide custom-carousel" data-ride="carousel">
  57.                 <ol class="carousel-indicators">
  58.                     <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
  59.                     <li data-target="#myCarousel" data-slide-to="1"></li>
  60.                     <li data-target="#myCarousel" data-slide-to="2"></li>
  61.                 </ol>
  62.                 
  63.                 <div class="carousel-inner">
  64.                     <div class="carousel-item active">
  65.                         <img src="{{ asset('assets/img/slider/slider1.jpg') }}" alt="Image 1 du slider" />
  66.                         <div class="container">
  67.                             <div class="carousel-caption text-left">
  68.                                 <h1>Achetez des produits belges</h1>
  69.                                 <p>Un large choix de bières belges.</p>
  70.                                 <p><a class="btn btn-lg btn-primary" href="{{ path('register')}}" role="button">S'inscrire aujourd'hui</a></p>
  71.                             </div>
  72.                         </div>
  73.                     </div>
  74.                     <div class="carousel-item">
  75.                        <img src="{{ asset('assets/img/slider/slider2.jpg') }}" alt="Image 2 du slider" />
  76.                         <div class="container">
  77.                             <div class="carousel-caption">
  78.                                 <h1>Dégustez le café belge</h1>
  79.                                 <p>Découvrez les cafés fabriqués dans notre pays.</p>
  80.                                 <p><a class="btn btn-lg btn-primary" href="#" role="button">Lire plus</a></p>
  81.                             </div>
  82.                         </div>
  83.                     </div>
  84.                     <div class="carousel-item">
  85.                         <img src="{{ asset('assets/img/slider/slider3.jpg') }}" alt="Image 3 du slider" />
  86.                         <div class="container">
  87.                             <div class="carousel-caption text-right">
  88.                                 <h1>Le chocolat belge</h1>
  89.                                 <p>Comme vous le savez, les belges sont spécialistes de la bière, le chocolat et les frites.</p>
  90.                                 <p><a class="btn btn-lg btn-primary" href="#" role="button">Voir la gallerie</a></p>
  91.                             </div>
  92.                         </div>
  93.                     </div>
  94.                 </div>
  95.                 <a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
  96.                     <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  97.                     <span class="sr-only">Previous</span>
  98.                 </a>
  99.                 <a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
  100.                     <span class="carousel-control-next-icon" aria-hidden="true"></span>
  101.                     <span class="sr-only">Next</span>
  102.                 </a>
  103.             </div>
  104.             {% endif %}
  105.        
  106.             <div class="container marketing  {% if block('carousel') is not defined %} mt-5 {% endif %}"> 
  107.                 {% block content %}
  108.                 {% endblock %}
  109.             </div>
  110.             <footer class="footer-custom bg-info">                
  111.                 <p class="h5 mb-5 mt-3">
  112.                     &copy; 2023 - <a href="https://gabriel-cassano.be" style="color:white;">Gabriele Cassano</a> - Tous droits réservés
  113.                     <br><br>
  114.                     <small class="h5">
  115.                         <a href="{{ path('cg')}}" class="text-white">Conditions générales</a> 
  116.                         &middot; <a href="{{ path('cgv')}}" class="text-white">Conditions générales de ventes</a>
  117.                         &middot; <a href="{{ path('ml')}}" class="text-white">Mentions légales</a>
  118.                         &middot; <a href="{{ path('confidentialite')}}" class="text-white">Politique de confidentialité</a>
  119.                     </small>
  120.                 </p>
  121.             </footer>
  122.         </main>
  123.         <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>     
  124.         <script src="{{ asset('assets/js/bootstrap.bundle.js') }}"></script>              
  125.         <script src="https://js.stripe.com/v3/"></script>
  126.        <script>
  127.         var stripe = Stripe('pk_test_51MmMexI1PfFa9viOYqTeiLsEwHggcXbngjC2pMdIQeGIoEpFKXLrQJdfJQKOOUloRbbj1dJZyJ9jKXymdpCKvWwW00kx87PAdl');
  128.                 
  129.         var checkoutButton = document.getElementById('checkout-button');       
  130.         checkoutButton.addEventListener('click', function() {                 
  131.             {% if reference is defined %}
  132.             // Créer une session de paiement avec Stripe     
  133.             fetch('create-checkout-session/{{ reference }}') // remplacez cette URL par l'URL de votre route Symfony qui crée une session de paiement avec Stripe
  134.                 .then(function(response) {
  135.                     return response.json();
  136.                 })
  137.                 .then(function(session) {
  138.                     if(session.error == "order"){
  139.                         // redirection (la commande n'a pas été créée correctement)
  140.                         window.location.replace('{{ path('order') }}')
  141.                     } else{
  142.                         // Rediriger l'utilisateur vers la page de paiement de Stripe
  143.                         return stripe.redirectToCheckout({ sessionId: session.id });
  144.                     }                    
  145.                 })
  146.                 .then(function(result) {
  147.                     // Afficher un message d'erreur si la redirection échoue
  148.                     if (result.error) {
  149.                         alert(result.error.message);
  150.                     }
  151.                 });
  152.             {% else %}
  153.             alert('La référence n\'est pas définie.');
  154.             {% endif %}
  155.         });
  156.         </script>
  157.       
  158.     </body>
  159. </html>