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.         <title>{% block title %}{% endblock %}</title>
  6.         <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
  7.         <meta charset="utf-8">
  8.         <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  10.         <meta name="format-detection" content="telephone=no">
  11.         <meta name="mobile-web-app-capable" content="yes">
  12.         <meta name="author" content="">
  13.         <meta name="keywords" content="">
  14.         <meta name="description" content="">
  15.         <link rel="stylesheet" href="{{asset('css/swiper.css')}}" />
  16.         <link rel="stylesheet" href="{{asset('css/bootstrap.css')}}" />
  17.         <link rel="stylesheet" type="text/css" href="{{asset('css/vendor.css')}}">
  18.         <link rel="stylesheet" type="text/css" href="{{asset('css/style.css')}}"><!--A voir si ça ne casse pas de mettre le fichier style avec les autres plustot qu'a la racine du projet-->
  19.         <link rel="preconnect" href="https://fonts.googleapis.com">
  20.         <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  21.         <link href="https://fonts.googleapis.com/css2?family=Chilanka&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
  22.         <script src="https://accounts.google.com/gsi/client" async></script>
  23.       </head>
  24.         {% block stylesheets %}
  25.         {% endblock %}
  26.         {% block javascripts %}
  27.             
  28.         {% endblock %}
  29.     </head>
  30.     <body>
  31.         <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  32.             <defs>
  33.               <symbol xmlns="http://www.w3.org/2000/svg" id="link" viewBox="0 0 24 24">
  34.                 <path fill="currentColor"
  35.                   d="M12 19a1 1 0 1 0-1-1a1 1 0 0 0 1 1Zm5 0a1 1 0 1 0-1-1a1 1 0 0 0 1 1Zm0-4a1 1 0 1 0-1-1a1 1 0 0 0 1 1Zm-5 0a1 1 0 1 0-1-1a1 1 0 0 0 1 1Zm7-12h-1V2a1 1 0 0 0-2 0v1H8V2a1 1 0 0 0-2 0v1H5a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Zm1 17a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-9h16Zm0-11H4V6a1 1 0 0 1 1-1h1v1a1 1 0 0 0 2 0V5h8v1a1 1 0 0 0 2 0V5h1a1 1 0 0 1 1 1ZM7 15a1 1 0 1 0-1-1a1 1 0 0 0 1 1Zm0 4a1 1 0 1 0-1-1a1 1 0 0 0 1 1Z" />
  36.               </symbol>
  37.               <symbol xmlns="http://www.w3.org/2000/svg" id="arrow-right" viewBox="0 0 24 24">
  38.                 <path fill="currentColor"
  39.                   d="M17.92 11.62a1 1 0 0 0-.21-.33l-5-5a1 1 0 0 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1 1 0 0 0 0 1.42a1 1 0 0 0 1.42 0l5-5a1 1 0 0 0 .21-.33a1 1 0 0 0 0-.76Z" />
  40.               </symbol>
  41.               <symbol xmlns="http://www.w3.org/2000/svg" id="category" viewBox="0 0 24 24">
  42.                 <path fill="currentColor"
  43.                   d="M19 5.5h-6.28l-.32-1a3 3 0 0 0-2.84-2H5a3 3 0 0 0-3 3v13a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-10a3 3 0 0 0-3-3Zm1 13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h4.56a1 1 0 0 1 .95.68l.54 1.64a1 1 0 0 0 .95.68h7a1 1 0 0 1 1 1Z" />
  44.               </symbol>
  45.               <symbol xmlns="http://www.w3.org/2000/svg" id="calendar" viewBox="0 0 24 24">
  46.                 <path fill="currentColor"
  47.                   d="M19 4h-2V3a1 1 0 0 0-2 0v1H9V3a1 1 0 0 0-2 0v1H5a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3Zm1 15a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-7h16Zm0-9H4V7a1 1 0 0 1 1-1h2v1a1 1 0 0 0 2 0V6h6v1a1 1 0 0 0 2 0V6h2a1 1 0 0 1 1 1Z" />
  48.               </symbol>
  49.               <symbol xmlns="http://www.w3.org/2000/svg" id="heart" viewBox="0 0 24 24">
  50.                 <path fill="currentColor"
  51.                   d="M20.16 4.61A6.27 6.27 0 0 0 12 4a6.27 6.27 0 0 0-8.16 9.48l7.45 7.45a1 1 0 0 0 1.42 0l7.45-7.45a6.27 6.27 0 0 0 0-8.87Zm-1.41 7.46L12 18.81l-6.75-6.74a4.28 4.28 0 0 1 3-7.3a4.25 4.25 0 0 1 3 1.25a1 1 0 0 0 1.42 0a4.27 4.27 0 0 1 6 6.05Z" />
  52.               </symbol>
  53.               <symbol xmlns="http://www.w3.org/2000/svg" id="plus" viewBox="0 0 24 24">
  54.                 <path fill="currentColor"
  55.                   d="M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2Z" />
  56.               </symbol>
  57.               <symbol xmlns="http://www.w3.org/2000/svg" id="minus" viewBox="0 0 24 24">
  58.                 <path fill="currentColor" d="M19 11H5a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2Z" />
  59.               </symbol>
  60.               <symbol xmlns="http://www.w3.org/2000/svg" id="cart" viewBox="0 0 24 24">
  61.                 <path fill="currentColor"
  62.                   d="M8.5 19a1.5 1.5 0 1 0 1.5 1.5A1.5 1.5 0 0 0 8.5 19ZM19 16H7a1 1 0 0 1 0-2h8.491a3.013 3.013 0 0 0 2.885-2.176l1.585-5.55A1 1 0 0 0 19 5H6.74a3.007 3.007 0 0 0-2.82-2H3a1 1 0 0 0 0 2h.921a1.005 1.005 0 0 1 .962.725l.155.545v.005l1.641 5.742A3 3 0 0 0 7 18h12a1 1 0 0 0 0-2Zm-1.326-9l-1.22 4.274a1.005 1.005 0 0 1-.963.726H8.754l-.255-.892L7.326 7ZM16.5 19a1.5 1.5 0 1 0 1.5 1.5a1.5 1.5 0 0 0-1.5-1.5Z" />
  63.               </symbol>
  64.               <symbol xmlns="http://www.w3.org/2000/svg" id="check" viewBox="0 0 24 24">
  65.                 <path fill="currentColor"
  66.                   d="M18.71 7.21a1 1 0 0 0-1.42 0l-7.45 7.46l-3.13-3.14A1 1 0 1 0 5.29 13l3.84 3.84a1 1 0 0 0 1.42 0l8.16-8.16a1 1 0 0 0 0-1.47Z" />
  67.               </symbol>
  68.               <symbol xmlns="http://www.w3.org/2000/svg" id="trash" viewBox="0 0 24 24">
  69.                 <path fill="currentColor"
  70.                   d="M10 18a1 1 0 0 0 1-1v-6a1 1 0 0 0-2 0v6a1 1 0 0 0 1 1ZM20 6h-4V5a3 3 0 0 0-3-3h-2a3 3 0 0 0-3 3v1H4a1 1 0 0 0 0 2h1v11a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8h1a1 1 0 0 0 0-2ZM10 5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v1h-4Zm7 14a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V8h10Zm-3-1a1 1 0 0 0 1-1v-6a1 1 0 0 0-2 0v6a1 1 0 0 0 1 1Z" />
  71.               </symbol>
  72.               <symbol xmlns="http://www.w3.org/2000/svg" id="star-outline" viewBox="0 0 15 15">
  73.                 <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"
  74.                   d="M7.5 9.804L5.337 11l.413-2.533L4 6.674l2.418-.37L7.5 4l1.082 2.304l2.418.37l-1.75 1.793L9.663 11L7.5 9.804Z" />
  75.               </symbol>
  76.               <symbol xmlns="http://www.w3.org/2000/svg" id="star-solid" viewBox="0 0 15 15">
  77.                 <path fill="currentColor"
  78.                   d="M7.953 3.788a.5.5 0 0 0-.906 0L6.08 5.85l-2.154.33a.5.5 0 0 0-.283.843l1.574 1.613l-.373 2.284a.5.5 0 0 0 .736.518l1.92-1.063l1.921 1.063a.5.5 0 0 0 .736-.519l-.373-2.283l1.574-1.613a.5.5 0 0 0-.283-.844L8.921 5.85l-.968-2.062Z" />
  79.               </symbol>
  80.               <symbol xmlns="http://www.w3.org/2000/svg" id="search" viewBox="0 0 24 24">
  81.                 <path fill="currentColor"
  82.                   d="M21.71 20.29L18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 7-7a7 7 0 0 1-7 7Z" />
  83.               </symbol>
  84.               <symbol xmlns="http://www.w3.org/2000/svg" id="user" viewBox="0 0 24 24">
  85.                 <path fill="currentColor"
  86.                   d="M15.71 12.71a6 6 0 1 0-7.42 0a10 10 0 0 0-6.22 8.18a1 1 0 0 0 2 .22a8 8 0 0 1 15.9 0a1 1 0 0 0 1 .89h.11a1 1 0 0 0 .88-1.1a10 10 0 0 0-6.25-8.19ZM12 12a4 4 0 1 1 4-4a4 4 0 0 1-4 4Z" />
  87.               </symbol>
  88.               <symbol xmlns="http://www.w3.org/2000/svg" id="close" viewBox="0 0 15 15">
  89.                 <path fill="currentColor"
  90.                   d="M7.953 3.788a.5.5 0 0 0-.906 0L6.08 5.85l-2.154.33a.5.5 0 0 0-.283.843l1.574 1.613l-.373 2.284a.5.5 0 0 0 .736.518l1.92-1.063l1.921 1.063a.5.5 0 0 0 .736-.519l-.373-2.283l1.574-1.613a.5.5 0 0 0-.283-.844L8.921 5.85l-.968-2.062Z" />
  91.               </symbol>
  92.         
  93.             </defs>
  94.         </svg>
  95.         
  96.         <div class="preloader-wrapper">
  97.             <div class="preloader">
  98.             </div>
  99.         </div>
  100.         
  101.         <div class="offcanvas offcanvas-end" style="overflow: auto;" tabindex="-1" id="offcanvasCart" aria-labelledby="My Cart">
  102.             <div class="offcanvas-header justify-content-center">
  103.               <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  104.             </div>
  105.             <div class="offcanvas-body">
  106.               <div class="order-md-last">
  107.                 <h4 class="d-flex justify-content-between align-items-center mb-3">
  108.                   <span class="text-primary">Votre panier</span>
  109.                   <span class="cart-counters badge bg-primary rounded-circle pt-2">{{totalQuantity}}</span>
  110.                 </h4>
  111.                 <ul id="lateral-cart-content" class="list-group mb-3">
  112.                   
  113.                   {% for cartProduct in cartProducts %}
  114.                   <li data-product-id="{{cartProduct.product.id}}" data-product-quantity="{{cartProduct.quantity}}" data-product-stock="{{cartProduct.product.stock}}"  style="list-style-type: none;">
  115.                     <a class="list-group-item d-flex justify-content-between lh-sm" href="{{path('product', {id: cartProduct.product.id})}}">
  116.                       <div>
  117.                         <h6 style="overflow-wrap: anywhere" class="my-0">{{cartProduct.product.name}} {% if cartProduct.quantity >= 1 %}
  118.                            - <span class="quantity-counter" style="font-weight: bold; text-transform: lowercase;">x{{cartProduct.quantity}}</span>
  119.                         {% endif %}</h6>
  120.                         {#<small class="text-body-secondary">{{cartProduct.product.shortDescription}}</small>#}
  121.                       </div>
  122.                       <span class="product-total-price text-body-secondary" data-final-price="{{cartProduct.product.price * cartProduct.quantity}}">{{cartProduct.product.price * cartProduct.quantity}}€</span>
  123.                     </a>
  124.                   </li>
  125.                 {% endfor %}
  126.                   <li class="total-price-container list-group-item d-flex justify-content-between">
  127.                     <span class="fw-bold">Total (EUR)</span>
  128.                     <strong id="cart-total-price" data-final-price="{{totalPrice}}">{{totalPrice}}€</strong>
  129.                   </li>
  130.                 </ul>
  131.                 <button class="w-100 btn btn-secondary btn-lg d-flex justify-content-center align-items-center mb-3" type="button" data-bs-toggle="offcanvas" data-bs-target="#changeCart" aria-controls="offcanvasExample">Modifier le panier</button>
  132.                 <a href="{{path('checkout')}}" class="w-100 btn btn-primary btn-lg">Procéder au paiement</a>
  133.                 <a href="#" class="danger-button clear-cart">Vider le panier</a class="danger-button">
  134.               </div>
  135.             </div>
  136.         </div>
  137.         
  138.         <div class="offcanvas offcanvas-end" style="overflow: auto;" tabindex="-1" id="offcanvasSearch"
  139.             aria-labelledby="Search">
  140.             <div class="offcanvas-header justify-content-center">
  141.               <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  142.             </div>
  143.             <div class="offcanvas-body">
  144.         
  145.               <div class="order-md-last">
  146.                 <h4 class="text-primary text-uppercase mb-3">
  147.                   Recherche
  148.                 </h4>
  149.                 <div class="search-bar border rounded-2 border-dark-subtle">
  150.                   <form class="text-center d-flex align-items-center" action="{{path('search_products')}}" method="POST">
  151.                     <input name="terms_to_search" id="search_input" type="text" class="form-control border-0 bg-transparent"
  152.                     placeholder="Tapez votre recherche !" />
  153.                     <button type="submit" class="search_product_button" width="24" height="24">
  154.                       <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  155.                         <path fill="currentColor"
  156.                           d="M21.71 20.29L18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 7-7a7 7 0 0 1-7 7Z" />
  157.                       </svg>
  158.                     </button>
  159.                   </form>
  160.                 </div>
  161.               </div>
  162.             </div>
  163.         </div>
  164.         <div class="offcanvas offcanvas-end" data-bs-scroll="true" tabindex="-1" id="changeCart" aria-labelledby="offcanvasExampleLabel">
  165.           <div class="offcanvas-header">
  166.             <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  167.           </div>
  168.           <div class="offcanvas-body">
  169.             <div class="order-md-last">
  170.               <h4 class="d-flex justify-content-between align-items-center mb-3">
  171.                 <span class="text-primary">Votre panier</span>
  172.                 <span class="cart-counters badge bg-primary rounded-circle pt-2">{{totalQuantity}}</span>
  173.               </h4>
  174.               <ul id="lateral-edit-cart-content" class="list-group mb-3">
  175.                 {% for cartProduct in cartProducts %}
  176.                 <li class="list-group-item d-flex justify-content-between lh-sm" data-product-id="{{cartProduct.product.id}}" data-product-quantity="{{cartProduct.quantity}}" data-product-stock="{{cartProduct.product.stock}}">
  177.                   
  178.                   <div class="d-flex align-items-center">
  179.                     <h6 class="my-0">{{cartProduct.product.name}}</h6>
  180.                   </div>
  181.                   <div class="edit-cart-button-group"><span class="quantity-buttons more-button m-2"><svg width="16" height="16">
  182.                     <use xlink:href="#plus"></use>
  183.                   </svg></span><span class="quantity-counter m-2">{{cartProduct.quantity}}</span><span class="quantity-buttons less-button m-2"><svg width="16" height="16">
  184.                     <use xlink:href="#minus"></use>
  185.                   </svg></span></div>
  186.                   <span class="product-total-price text-body-secondary d-flex align-items-center" data-unit-price="{{cartProduct.product.price}}" data-final-price="{{cartProduct.product.price * cartProduct.quantity}}">{{cartProduct.product.price * cartProduct.quantity}}€</span>
  187.                 </li>
  188.               {% endfor %}
  189.                 <li class="total-price-container list-group-item d-flex justify-content-between">
  190.                   <span class="fw-bold">Total (EUR)</span>
  191.                   <strong id="edit-cart-total-price" data-final-price="{{totalPrice}}>{{totalPrice}}€"></strong>
  192.                 </li>
  193.               </ul>
  194.               <a href="{{path('checkout')}}" class="w-100 btn btn-primary btn-lg" data-bs-toggle="offcanvas" data-bs-target="#offcanvasCart">Retourner au panier</a>
  195.             </div>
  196.           </div>
  197.         </div>
  198.         {% for type, messages in app.flashes %}
  199.           {% for message in messages %}
  200.               {% if type != 'error' %}
  201.                 <div class="alert alert-{{ type }}">{{ message }}</div>
  202.                 {% else %}
  203.                 <div style="background-color: lightcoral;" class="alert alert-{{ type }}">{{ message }}</div>
  204.               {% endif %}
  205.           {% endfor %}
  206.         {% endfor %}          
  207.         <header>
  208.             <div class="container upper-container">
  209.               <div class="logo">
  210.                   <a href="{{path('app_home')}}">
  211.                     <img src="{{asset('images/logo.png')}}" alt="logo" class="img-fluid">
  212.                   </a>
  213.               </div>
  214.                 
  215.               <div class="search-bar-wrapper">
  216.                 <div class="search-bar border rounded-2 px-3 border-dark-subtle">
  217.                   <form id="search-form" class="text-center d-flex align-items-center" action="{{path('search_products')}}" method="POST">
  218.                     <input name="terms_to_search" id="search_input" type="text" class="form-control border-0 bg-transparent"
  219.                       placeholder="Recherchez Parmis Tout Nos Produits !" />
  220.                       <button type="submit" class="search_product_button" width="24" height="24">
  221.                         <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  222.                           <path fill="currentColor"
  223.                             d="M21.71 20.29L18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a1 1 0 0 0 1.42 0a1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 7-7a7 7 0 0 1-7 7Z" />
  224.                         </svg>
  225.                       </button>
  226.                   </form>
  227.                 </div>
  228.               </div>
  229.               <div id="social-networks">
  230.                   <div class="wrapper">
  231.                     <ul >
  232.                       <li class="social">
  233.                         <a href="https://www.facebook.com/lestresorsdeluna/" target="_blank">
  234.                           <iconify-icon class="social-icon" icon="ri:facebook-fill"></iconify-icon>
  235.                         </a>
  236.                       </li>
  237.                       <li class="social">
  238.                         <a href="https://www.instagram.com/lestresorsdeluna/" target="_blank">
  239.                           <iconify-icon class="social-icon" icon="ri:instagram-fill"></iconify-icon>
  240.                         </a>
  241.                       </li>
  242.                       <li class="social">
  243.                         <a href="https://www.youtube.com/@lestresorsdeluna" target="_blank">
  244.                           <iconify-icon class="social-icon" icon="ri:youtube-fill"></iconify-icon>
  245.                         </a>
  246.                       </li>
  247.       
  248.                     </ul>
  249.                     <div class="contact"><a href="mailto:contact.tresorsdeluna@gmail.com">contact.tresorsdeluna@gmail.com</a></div>
  250.                   </div>
  251.               </div>
  252.                 
  253.             </div>
  254.             <div class="container-fluid">
  255.               <hr class="m-0">
  256.             </div>
  257.             <div class="container">
  258.               <nav class="main-menu navbar navbar-expand-lg ">
  259.                 <a href="{{path('app_home')}}" class="logo-mobile">
  260.                   <img src="{{asset('images/logo.png')}}" alt="">
  261.                   <img src="{{asset('images/logo_2.png')}}" alt="">
  262.                 </a>
  263.                 <div class="user-actions d-flex d-lg-none align-items-end mt-3">
  264.                   <ul class="d-flex justify-content-end list-unstyled m-0">
  265.                     
  266.                     <li>
  267.                       <a href="#" class="mx-3" data-bs-toggle="offcanvas" data-bs-target="#offcanvasSearch"
  268.                         aria-controls="offcanvasSearch">
  269.                         <iconify-icon icon="tabler:search" class="fs-4"></iconify-icon>
  270.                         </span>
  271.                       </a>
  272.                     </li>
  273.                     <li>
  274.                       <li>
  275.                         {% if app.user %}
  276.                           {% if is_granted('ROLE_ADMIN') %}
  277.                             <a href="{{path('admin_index')}}" class="mx-3">
  278.                               <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  279.                             </a>
  280.                           {% else %}
  281.                             <a href="{{path('user_account')}}" class="mx-3">
  282.                               <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  283.                             </a>
  284.                           {% endif %}
  285.                         {% else %}
  286.                           <a href="{{path('account')}}" class="mx-3">
  287.                             <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  288.                           </a>
  289.                         {% endif %}
  290.                       </li>   
  291.                     </li>
  292.         
  293.                     <li>
  294.                       <a href="#" class="mx-3" data-bs-toggle="offcanvas" data-bs-target="#offcanvasCart"
  295.                         aria-controls="offcanvasCart">
  296.                         <iconify-icon icon="mdi:cart" class="fs-4 position-relative"></iconify-icon>
  297.                         <span class="cart-counters position-absolute translate-middle badge rounded-circle bg-primary pt-2">
  298.                           {{totalQuantity}}
  299.                         </span>
  300.                       </a>
  301.                     </li>
  302.         
  303.                   </ul>
  304.         
  305.                 </div>
  306.                 <button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar"
  307.                 aria-controls="offcanvasNavbar">
  308.                 <span class="navbar-toggler-icon"></span>
  309.                 </button>
  310.         
  311.         
  312.                 <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
  313.         
  314.                   <div class="offcanvas-header justify-content-center">
  315.                     <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  316.                   </div>
  317.         
  318.                   <div class="offcanvas-body justify-content-between container" style="overflow: hidden;">
  319.                     <select id="filter_categories" class="filter-categories border-0 mb-0 me-5">
  320.                       <option>Voir par Catégories</option>
  321.                       {% for category in categories %}
  322.                         {% if category.product|length > 0 %}
  323.                           <option value="{{path('products_filter', {'category': category.id}) }}">{{category.name}}</option>
  324.                           
  325.                         {% endif %}
  326.                       {% endfor %}
  327.                       {#
  328.                       <option>Food</option>
  329.                       <option>Food</option>
  330.                       <option>Toy</option>
  331.                       #}
  332.                     </select>
  333.         
  334.                     <ul class="navbar-nav menu-list list-unstyled d-flex gap-md-3 mb-0">
  335.                       <li class="nav-item">
  336.                         <a href="{{path('app_home')}}" class="nav-link active">Accueil</a>
  337.                       </li>
  338.                       <li class="nav-item">
  339.                         <a href="mailto:contact.tresorsdeluna@gmail.com" class="nav-link active" style="padding-bottom: 0;">Contact</a>
  340.                         <div style="font-weight: 100;" class="contact"><a href="mailto:contact.tresorsdeluna@gmail.com">contact.tresorsdeluna@gmail.com</a></div>
  341.                       </li>
  342.                     </ul>
  343.         
  344.                     <div class="d-none d-lg-flex align-items-end">
  345.                       <ul class="d-flex justify-content-end list-unstyled m-0">
  346.                         <li>
  347.                           {% if app.user %}
  348.                             {% if is_granted('ROLE_ADMIN') %}
  349.                               <a href="{{path('admin_index')}}" class="mx-3">
  350.                                 <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  351.                               </a>
  352.                             {% else %}
  353.                               <a href="{{path('user_account')}}" class="mx-3">
  354.                                 <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  355.                               </a>
  356.                             {% endif %}
  357.                           {% else %}
  358.                             <a href="{{path('account')}}" class="mx-3">
  359.                               <iconify-icon icon="healthicons:person" class="fs-4"></iconify-icon>
  360.                             </a>
  361.                           {% endif %}
  362.                         </li>   
  363.                         {% if app.request.attributes.get('_route') != 'payment' %}
  364.                           
  365.                           <li class="">
  366.                             <a href="#" class="mx-3" data-bs-toggle="offcanvas" data-bs-target="#offcanvasCart"
  367.                               aria-controls="offcanvasCart">
  368.                               <iconify-icon icon="mdi:cart" class="fs-4 position-relative"></iconify-icon>
  369.                               <span  class="cart-counters position-absolute translate-middle badge rounded-circle bg-primary pt-2">
  370.                                 {{totalQuantity}}
  371.                               </span>
  372.                             </a>
  373.                           </li>
  374.                           
  375.                         {% endif %}     
  376.                       </ul>
  377.         
  378.                     </div>
  379.         
  380.                   </div>
  381.         
  382.                 </div>
  383.         
  384.               </nav>
  385.         
  386.         
  387.         
  388.             </div>
  389.         </header>
  390.         {% block body %}
  391.         
  392.         {% endblock %}
  393.         
  394.         
  395.         {% if app.request.get('_route') not in ['user_account', 'edit_account'] %}
  396.           <hr class="container">
  397.           <div id="social-networks-footer" class="col-md-3 py-5 my-3">
  398.             <div class="card">
  399.               <img src="{{asset('images/logo.png')}}" alt="logo">
  400.               <p class="blog-paragraph fs-6 mt-3">Retrouvez nous sur nos réseaux sociaux :</p>
  401.               <div class="social-links">
  402.                 <ul class="d-flex list-unstyled justify-content-around gap-2">
  403.                   <li class="social">
  404.                     <a href="https://www.facebook.com/lestresorsdeluna/" target="_blank">
  405.                       <iconify-icon class="social-icon" icon="ri:facebook-fill"></iconify-icon>
  406.                     </a>
  407.                   </li>
  408.                   <li class="social">
  409.                     <a href="https://www.instagram.com/lestresorsdeluna/" target="_blank">
  410.                       <iconify-icon class="social-icon" icon="ri:instagram-fill"></iconify-icon>
  411.                     </a>
  412.                   </li>
  413.                   <li class="social">
  414.                     <a href="https://www.youtube.com/@lestresorsdeluna" target="_blank">
  415.                       <iconify-icon class="social-icon" icon="ri:youtube-fill"></iconify-icon>
  416.                     </a>
  417.                   </li>
  418.                 </ul>
  419.               </div>
  420.             </div>
  421.           </div>
  422.         
  423.           <hr class="container hr-social-networks-footer">
  424.           <section id="service">
  425.             <div class="container py-5 my-5">
  426.               <div class="row g-md-5 pt-4 d-flex justify-content-around">
  427.                 <div class="col-md-3 my-3">
  428.                   <div class="card">
  429.                     <div>
  430.                       <iconify-icon class="service-icon text-primary" icon="la:shopping-cart"></iconify-icon>
  431.                     </div>
  432.                     <h3 class="card-title py-2 m-0">Livraison rapide</h3>
  433.                     <div class="card-text">
  434.                       <p class="blog-paragraph fs-6">Nous garantissons une prise en charge rapide de vos commande en moins de 24 heures</p>
  435.                     </div>
  436.                   </div>
  437.                 </div>
  438.                 <div class="col-md-3 my-3">
  439.                   <div class="card">
  440.                     <div>
  441.                       <iconify-icon class="service-icon text-primary" icon="la:user-check"></iconify-icon>
  442.                     </div>
  443.                     <h3 class="card-title py-2 m-0">Paiement sécurisé</h3>
  444.                     <div class="card-text">
  445.                       <p class="blog-paragraph fs-6">Avec PayPal, que vous ayez un compte ou non, payez en toute sécurité.</p>
  446.                     </div>
  447.                   </div>
  448.                 </div>
  449.                 {#
  450.                 <div class="col-md-3 my-3">
  451.                   <div class="card">
  452.                     <div>
  453.                       <iconify-icon class="service-icon text-primary" icon="la:award"></iconify-icon>
  454.                     </div>
  455.                     <h3 class="card-title py-2 m-0">Conception artisanale garantie</h3>
  456.                     <div class="card-text">
  457.                       <p class="blog-paragraph fs-6">Tous nos produits sont réalisés sont uniques et par nos soins</p>
  458.                     </div>
  459.                   </div>
  460.                 </div>
  461.                 #}
  462.             </div>
  463.           </section>
  464.         {% endif %}
  465.         
  466.         <div id="footer-bottom">
  467.             <div class="container">
  468.               <hr class="m-0">
  469.               <div class="row mt-3">
  470.                 <div class="copyright d-flex justify-content-between">
  471.                   <p class="secondary-font">© 2024 Adna Informatique. All rights reserved.</p>
  472.                   <p class="secondary-font">
  473.                     <a href="{{path('cgv')}}" target="_blank" class="nav-link">Conditions générales de vente</a>
  474.                   </p>
  475.                   <p class="secondary-font">
  476.                     <a href="{{path('politique_confidentialite')}}" target="_blank" class="nav-link">Politique de confidentialité</a>
  477.                   </p>
  478.                 </div>
  479.               </div>
  480.             </div>
  481.         </div>        
  482.         <script src="{{asset('js/jquery-1.11.0.min.js')}}"></script>
  483.         <script src="{{asset('js/swiper.js')}}"></script>
  484.         <script src="{{asset('js/bootstrap.bundle.js')}}"></script>
  485.         <script src="{{asset('js/plugins.js')}}"></script>
  486.         <script src="{{asset('js/script.js')}}"></script>
  487.         <script src="{{asset('js/iconify.js')}}"></script>
  488.         <script type="module" src="{{asset('js/classes/Cart.js')}}"></script>
  489.         <script type="module" src="{{asset('js/adna-script.js')}}"></script>      
  490.     
  491.         <div id="cart_notification">
  492.           <p></p>
  493.         </div>
  494.     </body>
  495. </html>