limb3:ru:packages:wact:tags:pager_tags:pager_navigator_tag
Содержание
<pager:navigator>
Описание
<pager:navigator> позволяет лимитировать итераторы и выводить так называемый pager, то есть список страниц со ссылками.
WACT pager поддерживает 2 способа вывода большого количества ссылок:
- режим elipses, когда выводится только несколько страниц вокруг текущей и некоторое количество страниц в начале и в конце списка (см. тег <pager:elipses>). Список страниц будет выглядеть приблизительно так: 1-2-3…7-8-9…20-21-22. Этот режим предпочтительнее, когда для пользователя по сути не важно попасть на какую-то определенную страницу.
- режим sections (секции), которые можно понимать как страницы страниц. Список страниц будет выглядеть приблизительно так: [1-10][11-20]21-22-23-24-25-26-27-28-29-30[31-40][40-47]
Выделяют следующие элементы pager-а:
- Ссылка на первую страницу. Тег <pager:first>
- Ссылка на предыдущую страницу. Тег <pager:prev>
- Ссылка на страницу. Тег <pager:number>
- Ссылка на текущую страницу. Тег <pager:current>
- Ссылка на секцию. Тег <pager:section>
- Ссылка на следующую страницу. Тег <pager:next>
- Ссылка на последнуюю страницу. Тег <pager:last>
- Начальный элемент (номер), выводимый на текущей странице. Св-во BeginItemNumber
- Конечный элемент (номер), выводимый на текущей странице. Св-во EndItemNumber
- Общее количество элементов. Св-во TotalItems
- Общее количество страниц. Св-во TotalPages
* Признак, что pager содержит более одной страницы. Св-во HasMoreThanOnePage
Вывод pager-а достаточно гибко настраивается.
см. также разделы
- <paginate> - тег, позволяющий связывать pager со списком прямо в WACT-шаблоне.
Синтаксис
<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 шаблона.
Атрибуты
- id - идентификатор тега.
- items - позволяет указать, сколько записей из итератора должно выводиться на одной странице.
- pages_per_section - позволяет указать, сколько страниц должно находиться в одной секции. Атрибут учитывается, если внутри нет тега <pager:elipses>.
- pages_in_middle - позволяет указать количество страниц в центре pager-а, включая текущую страницу. Атрибут учитывается, если используется тег <pager:elipses>.
- pages_in_sides - позволяет указать количество страниц по бокам pager-а. Атрибут учитывается, если используется тег <pager:elipses>.
- pager_prefix - позволяет указать префикс, который будет использовать при передаче информации о текущей странице в запросах. Использование этого параметра позволяет использовать сразу несколько pager-ов на одной странице.
- mirror - позволяет указать идентификатор pager-а, который будет использоваться как ведущий для текущего pager-а. Это позволяет вывести 2-pager-а, которые могут друг друга дублировать.
Содержимое
Дочерние теги, плюс элементы оформления.
Список доступных свойств
| 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>
limb3/ru/packages/wact/tags/pager_tags/pager_navigator_tag.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1

Обсуждение