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