- Check if pagination is needed
- Display previous link if applicable
- Loop through pages to display page numbers
- Add ellipsis for skipped pages
- Display next link if applicable
HTML
<div class="row">
{if isset($pages) && $pages>1}
<nav style=" text-align: center; ">
<ul class="pagination">
{if ((int)$page+1)-1 > 0}<li class="page-item"><a class="page-link" href="?pagina={$page-1}">← <span>Precedente</span></a></li>{/if}
{assign var="foo" value=1}
{for $foo=max(1, $page-5) to min($pages, $page+5)}
<li class="page-item {if ($foo-1)==(int)$page}active{/if}"><a class="page-link" href="?pagina={$foo-1}">{$foo}</a></li>
{/for}
{if $foo<($pages)}
<li class="page-item"><a class="page-link disabled" href="#">...</a></li>
<li class="page-item"><a class="page-link" href="?pagina={$pages-1}">{$pages}</a></li>
{/if}
{if ((int)$page+1)+1 <= $pages}<li class="page-item"><a class="page-link" href="?pagina={(int)$page+1}"><span>Successivo</span> → </a></li>{/if}
</ul>
</nav>
{/if}
</div>