<pager:navigator> позволяет лимитировать итераторы и выводить так называемый pager, то есть список страниц со ссылками.
WACT pager поддерживает 2 способа вывода большого количества ссылок:
Выделяют следующие элементы 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: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: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
Для скрытия содержимого 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>
Обсуждение