Контактная информация            Баг трекер            Предложение хостинг-провайдерам

Листалка как диапазон документов: 1—5, 6—10...

Игорь Бронников (ne0d1n) Автор: Игорь Бронников (ne0d1n)
Дата: 4 июня 2007
Рубрика: How-to

Нижеприведенный код можно использовать, если листалку документов нужно вывести в виде диапазона, например: 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, а учитывает реальное количество документов.

Комментарии

RSS RSS
test, 4 июля 2009
test

Добавить комментарий

Имя:     Email:
Комментарий:
Введите символы, которые видите на картинке.
Если символы неразборчивы, кликните по картинке несколько раз.