templates/Navigation/paging.html.twig line 1

Open in your IDE?
  1. {# @var \Zend\Paginator\Paginator paginator #}
  2. {% set hideCount = hideCount |default(false) %}
  3. {% set pages = paginator.getPaginationData() %}
  4. {% set ajaxPaging = ajaxPaging|default(false) %}
  5. {% set filterFormPaging = filterFormPaging is defined ? filterFormPaging : false %}
  6. {% set ajaxClass = ajaxClass|default('js-ajax-form__link') %}
  7. {% set object = object|default(null) %}
  8. {% set addClassArray = [] %}
  9. {% if hideCount %}
  10.     {% set addClassArray = addClassArray | merge(['no-paging--count']) %}
  11. {% endif %}
  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. {% set pageParamName = pageParamName|default('page') %}
  20. {% if hideCount %}
  21.     {% block paging %}
  22.         {% if pages.pageCount > 1 %}
  23.             <nav aria-label="{{ 'sr.pagination'|trans }}" class="pagination-container">
  24.                 <ul class="pagination align-items-center  {{ addClassArray|join(' ') }} {{ filterFormPaging ? 'js-filter-form__paging' : '' }}">
  25.                     {% if pages.previous is defined %}
  26.                         {% if object is defined %}
  27.                             {% set prevUrl = pimcore_url({ 'object': object, (pageParamName): pages.previous }) %}
  28.                         {% else %}
  29.                             {% set prevUrl = pimcore_url({ (pageParamName): pages.previous }) %}
  30.                         {% endif %}
  31.                         {% if pages.previous == 1 %}
  32.                             {% set prevUrl = elements_page_1_query( prevUrl, object ) %}
  33.                         {% endif %}
  34.                         {% do pimcore_placeholder('headPrev').set('<link rel="prev" href="' ~ prevUrl ~ '">') %}
  35.                         <li class="page-item">
  36.                             <a class="page-link page-link--text {{ ajaxPaging ? ajaxClass : '' }} "
  37.                                href="{{ prevUrl ~ hashSuffix }}" rel="prev" data-page="{{ prevUrl }}">
  38.                                 {{ 'paging.zurück'|trans }}
  39.                             </a>
  40.                         </li>
  41.                     {% else %}
  42.                         <li class="page-item disabled">
  43.                             <div class="page-link page-link--text {{ ajaxPaging ? ajaxClass : '' }}">
  44.                                 {{ 'paging.zurück'|trans }}
  45.                             </div>
  46.                         </li>
  47.                     {% endif %}
  48.                     {% if showFirstLast is defined and showFirstLast is not empty %}
  49.                         {# // add ... if there many pages ... so you can see the link to the FIRST page ... like: < 1 ... 5 6 (7) 8 9 ... 11 > #}
  50.                         {% if pages.firstPageInRange != pages.first %}
  51.                             {% if object is defined %}
  52.                                 {% set firstUrl = elements_page_1_query( pimcore_url({'object': object, (pageParamName): 1}, object) ) %}
  53.                             {% else %}
  54.                                 {% set firstUrl = elements_page_1_query( pimcore_url({(pageParamName): 1}, object) ) %}
  55.                             {% endif %}
  56.                             <li class="page-item">
  57.                                 <a class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  58.                                    href="{{ firstUrl ~ hashSuffix }}" data-page="{{ pages.first }}">
  59.                                     {{ pages.first }}
  60.                                 </a>
  61.                             </li>
  62.                         {% endif %}
  63.                         {% if pages.firstPageInRange > pages.first+1 and pages.firstPageInRange < pages.first+3 %}
  64.                             {% if object is defined %}
  65.                                 {% set firstPlusOneUrl = elements_page_1_query( pimcore_url({'object': object, (pageParamName): pages.first+1}, object) ) %}
  66.                             {% else %}
  67.                                 {% set firstPlusOneUrl = elements_page_1_query( pimcore_url({(pageParamName): pages.first+1}, object) ) %}
  68.                             {% endif %}
  69.                             <li class="page-item">
  70.                                 <a class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  71.                                    href="{{ firstPlusOneUrl ~ hashSuffix }}" data-page="{{ pages.first+1 }}">
  72.                                     {{ pages.first+1 }}
  73.                                 </a>
  74.                             </li>
  75.                         {% endif %}
  76.                         {% if pages.firstPageInRange > pages.first+2 %}
  77.                             <li class="disabled page-item">
  78.                                 <a class="page-link" href="#" aria-disabled="true" tabindex="-1">...</a>
  79.                             </li>
  80.                         {% endif %}
  81.                     {% endif %}
  82.                     {% for page in pages.pagesInRange %}
  83.                         {% if object is defined %}
  84.                             {% set pageUrl = pimcore_url({'object': object, (pageParamName): page }) %}
  85.                         {% else %}
  86.                             {% set pageUrl = pimcore_url({ (pageParamName): page }) %}
  87.                         {% endif %}
  88. {#                        {{ dump(pimcore_url({ 'page': page })) }}#}
  89.                         {% if page == 1 %}
  90.                             {% set pageUrl = elements_page_1_query( pageUrl, object) %}
  91.                         {% endif %}
  92.                         {% if page != pages.current %}
  93.                             <li class="page-item">
  94.                                 <a class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  95.                                    href="{{ pageUrl ~ hashSuffix }}" data-page="{{ page }}">
  96.                                     {{ page }}
  97.                                 </a>
  98.                             </li>
  99.                         {% else %}
  100.                             <li class="active page-item">
  101.                                 <div class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  102.                                      data-page="{{ page }}">
  103.                                     {{ page }} <span class="sr-only">({{ 'sr.page.current'|trans }})</span>
  104.                                 </div>
  105.                             </li>
  106.                         {% endif %}
  107.                     {% endfor %}
  108.                     {% if showFirstLast is defined and showFirstLast is not empty %}
  109.                         {# // add ... if there many pages ... so you can see the link to the LAST page ... like: < 1 ... 5 6 (7) 8 9 ... 12 > #}
  110.                         {% if pages.lastPageInRange < pages.last-2 %}
  111.                             <li class="disabled page-item">
  112.                                 <a class="page-link" href="#" aria-disabled="true" tabindex="-1">...</a>
  113.                             </li>
  114.                         {% endif %}
  115.                         {% if pages.lastPageInRange < pages.last-1 and pages.lastPageInRange > pages.last-3 %}
  116.                             {% if object is defined %}
  117.                                 {% set lastMinusOneUrl = pimcore_url({'object': object, (pageParamName): pages.last-1}) %}
  118.                             {% else %}
  119.                                 {% set lastMinusOneUrl = pimcore_url({(pageParamName): pages.last-1}) %}
  120.                             {% endif %}
  121.                             <li class="page-item">
  122.                                 <a class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  123.                                    href="{{ pimcore_url({ (pageParamName): pages.last-1 }) ~ hashSuffix }}"
  124.                                    data-page="{{ pages.last-1 }}">
  125.                                     {{ pages.last-1 }}
  126.                                 </a>
  127.                             </li>
  128.                         {% endif %}
  129.                         {% if pages.lastPageInRange != pages.last %}
  130.                             {% if object is defined %}
  131.                                 {% set lastUrl = pimcore_url({'object': object, (pageParamName): pages.last}) %}
  132.                             {% else %}
  133.                                 {% set lastUrl = pimcore_url({(pageParamName): pages.last}) %}
  134.                             {% endif %}
  135.                             <li class="page-item">
  136.                                 <a class="page-link {{ ajaxPaging ? ajaxClass : '' }}"
  137.                                    href="{{ lastUrl ~ hashSuffix }}">
  138.                                     {{ pages.last }}
  139.                                 </a>
  140.                             </li>
  141.                         {% endif %}
  142.                     {% endif %}
  143.                     {% if pages.next is defined %}
  144.                         {% if object is defined %}
  145.                             {% set nextUrl = pimcore_url({ 'object': object, (pageParamName): pages.next }) %}
  146.                         {% else %}
  147.                             {% set nextUrl = pimcore_url({ (pageParamName): pages.next }) %}
  148.                         {% endif %}
  149.                         {% do pimcore_placeholder('headNext').set('<link rel="next" href="' ~nextUrl ~ '">') %}
  150.                         <li class="page-item">
  151.                             <a class="page-link page-link--text {{ ajaxPaging ? ajaxClass : '' }}"
  152.                                href="{{ nextUrl ~ hashSuffix }}" rel="next" data-page="{{ pages.next }}">
  153.                                 {{ 'paging.vor'|trans }}
  154.                             </a>
  155.                         </li>
  156.                     {% else %}
  157.                         <li class="page-item disabled">
  158.                             <a href="#" class="page-link page-link--text {{ ajaxPaging ? ajaxClass : '' }}">
  159.                                 {{ 'paging.vor'|trans }}
  160.                             </a>
  161.                         </li>
  162.                     {% endif %}
  163.                 </ul>
  164.             </nav>
  165.         {% endif %}
  166.     {% endblock %}
  167. {% else %}
  168.     <div class="row align-items-center text-dark-grey font-decorative vertical-gutter--3 my-3 my-md-5">
  169.         <div class="col-auto vertical-gutter__item">
  170.             {{ paginator.totalItemCount }} {{ 'result-info.Ergebnisse'|trans }}
  171.         </div>
  172.         {% if hasFilterButton|default(false) %}
  173.             <div class="col-auto ml-auto d-md-none vertical-gutter__item">
  174.                 <button type="button" data-target="{{ filterTarget|default('filterTarget') }}"
  175.                         class="btn btn-no-styling text-primary-light js-overlay-toggle">
  176.                     <span class="icon icon-menu"></span> {{ 'result-info.Filter anzeigen'|trans }}
  177.                 </button>
  178.             </div>
  179.         {% endif %}
  180.         <div class="col-md vertical-gutter__item">
  181.             {% if block('paging') is defined %}
  182.                 {{ block('paging') }}
  183.             {% endif %}
  184.         </div>
  185.     </div>
  186. {% endif %}