templates/front/seminaire_nat.html.twig line 1

Open in your IDE?
  1. {% extends 'front.html.twig' %}
  2. {% block title %}Séminaires nationaux | CIMEF-INTERNATIONAL{% endblock %}
  3. {% block styleSheets %}
  4. <style id='wp-emoji-styles-inline-css' type='text/css'>
  5. .search_archive_event{
  6.     border: 1px solid white !important;
  7. }
  8. .shadow{
  9.     box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1), 0 3px 10px 0 rgba(0, 0, 0, 0.10);
  10. }
  11. .form-control{
  12.     width:100%;
  13.     height: auto;
  14.     padding:10px;
  15.     border-radius:1px !important;
  16.     font-family: arial;
  17.     margin: 10px;
  18.     border:1px solid #ccc;
  19. }
  20. .row {
  21.     display: flex;            /* flexbox pour aligner les colonnes */
  22.     flex-wrap: wrap;          /* les colonnes passent à la ligne si nécessaire */
  23.     margin-right: -0.75rem;   /* -gutter/2 */
  24.     margin-left: -0.75rem;    /* -gutter/2 */
  25. }
  26. .events_pagination ul.pagination {
  27.     display: flex;
  28.     flex-wrap: wrap;
  29.     justify-content: center !important;
  30.     list-style: none;
  31.     margin: 0;
  32.     padding: 0;
  33. }
  34. .page-item.active .page-link {
  35.     background-color: #ff6600;
  36.     color: #fff;
  37. }
  38. .page-link {
  39.     margin: 10px;
  40.     color: #051a53;
  41.     background-color: #ededed;
  42.     border-radius: 5px;
  43.     padding: 10px;
  44.     /* margin: 0 3px; */
  45. }
  46. .text-lien{
  47.    color: #ff6600;
  48.    font-size: 16px;
  49. }
  50. /* Small devices ≥576px */
  51. @media (min-width: 576px) {
  52.   .col-3 { flex: 0 0 100%; max-width: 100%; }
  53.   .col-sm-4 { flex: 0 0 100%; max-width: 100%; }
  54.   .col-sm-6 { flex: 0 0 100%; max-width: 100%; }
  55.   .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
  56. }
  57. /* Medium devices ≥768px */
  58. @media (min-width: 768px) {
  59.   .col-md-3 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  60.   .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  61.   .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  62.   .col-md-12 { flex: 0 0 100%; max-width: 100%; }
  63. }
  64. /* Large devices ≥992px */
  65. @media (min-width: 992px) {
  66.   .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
  67.   .col-lg-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  68.   .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
  69.   .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
  70. }
  71. .type1 .date-event {
  72.     transition: all 0.5s ease;
  73.     position: absolute;
  74.     bottom: 20px;
  75.     left: 30px;
  76.     z-index: 1;
  77.     font-size: 12px;
  78.     color: #fff;
  79.     font-weight: 700;
  80.     text-transform: uppercase;
  81.     text-align: center;
  82.     line-height: 1.3;
  83.     letter-spacing: 1px;
  84.     background-color: #ff6600 !important;
  85.     padding: 12px;
  86. }
  87. .icon_event{
  88.     color: #ff6600 !important;
  89. }
  90. .wrap_header_banner .overlay-slider {
  91.     position: absolute;
  92.     top: 0;
  93.     left: 0;
  94.     padding-top: 30px; 
  95.     width: 100%;
  96.     height: 100%;
  97.     background-color: rgba(0, 0, 0, 0.6392156863);
  98. }
  99. #recherche_mot {
  100.     border: 2px solid #ff6600 !important;
  101.     border-radius: 8px !important;
  102.     height: 45px !important;
  103.     padding: 10px !important;
  104.     width: 95% !important;
  105. }
  106. </style>
  107. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  108. {% endblock %}
  109. {% block body %}
  110. {% include 'section/navbar.html.twig' %}
  111. <div class="wrap_header_banner" style="height: 200px; background: url({{ asset('public/inter/wp-content/uploads/2023/06/header-banner.jpg')}});">
  112.     <div class="overlay-slider">
  113.         <div class="row_site">
  114.             <div class="container_site">
  115.                 <div class="cover_color"></div>
  116.                 <div class="header_banner_el">
  117.                     <div class="header_breadcrumbs">
  118.                         <div id="breadcrumbs">
  119.                         <ul class="breadcrumb">
  120.                             <li><a href="{{ path('front.inter.index') }}" style="color: #fff!important;" title="accueil">Accueil</a></li>
  121.                             <li class="li_separator"><span class="separator"><i class="ovaicon-next" style="color: #fff!important;"></i></span></li>
  122.                             <li style="color: #fff!important;">Formations</li>
  123.                             <li class="li_separator"><span class="separator"><i class="ovaicon-next" style="color: #fff!important;"></i></span></li>
  124.                             <li style="color: #fff!important;">Séminaires Nationaux</li>
  125.                         </ul>
  126.                         </div>
  127.                     </div>
  128.                     <h1 class="header_title" style="color: #fff!important;">Séminaires Nationaux </h1>
  129.                 </div>
  130.             </div>
  131.         </div>
  132.     </div>
  133. </div>
  134. {% for message in app.flashes('success') %}
  135. <div class="row toast_success" style="top: 100px !important; float: right !important; position: absolute;">
  136.     <div class="col-md-2 col-sm-2" style="padding: 10px;">
  137.         <i class="fa fa-check fa-2x" aria-hidden="true"></i>
  138.     </div>
  139.     <div class="col-md-10 col-sm-10" style="padding: 10px;">
  140.         <label style="font-family: arial;">{{ message }}</label>
  141.     </div>
  142. </div>    
  143. {% endfor %}
  144. {% for message in app.flashes('danger') %}
  145. <div class="row toast_danger" style="top: 100px !important; float: right !important; position: absolute;">
  146.     <div class="col-md-2 col-sm-2" style="padding: 10px;">
  147.         <i class="fa fa-check fa-2x" aria-hidden="true"></i>
  148.     </div>
  149.     <div class="col-md-10 col-sm-10" style="padding: 10px;">
  150.         <label style="font-family: arial;">{{ message }}</label>
  151.     </div>
  152. </div>   
  153. {% endfor %}
  154. <div class="container-event">
  155.     <div id="main-event" class="content-event">
  156.         <div class="search_archive_event mb-4" style="margin-top: -50px !important;">
  157.             {{ form_start(recherche) }}
  158.             <div class="row shadow" style="margin-bottom: 20px !impirtant; width: 100%; padding: 10px !important;
  159.             border: 1px solid #cfcfcf; background-color: #F5F5F5 !important;">
  160.                 <div class="col-md-9 col-sm-12" style="padding: 10px !important;">{{ form_row(recherche.mot) }}</div>
  161.                 <div class="col-md-2 col-sm-12 p-3" style="padding: 10px!important; margin-left: 10px!important; font-family: arial;">{{ form_widget(recherche.submit, {'attr': {'class': 'btn btn-primary btn-large'}}) }}</div>
  162.             </div>
  163.             {{ form_end(recherche) }}
  164.             </div>
  165.         </div>
  166.         
  167.             <div class="row" style="margin-top: -20px;">
  168.             {% if pagination != null %}
  169.                 {% for pag in pagination %}
  170.                 <div class="col-lg-3 col-md-3 col-sm-12" style="padding: 10px;">
  171.                     <div class="type1 mb-2">
  172.                         <div class="desc" style="border-radius: 5px;">
  173.                             <div class="event-thumbnail" style="height: 200px;">
  174.                                <div class="date-event">
  175.                                     <span class="date">{{ annee }}</span>
  176.                                 </div>
  177.                                 {% if pag.image == null or pag.image == 'no-file' %}
  178.                                 <a href="{{ path('front.seminaire.inter.detail',{'slug': pag.theme.slug, 'id': pag.id})}}" aria-label="Event Thumbnail">
  179.                                     <img loading="lazy" width="600" height="400" src="https://demo.ovathemewp.com/gimont/wp-content/uploads/2023/06/event-01-600x400.jpg" 
  180.                                     class="attachment-ovaev_event_thumbnail size-ovaev_event_thumbnail wp-post-image" alt="{{ pag.nom }}" decoding="async" 
  181.                                     srcset="https://demo.ovathemewp.com/gimont/wp-content/uploads/2023/06/event-01-600x400.jpg 600w, https://demo.ovathemewp.com/gimont/wp-content/uploads/2023/06/event-01-450x300.jpg 450w" sizes="(max-width: 600px) 100vw, 600px" />            
  182.                                 </a>
  183.                                 {% else %}
  184.                                     <a href="{{ path('front.seminaire.inter.detail',{'slug': pag.theme.slug, 'id': pag.id})}}" aria-label="Event Thumbnail">
  185.                                         <img loading="lazy" style="height: 300px !important;" src="{{ asset('public/uploads/images/formations/' ~ pag.image) }}" 
  186.                                         class="attachment-ovaev_event_thumbnail size-ovaev_event_thumbnail wp-post-image" alt="{{ pag.theme.nom }}" decoding="async" 
  187.                                         srcset="{{ asset('public/uploads/images/formations/' ~ pag.image) }}" sizes="(max-width: 600px) 100vw, 600px" />            
  188.                                     </a>
  189.                                 {% endif %}
  190.                             </div>
  191.                             <div class="event_post" style="height: 300px;">
  192.                                 <div class="meta-event">
  193.                                     <div class="time equal-date" style="height: 35px;">
  194.                                         <span class="icon-time">
  195.                                             <i class="fas fa-clock icon_event" aria-hidden="true"></i>
  196.                                         </span>
  197.                                         <span class="time-date-child">
  198.                                             <span class="date-child">{{ pag.getDatesSession}}    {{ annee }}</span>
  199.                                         </span>
  200.                                     </div>
  201.                                     <div class="venue">
  202.                                         <i class="fas fa-map-marker-alt icon_event" aria-hidden="true"></i>
  203.                                         <span class="number">
  204.                                         {{ pag.ville.nom  }}, {{ pag.ville.pays }}    </span>
  205.                                     </div>
  206.                                 </div>
  207.                                 <div style="height: 100px;">
  208.                                     <label class="second_font event_title" style="font-weight: bold; font-size: 14px !important;">
  209.                                         {% if pag.theme.nom|striptags|length > 50 %}
  210.                                             {{ pag.theme.nom|striptags|slice(0, 85) ~ '...' }}
  211.                                         {% else %}
  212.                                             {{ pag.theme.nom|striptags }}
  213.                                         {% endif %}
  214.                                     </label>
  215.                                 </div>
  216.                                 <div style="text-align: right;">
  217.                                     <a class="text-lien" href="{{ path('front.seminaire.nation.detail',{'slug': pag.theme.slug, 'id': pag.id})}}">En savoir plus</a>
  218.                                 </div>
  219.                             
  220.                             </div>
  221.                         </div>
  222.                     </div>
  223.                 </div>
  224.                 {% endfor %}
  225.             {% endif %}
  226.             </div>
  227.         
  228.         <div class="events_pagination justify-content-center mt-4">
  229.             {{ knp_pagination_render(pagination, '@KnpPaginator/Pagination/bootstrap_v5_pagination.html.twig') }}
  230.         </div>
  231.     </div>
  232. </div>
  233. {% include 'section/footer.html.twig' %}
  234. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  235. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  236. <script>
  237. document.addEventListener('DOMContentLoaded', () => {
  238.     const input = document.getElementById('theme-autocomplete');
  239.     let list;
  240.     input.addEventListener('input', async () => {
  241.         if (input.value.length < 2) return;
  242.         const response = await fetch('/ajax/themes?q=' + input.value);
  243.         const data = await response.json();
  244.         if (list) list.remove();
  245.         list = document.createElement('ul');
  246.         list.className = 'list-group position-absolute w-100';
  247.         data.forEach(item => {
  248.             const li = document.createElement('li');
  249.             li.className = 'list-group-item list-group-item-action';
  250.             li.textContent = item.text;
  251.             li.onclick = () => {
  252.                 input.value = item.text;
  253.                 list.remove();
  254.             };
  255.             list.appendChild(li);
  256.         });
  257.         input.parentNode.appendChild(list);
  258.     });
  259.     document.addEventListener('click', () => {
  260.         if (list) list.remove();
  261.     });
  262. });
  263. </script>
  264. <script>
  265. document.addEventListener('DOMContentLoaded', () => {
  266.     // Fonction pour appliquer le style
  267.     function styleMot() {
  268.         const input = document.getElementById('recherche_mot');
  269.         if (!input) return;
  270.         input.classList.add('form-control', 'my-custom-class');
  271.         input.style.border = '2px solid #ff6600';
  272.     }
  273.     styleMot(); // appliqué au chargement
  274.     // Observer les changements dans le DOM pour réappliquer le style si le champ est remplacé
  275.     const observer = new MutationObserver(() => {
  276.         styleMot();
  277.     });
  278.     observer.observe(document.body, {
  279.         childList: true,
  280.         subtree: true
  281.     });
  282.     // Initialiser Select2 seulement sur les select (exclure mot)
  283.     document.querySelectorAll('select').forEach(function (el) {
  284.         $(el).select2({
  285.             width: '100%',
  286.             allowClear: true
  287.         });
  288.     });
  289. });
  290. </script>
  291. {% endblock %}