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/table.jpeg')}});        
  112.         background-size: cover;
  113.         background-position: center;
  114.         background-repeat: no-repeat;">
  115.     <div class="overlay-slider">
  116.         <div class="row_site">
  117.             <div class="container_site">
  118.                 <div class="cover_color"></div>
  119.                 <div class="header_banner_el">
  120.                     <div class="header_breadcrumbs">
  121.                         <div id="breadcrumbs">
  122.                         <ul class="breadcrumb">
  123.                             <li><a href="{{ path('front.inter.index') }}" style="color: #fff!important;" title="accueil">Accueil</a></li>
  124.                             <li class="li_separator"><span class="separator"><i class="ovaicon-next" style="color: #fff!important;"></i></span></li>
  125.                             <li style="color: #fff!important;">Formations</li>
  126.                             <li class="li_separator"><span class="separator"><i class="ovaicon-next" style="color: #fff!important;"></i></span></li>
  127.                             <li style="color: #fff!important;">Séminaires Nationaux</li>
  128.                         </ul>
  129.                         </div>
  130.                     </div>
  131.                     <h1 class="header_title" style="color: #fff!important;">Séminaires Nationaux </h1>
  132.                 </div>
  133.             </div>
  134.         </div>
  135.     </div>
  136. </div>
  137. {% for message in app.flashes('success') %}
  138. <div class="row toast_success" style="top: 100px !important; float: right !important; position: absolute;">
  139.     <div class="col-md-2 col-sm-2" style="padding: 10px;">
  140.         <i class="fa fa-check fa-2x" aria-hidden="true"></i>
  141.     </div>
  142.     <div class="col-md-10 col-sm-10" style="padding: 10px;">
  143.         <label style="font-family: arial;">{{ message }}</label>
  144.     </div>
  145. </div>    
  146. {% endfor %}
  147. {% for message in app.flashes('danger') %}
  148. <div class="row toast_danger" style="top: 100px !important; float: right !important; position: absolute;">
  149.     <div class="col-md-2 col-sm-2" style="padding: 10px;">
  150.         <i class="fa fa-check fa-2x" aria-hidden="true"></i>
  151.     </div>
  152.     <div class="col-md-10 col-sm-10" style="padding: 10px;">
  153.         <label style="font-family: arial;">{{ message }}</label>
  154.     </div>
  155. </div>   
  156. {% endfor %}
  157. <div class="container-event">
  158.     <div id="main-event" class="content-event">
  159.         <div class="search_archive_event mb-4" style="margin-top: -50px !important;">
  160.             {{ form_start(recherche) }}
  161.             <div class="row shadow" style="margin-bottom: 20px !impirtant; width: 100%; padding: 10px !important;
  162.             border: 1px solid #cfcfcf; background-color: #F5F5F5 !important;">
  163.                 <div class="col-md-9 col-sm-12" style="padding: 10px !important;">{{ form_row(recherche.mot) }}</div>
  164.                 <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>
  165.             </div>
  166.             {{ form_end(recherche) }}
  167.             </div>
  168.         </div>
  169.         
  170.             <div class="row" style="margin-top: -20px;">
  171.             {% if pagination != null %}
  172.                 {% for pag in pagination %}
  173.                 <div class="col-lg-3 col-md-3 col-sm-12" style="padding: 10px;">
  174.                     <div class="type1 mb-2">
  175.                         <div class="desc" style="border-radius: 5px;">
  176.                             <div class="event-thumbnail" style="height: 200px;">
  177.                                <div class="date-event">
  178.                                     <span class="date">{{ annee }}</span>
  179.                                 </div>
  180.                                 {% if pag.image == null or pag.image == 'no-file' %}
  181.                                 <a href="{{ path('front.seminaire.inter.detail',{'slug': pag.theme.slug, 'id': pag.id})}}" aria-label="Event Thumbnail">
  182.                                     <img loading="lazy" width="600" height="400" src="https://demo.ovathemewp.com/gimont/wp-content/uploads/2023/06/event-01-600x400.jpg" 
  183.                                     class="attachment-ovaev_event_thumbnail size-ovaev_event_thumbnail wp-post-image" alt="{{ pag.nom }}" decoding="async" 
  184.                                     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" />            
  185.                                 </a>
  186.                                 {% else %}
  187.                                     <a href="{{ path('front.seminaire.inter.detail',{'slug': pag.theme.slug, 'id': pag.id})}}" aria-label="Event Thumbnail">
  188.                                         <img loading="lazy" style="height: 300px !important;" src="{{ asset('public/uploads/images/formations/' ~ pag.image) }}" 
  189.                                         class="attachment-ovaev_event_thumbnail size-ovaev_event_thumbnail wp-post-image" alt="{{ pag.theme.nom }}" decoding="async" 
  190.                                         srcset="{{ asset('public/uploads/images/formations/' ~ pag.image) }}" sizes="(max-width: 600px) 100vw, 600px" />            
  191.                                     </a>
  192.                                 {% endif %}
  193.                             </div>
  194.                             <div class="event_post" style="height: 300px;">
  195.                                 <div class="meta-event">
  196.                                     <div class="time equal-date" style="height: 35px;">
  197.                                         <span class="icon-time">
  198.                                             <i class="fas fa-clock icon_event" aria-hidden="true"></i>
  199.                                         </span>
  200.                                         <span class="time-date-child">
  201.                                             <span class="date-child">{{ pag.getDatesSession}}    {{ annee }}</span>
  202.                                         </span>
  203.                                     </div>
  204.                                     <div class="venue">
  205.                                         <i class="fas fa-map-marker-alt icon_event" aria-hidden="true"></i>
  206.                                         <span class="number">
  207.                                         {{ pag.ville.nom  }}, {{ pag.ville.pays }}    </span>
  208.                                     </div>
  209.                                 </div>
  210.                                 <div style="height: 100px;">
  211.                                     <label class="second_font event_title" style="font-weight: bold; font-size: 14px !important;">
  212.                                         {% if pag.theme.nom|striptags|length > 50 %}
  213.                                             {{ pag.theme.nom|striptags|slice(0, 85) ~ '...' }}
  214.                                         {% else %}
  215.                                             {{ pag.theme.nom|striptags }}
  216.                                         {% endif %}
  217.                                     </label>
  218.                                 </div>
  219.                                 <div style="text-align: right;">
  220.                                     <a class="text-lien" href="{{ path('front.seminaire.nation.detail',{'slug': pag.theme.slug, 'id': pag.id})}}">En savoir plus</a>
  221.                                 </div>
  222.                             
  223.                             </div>
  224.                         </div>
  225.                     </div>
  226.                 </div>
  227.                 {% endfor %}
  228.             {% endif %}
  229.             </div>
  230.         
  231.         <div class="events_pagination justify-content-center mt-4">
  232.             {{ knp_pagination_render(pagination, '@KnpPaginator/Pagination/bootstrap_v5_pagination.html.twig') }}
  233.         </div>
  234.     </div>
  235. </div>
  236. {% include 'section/footer.html.twig' %}
  237. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  238. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  239. <script>
  240. document.addEventListener('DOMContentLoaded', () => {
  241.     const input = document.getElementById('theme-autocomplete');
  242.     let list;
  243.     input.addEventListener('input', async () => {
  244.         if (input.value.length < 2) return;
  245.         const response = await fetch('/ajax/themes?q=' + input.value);
  246.         const data = await response.json();
  247.         if (list) list.remove();
  248.         list = document.createElement('ul');
  249.         list.className = 'list-group position-absolute w-100';
  250.         data.forEach(item => {
  251.             const li = document.createElement('li');
  252.             li.className = 'list-group-item list-group-item-action';
  253.             li.textContent = item.text;
  254.             li.onclick = () => {
  255.                 input.value = item.text;
  256.                 list.remove();
  257.             };
  258.             list.appendChild(li);
  259.         });
  260.         input.parentNode.appendChild(list);
  261.     });
  262.     document.addEventListener('click', () => {
  263.         if (list) list.remove();
  264.     });
  265. });
  266. </script>
  267. <script>
  268. document.addEventListener('DOMContentLoaded', () => {
  269.     // Fonction pour appliquer le style
  270.     function styleMot() {
  271.         const input = document.getElementById('recherche_mot');
  272.         if (!input) return;
  273.         input.classList.add('form-control', 'my-custom-class');
  274.         input.style.border = '2px solid #ff6600';
  275.     }
  276.     styleMot(); // appliqué au chargement
  277.     // Observer les changements dans le DOM pour réappliquer le style si le champ est remplacé
  278.     const observer = new MutationObserver(() => {
  279.         styleMot();
  280.     });
  281.     observer.observe(document.body, {
  282.         childList: true,
  283.         subtree: true
  284.     });
  285.     // Initialiser Select2 seulement sur les select (exclure mot)
  286.     document.querySelectorAll('select').forEach(function (el) {
  287.         $(el).select2({
  288.             width: '100%',
  289.             allowClear: true
  290.         });
  291.     });
  292. });
  293. </script>
  294. {% endblock %}