vendor/shopware/storefront/Resources/views/storefront/component/product/listing.html.twig line 1

Open in your IDE?
  1. {% set currentPage = ((searchResult.criteria.offset + 1) / searchResult.criteria.limit )|round(0, 'ceil') %}
  2. {% set paginationConfig = { page: currentPage }|json_encode %}
  3. {% if disableEmptyFilter is not defined %}
  4.     {% set disableEmptyFilter = config('core.listing.disableEmptyFilterOptions') %}
  5. {% endif %}
  6. {% set listingPagination = {
  7.     sidebar: sidebar,
  8.     params: params,
  9.     dataUrl: dataUrl,
  10.     filterUrl: filterUrl,
  11.     disableEmptyFilter: disableEmptyFilter,
  12.     snippets: {
  13.         resetAllButtonText: 'listing.filterPanelResetAll'|trans|sw_sanitize
  14.     }
  15. } %}
  16. {% block product_listing %}
  17.     <div class="cms-element-product-listing-wrapper"
  18.          data-listing-pagination="true"
  19.          data-listing-pagination-options='{{ paginationConfig }}'
  20.          data-listing="true"
  21.          data-listing-options='{{ listingPagination|json_encode }}'>
  22.         {% block element_product_listing_wrapper_content %}
  23.             <div class="cms-element-product-listing">
  24.                 {% if searchResult.total > 0 %}
  25.                     {% block element_product_listing_pagination_nav_actions %}
  26.                         <div class="cms-element-product-listing-actions row justify-content-between">
  27.                             <div class="col-md-auto">
  28.                                 {% block element_product_listing_pagination_nav_top %}
  29.                                     {% sw_include '@Storefront/storefront/component/pagination.html.twig' with {
  30.                                         entities: searchResult,
  31.                                         criteria: searchResult.criteria
  32.                                     } %}
  33.                                 {% endblock %}
  34.                             </div>
  35.                             <div class="col-md-auto">
  36.                                 {% block element_product_listing_sorting %}
  37.                                     {% sw_include '@Storefront/storefront/component/sorting.html.twig' with {
  38.                                         current: searchResult.sorting,
  39.                                         sortings: searchResult.availableSortings
  40.                                     } %}
  41.                                 {% endblock %}
  42.                             </div>
  43.                         </div>
  44.                     {% endblock %}
  45.                 {% endif %}
  46.                 {% block element_product_listing_row %}
  47.                     <div class="row cms-listing-row js-listing-wrapper">
  48.                         {% if searchResult.total > 0 %}
  49.                             {% block element_product_listing_col %}
  50.                                 {% for product in searchResult %}
  51.                                     <div class="cms-listing-col {{ listingColumns }}">
  52.                                         {% block element_product_listing_box %}
  53.                                             {% sw_include '@Storefront/storefront/component/product/card/box.html.twig' with {
  54.                                                 'layout': boxLayout,
  55.                                                 'displayMode': displayMode
  56.                                             } %}
  57.                                         {% endblock %}
  58.                                     </div>
  59.                                 {% endfor %}
  60.                             {% endblock %}
  61.                         {% else %}
  62.                             {% block element_product_listing_col_empty %}
  63.                                 <div class="cms-listing-col col-12">
  64.                                     {% block element_product_listing_col_empty_alert %}
  65.                                         {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {
  66.                                             type: 'info',
  67.                                             content: 'listing.emptyResultMessage'|trans|sw_sanitize
  68.                                         } %}
  69.                                     {% endblock %}
  70.                                 </div>
  71.                             {% endblock %}
  72.                         {% endif %}
  73.                     </div>
  74.                 {% endblock %}
  75.                 {% if searchResult.total > searchResult.limit %}
  76.                     {% block element_product_listing_pagination_nav_bottom %}
  77.                         {% sw_include '@Storefront/storefront/component/pagination.html.twig' with {
  78.                             entities: searchResult,
  79.                             criteria: searchResult.criteria,
  80.                             paginationLocation: 'bottom',
  81.                         } %}
  82.                     {% endblock %}
  83.                 {% endif %}
  84.             </div>
  85.         {% endblock %}
  86.     </div>
  87. {% endblock %}