====== ====== ===== Описание ===== позволяет лимитировать итераторы и выводить так называемый **pager**, то есть список страниц со ссылками. WACT pager поддерживает 2 способа вывода большого количества ссылок: - режим **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_tag|]] * Ссылка на предыдущую страницу. Тег [[pager_prev_tag|]] * Ссылка на страницу. Тег [[pager_number_tag|]] * Ссылка на текущую страницу. Тег [[pager_current_tag|]] * Ссылка на секцию. Тег [[pager_section_tag|]] * Ссылка на следующую страницу. Тег [[pager_next_tag|]] * Ссылка на последнуюю страницу. Тег [[pager_last_tag|]] * Начальный элемент (номер), выводимый на текущей странице. Св-во **%%BeginItemNumber%%** * Конечный элемент (номер), выводимый на текущей странице. Св-во **%%EndItemNumber%%** * Общее количество элементов. Св-во **%%TotalItems%%** * Общее количество страниц. Св-во **%%TotalPages%%** * Признак, что pager содержит более одной страницы. Св-во **%%HasMoreThanOnePage%%** Вывод pager-а достаточно гибко настраивается. см. также разделы * [[limb3:ru:packages:wact:pagination|"Постраничный вывод данных в WACT-шаблонах"]] * [[limb3:ru:packages:wact:tags:pager_tags:paginate_tag|]] - тег, позволяющий связывать pager со списком прямо в WACT-шаблоне. ===== Синтаксис ===== __some_chil_tags_with_decorating_content__ ===== Область применения ===== В любом месте WACT шаблона. ===== Атрибуты ===== * **id** - идентификатор тега. * **items** - позволяет указать, сколько записей из итератора должно выводиться на одной странице. * **pages_per_section** - позволяет указать, сколько страниц должно находиться в одной секции. Атрибут учитывается, если внутри нет тега [[pager_elipses_tag|]]. * **pages_in_middle** - позволяет указать количество страниц в центре pager-а, включая текущую страницу. Атрибут учитывается, если используется тег [[pager_elipses_tag|]]. * **pages_in_sides** - позволяет указать количество страниц по бокам pager-а. Атрибут учитывается, если используется тег [[pager_elipses_tag|]]. * **pager_prefix** - позволяет указать префикс, который будет использовать при передаче информации о текущей странице в запросах. Использование этого параметра позволяет использовать сразу несколько pager-ов на одной странице. * **mirror** - позволяет указать идентификатор pager-а, который будет использоваться как ведущий для текущего pager-а. Это позволяет вывести 2-pager-а, которые могут друг друга дублировать. ===== Содержимое ===== Дочерние теги, плюс элементы оформления. ===== Список доступных свойств ===== |**%%BeginItemNumber%%**|Номер первой записи на текущей странице| |**%%EndItemNumber%%**|Номер последней записи на текущей странице| |**%%HasMoreThanOnePage%%**|Равно true, если итератор можно разбить на 2 страницы или более| |**%%TotalItems%%**|Общее количество элементов в итераторе| |**%%TotalPages%%**|Общее количество страниц в pager-е| ===== Пример использования ===== Рабочие примеры можно найти в папке **limb/wact/examples/tags/pager/**. ==== Pager с секциями ==== Total items : {$TotalItems}. Shown: from {$BeginItemNumber} to {$EndItemNumber} First First [{$number_begin}..{$number_end}] {$number} {$number} - Next Last Выведет приблизительно вот такой 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 ==== {$number} {$number} ... - Выведет приблизительно вот такой pager: 1-2-3...6-7-8-9-10...15-16-17 ==== Cкрытие пустого pager-а ==== Для скрытия содержимого pager-а можно использовать св-во **%%HasMoreThanOnePage%%** совместно с тегов : Total items : {$TotalItems}. Shown: from {$BeginItemNumber} to {$EndItemNumber} {$number} {$number} ... -