templates/dashboard_free/layout.html.twig line 1

Open in your IDE?
  1. <!doctype html>
  2. <html lang="fr">
  3. <head>
  4.     {% set base_url = app.request.schemeAndHttpHost %}
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7.     <meta http-equiv="Content-Language" content="fr" />
  8.     <meta name="viewport" content="width=device-width, initial-scale=1">
  9.     {% block head %}
  10.     {% endblock %}
  11.     <!--Favicon-->
  12.     <link rel="icon" type="image/png" href="{{ base_url }}/static/img/dashboard-free/favicon.webp" />
  13.     <!--CSS-->
  14.     <link rel="preload" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap" as="style" />
  15.     <link rel="preload" href="https://fonts.googleapis.com/css2?family=Gloria+Hallelujah&display=swap" as="style" />
  16.     <link rel="preload" href="https://fonts.cdnfonts.com/css/muller-narrow" as="style" />
  17.     <link rel="preload" type="text/css" title="Style" href="{{ base_url }}/styles.css" as="style" />
  18.     <link rel="stylesheet" type="text/css" title="Style" href="{{ base_url }}/styles.css" />
  19.     <!--JS-->
  20.   {#  <script src="{{ base_url }}/js/custom.js" type="text/javascript"></script>#}
  21.     <script src="https://unpkg.com/alpinejs" defer></script>
  22.     {% for file in encore_entry_css_files('free') %}
  23.         <link href="{{ absolute_url(asset(file)) }}" rel="stylesheet" />
  24.     {% endfor %}
  25.     {#{{ encore_entry_link_tags('free',null,'/') }}#}
  26. </head>
  27. <body class="font-poppins" x-data="{ open: false, mobileMenuOpen: false, dropdownOpen: false }" @keydown.escape.window="open = false">
  28. <!-- Header -->
  29.     <header class="flex bg-white fixed w-full z-10 border-bleu border-b-[1px] px-4 py-4  justify-between flex-wrap items-center" x-data="{ mobileMenuOpen: false, dropdownOpen: false }">
  30.         <div class="flex flex-wrap items-center">
  31.             <a href="https://lesbonsprofs.com" target="_blank" aria-label="Les Bons Profs"><img src="{{ base_url }}/static/img/dashboard-free/les-bons-profs-logo.svg" alt="Les bons profs - Cours gratuits" class="w-48 md:w-56 lg:w-auto"/></a>
  32.             <div class="hidden lg:flex text-nowrap font-bold text-bleu text-[15px]"><img src="{{ base_url }}/static/img/dashboard-free/phone.svg" alt="télephone" class="pl-3 pr-1" /> 01 86 95 72 01</div>
  33.         </div>
  34.         <div class="flex">
  35.             <!-- Menu -->
  36.             <div x-data="{ mobileMenuOpen: false, dropdownOpen: false }" class="w-full md:w-auto">
  37.                 <!-- Bouton Menu Mobile -->
  38.                 <button @click="mobileMenuOpen = !mobileMenuOpen" class="md:hidden text-bleu">
  39.                     <svg x-show="!mobileMenuOpen" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
  40.                         <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
  41.                     </svg>
  42.                     <svg x-show="mobileMenuOpen" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
  43.                         <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
  44.                     </svg>
  45.                 </button>
  46.                 <!-- Navigation Links (partagé entre Desktop et Mobile) -->
  47.                 <nav :class="{'hidden': !mobileMenuOpen, 'absolute left-0 right-0 bg-white z-50': mobileMenuOpen}"
  48.                      class="md:block md:relative">
  49.                     <ul class="md:flex md:items-center xl:gap-8">
  50.                         <!-- Nos offres -->
  51.                         <li>
  52.                             <a href="{{ base_url_front~'/nos-offres' }}" class="block px-4 py-2 text-black hover:text-grenat font-bold transition-colors">Nos offres</a>
  53.                         </li>
  54.                         <!-- Dropdown Nos cours -->
  55.                         <li class="relative">
  56.                             <button
  57.                                     @mouseover="dropdownOpen = true"
  58.                                     @click="dropdownOpen = !dropdownOpen"
  59.                                     class="flex items-center w-full px-4 py-2 text-black hover:text-grenat font-bold transition-colors">
  60.                                 <span>Nos cours</span>
  61.                                 <svg class="w-4 h-4 ml-1 transition-transform" :class="{'rotate-180': dropdownOpen}" fill="currentColor" viewBox="0 0 20 20">
  62.                                     <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"/>
  63.                                 </svg>
  64.                             </button>
  65.                             <!-- Sous-menu (même contenu pour Desktop et Mobile) -->
  66.                             <div x-show="dropdownOpen"
  67.                                  @click.away="dropdownOpen = false"
  68.                                  @mouseleave="dropdownOpen = false"
  69.                                  x-transition:enter="transition ease-out duration-200"
  70.                                  x-transition:enter-start="opacity-0"
  71.                                  x-transition:enter-end="opacity-100"
  72.                                  x-transition:leave="transition ease-in duration-150"
  73.                                  x-transition:leave-start="opacity-100"
  74.                                  x-transition:leave-end="opacity-0"
  75.                                  class="md:absolute md:left-0 md:mt-2 md:w-48 bg-white md:border-2 md:rounded-lg md:shadow-lg z-50">
  76.                                 <div class="py-2 text-[14px]">
  77.                                     {% for al in allCourses %}
  78.                                     <a href="{{ base_url_front }}/nos-cours/{{ al.slug }}" class="block px-8 md:px-4 py-2 text-black hover:text-grenat transition-colors">{{ al.title|capitalize }}</a>
  79.                                     {% endfor %}
  80.                                 </div>
  81.                             </div>
  82.                         </li>
  83.                         <!-- Blog -->
  84.                         <li>
  85.                             <a href="{{ base_url_front~'/blog/' }}" class="block px-4 py-2 text-black hover:text-grenat font-bold transition-colors">Blog</a>
  86.                         </li>
  87.                         <li>
  88.                             <a href="https://app.lesbonsprofs.com/connexion" class="block px-4 py-2 text-bleu hover:text-grenat font-bold transition-colors">Connexion</a>
  89.                         </li>
  90.                         <!-- Bouton Essayer gratuitement -->
  91.                         <li class="px-4 md:px-0 py-2">
  92.                             <a href="{{ base_url_front~'/nos-offres/' }}" class="block bg-bleu hover:bg-grenat text-white md:text-[12px] lg:text-[16px] font-bold py-2 px-4 rounded-full text-center transition-colors">
  93.                                 Essayer gratuitement
  94.                             </a>
  95.                         </li>
  96.                     </ul>
  97.                 </nav>
  98.             </div>
  99.         </div>
  100.     </header>
  101.     {% block content %}
  102.     {% endblock %}
  103.     <footer class="bg-bleu bg-[url('{{ base_url }}/static/img/dashboard-free/logo-bleu-transparent.png')] bg-no-repeat bg-right-bottom bg-[size:250px] text-white py-12 px-4" x-data="{
  104.       openSection: null,
  105.       toggleSection(section) {
  106.         this.openSection = this.openSection === section ? null : section
  107.       }
  108.     }">
  109.         <div class="max-w-[1160px] mx-auto">
  110.             <!-- Logo -->
  111.             <a href="https://lesbonsprofs.com" target="_blank" aria-label="Les Bons Profs" class="block mb-8">
  112.                 <img src="{{ base_url }}/static/img/dashboard-free/logo-blanc.svg" alt="Les bons profs - Cours gratuits" class="w-[285px]"/>
  113.             </a>
  114.             <!-- Navigation -->
  115.             <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8 text-[15px]">
  116.                 <!-- Nos cours -->
  117.                 <div>
  118.                     <button
  119.                             @click="toggleSection('cours')"
  120.                             class="font-bold text-xl md:text-2xl mb-4 md:cursor-default inline-flex items-center gap-2"
  121.                     >
  122.                         <span>Nos cours</span>
  123.                         <svg
  124.                                 class="w-4 h-4 transition-transform md:hidden"
  125.                                 :class="{'rotate-180': openSection === 'cours'}"
  126.                                 fill="none"
  127.                                 stroke="currentColor"
  128.                                 viewBox="0 0 24 24"
  129.                         >
  130.                             <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
  131.                         </svg>
  132.                     </button>
  133.                     <ul
  134.                             class="space-y-2 overflow-hidden transition-all duration-300 md:block"
  135.                             :class="{'hidden': openSection !== 'cours'}"
  136.                     >
  137.                         {% for al in allCourses %}
  138.                         <li><a href="{{ base_url_front~'/nos-cours/'~al.slug }}" class="hover:text-peche transition-colors">{{ al.title }}</a></li>
  139.                         {% endfor %}
  140.                     </ul>
  141.                 </div>
  142.                 <!-- Nos pages -->
  143.                 <div class="sm:col-start-1 md:col-start-2 sm:-mt-16 md:mt-0">
  144.                     <button
  145.                             @click="toggleSection('pages')"
  146.                             class="font-bold text-xl md:text-2xl mb-4 md:cursor-default inline-flex items-center gap-2"
  147.                     >
  148.                         <span>Nos pages</span>
  149.                         <svg
  150.                                 class="w-4 h-4 transition-transform md:hidden"
  151.                                 :class="{'rotate-180': openSection === 'pages'}"
  152.                                 fill="none"
  153.                                 stroke="currentColor"
  154.                                 viewBox="0 0 24 24"
  155.                         >
  156.                             <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
  157.                         </svg>
  158.                     </button>
  159.                     <ul
  160.                             class="space-y-2 overflow-hidden transition-all duration-300 md:block"
  161.                             :class="{'hidden': openSection !== 'pages'}"
  162.                     >
  163.                         <li><a href="{{ base_url_front }}" class="hover:text-peche transition-colors">Les Bons Profs</a></li>
  164.                         <li><a href="{{ base_url_front }}/nos-offres" class="hover:text-peche transition-colors">Nos offres</a></li>
  165.                         <li><a href="{{ base_url_front }}/blog" class="hover:text-peche transition-colors">Blog</a></li>
  166.                         <li><a href="#" class="hover:text-peche transition-colors">Conditions générales d'utilisation</a></li>
  167.                         <li><a href="#" class="hover:text-peche transition-colors">Mentions légales</a></li>
  168.                     </ul>
  169.                 </div>
  170.                 <!-- Réseaux sociaux et Contact -->
  171.                 <div class="grid sm:col-start-2 sm:row-start-1 md:col-start-3">
  172.                     <span class="hidden md:block font-bold text-xl md:text-2xl md:-mb-8">Nous suivre</span>
  173.                     <div class="flex space-x-4">
  174.                         <a href="https://www.facebook.com/lesbonsprofs" target="_blank" class="hover:opacity-75 transition-opacity">
  175.                             <img src="{{ base_url }}/static/img/dashboard-free/facebook.svg" alt="Facebook" class="w-8 h-8">
  176.                         </a>
  177.                         <a href="https://www.instagram.com/lesbonsprofs/" target="_blank" class="hover:opacity-75 transition-opacity">
  178.                             <img src="{{ base_url }}/static/img/dashboard-free/instagram.svg" alt="Instagram" class="w-8 h-8">
  179.                         </a>
  180.                         <a href="https://fr.linkedin.com/company/lesbonsprofs" target="_blank" class="hover:opacity-75 transition-opacity">
  181.                             <img src="{{ base_url }}/static/img/dashboard-free/linkedin.svg" alt="Linkedin" class="w-8 h-8">
  182.                         </a>
  183.                         <a href="https://www.youtube.com/user/lesbonsprofs" target="_blank" class="hover:opacity-75 transition-opacity">
  184.                             <img src="{{ base_url }}/static/img/dashboard-free/youtube.svg" alt="Linkedin" class="w-8 h-8">
  185.                         </a>
  186.                     </div>
  187.                     <span class="font-bold text-xl md:text-2xl row-start-1 md:row-start-3 mb-8 md:mb-0">Contactez-nous</span>
  188.                 </div>
  189.             </div>
  190.         </div>
  191.     </footer>
  192. {% for file in encore_entry_js_files('free') %}
  193.     <script src="{{ absolute_url(asset(file)) }}" ></script>
  194. {% endfor %}
  195. </body>
  196. </html>