Нижеприведенный код можно использовать, если листалку документов нужно вывести в виде диапазона, например: 1—5, 6—10, 11—15, 16—18
{foreach from=$pages item=href key=p name=pagerfor}
{capture name=range}
{math equation="y*(x-1)+1" x=$p y=$by} -
{math equation="min(x*y,z)" x=$p y=$by z=$docs}
{/capture}
{if $href}
{* выводим ссылку на страницу *}
{$smarty.capture.range}
{else}
{* если страница текущая, то $href содержит null *}
{$smarty.capture.range}
{/if}
{if not $smarty.foreach.pagerfor.last}, {/if}
{/foreach}
В шаблоне листалки определены нужные нам следующие переменные:
$pages — массив ссылок на страницы (массив содержит не все страницы, а только те, которые находятся рядом с текущей и задается в объекте листалки в поле "Количество отображаемых страниц:").
$by — количество документов, выводимых на 1 странице (в нашем случае это 5).
$docs — количество документов (в нашем случае это 18). Обратите внимание, что последний диапазон выводит не 16—20, а учитывает реальное количество документов.

Комментарии