templates/base.html.twig line 1

  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">
  6.     <title>{% block title %}{% endblock %} | Roomlers</title>
  7.     
  8.     <link rel="icon" href="{{ asset('/images/site/logo.png') }}"/>
  9.     {# CSS Bootstrap et FontAwesome via CDN #}
  10.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
  11.     <script src="https://kit.fontawesome.com/73b7cac54e.js" crossorigin="anonymous"></script>
  12.     {# CSS Tailwind (si utilisé en complément) #}
  13.     <script src="https://cdn.tailwindcss.com"></script>
  14.     {# Stylesheets spécifiques au projet (Webpack Encore) #}
  15.     {% block stylesheets %}
  16.         {{ encore_entry_link_tags('app') }}
  17.     {% endblock %}
  18.     {# Google Analytics #}
  19.     <script async src="https://www.googletagmanager.com/gtag/js?id=G-FK00Z7YFTE"></script>
  20.     <script>
  21.         window.dataLayer = window.dataLayer || [];
  22.         function gtag(){dataLayer.push(arguments);}
  23.         gtag('js', new Date());
  24.         gtag('config', 'G-FK00Z7YFTE');
  25.     </script>
  26. </head>
  27. <body class="flex flex-col min-h-screen">
  28.     {# Définir dynamiquement la barre de navigation selon le rôle utilisateur #}
  29.     {% set nav_template = 'components/nav_landing.html.twig' %}
  30.     {% if app.user %}
  31.         {% if app.user.asRole('ROLE_TENANT') %}
  32.             {% set nav_template = 'components/nav_tenant.html.twig' %}
  33.         {% elseif app.user.asRole('ROLE_LESSOR') or app.user.asRole('ROLE_LESSOR_RESIDENT') %}
  34.             {% set nav_template = 'components/nav_lessor.html.twig' %}
  35.         {% elseif app.user.asRole('ROLE_AGENT') or app.user.asRole('ROLE_SUPER_AGENT') %}
  36.             {% set nav_template = 'components/nav_agent.html.twig' %}
  37.         {% endif %}
  38.     {% endif %}
  39.     {% include nav_template %}
  40.     {# Contenu principal #}
  41.     <main class="flex-grow">
  42.         <div class="container mx-auto px-4 py-6">
  43.             {% block body %}{% endblock %}
  44.         </div>
  45.     </main>
  46.     {# Pied de page #}
  47.     {% include "/components/footer_landing.html.twig" %}
  48.     {# JavaScript #}
  49.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
  50.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
  51.     {% block javascripts %}
  52.         <script>
  53.             document.addEventListener('contextmenu', event => event.preventDefault());
  54.         </script>
  55.         {{ encore_entry_script_tags('app') }}
  56.     {% endblock %}
  57.     {% block extra_javascripts %}
  58.         {% include 'includes/session_timeout.js.twig' %}
  59.     {% endblock %}
  60. </body>
  61. </html>