Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:tags:pager_tags:pager_navigator_tag

<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:first>
  • Ссылка на предыдущую страницу. Тег <pager:prev>
  • Ссылка на страницу. Тег <pager:number>
  • Ссылка на текущую страницу. Тег <pager:current>
  • Ссылка на секцию. Тег <pager:section>
  • Ссылка на следующую страницу. Тег <pager:next>
  • Ссылка на последнуюю страницу. Тег <pager:last>
  • Начальный элемент (номер), выводимый на текущей странице. Св-во BeginItemNumber
  • Конечный элемент (номер), выводимый на текущей странице. Св-во EndItemNumber
  • Общее количество элементов. Св-во TotalItems
  • Общее количество страниц. Св-во TotalPages

* Признак, что 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 шаблона.

Атрибуты

  • 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 (внешнее изменение)