{%- block pager_widget -%}
{%- endblock pager_widget -%}
{%- block pager -%}
{# Previous Page Link #}
{%- if pagerfanta.hasPreviousPage() -%}
{%- set path = route_generator.route(pagerfanta.getPreviousPage()) -%}
{{- block('previous_page_link') -}}
{%- else -%}
{{- block('previous_page_link_disabled') -}}
{%- endif -%}
{# First Page Link #}
{%- if start_page > 1 -%}
{%- set page = 1 -%}
{%- set path = route_generator.route(page) -%}
{{- block('page_link') -}}
{%- endif -%}
{# Second Page Link, displays if we are on page 3 #}
{%- if start_page == 3 -%}
{%- set page = 2 -%}
{%- set path = route_generator.route(page) -%}
{{- block('page_link') -}}
{%- endif -%}
{# Separator, creates a "..." separator to limit the number of items if we are starting beyond page 3 #}
{%- if start_page > 3 -%}
{{- block('ellipsis') -}}
{%- endif -%}
{# Page Links #}
{%- for page in range(start_page, end_page) -%}
{%- set path = route_generator.route(page) -%}
{%- if page == current_page -%}
{{- block('current_page_link') -}}
{%- else -%}
{{- block('page_link') -}}
{%- endif -%}
{%- endfor -%}
{# Separator, creates a "..." separator to limit the number of items if we are over 3 pages away from the last page #}
{%- if end_page < (nb_pages - 2) -%}
{{- block('ellipsis') -}}
{%- endif -%}
{# Second to Last Page Link, displays if we are on the third from last page #}
{%- if end_page == (nb_pages - 2) -%}
{%- set page = (nb_pages - 1) -%}
{%- set path = route_generator.route(page) -%}
{{- block('page_link') -}}
{%- endif -%}
{# Last Page Link #}
{%- if nb_pages > end_page -%}
{%- set page = nb_pages -%}
{%- set path = route_generator.route(page) -%}
{{- block('page_link') -}}
{%- endif -%}
{# Next Page Link #}
{%- if pagerfanta.hasNextPage() -%}
{%- set path = route_generator.route(pagerfanta.getNextPage()) -%}
{{- block('next_page_link') -}}
{%- else -%}
{{- block('next_page_link_disabled') -}}
{%- endif -%}
{%- endblock pager -%}
{%- block page_link -%}
{%- endblock page_link -%}
{%- block current_page_link -%}
{%- endblock current_page_link -%}
{%- block previous_page_link -%}
{%- endblock previous_page_link -%}
{%- block previous_page_link_disabled -%}
{%- endblock previous_page_link_disabled -%}
{%- block previous_page_message -%}
{%- if options['prev_message'] is defined -%}
{{- options['prev_message'] -}}
{%- else -%}
Previous
{%- endif -%}
{%- endblock previous_page_message -%}
{%- block next_page_link -%}
{%- endblock next_page_link -%}
{%- block next_page_link_disabled -%}
{%- endblock next_page_link_disabled -%}
{%- block next_page_message -%}
{%- if options['next_message'] is defined -%}
{{- options['next_message'] -}}
{%- else -%}
Next
{%- endif -%}
{%- endblock next_page_message -%}
{%- block ellipsis -%}
{%- endblock ellipsis -%}