templates/front/index.html.twig line 1

Open in your IDE?
  1. {% extends 'front/base_front.html.twig' %}
  2. {% block stylesheets %} 
  3.  <link rel="stylesheet" href="{{ asset('/css/index.css') }}">
  4.  <link  rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"  />
  5. {% endblock %}
  6. {% block menu %}
  7.     {% include('include/menu.html.twig') %}
  8.     
  9. {% endblock %}
  10. {% block container %}
  11.         <!-- Carousel Start -->
  12.         <div class="container-fluid p-0 mb-5 wow fadeIn" data-wow-delay="0.1s">
  13.             <div id="header-carousel" class="carousel slide" data-bs-ride="carousel">
  14.                 <div class="carousel-inner">
  15.                     {% for slide in slides %}
  16.                         {% if slide.isPublic == 1 %}
  17.                             <div class="carousel-item {{  loop.index == 1 ? "active" : "" }}">
  18.                                     <img class="w-100" id="img-slide" src="uploads/background/{{ slide.image}}" alt="Image">
  19.                                     <div class="carousel-caption">
  20.                                         <div class="container">
  21.                                             <div class="row justify-content-start">
  22.                                                 <div class="col-lg-7">
  23.                                                  {% if  app.request.getLocale()  == 'fr' %}
  24.                                                     <h4 class="mb-5 mt-5 animated slideInDown">{{ slide.content}} </h4>
  25.                                                  {% else %}
  26.                                                     <h4 class="mb-5 mt-5 animated slideInDown direction_rtl">{{ slide.getContentTranslate()}} </h4>
  27.                                                 {% endif %}
  28.                                                 {% if slide.getLinkSlide()  %}
  29.                                                     <a class="main-btn" target="_blank" href="{{ slide.getLinkSlide() }}">
  30.                                                         {% trans %} Voir_plus {% endtrans %}
  31.                                                     </a>
  32.                                                 {% endif %}
  33.                                                 </div>
  34.                                             </div>
  35.                                         </div>
  36.                                     </div>
  37.                             </div>
  38.                          {% endif %}
  39.                     {% endfor %}
  40.                 </div>
  41.                 <button class="carousel-control-prev" type="button" data-bs-target="#header-carousel" data-bs-slide="prev"  id="prv-carousel">
  42.                     <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  43.                     <span class="visually-hidden">Previous</span>
  44.                 </button>
  45.                 <button class="carousel-control-next" type="button" data-bs-target="#header-carousel" data-bs-slide="next">
  46.                     <span class="carousel-control-next-icon" aria-hidden="true"></span>
  47.                     <span class="visually-hidden">Next</span>
  48.                 </button>
  49.             </div>
  50.         </div>
  51.         <!-- Carousel End -->
  52.         <!-- About platforme Start -->
  53.         {% if  app.request.getLocale()  == 'fr' %}
  54.         <div class="container-xxl py-5">
  55.         {% else %}
  56.         <div class="container-xxl py-5 direction_rtl">
  57.         {% endif %}
  58.             <div class="container">
  59.                 <h2 class="titre-pres">{% trans %}presentation_plateforme{% endtrans %}</h2>
  60.                 <div class="row g-5 align-items-center">
  61.                     <div class="col-lg-6 wow fadeIn" data-wow-delay="0.1s">
  62.                         <div class="about-img position-relative overflow-hidden pe-0">
  63.                             <iframe width="100%" height="315" src="https://www.youtube-nocookie.com/embed/rDNPycKqQ9Q" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  64.                         </div>
  65.                     </div>
  66.                     <div class="col-lg-6 wow fadeIn" data-wow-delay="0.5s">
  67.                         <p class="mb-3 p-3 lineleft">{% trans %} approche_modernisation_processus {% endtrans %}
  68.                              {% trans %} inscription_plateforme_gratuite_ouverte {% endtrans %}.
  69.                              {% trans %} objectif_plateforme{% endtrans %} :</p>
  70.                         <p class="mb-3 p-3 lineleftgray"> {% trans %}ameliorer_echange_communication{% endtrans %}</p>
  71.                         <p class="mb-3 p-3 lineleftgray"> {% trans %}garantir_expérience_personnell_authentique_professionnelle{% endtrans %}</p>
  72.                         <p class="mb-3 p-3 lineleftgray"> {% trans %}contribuer_centraliser_donnee_relative{% endtrans %}</p>
  73.                         <div class="text-right">
  74.                             <a class="btn btn-primary main-btn  py-3 px-5 mt-3" href="#htworks">{% trans %} Voir_plus {% endtrans %} &rarr;
  75.                             </a>
  76.                         </div>
  77.                     </div>
  78.                 </div>
  79.             </div>
  80.         </div>
  81.         <!-- About platforme End -->
  82.         <!-- How it works Start -->
  83.         {% if  app.request.getLocale()  == 'fr' %}
  84.         <div class="container-fluid htwork bg-light my-5 py-6" id="htworks">
  85.         {% else %}
  86.         <div class="container-fluid htwork bg-light my-5 py-6 direction_rtl" id="htworks">
  87.         {% endif %}
  88.             <div class="container">
  89.                 <div class="section-header text-center mx-auto mb-5 wow fadeInUp" data-wow-delay="0.1s" style="max-width: 500px;">
  90.                     <h1 class=" mb-3 upper">{% trans %}comment_ça marche{% endtrans %}</h1>
  91.                     <p>{% trans %} plateforme_facile_utilisation {% endtrans %}</p>
  92.                 </div>
  93.                 <div class="row g-4">
  94.                     <div class="col-lg-3 col-md-6 wow fadeInUp" data-wow-delay="0.1s">
  95.                         <div class=" text-center h-100 p-4 p-xl-5">
  96.                             <img class="img-fluid mb-4" src="{{ asset('css/front/img/icon-1.png') }}" alt="">
  97.                             <p class="mb-4">{% trans %}inscription_gratuite{% endtrans %}</p>
  98.                         </div>
  99.                     </div>
  100.                     <div class="col-lg-3 col-md-6 wow fadeInUp" data-wow-delay="0.3s">
  101.                         <div class=" text-center h-100 p-4 p-xl-5">
  102.                             <img class="img-fluid mb-4" src="{{ asset('css/front/img/icon-2.png') }}" alt="">
  103.                             <p class="mb-4">{% trans %} garantie_confidentialite_données {% endtrans %}</p>
  104.                         </div>
  105.                     </div>
  106.                     <div class="col-lg-3 col-md-6 wow fadeInUp" data-wow-delay="0.5s">
  107.                         <div class=" text-center h-100 p-4 p-xl-5">
  108.                             <img class="img-fluid mb-4" src="{{ asset('css/front/img/icon-3.png') }}" alt="">
  109.                             <p class="mb-4">{% trans %} soumettre_dossier_ligne {% endtrans %}</p>
  110.                         </div>
  111.                     </div>
  112.                     <div class="col-lg-3 col-md-6 wow fadeInUp" data-wow-delay="0.5s">
  113.                         <div class=" text-center h-100 p-4 p-xl-5">
  114.                             <img class="img-fluid mb-4" src="{{ asset('css/front/img/icon-4.png') }}" alt="">
  115.                             <p class="mb-4">{% trans %} suivi_dossier  {% endtrans %}</p>
  116.                         </div>
  117.                     </div>
  118.                 </div>
  119.             </div>
  120.         </div>
  121.         <!-- How it works End -->
  122.         <!-- Forms Start -->
  123.         {% if  app.request.getLocale()  == 'fr' %}
  124.         <div class="container-xxl formContainer bg-white py-5">
  125.         {% else %}
  126.         <div class="container-xxl formContainer bg-white py-5 direction_rtl">
  127.         {% endif %}
  128.             <div class="container">
  129.                 <div class="section-header mb-5 wow fadeInUp" data-wow-delay="0.1s" style="max-width: 500px;">
  130.                     <h2 class=" mb-3">{% trans %}formulaire{% endtrans %}</h2>
  131.                 </div>
  132.                 <div class="container text-center my-3">
  133.    
  134.     <div class="row mx-auto my-auto justify-content-center">
  135.         <input type="hidden" id="dynamicForm" class="dynamicForm" value="{{ Formulaires|length }}"/>
  136.         <div id="recipeCarousel" class="carousel carousel-form slide" data-bs-ride="carousel">
  137.                 <div class="carousel-inner-form" role="listbox"  id="formulaires">
  138.                         <div class="carousel-item active">
  139.                             <div class="col-md-4 formItem card  ">
  140.                                 <div class="p-4">
  141.                                     <h3 class="">{% trans %} formulaire_demande_assistance_technique {% endtrans %}</h3>
  142.                                     <div class=" border-top pt-4">
  143.                                         <p>{% trans %} formulaire_propriétaires_publics_assistance_technique {% endtrans %}}</p>
  144.                                     </div>
  145.                                     <div class="text-center pt-4 btn-remplir" style="margin-bottom:0px !important;">
  146.                                         <a href="{{ ( not app.user or app.user.getCompleted() ) ? path('app_demande_new') : 'javascript:void(0);' }}" class="main-btn text-dark pt-5 {{ ( not app.user or app.user.getCompleted() ) ? '' : 'disabled' }}">
  147.                                             <span >{% trans %} remplir {% endtrans %}</span>
  148.                                             <i class="fa-solid fa-arrow-right"></i>
  149.                                         </a> 
  150.                                     </div>
  151.                                 </div>
  152.                             </div>
  153.                         </div>
  154.                         {% for item in Formulaires %}
  155.                         <div class="carousel-item">
  156.                                 <div class="col-md-4 formItem card   " >
  157.                                     <div class="p-4">
  158.                                         <h3 class="">
  159.                                         {{ item.nom and item.nomAr ? item.nom ~ ' - ' : ( item.nom ?? item.nom )  }}
  160.                                         {{ item.nomAr ?? item.nomAr }}
  161.                                         </h3>
  162.                                         <div class=" border-top pt-4">
  163.                                             <p>
  164.                                                 {{ item.getDescription()|length > 100 ? item.getDescription()|striptags|slice(0, 100) ~ '...' : item.getDescription()| striptags|slice(0, 10) }}
  165.                                             </p>
  166.                                               <div id="div-date-carousel">
  167.                                             <p id="date-carousel"> {% if item.getDateDebut() is not null %}
  168.                                             Date début: {{ item.getDateDebut() | date("d/m/Y")}}
  169.                                             {% endif %}  
  170.                                                 <br>
  171.                                              {% if  item.getDateFin() is not null %}
  172.                                                 Date fin: {{ item.getDateFin() | date("d/m/Y")}}
  173.                                             {% endif %}</p>
  174.                                             </div>
  175.                                         </div>
  176.                                         <div class="text-center pt-4 btn-remplir"  style="margin-bottom:0px !important;">
  177.                                             <a href="{{ ( not app.user or app.user.getCompleted() ) ? path('form_replay', { id : item.getId() } ) : 'javascript:void(0);' }}" class="main-btn text-dark pt-5 {{ ( not app.user or app.user.getCompleted() ) ? '' : 'disabled' }}">
  178.                                                 <span >{% trans %} remplir {% endtrans %} </span>
  179.                                                 <i class="fa-solid fa-arrow-right"></i>
  180.                                             </a>
  181.                                         </div>
  182.                                     </div>
  183.                                 </div>
  184.                         </div>
  185.                         {% endfor %}
  186.                 </div>
  187.                 <a class="carousel-control-prev bg-transparent w-aut" href="#recipeCarousel" role="button" data-bs-slide="prev" id="prv-from">
  188.                     <span class="carousel-control-prev-icon formpre" aria-hidden="true"></span>
  189.                 </a>
  190.                 <a class="carousel-control-next bg-transparent w-aut" href="#recipeCarousel" role="button" data-bs-slide="next">
  191.                     <span class="carousel-control-next-icon formnext" aria-hidden="true"></span>
  192.                 </a>
  193.         </div>
  194.     </div>
  195.     
  196. </div>
  197.                 <div class="row text-right">
  198.                     <div
  199.                         class="col-md-12 ms-auto mt-5 text-right"><a class=" link-btn  py-3 px-5 mt-3" href="{{ ( not app.user or app.user.getCompleted() ) ? path('app_form') : 'javascript:void(0);' }}">{% trans %} voir_formulaire {% endtrans %} </i> </a>
  200.                     </div>
  201.                 </div>
  202.             </div>
  203.         </div>
  204.         <!-- forms End -->
  205.         <!-- About IGPPP  Start -->
  206.         {% if  app.request.getLocale()  == 'fr' %}
  207.         <div class="container-fluid about-igppp bg-light mt-5 py-6">
  208.         {% else %}
  209.         <div class="container-fluid about-igppp bg-light mt-5 py-6 direction_rtl">
  210.         {% endif %}
  211.             <div class="row g-5 align-items-center">
  212.                 <h2 class="p-lg-5">{% trans %} presentation {% endtrans %}</h2>
  213.                 <div class="col-md-6 wow fadeIn" data-wow-delay="0.1s">
  214.                     <iframe width="100%" height="450" src="https://www.youtube.com/embed/QsVuss6n3ak?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  215.                 </div>
  216.                 <div class="col-md-6 p-5  bg-primary  wow fadeIn" data-wow-delay="0.5s">
  217.                     <img class="img-fluid mb-4" src="{{ asset('css/front/img/ppp.png') }}" alt="">
  218.                     <p class="text-white mb-0">
  219.                     {% trans %} content_presentation_igpp {% endtrans %}
  220.                 </div>
  221.             </div>
  222.         </div>
  223.         <!-- About IGPPP End -->
  224.         <div class="container-fluid  call-igppp mt-5 py-6">
  225.             <div class="row flexdisplay">
  226.                 <div class="col-md-3">
  227.                     <svg xmlns="http://www.w3.org/2000/svg" width="415.313" height="164.906" viewbox="0 0 415.313 164.906">
  228.                         <g id="Groupe_12854" data-name="Groupe 12854" transform="translate(-1170.631 -939.989)">
  229.                             <g id="Groupe_11527" data-name="Groupe 11527" transform="translate(1431.954 939.99)">
  230.                                 <path id="Tracé_26255" data-name="Tracé 26255" d="M499.465,296.755h17.456V285.79a83.563,83.563,0,0,1-17.456,5.818Z" transform="translate(-499.465 -131.85)" fill="#fff"/>
  231.                                 <path id="Tracé_26256" data-name="Tracé 26256" d="M576.462,207.489a77.081,77.081,0,0,0-77,76.987v48.782a52.676,52.676,0,0,0,25.24-19.469,59.434,59.434,0,1,1,23.541,23.1,86.324,86.324,0,0,1-12.48,12.824,76.946,76.946,0,1,0,40.7-142.221Z" transform="translate(-499.465 -207.489)" fill="#fff"/>
  232.                             </g>
  233.                             <path id="Tracé_26257" data-name="Tracé 26257" d="M443.542,207.489a77.081,77.081,0,0,0-77,76.987c0,.685.036,1.362.053,2.044h-.053v85.873H384V333.237a76.976,76.976,0,1,0,59.538-125.748Zm0,136.523a59.539,59.539,0,1,1,59.533-59.537A59.606,59.606,0,0,1,443.542,344.012Z" transform="translate(804.088 732.5)" fill="#fff"/>
  234.                             <path id="Tracé_26258" data-name="Tracé 26258" d="M592.728,242.339a52.239,52.239,0,0,0-12.6,12.818,59.465,59.465,0,1,1-23.535-23.088,85.358,85.358,0,0,1,12.476-12.824,76.845,76.845,0,0,0-117.693,65.231c0,.685.088,1.358.1,2.044h-.1v85.873h17.46v-39.17a76.93,76.93,0,0,0,123.894-90.885Z" transform="translate(886.034 732.5)" fill="#c00020"/>
  235.                         </g>
  236.                     </svg>
  237.                 </div>
  238.                 <div class="col-md-6 text-light">
  239.                     <span class="CloudTag"></span>
  240.                 </div>
  241.                 <div class="col-md-3 align-self-center">
  242.                     <a href="mailto:contact@igppp.tn" class="main-btn">{% trans %}Contactez-Nous{% endtrans %}</a>
  243.                 </div>
  244.             </div>
  245.         </div>
  246.         <!-- Footer Start -->
  247.         {% if  app.request.getLocale()  == 'fr' %}
  248.         <div class="container-fluid footer mt-5 pt-5  wow fadeIn" data-wow-delay="0.1s">
  249.         {% else %}
  250.         <div class="container-fluid footer mt-5 pt-5  wow fadeIn direction_rtl" data-wow-delay="0.1s">
  251.         {% endif %}
  252.             <div class="container ">
  253.                 <div class="row g-5 pb-5">
  254.                     <div class="col-lg-4 col-md-4">
  255.                         <img src="{{ asset('css/front/img/igppfinallogo/logo-fr.png') }}" alt="" style="width:60%">
  256.                     </div>
  257.                     <div class="col-lg-4 col-md-4 contact">
  258.                         <h5 class=" mb-4">{% trans %}Contactez-Nous{% endtrans %}</h5>
  259.                         <p>
  260.                             <i class="fa fa-map-marker-alt me-3"></i>{% trans %}Adresse : 36, rue Zambritta, Cité Les Pins, les Berges du Lac II, 1053, Tunis{% endtrans %}</p>
  261.                         <p>
  262.                             <i class="fa fa-phone-alt me-3"></i>{% trans %}Téléphone : +216 71 268 316{% endtrans %}</p>
  263.                         <p>
  264.                             <i class="fa fa-fax me-3" aria-hidden="true"></i>{% trans %}Fax : +216 71 268 310{% endtrans %}
  265.                         </p>
  266.                     
  267.                         <p>
  268.                             <i class="fa fa-envelope me-3"></i>{% trans %}Mail : contact@igppp.tn{% endtrans %}
  269.                         </p>
  270.                     </div>
  271.                     <div class="col-lg-4 col-md-4 text-dark contact">
  272.                         <h5 class=" mb-4">{% trans %}Suivez Nous sur{% endtrans %}</h5>
  273.                         <div class="position-relative mx-auto socialIcon mt-5" style="max-width: 400px;">
  274.                             <a href="https://www.facebook.com/igppp" target="_blank">
  275.                                 <i class="fab fa-facebook-f"></i>
  276.                             </a>
  277.                             <a href="https://tn.linkedin.com/company/i-g-p-p-p" target="_blank">
  278.                                 <i class="fab fa-linkedin"></i>
  279.                             </a>
  280.                             <a href="https://www.youtube.com/channel/UCYoQYLBJSPxcxjg4ohe6aPA" target="_blank">
  281.                                 <i class="fab fa-youtube"></i>
  282.                             </a>
  283.                         </div>
  284.                     </div>
  285.         </div>
  286.     </div>
  287.     <div class="container-fluid copyright">
  288.         <div class="container">
  289.             <div class="row">
  290.                 <div class="col-md-6 text-center mb-3 bottomFotter mb-md-0 ">{% trans %}tous_droits_reserves {% endtrans %} &copy; 2022
  291.                     <a href="#">{% trans %}IGPPP{% endtrans %}</a>
  292.                 </div>
  293.                 <div class="col-md-6 text-center">
  294.                     <a href="">{% trans %}Mentions Légales |{% endtrans %}</a>
  295.                     <a href="">{% trans %}Conditions générales d'utilisation{% endtrans %}</a>
  296.                 </div>
  297.             </div>
  298.         </div>
  299.     </div>
  300. {% endblock %}
  301. {% block javascripts %}
  302.     <script>
  303.         $('.card-remplir').mouseover(function () {
  304.             $(this).find('a').addClass('RedBtn');
  305.             $(this).find('h3').addClass('whText');
  306.         });
  307.         $('.card-remplir').mouseout(function () {
  308.             $(this).find('a').removeClass('RedBtn');
  309.             $(this).find('h3').removeClass('whText');
  310.         });
  311.     </script>
  312.     <script>
  313.         let items = document.querySelectorAll('.carousel-form .carousel-item')
  314.         if ( $("#dynamicForm").val() >= 2 ){
  315.             items.forEach((el) => {
  316.                 const minPerSlide = 3;
  317.                 let next = el.nextElementSibling
  318.                 for (var i=1; i<minPerSlide; i++) {
  319.                     if (!next) {
  320.                         // wrap carousel by using first child
  321.                         next = items[0]
  322.                     }
  323.                     let cloneChild = next.cloneNode(true)
  324.                     el.appendChild(cloneChild.children[0])
  325.                     next = next.nextElementSibling
  326.                 }
  327.             })
  328.         }else{
  329.             $('.carousel-form .carousel-item').addClass('active').css({ 'display' : 'contents', 'margin-right' : 'auto'});
  330.             $('.carousel-inner-form').css('display', 'flex');
  331.         }
  332.     </script>
  333. {% endblock %}