templates/fronts/labo_details.html.twig line 1

  1. {% extends 'base_front.html.twig' %}
  2. {% block title %}{{ labo.nomLong }}{% endblock %}
  3. {% block body %}
  4. <section id="ldc-lab" class="section bg-light">
  5.     <!-- En-tête avec image de fond -->
  6.     <div class="hero-section" style="background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('/front/images/background-details.avif'); background-size: cover; background-position: center;">
  7.         <div class="container py-5 text-center text-white">
  8.             <h1 class="display-4 fw-bold mb-3 text-white">{{ labo.nomLong }}</h1>
  9.             <p class="lead">{{ labo.nomCourt }}</p>
  10.             <div class="lab-badge bg-coral text-white d-inline-block px-4 py-2 rounded-pill">
  11.                 <span class="me-2">{{ labo.type == 1 ? 'Unite': labo.type == 2 ? ' Laboratoire':'Unité de service commun'}}</span> 
  12.             </div>
  13.         </div>
  14.     </div>
  15.     <!-- Contenu principal -->
  16.     <div class="container py-5">
  17.         <div class="row">
  18.             <!-- Colonne principale -->
  19.             <div class="col-lg-8">
  20.                 <!-- À propos -->
  21.                 <div class="card shadow-sm mb-4">
  22.                     <div class="card-body">
  23.                         <div class="d-flex align-items-center mb-4">
  24.                             <div class="icon-box bg-coral text-white rounded-circle me-3">
  25.                                 <i class="fas fa-university"></i>
  26.                             </div>
  27.                             <h2 class="h4 mb-0">Présentation </h2>
  28.                         </div>
  29.                         
  30.                         <div class="lab-info mb-4">
  31.                             {{ labo.description|raw }}
  32.                         </div>
  33.                     </div>
  34.                 </div>
  35.                 
  36.                 
  37.             </div>
  38.             
  39.             <!-- Colonne latérale -->
  40.             <div class="col-lg-4">
  41.                 <!-- Galerie Slider -->
  42.                 {% if labo.image1  or labo.image2 or labo.image3 %}
  43.                     <div class="card shadow-sm mb-4">
  44.                         <div class="card-body">
  45.                             <h5 class="card-title text-center mb-4"><i class="fas fa-camera me-2"></i>Galerie</h5>
  46.                             <div class="gallery-slider position-relative">
  47.                                 <!-- Slider principal -->
  48.                                 <div class="swiper main-slider">
  49.                                     <div class="swiper-wrapper">
  50.                                         {% if labo.image1 %}
  51.                                             <!-- Slide 1 -->
  52.                                             <div class="swiper-slide">
  53.                                                 <a href="/upload/structures/{{ labo.image1 }}" data-lightbox="gallery">
  54.                                                     <img src="/upload/structures/{{ labo.image1 }}" alt="{{ labo.nomCourt }}" class="img-fluid rounded">
  55.                                                     <div class="slide-caption p-3">{{ labo.nomCourt }}</div>
  56.                                                 </a>
  57.                                             </div>
  58.                                         {% endif  %}
  59.                                         {% if labo.image2 %}
  60.                                             <!-- Slide 2 -->
  61.                                             <div class="swiper-slide">
  62.                                                 <a href="/upload/structures/{{ labo.image2 }}" data-lightbox="gallery">
  63.                                                     <img src="/upload/structures/{{ labo.image2 }}" alt="{{ labo.nomCourt }}" class="img-fluid rounded">
  64.                                                     <div class="slide-caption p-3">{{ labo.nomCourt }}</div>
  65.                                                 </a>
  66.                                             </div>
  67.                                         {% endif  %}
  68.                                         {% if labo.image3 %}
  69.                                             <!-- Slide 3 -->
  70.                                             <div class="swiper-slide">
  71.                                                 <a href="/upload/structures/{{ labo.image3 }}" data-lightbox="gallery">
  72.                                                     <img src="/upload/structures/{{ labo.image3 }}" alt="{{ labo.nomCourt }}" class="img-fluid rounded">
  73.                                                     <div class="slide-caption p-3">{{ labo.nomCourt }}</div>
  74.                                                 </a>
  75.                                             </div>
  76.                                         {% endif  %}
  77.                                     </div>
  78.                                     <!-- Pagination -->
  79.                                     <div class="swiper-pagination"></div>
  80.                                     <!-- Navigation -->
  81.                                     <div class="swiper-button-next"></div>
  82.                                     <div class="swiper-button-prev"></div>
  83.                                 </div>
  84.                             </div>
  85.                         </div>
  86.                     </div>
  87.                 {% endif  %}  
  88.                 <!-- Statistiques -->
  89.                 <div class="card shadow-sm mb-4">
  90.                     <div class="card-body">
  91.                         <h5 class="card-title text-center mb-4"><i class="fas fa-chart-bar me-2"></i>Chiffres clés</h5>
  92.                        {#<div class="stats-grid">
  93.                             <a href="{{ path('app_chercheurs', {'idStructure': labo.id}) }}" class="stat-item text-center py-3">
  94.                                 <div class="stat-value display-5 fw-bold text-coral">{{ nbrChercheurs }}</div>
  95.                                 <div class="stat-label text-coral">Chercheurs</div>
  96.                             </a>
  97.                             <a href="#" class="stat-item text-center py-3">
  98.                                 <div class="stat-value display-5 fw-bold text-coral">{{ nbrPublications }}</div>
  99.                                 <div class="stat-label text-coral">Publications</div>
  100.                             </a>
  101.                             <a href="{{ path('app_projets', {'idStructure': labo.id}) }}" class="stat-item text-center py-3">
  102.                                 <div class="stat-value display-5 fw-bold text-coral">{{ nbrProjet }}</div>
  103.                                 <div class="stat-label text-coral">Projets</div>
  104.                             </a>
  105.                         </div>#}
  106.                         <div class="stats-grid">
  107.                             <!-- Chercheurs Block -->
  108.                             <a href="{{ path('app_chercheurs', {'idStructure': labo.id}) }}" class="stat-item">
  109.                                 <div class="stat-content">
  110.                                     <div class="stat-value">{{ nbrChercheurs }}</div>
  111.                                     <div class="stat-label">Chercheurs</div>
  112.                                 </div>
  113.                                 <div class="stat-chiffre-icon">
  114.                                     <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  115.                                         <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
  116.                                         <circle cx="9" cy="7" r="4"></circle>
  117.                                         <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
  118.                                         <path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
  119.                                     </svg>
  120.                                 </div>
  121.                             </a>
  122.                             <!-- Projets Block -->
  123.                             <a href="{{ path('app_projets', {'idStructure': labo.id}) }}" class="stat-item">
  124.                                 <div class="stat-content">
  125.                                     <div class="stat-value">{{ nbrProjet }}</div>
  126.                                     <div class="stat-label">Projets</div>
  127.                                 </div>
  128.                                 <div class="stat-chiffre-icon">
  129.                                     <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  130.                                         <polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
  131.                                         <polyline points="2 17 12 22 22 17"></polyline>
  132.                                         <polyline points="2 12 12 17 22 12"></polyline>
  133.                                     </svg>
  134.                                 </div>
  135.                             </a>
  136.                             
  137.                             
  138.                             <!-- Publications Block -->
  139.                             <a href="#" class="stat-item">
  140.                                 <div class="stat-content">
  141.                                     <div class="stat-value">{{ nbrPublications }}</div>
  142.                                     <div class="stat-label">Publications</div>
  143.                                 </div>
  144.                                 <div class="stat-chiffre-icon">
  145.                                     <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  146.                                         <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
  147.                                         <polyline points="14 2 14 8 20 8"></polyline>
  148.                                         <line x1="16" y1="13" x2="8" y2="13"></line>
  149.                                         <line x1="16" y1="17" x2="8" y2="17"></line>
  150.                                         <polyline points="10 9 9 9 8 9"></polyline>
  151.                                     </svg>
  152.                                 </div>
  153.                             </a>
  154.                             
  155.                             
  156.                         </div>
  157.                     </div>
  158.                 </div>
  159.                 
  160.                 <!-- Contact -->
  161.                 <div class="card shadow-sm mb-4">
  162.                     <div class="card-body">
  163.                         <h5 class="card-title text-center mb-4"><i class="fas fa-envelope me-2"></i>Contact</h5>
  164.                         <ul class="contact-list list-unstyled">
  165.                             <li class="mb-3">
  166.                                 <div class="d-flex">
  167.                                     <div class="contact-icon bg-light-coral text-coral rounded-circle me-3">
  168.                                         <i class="fas fa-university"></i>
  169.                                     </div>
  170.                                     <div>
  171.                                         <strong>{{ labo.etablissement.nomLong }}</strong>
  172.                                     </div>
  173.                                 </div>
  174.                             </li>
  175.                             <li class="mb-3">
  176.                                 <div class="d-flex">
  177.                                     <div class="contact-icon bg-light-coral text-coral rounded-circle me-3">
  178.                                         <i class="fas fa-globe"></i>
  179.                                     </div>
  180.                                     <div>
  181.                                         <a href="{{ labo.siteWeb }}" target="_blank">{{ labo.siteWeb }}</a>
  182.                                     </div>
  183.                                 </div>
  184.                             </li>
  185.                             <li class="mb-3">
  186.                                 <div class="d-flex">
  187.                                     <div class="contact-icon bg-light-coral text-coral rounded-circle me-3">
  188.                                         <i class="fas fa-at"></i>
  189.                                     </div>
  190.                                     <div>
  191.                                         <a href="mailto:{{ labo.email }}">{{ labo.email }}</a>
  192.                                     </div>
  193.                                 </div>
  194.                             </li>
  195.                             <li>
  196.                                 <div class="d-flex">
  197.                                     <div class="contact-icon bg-light-coral text-coral rounded-circle me-3">
  198.                                         <i class="fas fa-map-marker-alt"></i>
  199.                                     </div>
  200.                                     <div>{{ labo.adresse }}
  201.                                     </div>
  202.                                 </div>
  203.                             </li>
  204.                         </ul>
  205.                     </div>
  206.                 </div>
  207.                 
  208.               
  209.         
  210.             </div>
  211.         </div>
  212.     </div>
  213. </section>
  214. <script>
  215. document.addEventListener('DOMContentLoaded', function() {
  216.     // Initialisation du slider principal
  217.     const mainSlider = new Swiper('.main-slider', {
  218.         loop: true,
  219.         autoplay: {
  220.             delay: 5000,
  221.             disableOnInteraction: false,
  222.         },
  223.         pagination: {
  224.             el: '.swiper-pagination',
  225.             clickable: true,
  226.         },
  227.         navigation: {
  228.             nextEl: '.swiper-button-next',
  229.             prevEl: '.swiper-button-prev',
  230.         },
  231.     });
  232.     
  233.     
  234.     
  235.     // Synchronisation des sliders
  236.     mainSlider.controller.control = thumbnailSlider;
  237.     
  238.     // Lightbox pour les images
  239.     lightbox.option({
  240.         'resizeDuration': 200,
  241.         'wrapAround': true,
  242.         'albumLabel': 'Image %1 sur %2'
  243.     });
  244. });
  245. </script>
  246. {% endblock %}