templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. {% set is_rtl = app.request.locale == 'ar_TN' %}
  3. <html lang="{{ is_rtl ? 'ar' : 'fr' }}" dir="{{ is_rtl ? 'rtl' : 'ltr' }}">
  4.   <head>
  5.     <meta charset="UTF-8" />
  6.     <meta name="csrf-token" content="{{ csrf_token('ajax') }}" />
  7.     <title>
  8.       {% block title %}
  9.         Welcome!
  10.       {% endblock %}
  11.     </title>
  12.     <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>" />
  13.     {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
  14.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" />
  15.     <!-- Style -->
  16.     <link rel="stylesheet" href="{{ asset('css/style.css') }}" />
  17.     <link rel="stylesheet" href="{{ asset('css/style-login.css') }}" />
  18.     <link href="https://unpkg.com/boxicons@2.1.1/css/boxicons.min.css' rel='stylesheet" />
  19.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" integrity="sha512-tS3S5qG0BlhnQROyJXvNjeEM4UpMXHrQfTGmbQ1gKmelCxlSEBUaxhRBj/EFTzpbP4RVSrpEikbmdJobCvhE3g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  20.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css" integrity="sha512-sMXtMNL1zRzolHYKEujM2AqCLUR9F2C4/05cdbxjjLSRvMQIciEPCQZo++nk7go3BtSuK9kfa/s+a4f4i5pLkw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  21.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  22.     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css" integrity="sha384-r4NyP46KrjDleawBgD5tp8Y7UzmLA05oM1iAEQ17CSuDqnUK2+k9luXQOfXJCJ4I" crossorigin="anonymous" />
  23.     <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
  24.     <script src="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/js/bootstrap.min.js" integrity="sha384-oesi62hOLfzrys4LxRF63OJCXdXDipiYWBnvTl9Y9/TRlw5xlKIEHpNyvvDShgf/" crossorigin="anonymous"></script>
  25.     <link rel="stylesheet" href="https://cdn.datatables.net/1.13.1/css/jquery.dataTables.min.css" />
  26.     <link rel="stylesheet" href="{{ asset('css/base.css') }}" />
  27.     {# link notif #}
  28.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
  29.     {% block stylesheets %}
  30.       {{ encore_entry_link_tags('app') }}
  31.     {% endblock %}
  32.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" />
  33.     {# Ajustements RTL chargés uniquement en arabe, en dernier pour surcharger sans impacter le mode LTR #}
  34.     {% if is_rtl %}
  35.       <link rel="stylesheet" href="{{ asset('css/rtl.css') }}" />
  36.     {% endif %}
  37.   </head>
  38.   <body>
  39.     <div class="header">
  40.       <nav class="navbar navbar-expand-lg fixed-top {{ app.request.locale == 'ar_TN' ? 'form_direction_rtl' : 'form_direction_ltr' }}">
  41.         <a class="navbar-brand" href="{{ path('accueil') }}"><img src="{{ asset('/images/Fichier1.png') }}" alt="" /></a>
  42.         <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
  43.         {% set id = app.request.attributes.get('id') %}
  44.         <div class="collapse navbar-collapse align-items-center" id="navbarSupportedContent">
  45.           <ul class="navbar-nav ml-auto menu-middle align-items-start" id="change_color">
  46.             <li class="nav-item menu" id="actualites">
  47.               <a class="nav-link" href="{{ path('accueil') }}#section-actualites" id="path_accueil">{% trans %}menu_base.Actualites{% endtrans %}</a>
  48.             </li>
  49.             <li class="nav-item menu change_li" id="about">
  50.               <a class="nav-link" href="{{ path('accueil') }}#section-about">CNFCPP</a>
  51.             </li>
  52.             <li class="nav-item menu change_li" id="services">
  53.               <a class="nav-link" href="{{ path('accueil') }}#section-services">{% trans %}menu_base.Services{% endtrans %}</a>
  54.             </li>
  55.             <li class="nav-item menu change_li" id="formation">
  56.               <a class="nav-link" href="{{ path('accueil') }}#section-formation">{% trans %}menu_base.Sessions_formation{% endtrans %}</a>
  57.             </li>
  58.             <li class="nav-item menu change_li" id="article">
  59.               <a class="nav-link" href="{{ path('accueil') }}#section-article">{% trans %}menu_base.Article{% endtrans %}</a>
  60.             </li>
  61.             <li class="nav-item menu change_li" id="doc">
  62.               <a class="nav-link" href="{{ path('accueil') }}#section-doc">{% trans %}menu_base.Centre_ressources{% endtrans %}</a>
  63.             </li>
  64.             <li class="nav-item menu change_li" id="galerie">
  65.               <a class="nav-link" href="{{ path('show_galerie') }}" id="path_galerie">{% trans %}menu_base.Galerie{% endtrans %}</a>
  66.             </li>
  67.             <li class="nav-item menu change_li" id="accueil_footer">
  68.               <a class="nav-link" href="{{ path('accueil') }}#footer">{% trans %}menu_base.Contact{% endtrans %}</a>
  69.             </li>
  70.           </ul>
  71.           {% if app.user and app.user.isVerified %}
  72.             {% if app.user.roles[0] == 'ROLE_PARTICULIER' or app.user.roles[0] == 'ROLE_ENTREPRISES' or app.user.roles[0] == 'ROLE_PARTENAIRES_NATIONAUX' or app.user.roles[0] == 'ROLE_PARTENAIRES_REGIONAUX' or app.user.roles[0] == 'ROLE_AUTRES' %}
  73.               <ul class="navbar-nav ml-auto btn-connx align-items-center d-flex">
  74.                 <li class="nav-item text-center dropdown">
  75.                   <a href="#" class="dropbtn display-desktop notification-ring" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  76.                     <i class="fa-solid fa-bell" id="notif-r"></i>
  77.                     {# {% if notifications_count > 0 %} #}
  78.                     <span class="notification_count"></span>
  79.                     {# {% endif %} #}
  80.                   </a>
  81.                   {{ render(url('app_notification_list_front')) }}
  82.                 </li>
  83.                 <li class="nav-item text-center">
  84.                   <a class="nav-link" href="{{ path('show_cart') }}"><i class="fa fa-shopping-cart" aria-hidden="true" id="cart-shop"></i></a>
  85.                   <span id="notifCartSpan"></span>
  86.                 </li>
  87.               </ul>
  88.             {% endif %}
  89.             {% if app.user.roles[0] == 'ROLE_ADMIN' or app.user.roles[0] == 'ROLE_CHARGE_ASSISTANCE' or app.user.roles[0] == 'ROLE_DAE' or app.user.roles[0] == 'ROLE_UNITE_REGINALE' or app.user.roles[0] == 'ROLE_AGENT_INTERNE' %}
  90.               <ul class="navbar-nav ml-auto btn-connx align-items-center d-flex">
  91.                 <li class="nav-item text-center dropdown">
  92.                   <a href="#" class="dropbtn display-desktop notification-ring" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  93.                     <i class="fa-solid fa-bell" id="notif-r"></i>
  94.                     {# {% if notifications_count > 0 %} #}
  95.                     <span class="notification_count"></span>
  96.                     {# {% endif %} #}
  97.                   </a>
  98.                   {{ render(url('app_notification_list')) }}
  99.                 </li>
  100.               </ul>
  101.             {% endif %}
  102.             <div class="dropdown text-center d-flex justify-content-center align-items-center" id="dropdown-Dae">
  103.               <a href="#" class="align-items-center text-black text-decoration-none dropdown-toggle" id="dropdownUser1" data-toggle="dropdown" aria-expanded="false">
  104.                 <img src="{{ asset('/images/user.png') }}" alt="" />
  105.                 <span class="user-header">{{ app.user.username }}</span>
  106.               </a>
  107.               <div class="nav-item dropdown">
  108.                 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="background-color: white;border: none;"><img src="{{ app.session.get('_locale') == 'ar_TN' ? asset('images/tunisia.png') : asset('images/france (1).png') }}" alt="" style="width: 30px;" /></a>
  109.                 <div class="dropdown-menu" aria-labelledby="navbarDropdown">
  110.                   <a class="dropdown-item traduction" href="{{ path('app_change_locale', { '_locale': app.session.get('_locale') == 'ar_TN' ? 'fr' : 'ar_TN' }) }}"><img src="{{ app.session.get('_locale') == 'ar_TN' ? asset('images/france (1).png') : asset('images/tunisia.png') }}" alt="" style="width: 30px;" /></a>
  111.                 </div>
  112.               </div>
  113.               <ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="dropdownUser1" style="">
  114.                 {% if not is_granted('ROLE_ENTREPRISES') and not is_granted('ROLE_PARTENAIRES_NATIONAUX') and not is_granted('ROLE_PARTENAIRES_REGIONAUX') and not is_granted('ROLE_PARTICULIER') and not is_granted('ROLE_AUTRES') %}
  115.                   <li class="dropdown-item auth">
  116.                     <a class="dropdown-item log-out-user" href="{{ path('dashboard') }}">{% trans %}menu_base.Dashboard{% endtrans %}</a>
  117.                   </li>
  118.                 {% endif %}
  119.                 {% if app.user.roles[0] != 'ROLE_SUPER_ADMIN' and app.user.roles[0] != 'ROLE_ADMIN' %}
  120.                   <li class="dropdown-item auth">
  121.                     <a class="dropdown-item custom-user" href="{{ path('app_profil') }}">{% trans %}menu_base.Modifier_profil{% endtrans %}</a>
  122.                   </li>
  123.                 {% endif %}
  124.                 {% if is_granted('ROLE_ENTREPRISES') or is_granted('ROLE_PARTENAIRES_NATIONAUX') or is_granted('ROLE_PARTENAIRES_REGIONAUX') %}
  125.                   <li class="dropdown-item auth">
  126.                     <a class="dropdown-item log-out-user" href="{{ path('app_list_demande') }}">{% trans %}menu_base.Demandes{% endtrans %}</a>
  127.                   </li>
  128.                 {% endif %}
  129.                 {% if app.user.roles[0] == 'ROLE_PARTICULIER' or app.user.roles[0] == 'ROLE_AUTRES' %}
  130.                   <li class="dropdown-item auth">
  131.                     <a class="dropdown-item log-out-user" href="{{ path('app_listInscri') }}">{% trans %}menu_base.Mes_inscriptions{% endtrans %}</a>
  132.                   </li>
  133.                 {% endif %}
  134.                 {% if app.user.roles[0] == 'ROLE_PARTICULIER' or app.user.roles[0] == 'ROLE_ENTREPRISES' or app.user.roles[0] == 'ROLE_PARTENAIRES_NATIONAUX' or app.user.roles[0] == 'ROLE_PARTENAIRES_REGIONAUX' or app.user.roles[0] == 'ROLE_AUTRES' %}
  135.                   <li class="dropdown-item auth">
  136.                     <a class="dropdown-item log-out-user" href="{{ path('command_history') }}">{% trans %}menu_base.Commandes{% endtrans %}</a>
  137.                   </li>
  138.                   <li class="dropdown-item auth">
  139.                     <a class="dropdown-item log-out-user" href="{{ path('app_list') }}">{% trans %}menu_base.Documents{% endtrans %}</a>
  140.                   </li>
  141.                   <li class="dropdown-item auth">
  142.                     <a class="dropdown-item log-out-user" href="{{ path('app_list_sujet_propose') }}">{% trans %}menu_base.Sujets_proposés{% endtrans %}</a>
  143.                   </li>
  144.                 {% endif %}
  145.                 <li class="dropdown-item auth">
  146.                   <a class="dropdown-item log-out-user" href="{{ path('logout') }}">{% trans %}menu_base.Déconnexion{% endtrans %}</a>
  147.                 </li>
  148.               </ul>
  149.             </div>
  150.           {% else %}
  151.             <ul class="navbar-nav ml-auto btn-connx align-items-center">
  152.               <li class="nav-item text-center">
  153.                 <a class="nav-link" href="{{ path('show_cart') }}"><i class="fa fa-shopping-cart" aria-hidden="true" id="cart-shop"></i></a>
  154.               </li>
  155.               <li class="nav-item text-center">
  156.                 <a class="nav-link" href="{{ path('login') }}">{% trans %}menu_base.Connexion{% endtrans %}</a>
  157.               </li>
  158.               <li class="nav-item text-center">
  159.                 <a class="nav-link" href="{{ path('app_register') }}">{% trans %}menu_base.Créer_compte{% endtrans %}</a>
  160.               </li>
  161.               <li class="nav-item dropdown">
  162.                 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="background-color: white;border: none;"><img src="{{ app.session.get('_locale') == 'ar_TN' ? asset('images/tunisia.png') : asset('images/france (1).png') }}" alt="" style="width: 30px;" /></a>
  163.                 <div class="dropdown-menu" aria-labelledby="navbarDropdown">
  164.                   <a class="dropdown-item traduction" href="{{ path('app_change_locale', { '_locale': app.session.get('_locale') == 'ar_TN' ? 'fr' : 'ar_TN' }) }}"><img src="{{ app.session.get('_locale') == 'ar_TN' ? asset('images/france (1).png') : asset('images/tunisia.png') }}" alt="" style="width: 30px;" /></a>
  165.                 </div>
  166.               </li>
  167.             </ul>
  168.           {% endif %}
  169.         </div>
  170.       </nav>
  171.     </div>
  172.     {% block body %}
  173.     {% endblock %}
  174.     {% block modals %}
  175.     {% endblock %}
  176.     <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
  177.     <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  178.     {# <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> #}
  179.     <script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" integrity="sha512-bPs7Ae6pVvhOSiIcyUClR7/q2OAsRiovw4vAkX+zJbw3ShAeeqezq50RIIcIURq7Oa20rW2n2q+fyXBNcU9lrw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  180.     <script src="{{ asset('js/script.js') }}"></script>
  181.     <script src="{{ asset('js/script-faq.js') }}"></script>
  182.     <script src="https://cdn.datatables.net/1.13.1/js/jquery.dataTables.min.js"></script>
  183.     <!-- Include jQuery -->
  184.     <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  185.     <script src="{{ asset('js/escape-html.js') }}"></script>
  186.     <script src="{{ asset('js/csrf-setup.js') }}"></script>
  187.     {% block javascripts %}
  188.       <script>
  189.         $(document).ready(function () {
  190.           $.ajax({
  191.             url: "{{ path('count_command_article_by_user') }}",
  192.             type: 'GET',
  193.             dataType: 'json',
  194.             success: function (response) {
  195.               if (response.count > 0) {
  196.                 $('#notifCartSpan').html(`<i id="notifCart" aria-hidden="true" 
  197.                                                                                                                                                                                                                                                                       style=" padding-left: -70px !important; font-size: 12px;"><strong style="color:white !important">${response.count}</strong></i>`)
  198.               } else {
  199.                 $('#notifCartSpan').html('')
  200.               }
  201.             }
  202.           })
  203.         
  204.           $.ajax({
  205.             url: "{{ path('count_notification_by_user') }}",
  206.             type: 'GET',
  207.             dataType: 'json',
  208.             success: function (response) {
  209.               if (response.count > 0) {
  210.                 $('.notification_count').html(`<strong class="notification-dot" >${response.count}</strong>`)
  211.               } else {
  212.                 $('.notification_count').html('')
  213.               }
  214.             }
  215.           })
  216.         })
  217.         
  218.         document.addEventListener('DOMContentLoaded', function () {
  219.           // Ajoutez un écouteur d'événements pour chaque lien du menu
  220.           document.querySelectorAll('.nav-item a').forEach(function (link) {
  221.             link.addEventListener('click', function (e) {
  222.               // Supprimez la classe 'current' de tous les éléments du menu
  223.               document.querySelectorAll('.nav-item').forEach(function (item) {
  224.                 item.classList.remove('current')
  225.               })
  226.         
  227.               // Ajoutez la classe 'current' à l'élément du menu correspondant
  228.               link.closest('.nav-item').classList.add('current')
  229.         
  230.               // Stockez l'ID de la section actuelle dans localStorage
  231.               localStorage.setItem('currentSection', link.closest('.nav-item').id)
  232.             })
  233.           })
  234.         
  235.           // Lorsque la page est chargée, vérifiez la section actuelle et mettez à jour le menu en conséquence
  236.           highlightCurrentSection()
  237.         })
  238.         
  239.         // Fonction pour mettre en surbrillance la section actuelle dans le menu
  240.         function highlightCurrentSection() {
  241.           // Récupérez l'ID de la section actuelle depuis localStorage
  242.           var currentSectionId = localStorage.getItem('currentSection')
  243.         
  244.           if (currentSectionId) {
  245.             // Supprimez la classe 'current' de tous les éléments du menu
  246.             document.querySelectorAll('.nav-item').forEach(function (item) {
  247.               item.classList.remove('current')
  248.             })
  249.         
  250.             // Ajoutez la classe 'current' à l'élément du menu correspondant
  251.             document.getElementById(currentSectionId).classList.add('current')
  252.           }
  253.         }
  254.       </script>
  255.     {% endblock %}
  256.   </body>
  257. </html>