add knp pager configuration and template

This commit is contained in:
Simon Vieille 2021-03-29 10:35:57 +02:00
parent 5cacfd9c39
commit 0dff733727
2 changed files with 87 additions and 0 deletions

11
config/packages/knp.yaml Normal file
View File

@ -0,0 +1,11 @@
knp_paginator:
page_range: 4
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: '@Core/pager/sliding.html.twig' # sliding pagination controls template
sortable: '@KnpPaginator/Pagination/sortable_link.html.twig' # sort link template
filtration: '@KnpPaginator/Pagination/filtration.html.twig' # filters template

View File

@ -0,0 +1,76 @@
{% if pageCount > 1 %}
<ul class="pagination pagination-sm justify-content-end">
{% if previous is defined %}
<li class="page-item">
<a rel="prev" href="{{ path(route, query|merge({(pageParameterName): previous})) }}" class="page-link">
<span class="fa fa-chevron-left"></span>
</a>
</li>
{% else %}
<li class="page-item disabled">
<span class="page-link">
<span class="fa fa-chevron-left"></span>
</span>
</li>
{% endif %}
{% if startPage > 1 %}
<li class="page-item">
<a href="{{ path(route, query|merge({(pageParameterName): 1})) }}" class="page-link">1</a>
</li>
{% if startPage == 3 %}
<li class="page-item">
<a href="{{ path(route, query|merge({(pageParameterName): 2})) }}" class="page-link">2</a>
</li>
{% elseif startPage != 2 %}
<li class="page-item disabled">
<span class="page-link">&hellip;</span>
</li>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<li class="page-item">
<a href="{{ path(route, query|merge({(pageParameterName): page})) }}" class="page-link">{{ page }}</a>
</li>
{% else %}
<li class="active page-item">
<span class="page-link">{{ page }}</span>
</li>
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<li class="page-item disabled">
<span class="page-link">&hellip;</span>
</li>
{% else %}
<li class="page-item">
<a href="{{ path(route, query|merge({(pageParameterName): (pageCount - 1)})) }}" class="page-link">{{ pageCount -1 }}</a>
</li>
{% endif %}
{% endif %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): pageCount})) }}" class="page-link">{{ pageCount }}</a>
</li>
{% endif %}
{% if next is defined %}
<li class="page-item">
<a rel="next" class="page-link" href="{{ path(route, query|merge({(pageParameterName): next})) }}">
<span class="fa fa-chevron-right"></span>
</a>
</li>
{% else %}
<li class="page-item disabled">
<span class="page-link">
<span class="fa fa-chevron-right"></span>
</span>
</li>
{% endif %}
</ul>
{% endif %}