templates/_pagination.html.twig line 1

Open in your IDE?
  1. {% macro _pagination_path(route, query, pageParameterName, page_number) %}
  2. {% set _route = page_number == 1 ? route : route~'._pagination' %}
  3. {% if _route == 'profile_list.list_by_city' and query.city is not defined %}
  4.     {{ path(_route, query|merge({(pageParameterName): page_number, city: app.request.get('city')})) }}
  5. {% else %}
  6.     {{ path(_route, query|merge({(pageParameterName): page_number})) }}
  7. {% endif %}
  8. {% endmacro %}
  9. {% from _self import _pagination_path %}
  10. {% if pageCount > 1 %}
  11.     <nav class="pagination-nav">
  12.         {% set classAlign = (align is not defined) ? '' : align=='center' ? ' justify-content-center' : (align=='right' ? ' justify-content-end' : '') %}
  13.         {% set classSize = (size is not defined) ? '' : size=='large' ? ' pagination-lg' : (size=='small' ? ' pagination-sm' : '') %}
  14.         <ul class="pagination{{ classAlign }}{{ classSize }}">
  15.             {% if previous is defined %}
  16.                 <li class="page-item pagination__item pagination__item--arrow">
  17.                     <a class="page-link pagination__link pagination__arrow" rel="prev" href="{{ _pagination_path(route, query, pageParameterName, previous) }}" aria-label="{{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}">
  18.                         <svg class="icon20" aria-hidden="true" pointer-events="none"><use href="#pagination-arrow-left-icon"></use></svg>
  19.                     </a>
  20.                 </li>
  21.             {% else %}
  22.                 <li class="page-item pagination__item pagination__item--arrow pagination__item--disabled" aria-disabled="true">
  23.                     <span class="page-link pagination__link pagination__arrow" aria-label="{{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}">
  24.                         <svg class="icon20" aria-hidden="true" pointer-events="none"><use href="#pagination-arrow-left-icon"></use></svg>
  25.                     </span>
  26.                 </li>
  27.             {% endif %}
  28.             {% if startPage > 1 %}
  29.                 <li class="page-item pagination__item pagination__item--compact-hidden">
  30.                     <a class="page-link pagination__link" href="{{ _pagination_path(route, query, pageParameterName, 1) }}">1</a>
  31.                 </li>
  32.                 {% if startPage == 3 %}
  33.                     <li class="page-item pagination__item pagination__item--compact-hidden">
  34.                         <a class="page-link pagination__link" href="{{ _pagination_path(route, query, pageParameterName, 2) }}">2</a>
  35.                     </li>
  36.                 {% elseif startPage != 2 %}
  37.                     <li class="page-item pagination__item pagination__item--ellipsis pagination__item--compact-hidden" aria-hidden="true">
  38.                         <span class="page-link pagination__link">&hellip;</span>
  39.                     </li>
  40.                 {% endif %}
  41.             {% endif %}
  42.             {% for page in pagesInRange %}
  43.                 {% set isCompactPaginationPage = page >= current - 2 and page <= current + 2 %}
  44.                 {% if page != current %}
  45.                     <li class="page-item pagination__item{{ isCompactPaginationPage ? '' : ' pagination__item--compact-hidden' }}">
  46.                         <a class="page-link pagination__link" href="{{ _pagination_path(route, query, pageParameterName, page) }}">{{ page }}</a>
  47.                     </li>
  48.                 {% else %}
  49.                     <li class="page-item pagination__item pagination__item--active" aria-current="page">
  50.                         <span class="page-link pagination__link">{{ page }}</span>
  51.                     </li>
  52.                 {% endif %}
  53.             {% endfor %}
  54.             {% if pageCount > endPage %}
  55.                 {% if pageCount > (endPage + 1) %}
  56.                     {% if pageCount > (endPage + 2) %}
  57.                         <li class="page-item pagination__item pagination__item--ellipsis pagination__item--compact-hidden" aria-hidden="true">
  58.                             <span class="page-link pagination__link">&hellip;</span>
  59.                         </li>
  60.                     {% else %}
  61.                         <li class="page-item pagination__item pagination__item--compact-hidden">
  62.                             <a class="page-link pagination__link" href="{{ _pagination_path(route, query, pageParameterName, (pageCount -1)) }}">{{ pageCount -1 }}</a>
  63.                         </li>
  64.                     {% endif %}
  65.                 {% endif %}
  66.                 <li class="page-item pagination__item pagination__item--compact-hidden">
  67.                     <a class="page-link pagination__link" href="{{ _pagination_path(route, query, pageParameterName, pageCount) }}">{{ pageCount }}</a>
  68.                 </li>
  69.             {% endif %}
  70.             {% if next is defined %}
  71.                 <li class="page-item pagination__item pagination__item--arrow">
  72.                     <a class="page-link pagination__link pagination__arrow" rel="next" href="{{ _pagination_path(route, query, pageParameterName, next) }}" aria-label="{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }}">
  73.                         <svg class="icon20" aria-hidden="true" pointer-events="none"><use href="#pagination-arrow-right-icon"></use></svg>
  74.                     </a>
  75.                 </li>
  76.             {% else %}
  77.                 <li class="page-item pagination__item pagination__item--arrow pagination__item--disabled" aria-disabled="true">
  78.                     <span class="page-link pagination__link pagination__arrow" aria-label="{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }}">
  79.                         <svg class="icon20" aria-hidden="true" pointer-events="none"><use href="#pagination-arrow-right-icon"></use></svg>
  80.                     </span>
  81.                 </li>
  82.             {% endif %}
  83.         </ul>
  84.     </nav>
  85. {% endif %}