Сниппет getPage

Опубликовано: 03 Мая 2014

GetPage  - это сниппет MODx Revo, который позволяет вам добавлять пагинацию к элементам сайта, которые могут быть разбиты постранично. Согласно документации getPage – это общий сниппет для представления, навигации и возможного кеширования, многостраничных просмотров любых элементов, которые принимают ограничительные и офсетные параметры для ограничения набора данных и устанавливает плейсхолдер, который getPage может использовать для получения общего количества элементов  выводимых на странице.

Параметры getPage

Параметр

Описание

По умолчанию

Пример

&element

Название modElement для обработки вывода

нет

&element=`getResources`

&limit

Лимит отображения пунктов постраничной навигации.

10

&limit=`4`

&offset

Смещение (отступ) или позиция записи для старта в пределах выборки для записи результатов текущей страницы; расчитываеться на основе общего количества, лимита и переменной страницы установленной в pageVarKey.

0

&offset=`7`

&page

Страница для отображения, что определяется на основе значения переменной $ _REQUEST указанной в pageVarKey.

нет

 

&pageCount

Общее число страницы.

нет

&pageCount=`7`

&pageVarKey

Ключ свойства, что показывает текущую страницу в пределах

page

&pageVarKey=`newpage`

&totalVar

Ключ плейсхолдера, который должен содержать общее количество записей в рамках массива, разделяемого на страницы.

total

&totalVar =`newtotal`

&total

Общее количество записей, разбиваемых на страницы.

нет

&total=`7`

&firstItem

Индекс первого элемента что отображается на текущей странице.

нет

&firstItem=`1`

&lastItem

Индекс последнего элемента что отображается на текущей странице.

нет

&lastItem=`8`

&PageOneLimit

Дополнительный предел результата для первой странице результатов, которые могут отличаться от основного предела

нет

&PageOneLimit=`4`

&pageLimit

Максимальное количество страниц.

5

&pageLimit=`4`

&pageNavVar

Ключ плейсхолдера, который будет установлен с помощью элементов навигации вызова.

 

page

&pageNavVar=`newpage`

&pageNavOuterTpl

Размещение элементов пагинации

 

&pageNavTpl

Оформление одиночного элемента.

<li> <a href=""> </a> </li>

 

&pageActiveTpl

Оформление активного

элемента

<li>  <a class ="active" href=""></a> </li>

 

&pageFirstTpl

Оформление первого элемента

<li class="control"> <a href="">First </a> </li>

 

&pageLastTpl

Оформление последнего элемента

<li class="control"> <a href=""> Last</a> </li>

 

&pagePrevTpl

Оформление пункта «Предыдущая»

<li class="control"> <a href=""> &lt;&lt;</a> </li>

 

&pageNextTpl

Оформление пункта «Следующая»

<li class="control"> <a href="">&gt;&gt; </a></li>

 

&cache

Указывает, что содержание каждого запроса страницы следует кешировать, уникальным запросом URI (не только pageVarKey)

Значение параметра кеш-ресурса или ложь

 

&cache_key

Ключ, идентифицирующий именованный экземпляр xPDOCache использовать для кеширования содержимого страницы.

Значение параметра кеш-ресурса или ложь

 

&cache_handler

Определяет производный класс xPDOCache использованный  для экземпляра.

Значение параметра кеш-ресурса или xPDOFileCache

 

&cache_expires

Показывает количество секунд  для каждого элемента, жизни в кеше.

Значение параметра cache_key, или 0

 

&elementClass

Имя класса modElement .

modSnippet

 

&namespace

Имя, которое служит в качестве префикса для плейсхордеров, установленных  в конкретном экземпляре фрагмента GetPage.

 

 

&toPlaceholde

Указывает элемент, который не вернется в GetPage, а установит плейсхолдер, содержащий контент GetPage.

 

 

 GetPage – это сниппет обёртка. Он не может сам по себе делать что-либо. Ему нужен другой сниппет для вывода чего-то,  что затем он разбивает на страницы. Другими словами, вам нужно иметь еще один сниппет, который выводит содержимое, которое вы хотите разбить на страницы и затем getPage делает пагинацию для вас.

Например, сниппет  getPage вместе с getResources , будет выглядеть так

[ [!getPage?&elementClass=`modSnippet` &element=`getResources` &showHidden=`1` &tpl=`nameTpl` &limit=`3` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &parents=`9` &hideContainers=`1`]]

 Обратите внимание, что с 4 строчки идут параметры, которые мы ставим в getResources, а все что выше 4 строчки относиться к getPage, т.е. мы указываем, что обёртываем сниппет (elementClass=`modSnippet`) и что этот сниппет – это getResources (element=`getResources`).

Чтобы добавить пагинацию на страницу в вызов мы поставим еще 2 параметра

  • pageLimit – устанавливает максимум ссылок страниц для вывода в элементах управления перед добавлением кнопки следующая. По умолчанию, данное значение равно 5.
  • pageNavVar  - устанавливает заполнитель (плейсхолдер) для элементов управления пагинацией. По умолчанию: page.nav.

И добавим вывод самой строчки пагинации [ [!+page.nav]]

Вот так теперь будет выглядеть наш вызов getPage

[ [!getPage?&elementClass=`modSnippet` &element=`getResources` &showHidden=`1` &tpl=`nameTpl` &limit=`3` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &parents=`9` &hideContainers=`1` &pageLimit=`5` &pageNavVar=`page.nav` ]] [ [!+page.nav]]

Шаблон для вывода getPage

Сниппет getPage имеет несколько параметров для шаблонизации вывода, описание которых можно найти в официальной документации. Их можно  установить  прямо в вызове вашего сниппета, так же как и другие параметры. Однако, согласно официальной документации вам не следует это делать. Вместо этого, вы должны использовать наборы свойств (property sets) для шаблонизации

Это наборы свойств, могут быть однажды установлены, и затем вызваны в синтаксисе вызове элемента следующим образом:

[ [!getPage@Paging?]], где Paging название набора свойств.

Установить набор свойств.

Заходим в сниппет getPage и переходим на вкладку «Параметры»

 

Нажимаем кнопку «Добавить набор параметров» и нажимаем кнопку «Сохранить»

 

Мы получаем набор свойств для редактирования, в котором можно задать стили пунктов пагинации, количеств выводимых документов и т.д.

Вывод  сниппета с параметрами

[ [!getPage@Paging?< &elementClass=`modSnippet` &element=`getResources` &showHidden=`1` &tpl=`nameTpl` &limit=`3` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &parents=`9` &hideContainers=`1` &pageLimit=`5` &pageNavVar=`page.nav` ]] [ [!+page.nav]]

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: