templates/front/seminaire_inter.html.twig line 1

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