Skip to content

Instantly share code, notes, and snippets.

@VincentLoy
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VincentLoy/41cf27ba4102a3cc9aa7 to your computer and use it in GitHub Desktop.
Save VincentLoy/41cf27ba4102a3cc9aa7 to your computer and use it in GitHub Desktop.
Foundation 5 Sliding pagination control implementation for KnpPaginationBundle for Symfony 2
{#
/**
* @file
* Foundation 5 Sliding pagination control implementation.
*
* View that can be used with the pagination module
* from the Foundation 5 CSS Toolkit
* http://foundation.zurb.com/docs/components/pagination.html
* is made to work with knppaginationbundle for symfony 2
* http://knpbundles.com/KnpLabs/KnpPaginatorBundle
*
* @author Vincent Loy <vincent.loy1@gmail.com>
*
* This view have been ported from twitter bootstrap v3 pagination control implementation
* from :
* @author Pablo Díez <pablodip@gmail.com>
* @author Jan Sorgalla <jsorgalla@gmail.com>
* @author Artem Ponomarenko <imenem@inbox.ru>
* @author Artem Zabelin <artjomzabelin@gmail.com>
*/
#}
{% if pageCount > 1 %}
<ul class="pagination">
{% if previous is defined %}
<li class="arrow">
<a href="{{ path(route, query|merge({(pageParameterName): previous})) }}">&laquo; {{ 'Previous'|trans }}</a>
</li>
{% else %}
<li class="arrow unavailable">
<a>
&laquo; {{ 'Previous'|trans }}
</a>
</li>
{% endif %}
{% if startPage > 1 %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): 1})) }}">1</a>
</li>
{% if startPage == 3 %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): 2})) }}">2</a>
</li>
{% elseif startPage != 2 %}
<li class="unavailable">
<a>&hellip;</a>
</li>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): page})) }}">
{{ page }}
</a>
</li>
{% else %}
<li class="current">
<a>{{ page }}</a>
</li>
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<li class="unavailable">
<a>&hellip;</a>
</li>
{% else %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): (pageCount - 1)})) }}">
{{ pageCount -1 }}
</a>
</li>
{% endif %}
{% endif %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): pageCount})) }}">{{ pageCount }}</a>
</li>
{% endif %}
{% if next is defined %}
<li class="arrow">
<a href="{{ path(route, query|merge({(pageParameterName): next})) }}">
{{ 'Next'|trans }} &nbsp;&raquo;
</a>
</li>
{% else %}
<li class="arrow unavailable">
<a>
{{ 'Next'|trans }} &nbsp;&raquo;
</a>
</li>
{% endif %}
</ul>
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment