{% macro paginator(npages, page, url) %} {{ 'Page' | trans }} {% if npages > 1 %} {% set d2top = (npages - page) %} {% set d2bottom = (page -1 ) %} {% if d2top < 3 or d2bottom < 3 %} {% if d2bottom < 3 %} {% set iteration = 4 %} {% if 3 > npages %} {% set iteration = npages %} {% endif %} {% for i in 1..iteration %} {{i}} {% endfor %} {% if npages > 3 %} {{npages}} {% endif %} {% else %} {% set start = npages - 3 %} {% if start > 0 %} 1 {% else %} {% set start = 1 %} {% endif %} {% for i in start..npages %} {{i}} {% endfor %} {% endif %} {% else %} 1 {% set l_bound = (page - 2) %} {% set t_bound = (page + 2) %} {% for i in l_bound..t_bound %} {{i}} {% endfor %} {{npages}} {% endif %} {% else %} 1 {% endif %} {% endmacro %}