templates/actualités/index.html.twig line 1

  1. {% extends 'site.html.twig' %}
  2. {% block title %}Actualités{% endblock %}
  3. {% block body %}
  4.         <div class="container-fluid bg-primary py-5 bg-header-actu" style="margin-bottom:40px;" id="banner">
  5.             <div class="row py-5">
  6.                 <div class="col-12 pt-lg-5 mt-lg-5 text-center">
  7.                     <h1 class="display-4 text-white animated zoomIn" style="margin-top: 55px">Actualités</h1>
  8.                     <a href="" class="h5 text-white"></a>
  9.                     
  10.                     <a href="" class="h5 text-white"></a>
  11.                 </div>
  12.             </div>
  13.         </div>
  14.     </div>
  15.     <!-- Navbar End -->
  16.  
  17.           
  18.      
  19.     <!-- Blog Start -->
  20.     <div class="container-fluid py-5 wow fadeInUp" data-wow-delay="0.1s">
  21.         <div class="container py-5">
  22.             <div class="row g-5">
  23.                 
  24.                 <div class="col-lg-8">
  25.                     <div class="row g-5">
  26.                     {% for actuality in actualities %}
  27.                         <div class="col-md-6 wow slideInUp" data-wow-delay="0.1s">
  28.                             <div class="blog-item bg-light rounded overflow-hidden">
  29.                                 <div class="blog-img position-relative overflow-hidden">
  30.                                 <img class="img-fluid" src="{{ vich_uploader_asset(actuality, 'imageFile') }}" >
  31.                                     
  32.                                     <a class="position-absolute top-0 start-0 bg-primary text-white rounded-end mt-5 py-2 px-4" href="">{{actuality.categories.name}}</a>
  33.                                 </div>
  34.                                 <div class="p-4">
  35.                                     <div class="d-flex mb-3">
  36.                                       
  37.                                         <small><i class="far fa-calendar-alt text-primary me-2"></i>{{actuality.createdAt|date("d/m/Y ") }}</small>
  38.                                     </div>
  39.                                       <h4 class="mb-3">{{ actuality.title }}</h4>
  40.                                          <p>{{ actuality.text[:150] ~ (actuality.text|length > 150 ? '...' : '') }}</p>
  41.                                             <a class="text-uppercase" href="{{ path('app_article', {'id': actuality.id}) }}">En savoir plus <i class="bi bi-arrow-right"></i></a>
  42.                                 </div>
  43.                             </div>
  44.                         </div>
  45.                            {% else %}
  46.            
  47.                <center> <h4>Aucun articles trouvés</h4> </center>
  48.             
  49.         {% endfor %}
  50.                      
  51.                     </div>
  52.                 </div>
  53.                 <!-- Blog list End -->
  54.     
  55.                 <!-- Sidebar Start -->
  56.                 <div class="col-lg-4">
  57.                     <!-- Search Form Start -->
  58.                     <div class="mb-5 wow slideInUp" data-wow-delay="0.1s">
  59.                         <div class="input-group">
  60.                             <input type="text" class="form-control p-3" placeholder="Recherche">
  61.                             <button class="btn btn-primary px-4"><i class="bi bi-search"></i></button>
  62.                         </div>
  63.                     </div>
  64.                     <!-- Search Form End -->
  65.     <!-- Category Start -->
  66. <div class="mb-5 wow slideInUp" data-wow-delay="0.1s">
  67.     <div class="section-title section-title-sm position-relative pb-3 mb-4">
  68.         <h3 class="mb-0">Categories</h3>
  69.     </div>
  70.     <div class="link-animated d-flex flex-column justify-content-start">
  71.         <a href="{{ path('app_actu') }}" class="h5 fw-semi-bold bg-light rounded py-2 px-3 mb-2">Toutes</a>
  72.         {% for category in categories %}
  73.             <a href="{{ path('app_actu', {'category': category.id}) }}" class="h5 fw-semi-bold bg-light rounded py-2 px-3 mb-2">{{ category.name }}</a>
  74.         {% endfor %}
  75.     </div>
  76. </div>
  77. <!-- Category End -->
  78.     
  79.                     <!-- Recent Post Start -->
  80.               <div class="mb-5 wow slideInUp custom-div">
  81.                 <div class="section-title section-title-sm position-relative pb-3 mb-4">
  82.                     <h3 class="mb-0">Publications récentes</h3>
  83.                 </div>
  84.                 
  85.                 {% for actuality in actualities %}
  86.                     <div class="d-flex rounded overflow-hidden mb-3">
  87.                         <img class="img-fluid" src="{{ vich_uploader_asset(actuality, 'imageFile') }}" style="width: 100px; height: 100px; object-fit: cover;" alt="">
  88.                             <a href="" style="width: 400px"class="h5 fw-semi-bold d-flex align-items-center bg-light px-3 mb-0">{{actuality.title }}</a>
  89.                     </div>
  90.                 {% endfor %}
  91.                 
  92.             </div>
  93.     
  94.                    
  95.     
  96.                    
  97.     
  98.                    
  99.                 </div>
  100.                 <!-- Sidebar End -->
  101.             </div>
  102.         </div>
  103.     </div>
  104.     <!-- Blog End -->
  105.  
  106.     <script>
  107. document.addEventListener("DOMContentLoaded", function() {
  108.     const categoryLinks = document.querySelectorAll('.category-link');
  109.     categoryLinks.forEach(link => {
  110.         link.addEventListener('click', function(event) {
  111.             event.preventDefault(); // Empêche le comportement par défaut du lien
  112.             
  113.             const categoryId = this.getAttribute('data-category-id');
  114.             
  115.             // Envoi d'une requête au serveur pour récupérer les articles par catégorie
  116.             fetch(`/get_articles_by_category/${categoryId}`)
  117.                 .then(response => response.json())
  118.                 .then(data => {
  119.                     // Manipulation du DOM pour afficher les articles
  120.                     // Vous pouvez mettre à jour votre contenu avec les articles récupérés ici
  121.                     console.log(data); // data contient les articles de la catégorie
  122.                 })
  123.                 .catch(error => {
  124.                     console.error('Une erreur s\'est produite:', error);
  125.                 });
  126.         });
  127.     });
  128. });
  129. </script>
  130. {% endblock %}