Содержание

<pager:navigator>

Описание

<pager:navigator> позволяет лимитировать итераторы и выводить так называемый pager, то есть список страниц со ссылками.

WACT pager поддерживает 2 способа вывода большого количества ссылок:

  1. режим elipses, когда выводится только несколько страниц вокруг текущей и некоторое количество страниц в начале и в конце списка (см. тег <pager:elipses>). Список страниц будет выглядеть приблизительно так: 1-2-3…7-8-9…20-21-22. Этот режим предпочтительнее, когда для пользователя по сути не важно попасть на какую-то определенную страницу.
  2. режим sections (секции), которые можно понимать как страницы страниц. Список страниц будет выглядеть приблизительно так: [1-10][11-20]21-22-23-24-25-26-27-28-29-30[31-40][40-47]

Выделяют следующие элементы pager-а:

* Признак, что pager содержит более одной страницы. Св-во HasMoreThanOnePage

Вывод pager-а достаточно гибко настраивается.

см. также разделы

Синтаксис

<pager:navigatorid='id' items='items_per_page' [pages_per_section='pages_per_section'] [pager_prefix='prefix'] [pages_in_middle='pages_in_middle'] [pages_in_sides='pages_in_sides'] [mirror='main_pager_id']/>
__some_chil_tags_with_decorating_content__
</pager:navigator>

Область применения

В любом месте WACT шаблона.

Атрибуты

Содержимое

Дочерние теги, плюс элементы оформления.

Список доступных свойств

BeginItemNumberНомер первой записи на текущей странице
EndItemNumberНомер последней записи на текущей странице
HasMoreThanOnePageРавно true, если итератор можно разбить на 2 страницы или более
TotalItemsОбщее количество элементов в итераторе
TotalPagesОбщее количество страниц в pager-е

Пример использования

Рабочие примеры можно найти в папке limb/wact/examples/tags/pager/.

Pager с секциями

<pager:NAVIGATOR id="pager" items="5" pages_per_section="5">
 
Total items : {$TotalItems}. Shown: from <b>{$BeginItemNumber}</b> to <b>{$EndItemNumber}</b>
 
<pager:FIRST><a href="{$href}">First</a></pager:FIRST>
<pager:PREV><a href="{$href}">First</a></pager:PREV>
 
<pager:LIST>
<pager:SECTION><a href="{$href}">[{$number_begin}..{$number_end}]</a></pager:SECTION>
<pager:CURRENT><b><a href="{$href}">{$number}</a></b></pager:CURRENT>
<pager:NUMBER><a href="{$href}">{$number}</a></pager:NUMBER>
<pager:SEPARATOR>-</pager:SEPARATOR>
</pager:LIST>
 
<pager:NEXT><a href="{$href}">Next</a></pager:NEXT>
<pager:LAST><a href="{$href}">Last</a></pager:LAST>
 
</pager:NAVIGATOR>

Выведет приблизительно вот такой pager:

 Total items : 174. Shown: from 121 to 130.
 First Prev [1..5][6..10]11-12-13-14-15[16..17] Next Last

Pager с elipses

<pager:NAVIGATOR id="pager" items="5" pages_in_middle="5" pages_in_sides="3">
 
<pager:LIST>
<pager:CURRENT><b><a href="{$href}">{$number}</a></b></pager:CURRENT>
<pager:NUMBER><a href="{$href}">{$number}</a></pager:NUMBER>
<pager:ELIPSES>...</pager:ELIPSES>
<pager:SEPARATOR>-</pager:SEPARATOR>
</pager:LIST>
 
</pager:NAVIGATOR>

Выведет приблизительно вот такой pager:

 1-2-3...6-7-8-9-10...15-16-17

Cкрытие пустого pager-а

Для скрытия содержимого pager-а можно использовать св-во HasMoreThanOnePage совместно с тегов <core:optional>:

<pager:NAVIGATOR id="pager" items="5" pages_in_middle="5" pages_in_sides="3">
 
<core:optional for='HasMoreThanOnePage '>
 
Total items : {$TotalItems}. Shown: from <b>{$BeginItemNumber}</b> to <b>{$EndItemNumber}</b>
 
<pager:LIST>
<pager:CURRENT><b><a href="{$href}">{$number}</a></b></pager:CURRENT>
<pager:NUMBER><a href="{$href}">{$number}</a></pager:NUMBER>
<pager:ELIPSES>...</pager:ELIPSES>
<pager:SEPARATOR>-</pager:SEPARATOR>
</pager:LIST>
 
</core:optional>
 
</pager:NAVIGATOR>