templates/theme/default/modele-widget/faq_block.html.twig line 1

Open in your IDE?
  1. {% if faqs is defined and faqs is not empty %}
  2. {% set images = [
  3. asset('uploads/faq/cm2.webp'),
  4. asset('uploads/faq/wf.webp')
  5. ] %}
  6. <div id="faq-section" class="py-5"
  7. {% if widget.bgimage %} style="background: url({{asset_image(widget.bgimage)}})"
  8. {% elseif widget.bgcolor %} style="background-color:{{widget.bgcolor}}"
  9. {% endif %}>
  10. <div class="container-fluid content-wrapper">
  11. <!-- TITLE -->
  12. <div class="row">
  13. <div class="col-6 text-center ">
  14. {% if widget.title %}
  15. <h2 class="title">{{ widget.title|raw }}</h2>
  16. {% endif %}
  17. {% if widget.subTitle %}
  18. <h3 class="sub-title">{{ widget.subTitle|raw }}</h3>
  19. {% endif %}
  20. {% if widget.description %}
  21. <p>{{ widget.description|raw }}</p>
  22. {% endif %}
  23. </div>
  24. </div>
  25. <!-- CONTENT -->
  26. <div class="row align-items-center">
  27. <!-- LEFT SIDE (FAQ) -->
  28. <div class="col-lg-6 col-12">
  29. {% for item in faqs %}
  30. <div class="faq-item"
  31. data-image="{{ images[loop.index0 % images|length] }}">
  32. <div class="faq-question d-flex justify-content-between">
  33. <span>{{ item.question }}</span>
  34. <span class="icon-plus"></span>
  35. </div>
  36. <div class="faq-answer">
  37. <div class="content-answer">
  38. {{ item.reponse|replace({'\r\n':'<br />'})|raw }}
  39. </div>
  40. </div>
  41. </div>
  42. {% endfor %}
  43. </div>
  44. <!-- RIGHT SIDE (IMAGE) -->
  45. <div class="col-lg-6 col-12 mt-4 mt-lg-0 d-flex justify-content-center">
  46. <div class="faq-composition">
  47. <div class="img-bg-wrapper">
  48. <img src="{{ asset('uploads/faq/cm2.webp') }}" alt="Background" width="506" height="577">
  49. </div>
  50. <div class="img-overlay-wrapper">
  51. <img src="{{ asset('uploads/faq/wf.webp') }}" alt="Overlay" width="274" height="336">
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. <script>
  59. document.addEventListener("DOMContentLoaded", function () {
  60. const items = document.querySelectorAll(".faq-item");
  61. const image = document.getElementById("faq-main-image");
  62. if (!image) return;
  63. items.forEach(item => {
  64. // 👉 CHANGE IMAGE ON HOVER
  65. item.addEventListener("mouseenter", function () {
  66. const newImg = this.dataset.image;
  67. if (!newImg) return;
  68. image.style.opacity = 0;
  69. setTimeout(() => {
  70. image.src = newImg;
  71. image.style.opacity = 1;
  72. }, 150);
  73. });
  74. });
  75. });
  76. </script>
  77. {% endif %}