templates/includes/pagination.html.twig line 1

Open in your IDE?
  1. {% block paging %}
  2.     {% set pages = paginator.getPaginationData() %}
  3.     {% set label = label|default('sr.pagination-navigation'|trans) %}
  4.     {% set prevLabel = prevLabel|default('sr.pagination.previous'|trans) %}
  5.     {% set leftIcon = leftIcon|default('icon icon-arrow-left') %}
  6.     {% set nextLabel = nextLabel|default('sr.pagination.next'|trans) %}
  7.     {% set rightIcon = rightIcon|default('icon icon-arrow-right') %}
  8.     {% set ajaxPaging = ajaxPaging|default(false) %}
  9.     {% set className = className|default('') %}
  10.     {% set addClassArray = [] %}
  11.     {% set showCount = showCount|default(false) %}
  12.     {% if addClass is defined %}
  13.         {% set addClassArray = addClassArray|merge([addClass]) %}
  14.     {% endif %}
  15.     {% set hashSuffix = '' %}
  16.     {% if hashtag is defined and hashtag is not empty %}
  17.         {% set hashSuffix = '#' ~ hashtag %}
  18.     {% endif %}
  19.     {% if pages.pageCount > 1 %}
  20.         <nav class="{{ className }}" aria-label="{{ label }}">
  21.             <ul class="pagination">
  22.                 {% if pages.previous is defined %}
  23.                     {% if object is defined %}
  24.                         {% set prevUrl = pimcore_url({'object': object, 'page': pages.previous}) %}
  25.                     {% else %}
  26.                         {% set prevUrl = pimcore_url({'page': pages.previous}) %}
  27.                         {% if pages.previous == 1 %}
  28.                             {% set prevUrl = elements_page_1_query(prevUrl, object|default(null)) %}
  29.                         {% endif %}
  30.                     {% endif %}
  31.                     {% do pimcore_placeholder('headPrev').set('<link rel="prev" href="' ~ prevUrl ~ '">') %}
  32.                     <li class="page-item page-item--arrow">
  33.                         <a href="{{ prevUrl ~ hashSuffix }}" class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" rel="prev" aria-label="{{ prevLabel }}">
  34.                             <span class="icon {{ leftIcon }}" aria-hidden="true"></span>
  35.                         </a>
  36.                     </li>
  37.                 {% else %}
  38.                     <li class="page-item page-item--arrow disabled">
  39.                         <a class="page-link" href="#">
  40.                             <span class="icon {{ leftIcon }}" aria-hidden="true"></span>
  41.                         </a>
  42.                     </li>
  43.                 {% endif %}
  44.                 {% if showFirstLast is defined and showFirstLast is not empty %}
  45.                     {% if pages.firstPageInRange != pages.first %}
  46.                         {% if object is defined %}
  47.                             {% set firstUrl = pimcore_url({'object': object, 'page': 1}) %}
  48.                         {% else %}
  49.                             {% set firstUrl = elements_page_1_query(pimcore_url({'page': 1})) %}
  50.                         {% endif %}
  51.                         <li class="page-item">
  52.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ firstUrl ~ hashSuffix }}" data-page="{{ pages.first }}">
  53.                                 {{ pages.first }}
  54.                             </a>
  55.                         </li>
  56.                     {% endif %}
  57.                     {% if pages.firstPageInRange > pages.first + 1 and pages.firstPageInRange < pages.first + 3 %}
  58.                         {% if object is defined %}
  59.                             {% set firstPlusOneUrl = pimcore_url({'object': object, 'page': pages.first + 1}) %}
  60.                         {% else %}
  61.                             {% set firstPlusOneUrl = pimcore_url({'page': pages.first + 1}) %}
  62.                         {% endif %}
  63.                         <li class="page-item">
  64.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ firstPlusOneUrl ~ hashSuffix }}" data-page="{{ pages.first + 1 }}">
  65.                                 {{ pages.first + 1 }}
  66.                             </a>
  67.                         </li>
  68.                     {% endif %}
  69.                     {% if pages.firstPageInRange > pages.first + 2 %}
  70.                         <li class="disabled page-item">
  71.                             <a class="page-link" href="#">...</a>
  72.                         </li>
  73.                     {% endif %}
  74.                 {% endif %}
  75.                 {% for page in pages.pagesInRange %}
  76.                     {% if object is defined %}
  77.                         {% set pageUrl = pimcore_url({'object': object, 'page': page}) %}
  78.                     {% else %}
  79.                         {% set pageUrl = pimcore_url({'page': page}) %}
  80.                     {% endif %}
  81.                     {% if page == 1 %}
  82.                         {% set pageUrl = elements_page_1_query(pageUrl, object|default(null)) %}
  83.                     {% endif %}
  84.                     {% if page != pages.current %}
  85.                         <li class="page-item">
  86.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ pageUrl ~ hashSuffix }}" data-page="{{ page }}">
  87.                                 {{ page }}
  88.                             </a>
  89.                         </li>
  90.                     {% else %}
  91.                         <li class="active page-item" aria-current="page">
  92.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="#" data-page="{{ page }}">
  93.                                 <span class="sr-only">{{ page }}</span>
  94.                             </a>
  95.                         </li>
  96.                     {% endif %}
  97.                 {% endfor %}
  98.                 {% if showFirstLast is defined and showFirstLast is not empty %}
  99.                     {% if pages.lastPageInRange < pages.last - 2 %}
  100.                         <li class="disabled page-item">
  101.                             <a class="page-link" href="#">...</a>
  102.                         </li>
  103.                     {% endif %}
  104.                     {% if pages.lastPageInRange < pages.last - 1 and pages.lastPageInRange > pages.last - 3 %}
  105.                         {% if object is defined %}
  106.                             {% set lastMinusOneUrl = pimcore_url({'object': object, 'page': pages.last - 1}) %}
  107.                         {% else %}
  108.                             {% set lastMinusOneUrl = pimcore_url({'page': pages.last - 1}) %}
  109.                         {% endif %}
  110.                         <li class="page-item">
  111.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ lastMinusOneUrl ~ hashSuffix }}" data-page="{{ pages.last - 1 }}">
  112.                                 {{ pages.last - 1 }}
  113.                             </a>
  114.                         </li>
  115.                     {% endif %}
  116.                     {% if pages.lastPageInRange != pages.last %}
  117.                         {% if object is defined %}
  118.                             {% set lastUrl = pimcore_url({'object': object, 'page': pages.last}) %}
  119.                         {% else %}
  120.                             {% set lastUrl = pimcore_url({'page': pages.last}) %}
  121.                         {% endif %}
  122.                         <li class="page-item">
  123.                             <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ lastUrl ~ hashSuffix }}" data-page="{{ pages.last }}">
  124.                                 {{ pages.last }}
  125.                             </a>
  126.                         </li>
  127.                     {% endif %}
  128.                 {% endif %}
  129.                 {% if pages.next is defined %}
  130.                     {% if object is defined %}
  131.                         {% set nextUrl = pimcore_url({'object': object, 'page': pages.next}) %}
  132.                     {% else %}
  133.                         {% set nextUrl = pimcore_url({'page': pages.next}) %}
  134.                     {% endif %}
  135.                     {% do pimcore_placeholder('headNext').set('<link rel="next" href="' ~ nextUrl ~ '">') %}
  136.                     <li class="page-item li-has-arrow">
  137.                         <a class="page-link {{ ajaxPaging ? 'js-ajax-form__link' }}" href="{{ nextUrl ~ hashSuffix }}" data-page="{{ pages.next }}" rel="next" aria-label="{{ nextLabel }}">
  138.                             <span class="icon {{ rightIcon }}" aria-hidden="true"></span>
  139.                         </a>
  140.                     </li>
  141.                 {% else %}
  142.                     <li class="page-item li-has-arrow disabled">
  143.                         <a class="page-link" href="#">
  144.                             <span class="icon {{ rightIcon }}" aria-hidden="true"></span>
  145.                         </a>
  146.                     </li>
  147.                 {% endif %}
  148.             </ul>
  149.     {% endif %}
  150. {% endblock %}