templates/faq/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}{% endblock %}
  3. {% block stylesheets %}
  4.         <link rel="stylesheet" href="{{ asset('css/style-faq-index.css') }}">
  5.         <link rel="stylesheet" href="{{ asset('/css/centre-ressource.css') }}">
  6.         <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"/> 
  7. {% endblock %}
  8. {% block body %}
  9.   <main class="section-services"></main>
  10. <div class="section-FAQ">
  11.     <div class="container">
  12.     <div class="row">
  13.         <div class="col-md-12 text-center">
  14.           <h5>{% trans %} faq.title{% endtrans %}</h5>
  15.           <h2>Lorem ipsum dolor</h2>
  16.           <p>Lorem ipsum dolor sit amet invidunt ut labore et sed diam voluptua. At vero eos et accusam et sed diam voluptua.</p>
  17.         </div>
  18.       </div>
  19.  <div class="row justify-content-center mt-5">
  20.         <div class="col-md-4">
  21.             <ul id="nav-tabs-wrapper" class="nav nav-pills nav-stacked flex-column">
  22.             {% for faq in faqs %}
  23.                 <li class="accordion-item active" id="accordion_faq">
  24.                  <a style="text-decoration: none;" href="#vtab{{ loop.index }}" data-toggle="tab"> <h5>{{ faq.title }}</h5></a>
  25.                 </li>
  26.             {% endfor %}
  27.             </ul>
  28.            </div>
  29.         <div class="col-md-8">
  30.             <div class="tab-content">
  31.                 {% for faq in faqs %}
  32.                 <div role="tabpanel" class="tab-pane fade in {% if loop.index == 1 %} show  active {% endif %}" id="vtab{{ loop.index }}">
  33.                 <div class="accordion-item" >
  34.                   {% for elem in faq.faqs %}
  35.                   <header class="item-header accordion_faq {{ app.request.locale == 'ar_TN' ? 'form_direction_rtl' : 'form_direction_ltr' }}"  id="accordion_faq" >
  36.                       <h4 class="item-question" >
  37.                           {{ elem.question | raw}}
  38.                          </h4>
  39.                         <div class="item-icon" >
  40.                         <i class="fa-sharp fa-solid fa-angle-up"></i>
  41.                       </div>
  42.                   </header>
  43.                   <div class="item-content {{ app.request.locale == 'ar_TN' ? 'form_direction_rtl' : 'form_direction_ltr' }}">
  44.                       <p class="item-answer" >
  45.                           {{ elem.reponse | raw}}                    
  46.                       </p>
  47.                   </div>
  48.                   {% endfor %}
  49.                   </div>
  50.                   </div>
  51.                 {% endfor %}
  52.             </div>
  53.         </div>
  54.                               <a  ><button id="addMore" class="btn-slider-text mt-5">{% trans %} faq.showmore{% endtrans %}</button></a>
  55.         {# <div class="navigation">
  56.             {{ knp_pagination_render(faqs) }}
  57.         </div> #}
  58.     </div>
  59.   </div>
  60. </div>
  61. {% endblock %}
  62. {% block javascripts %}
  63. {{ parent() }}
  64. <script>
  65. let offset = 2;
  66. $('#addMore').on('click',function () {
  67.     $.ajax({
  68.         type: "GET",
  69.         url: '/ajax/get/faqtheme',
  70.         data: {'offset': offset},
  71.         success: function (response) {
  72.             console.log(response)
  73.            JSON.parse(response).map((value, index)=>{
  74.             $("#nav-tabs-wrapper").append(`
  75.                 <li class="accordion-item " id="accordion_faq">
  76.                  <a style="text-decoration: none;" href="#vtab${value.id}" data-toggle="tab"> <h5>${value.title}</h5></a>
  77.                 </li>
  78.             `)
  79.            })
  80.            JSON.parse(response).map((value, index)=>{
  81.                let div =`
  82.                <div role="tabpanel" class="tab-pane fade in" id="vtab${value.id}">
  83.                     <div class="accordion-item" >
  84.                `;
  85.                
  86.                 value.faqs.map((value2,index2)=>{
  87.                     div=div+`<header class="item-header"  id="accordion_faq" >
  88.                             <h4 class="item-question" >
  89.                                 ${value2.question}
  90.                                 </h4>
  91.                                 <div class="item-icon" >
  92.                                 <i class="fa-sharp fa-solid fa-angle-up"></i>
  93.                             </div>
  94.                             </header>
  95.                         <div class="item-content ">
  96.                             <p class="item-answer"  >
  97.                                 ${value2.reponse}             
  98.                             </p>
  99.                         </div>`
  100.                     console.log(div)
  101.                    
  102.                     {# div= div +          
  103.                     `<header class="item-header"  id="accordion_faq" >
  104.                             <h4 class="item-question" >
  105.                                 ${value2.question}
  106.                                 </h4>
  107.                                 <div class="item-icon" >
  108.                                 <i class="fa-sharp fa-solid fa-angle-up"></i>
  109.                             </div>
  110.                         </header>
  111.                         <div class="item-content">
  112.                             <p class="item-answer"  >
  113.                                 ${value2.reponse}             
  114.                             </p>
  115.                         </div>
  116.                     `;
  117.                      #}
  118.                 });
  119.                 div=div+"</div></div>"
  120.                 $(".tab-content").append(div)
  121.                  
  122.             });
  123.             const accordionBtns = document.querySelectorAll(".item-header");
  124.             accordionBtns.forEach((accordion) => {
  125.             accordion.onclick = function () {
  126.                 this.classList.toggle("active");
  127.                 let content = this.nextElementSibling;
  128.                 console.log(content);
  129.                 if (content.style.maxHeight) {
  130.                 //this is if the accordion is open
  131.                 content.style.maxHeight = null;
  132.                 } else {
  133.                 //if the accordion is currently closed
  134.                 content.style.maxHeight = content.scrollHeight + "px";
  135.                 console.log(content.style.maxHeight);
  136.                 }
  137.             };
  138.             
  139.             });
  140.             offset = offset + 3
  141.             console.log(offset)
  142.         }
  143.         
  144.     });
  145. });
  146. </script>
  147. {% endblock %}