templates/_pagination.html.twig line 1

Open in your IDE?
  1. {#
  2. /**
  3.  * @file
  4.  * Twitter Bootstrap v4-beta.2 Sliding pagination control implementation.
  5.  *
  6.  * View that can be used with the pagination module
  7.  * from the Twitter Bootstrap CSS Toolkit
  8.  * https://getbootstrap.com/docs/4.0/components/pagination/
  9.  *
  10.  */
  11. #}
  12. {%- macro _pagination_path(route, query, pageParameterName, page_number) -%}
  13.     {%- if page_number == 1 -%}
  14.         {%- set _route = route -%}
  15.         {%- set _query = query|filter((v, k) => k != pageParameterName) -%}
  16.     {%- else -%}
  17.         {%- set _route = route~'._pagination' -%}
  18.         {%- set _query = query|merge({(pageParameterName): page_number}) -%}
  19.     {%- endif -%}
  20.     {{ path(_route, _query) }}
  21. {%- endmacro -%}
  22. {%- from _self import _pagination_path -%}
  23. <div id="pagination_container">
  24. {%- if pageCount > 1 -%}
  25.     <nav class="pagination">
  26.         {%- set classAlign = (align is not defined) ? '' : align=='center' ? ' justify-content-center' : (align=='right' ? ' justify-content-end' : '') -%}
  27.         {%- set classSize = (size is not defined) ? '' : size=='large' ? ' pagination-lg' : (size=='small' ? ' pagination-sm' : '') -%}
  28.         <ul class="d-flex">
  29.             {%- if previous is defined -%}
  30.                 <li class="pagination__item">
  31.                     <a class="pagination__link" rel="prev" data-page="{{previous}}" href="{{- _pagination_path(route, query, pageParameterName, previous) -}}">{#&laquo;&nbsp;{{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}#}
  32.                         <svg class="icon">
  33.                             <use xlink:href="{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-arrow-left"></use>
  34.                         </svg>
  35.                     </a>
  36.                 </li>
  37.             {%- else -%}
  38.                 <li class="pagination__item disabled">
  39.                     <span class="pagination__link d-flex">
  40.                         {#&laquo;&nbsp;{{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}#}
  41.                         <svg class="icon">
  42.                             <use xlink:href="{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-arrow-left"></use>
  43.                         </svg>
  44.                     </span>
  45.                 </li>
  46.             {%- endif -%}
  47.             {%- if startPage > 1 -%}
  48.                 <li class="pagination__item">
  49.                     <a class="pagination__link" href="{{- _pagination_path(route, query, pageParameterName, 1) -}}">1</a>
  50.                 </li>
  51.                 {%- if startPage == 3 -%}
  52.                     <li class="pagination__item">
  53.                         <a class="pagination__link" href="{{- _pagination_path(route, query, pageParameterName, 2) -}}">2</a>
  54.                     </li>
  55.                 {%- elseif startPage != 2 -%}
  56.                     <li class="pagination__item pagination__item_spacer">
  57.                         <div class="pagination__link d-flex">...</div>
  58.                     </li>
  59.                 {%- endif -%}
  60.             {%- endif -%}
  61.             {%- for page in pagesInRange -%}
  62.                 {%- if page != current -%}
  63.                     <li class="pagination__item">
  64.                         <a class="pagination__link" href="{{- _pagination_path(route, query, pageParameterName, page) -}}">{{- page -}}</a>
  65.                     </li>
  66.                 {%- else -%}
  67.                     <li class="pagination__item pagination__item_first pagination__item_active">
  68.                         <a href="#" class="pagination__link">{{ page }}</a>
  69.                     </li>
  70.                 {%- endif -%}
  71.             {%- endfor -%}
  72.             {%- if pageCount > endPage -%}
  73.                 {%- if pageCount > (endPage + 1) -%}
  74.                     {%- if pageCount > (endPage + 2) -%}
  75.                         <li class="pagination__item pagination__item_spacer">
  76.                             <div class="pagination__link">...</div>
  77.                         </li>
  78.                     {%- else -%}
  79.                         <li class="pagination__item">
  80.                             <a class="pagination__link" href="{{- _pagination_path(route, query, pageParameterName, (pageCount - 1)) -}}">{{- pageCount -1 -}}</a>
  81.                         </li>
  82.                     {%- endif -%}
  83.                 {%- endif -%}
  84.                 <li class="pagination__item">
  85.                     <a class="pagination__link" href="{{- _pagination_path(route, query, pageParameterName, pageCount) -}}">{{- pageCount -}}</a>
  86.                 </li>
  87.             {%- endif -%}
  88.             {%- if next is defined -%}
  89.                 <li class="pagination__item">
  90.                     <a class="pagination__link" rel="next" data-page="{{next}}" href="{{- _pagination_path(route, query, pageParameterName, next) -}}">
  91.                         {#{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }}&nbsp;&raquo;#}
  92.                         <svg class="icon">
  93.                             <use xlink:href="{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-arrow-right"></use>
  94.                         </svg>
  95.                     </a>
  96.                 </li>
  97.             {%- else -%}
  98.                 <li class="pagination__item disabled">
  99.                     <span class="pagination__link">{#{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }}&nbsp;&raquo;#}
  100.                         <svg class="icon">
  101.                             <use xlink:href="{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-arrow-right"></use>
  102.                         </svg>
  103.                     </span>
  104.                 </li>
  105.             {%- endif -%}
  106.         </ul>
  107.     </nav>
  108. {%- endif -%}
  109. </div>