templates/product/product-list.html.twig line 1

Open in your IDE?
  1. {% extends 'layouts/layout.html.twig' %}
  2. {% block content %}
  3.     {% do pimcore_head_title().set(pageTitle) %}
  4.     {% do pimcore_head_meta().setDescription(pageDescription) %}
  5.     <main role="main" class="products mt-100 pt-0 pt-lg-100">
  6.         {{ render(controller('App\\Controller\\MenuController::breadcrumbsAction')) }}
  7.         <div class="pb-20 mx-10 mx-md-40 mx-lg-70 ">
  8.             <div class="row gx-0 gx-lg-70">
  9.                 <h1 class="d-block d-lg-none mb-0">{{ categorydo.name }}</h1>
  10.                 <div class="sidebar">
  11.                     <div class="sticky-lg-top pt-20">
  12.                         <div class="pb-0 pb-lg-20 mb-10">
  13.                             <form class="form-inline d-flex border border-black" role="search">
  14.                                 <input class="form-control me-5 border-0 search-input w-100 ps-10" id="fast-search" type="search" placeholder="{{ 'Search product code'|trans }}" aria-label="Search">
  15.                                 <button class="btn border-0 py-10 ps-5 pe-10 align-items-center fast-search-submit d-none" type="submit"><i class="fa-sharp fa-solid fa-magnifying-glass"></i></button>
  16.                             </form>
  17.                         </div>
  18.                         <style>
  19.                             #fast-search { margin-right:0!important; }
  20.                             #fast-search::placeholder { font-size: 12px!important; }
  21.                             #fast-search::-webkit-input-placeholder { font-size: 12px!important; }
  22.                             #fast-search::-moz-placeholder { font-size: 12px!important; }
  23.                         </style>
  24.                         <!-- start accordion -->
  25.                         <div class="accordion" id="mobileAccordion">
  26.                             <div class="accordion-item rounded-0 border-0">
  27.                                 <div class="accordion-header">
  28.                                     <button class="accordion-button rounded-0 bg-transparent shadow-none px-0 collapsed d-flex d-lg-none fs-25 fw-bold" type="button" data-bs-toggle="collapse" data-bs-target="#filtersAccordion" aria-expanded="false" aria-controls="filtersAccordion">
  29.                                         {{ 'FILTERS'|trans }}
  30.                                     </button>
  31.                                 </div>
  32.                                 <div class="pb-0 pb-lg-20 mb-10 " id="filtersAccordion">
  33.                                     <form id="js_filterfield">
  34.                                         {% if term is defined %}
  35.                                         <input type="hidden" name="term" value="{{ term }}"/>
  36.                                         {% endif %}
  37.                                         {% if(filterDefinition.filters|length > 0) %}
  38.                                             {% for filter in filterDefinition.filters %}
  39.                                                 {% set filterMarkup = filterService.filterFrontend(filter, productListing, currentFilter) %}
  40.                                                 {{ filterMarkup | raw  }}
  41.                                             {% endfor %}
  42.                                         {% endif %}
  43.                                     </form>
  44.                                 </div>
  45.                             </div>
  46.                         </div>
  47.                         <!-- end accordion -->
  48.                     </div>
  49.                 </div>
  50.                 <div class="col-12 col-lg pt-20">
  51.                     <h1 class="d-none d-lg-block">{{ categorydo.name }}</h1>
  52.                     <div class="category-description mt-40">{{ intro|raw }}</div>
  53.                     <div class="filters-active d-flex gap-10"><a href="#" class="d-flex gap-5 align-items-center py-5 px-10 fs-15 border border-black">poltroncina <i class="fa-sharp fa-solid fa-xmark"></i></a><a href="#" class="d-flex gap-5 align-items-center py-5 px-10 fs-15 border border-black">moderno <i class="fa-sharp fa-solid fa-xmark"></i></a></div>
  54.                     
  55.                     <div class="num-products my-10 d-none">{{  results.count() }} {{ 'PRODUCTS'|trans }}</div>
  56.                     <div class="row gx-20">
  57.                         {% for product in results %}
  58.                             <div class="col-6 col-lg-4 col-xxl-3 col-xxl-5x single-product text-center position-relative mb-60" data-sku="{{ product.codice|lower }}">
  59.                                 <a href="{{ product.url[0].slug }}" class="product text-center d-block my-10">
  60.                                     <div class="image p-15">
  61.                                         {% if product.fotoPricipale is not empty %}
  62.                                             {{ product.fotoPricipale.getThumbnail("product_listing").getHtml()|raw }}
  63.                                         {% else %}
  64.                                             <img src="/busetto-placeholder.jpg" alt="" >
  65.                                         {% endif %}
  66.                                     </div>
  67.                                 </a>
  68.                                 <div class="d-flex justify-content-center align-items-center gap-20">
  69.                                 <span>{{ product.nome }}</span>
  70.                                 {% if product.url3d %}
  71.                                 <div class="banner3d-container">
  72.                                     <a href="{{ product.url3d }}" target="_blank" class="banner3d"></a>
  73.                                 </div>
  74.                                 {% endif %}
  75.                                 </div>
  76.                             </div>
  77.                         {% endfor %}
  78.                     </div>
  79.                     <div class="category-description mt-40">{{ description|raw }}</div>
  80.                 </div>
  81.             </div>
  82.         </div>
  83.     </main>
  84.     {% do pimcore_inline_script().appendScript("
  85.     $('#js_filterfield .custom-checkbox input, #js_filterfield .custom-radio input').on('change', function() {
  86.         $('#js_filterfield').submit();
  87.     });
  88.     function createActiveFilters(){
  89.         var sPageURL = decodeURIComponent(window.location.search.substring(1));
  90.         var array =[]
  91.         var sURLVariables = sPageURL.split('&');
  92.         $('.filters-active').empty();
  93.         for (var i = 0; i < sURLVariables.length; i++) {
  94.             var sParameterName = sURLVariables[i].split('=');
  95.             createFilter(sParameterName[0], sParameterName[1]);
  96.         }
  97.     }
  98.     function createFilter(type, value){
  99.         var type = type.replace('[]', '');
  100.         var id = type+value;
  101.         if($('#'+id).length){
  102.             var e = $('<a href=\"#\" class=\"d-flex gap-5 align-items-center py-5 px-10 fs-15 border border-black\" data-filterid=\"'+id+'\">'+ $('label[for=\"'+id+'\"').html() +' <i class=\"fa-sharp fa-solid fa-xmark\"></i></a>');
  103.             $('.filters-active').append(e);
  104.         }
  105.     }
  106.     $('body').on('click', '.filters-active > a', function(){
  107.         $('#'+$(this).attr('data-filterid')).prop('checked', false);
  108.         $('#js_filterfield').submit();
  109.     });
  110.     createActiveFilters();
  111.     $('.readMore').on('click', function(){
  112.         if($(this).hasClass('active')){
  113.             $(this).removeClass('active');
  114.             $(this).find('.open').css('display','block');
  115.             $(this).find('.close').css('display','none');
  116.             $('.moreText').slideUp();
  117.         } else {
  118.             $(this).addClass('active');
  119.             $(this).find('.open').css('display','none');
  120.             $(this).find('.close').css('display','block');
  121.             $('.moreText').slideDown();
  122.         }
  123.     });
  124.     ") %}
  125. {% endblock %}