Files
2026-10-09 16:37:53 +02:00

25 lines
1.3 KiB
Twig

{#
Compact pager: first / previous / current / next / last — deliberately
not a full list of page numbers, since result sets here can run into
the hundreds of pages.
Params:
currentPage, totalPages: integers
routeName: the route to link back to
routeParams: all params to preserve *except* `page` (e.g. category,
q, when, lat, lon, range)
#}
{% if totalPages > 1 %}
<nav class="pager" aria-label="{{ 'pager.nav'|trans }}">
{% if currentPage > 1 %}
<a href="{{ path(routeName, routeParams|merge({page: 1})) }}" aria-label="{{ 'pager.first_aria'|trans }}">{{ 'pager.first'|trans }}</a>
<a href="{{ path(routeName, routeParams|merge({page: currentPage - 1})) }}" aria-label="{{ 'pager.prev_aria'|trans }}">{{ 'pager.prev'|trans }}</a>
{% endif %}
<span class="is-active">{{ 'pager.page'|trans({'%current%': currentPage, '%total%': totalPages}) }}</span>
{% if currentPage < totalPages %}
<a href="{{ path(routeName, routeParams|merge({page: currentPage + 1})) }}" aria-label="{{ 'pager.next_aria'|trans }}">{{ 'pager.next'|trans }}</a>
<a href="{{ path(routeName, routeParams|merge({page: totalPages})) }}" aria-label="{{ 'pager.last_aria'|trans }}">{{ 'pager.last'|trans }}</a>
{% endif %}
</nav>
{% endif %}