templates/home/pagemateriel.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block title %}{{ materiel.nom }}{% endblock %}
  3. {% block stylesheets %}
  4.     <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" />
  5.     <link rel="stylesheet" href="{{ asset('assets/front/swiper.css') }}" />
  6.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous" />  
  7.     <link rel="stylesheet" href="{{ asset('assets/front/protocole.css') }}" />
  8.     <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
  9. {% endblock %}
  10. {% block body %}
  11.     <div class="breadcrumb"><div class="container">
  12.         <a href="{{ path('home_page') }}">Accueil</a>&nbsp;        
  13.         {% if urls|length >0 %}
  14.             {% for url in urls %}
  15.                 {% set nom = "'" ~ url|lower ~ "'" %}
  16.                 /&nbsp;<a href="{{ path('categoriefiltrenom_page', {'type': 2, 'nom': nom }) }}">{{ url|capitalize  }}</a>&nbsp;
  17.             {% endfor %}
  18.         {% else %}
  19.             /&nbsp;<a href="{{ path('categoriefiltre_page', {'type': 2}) }}">Materiels</a>&nbsp;
  20.         {% endif %}
  21.         /&nbsp;<a href="{{ path('materiel_page', { 'id' : materiel.id }) }}">{{ materiel.nom }}</a></div>
  22.     </div>
  23.     <div class="container-main pagemateriel">
  24.         {# Titre #}
  25.         {% if materiel.codeSC == 'S' %}
  26.             <h1>Instrument : {{ materiel.nom }}</h1> 
  27.         {% elseif materiel.codeSC == 'C' %}
  28.                 <h1>Consommable : {{ materiel.nom }}</h1> 
  29.          {% elseif materiel.codeSC == 'E' %}
  30.                 <h1>Equipement : {{ materiel.nom }}</h1> 
  31.         {% else %}
  32.             <h1>{{ materiel.nom }}</h1> 
  33.         {% endif %}
  34.         <br/>
  35.         <div class="materiel">
  36.             {# image à gauche ou en haut #}
  37.             <div class="images">
  38.                 <div class="container-image">
  39.                     <div>
  40.                         <img id="laphoto" onclick="clickImage()" 
  41.                             {% if materielphotos|length > 0 %} src="{{ asset('download/') }}{{ materielphotos[0].image.urlfichier }}"
  42.                             {% else %} src="{{ asset('assets/img/materiel.jpg') }}" {% endif %} />   
  43.                     </div>
  44.                 </div>
  45.                 {% if materielphotos|length > 1 %} 
  46.                 <div class="btn-images">                    
  47.                     {% for photo in materielphotos %}          
  48.                         <div><img src="{{ asset('download/') }}{{ photo.image.urlfichier }}" onclick="affichephoto(this)" /> </div>
  49.                     {% endfor %}                     
  50.                 </div>
  51.                 {% endif %}
  52.             </div>
  53.             <div class="materiel-description flex-vertical-spac-ebetween">
  54.                 <div class="text-normal">
  55.                     {# <h2 class="materiel-h2">{{ materiel.nom }}</h2> #}
  56.                     {{ materiel.description|raw }}   
  57.                     {# kit ? #}
  58.                     {% if materiel.kitmateriels|length >0 %} 
  59.                     <h4 class="text-left margin-left-30">Contenu du kit</h4>
  60.                     <ul class="kitLarge">
  61.                         {% for kit in materiel.kitmateriels %}
  62.                         <li><a href="{{ path('materiel_page', { 'id' : kit.id }) }}"><i class="fas fa-chevron-right"></i>&nbsp;{{ kit.nom }}</a></li>
  63.                         {% endfor %} 
  64.                     </ul>
  65.                     {% endif %}
  66.                 </div>
  67.                 
  68.                 <div class="materiel-categories">
  69.                     <span class="gray-light  text-big">Catégories:</span>
  70.                     <span class="gray-medium text-big">                        
  71.                     {% for child in materiel.categories %}    
  72.                         <a href="{{ path('categoriefiltre_page', {'type': 2, 'code': child.id}) }}">{{ child.titre }}</a>{% if loop.last %}{% else %}, {% endif %}
  73.                     {% endfor %}   
  74.                 </div>        
  75.                 {# {% if materiel.protocoles|length > 0%}
  76.                     <div class="materiel-categories">
  77.                     <span class="gray-light  text-big">Protocoles associées:</span>
  78.                     <span class="gray-medium text-big">                        
  79.                     {% for child in materiel.protocoles %}    
  80.                         <a href="{{ path('protocole_page', {'id': child.id}) }}">{{ child.titre }}</a>{% if loop.last %}{% else %}, {% endif %}
  81.                     {% endfor %}    
  82.                     </span>
  83.                     </div>  
  84.                 {% endif %}                                          #}
  85.                 {% if is_granted('ROLE_USER') %} 
  86.                 <div class="btnFavori" >
  87.                     {% if isFavori == true %}
  88.                         <form id="formMateriels" action="{{ path('removeusermateriel_ajax', {'id': materiel.id }) }}" method="post">
  89.                         <button class="clair small" id="addFavori">Retirer de mes favoris <i class="fas fa-star" style="color:#FDD46A"></i></button>
  90.                         </form>
  91.                         <i style="font-size:12px">Les favoris sont accessibles depuis la page de <a href="{{ path('infoscompte_page') }}" style="font-size:12px">votre compte</a></i>
  92.                     {% else %}
  93.                         <form id="formMateriels" action="{{ path('addusermateriel', {'id': materiel.id }) }}" method="post">
  94.                         <button class="clair small" id="addFavori" >Ajouter à mes favoris <i class="far fa-star"></i></button>
  95.                         </form>
  96.                     {% endif %}
  97.                 </div> 
  98.                 {% endif %}                       
  99.             </div>
  100.         </div>        
  101.         {# Onglets #}
  102.         <br/>
  103.         <div class="tabs">
  104.             <div class="tab">
  105.                 <button class="tablinks active" onclick="openTab(event, 'description')">Conditionnement</button>
  106.                 <button class="tablinks" onclick="openTab(event, 'tarif')">Tarifs</button>
  107.                  <button class="tablinks" onclick="openTab(event, 'protos')">Protocoles</button>
  108.             </div>
  109.             <div class="tabcontents pagemateriel">
  110.                 <div id="description" class="tabcontent active">
  111.                     <h3 style="margin-top:10px;">Conditionnement</h3>
  112.                     {{ materiel.presentation|raw }}     
  113.                 </div>
  114.                  <div id="protos" class="tabcontent">
  115.                     <h3 style="margin-top:10px;">Protocoles associés</h3>
  116.                      <div class="vignette">   
  117.                         {% for child in materiel.protocoles %}    
  118.                             {# <a href="{{ path('protocole_page', {'id': child.id}) }}">{{ child.titre }}</a><br/> #}                                        
  119.                             <a href="{{ path('protocole_page', {'id': child.id, 'nom': child.titre}) }}"> 
  120.                                 {% if child.protocolephotos is null or child.protocolephotos|length <1 %}
  121.                                     <img src="{{ asset('assets/img/protocole.jpg') }}" />                                    
  122.                                 {% else %}
  123.                                     <img src="{{ asset('download/') }}{{ child.PhotoDefault }}" />
  124.                                 {% endif %}    
  125.                                 <h3>{{ child.titre }}</h3> 
  126.                             </a>                       
  127.                         {% endfor %} 
  128.                      </div>
  129.                 </div>   
  130.                 <div id="tarif" class="tabcontent">
  131.                     <h3 style="margin-top:10px;">Tarifs</h3>
  132.                     {{ materiel.tarif }}
  133.                 </div> 
  134.             </div>                  
  135.         </div>
  136.         {# Produits associés #}
  137.         <br/><br/>
  138.         {% include 'home/prodassocies.html.twig' %}        
  139.     </div>
  140.     <!-- Commentaire -->
  141.     <section class="commentaires" style="background-image: url('{{ asset('assets/img/comments-cover.jpg') }}');">  
  142.     <div class="container">
  143.             <h2>Commentaires</h2>
  144.             {% for commentaire in commentaires %}
  145.                 <div class="commentaire">
  146.                     <p class="dateuser">Le {{ commentaire.datepubli|date('d/m/Y') }} par {{ commentaire.auteur.prenom }} {{ commentaire.auteur.nom }}</p>
  147.                     <p class="comment">{{ commentaire.comment }}</p>
  148.                 </div>
  149.             {% else %}
  150.                 <p class="nocomment">Aucun commentaire</p>
  151.             {% endfor %}
  152.             {% if is_granted('ROLE_USER') and app.user.isVerified %} 
  153.                 <div class="newcommentaire">
  154.                 {{ form_start(form) }}
  155.                     {{ form_widget(form) }}
  156.                     <button class="btn-send">{{ button_label|default('Envoyer') }}</button>
  157.                 {{ form_end(form) }}
  158.                 </div>
  159.             {% endif %}
  160.         </div>
  161.     </section>
  162.     <!-- la fenêtre popup modale -->
  163.     <div id="myModal" class="modal">
  164.     <div class="modal-content">
  165.         <span class="close" id="modalClose">&times;</span>
  166.         <img id="bigimage" />
  167.     </div>
  168.     </div>
  169. {% endblock %}
  170. {% block javascripts %}
  171.     <script>
  172.     function openTab(evt, cityName) {
  173.         let i, tabcontent, tablinks;
  174.         tabcontent = document.getElementsByClassName("tabcontent");
  175.         for (i = 0; i < tabcontent.length; i++) {
  176.             tabcontent[i].className = tabcontent[i].className.replace(" active", "");
  177.         }
  178.         tablinks = document.getElementsByClassName("tablinks");
  179.         for (i = 0; i < tablinks.length; i++) {
  180.             tablinks[i].className = tablinks[i].className.replace(" active", "");
  181.             
  182.         }
  183.         document.getElementById(cityName).className += " active";
  184.         evt.currentTarget.className += " active";
  185.     }
  186.     //affichage de l'image dans le carré de sélection
  187.     function affichephoto(img) {
  188.         document.getElementById("laphoto").src = img.src;
  189.     }
  190.     
  191.     //ouverture de la fenetre modale sur clic de l'image
  192.     let modal = document.getElementById("myModal");
  193.     function clickImage() { 
  194.         //recup de l'image mis en data
  195.         let image = document.getElementById('laphoto').src;  
  196.         document.getElementById('bigimage').src = image;             
  197.         modal.style.display = "block";
  198.     }
  199.     // Fermeture de la fenêtre modale
  200.     document.getElementById('modalClose').onclick = function() {
  201.         modal.style.display = "none";
  202.     }
  203.     window.onclick = function(event) {
  204.         if (event.target == modal) {
  205.             modal.style.display = "none";
  206.         }
  207.     }
  208.     </script> 
  209.     <!-- Swiper JS -->
  210.     <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
  211.     <!-- Initialize Swiper du slider -->
  212.     <script>
  213.         var swiper = new Swiper(".mySwiper", {
  214.         speed: 600,
  215.         slidesPerView: 4,
  216.         parallax: true,
  217.         autoplay: {
  218.             delay: 2500,
  219.             disableOnInteraction: false,
  220.         },
  221.         pagination: {
  222.             el: ".swiper-pagination",
  223.             clickable: true,
  224.         },
  225.         navigation: {
  226.             nextEl: ".swiper-button-next",
  227.             prevEl: ".swiper-button-prev",
  228.         },
  229.         });
  230.     </script>
  231.     {# <!-- Initialize Swiper des protocoles -->
  232.     <script>
  233.       var swiper = new Swiper('.swiper', {
  234.         slidesPerView: 6,
  235.         spaceBetween: 10,
  236.         direction: 'horizontal',
  237.         navigation: {
  238.           nextEl: '.swiper-button-next',
  239.           prevEl: '.swiper-button-prev',
  240.         },
  241.         breakpoints: {
  242.            1300: {
  243.             slidesPerView: 6,
  244.             spaceBetween: 10,
  245.           },
  246.           1024: {
  247.             slidesPerView: 5,
  248.           },
  249.            768: {
  250.             slidesPerView: 4,
  251.           },
  252.           640: {
  253.             slidesPerView: 3,
  254.           },
  255.           480: {
  256.             slidesPerView: 2,
  257.             spaceBetween: 20,
  258.           },
  259.           100: {
  260.             slidesPerView: 1,
  261.             spaceBetween: 20, 
  262.           }, 
  263.         },
  264.       }); #}
  265.       /* function getDirection() {
  266.         var windowWidth = window.innerWidth;
  267.         var direction = window.innerWidth <= 760 ? 'vertical' : 'horizontal';
  268.         return direction;
  269.       } */
  270.     </script>
  271.  {% endblock %}