templates/base.html.twig line 1

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