pdoPage как замена getPage
Как и в случае с остальными сниппетами pdoTools, pdoPage отличается от своего предшественника getPage большей функциональностью, а именно: возможностью создания пагинации с пропуском страниц и поддержкой ajax из коробки. Кроме того, благодаря дополнительным параметрам, сниппет настраивается достаточно гибко.
Параметры в большинстве своём схожи. Есть некоторые нюансы, но там где они присутствуют, будет написано, в чём именно они заключаются.
Основные параметры
| getPage (значение по умолчанию) | pdoPage (значение по умолчанию) | Применение |
|---|---|---|
|
&element=`getResources` |
&element=`pdoResources` |
Имя сниппета для вывода ресурсов. Для pdoPage, обычно используется pdoResources. В случае с getPage, обычно в качестве значения параметра передаётся - getResources. |
Дополнительные параметры
| getPage (значение по умолчанию) | pdoPage (значение по умолчанию) | Применение |
|---|---|---|
|
&limit=`10` |
&limit=`10` |
Здесь указывается сколько элементов будет показано на странице. Другими словами, исходя из этого значения, будет зависеть то, из скольких страниц будет состоять пагинация. |
|
&offset=`0` |
&offset=`0` |
Количество элементов, которые будут пропущены. |
| &page=`1` |
&page=`1` |
Номер страницы, которая передаётся для вывода по умолчанию. То есть в том случае, если не указано иное значение в url. |
| - |
&pageCountVar=`pageCount` |
Имя плэйсхолдера, в котором хранится общее количество страниц. getResources. Возможности поменять параметр нет, но плэйсхолдер pageCount так же доступен. |
| &pageVarKey=`page` |
&pageVarKey=`page` |
Имя GET переменной, в которой передаётся номер текущей страницы. |
| &totalVar=`total` |
&totalVar=`page.total` |
Имя плейсхолдера, в котором хранится общее количество результатов. |
| &pageNavVar=`page.nav` |
&pageNavVar=`page.nav` |
Имя плейсхолдера, в котором хранится вся пагинация. |
Параметры шаблонов
| getPage (значение по умолчанию) | pdoPage (значение по умолчанию) | Применение |
|---|---|---|
|
&pageNavTpl=`имя чанка` Доступные значения: <li[[+classes]]><a[[+classes]][[+title]] href="[[+href]]">[[+pageNo]]</a></li> |
&tplPage=`@INLINE <li><a href="[[+href]]">[[+pageNo]]</a></li>` |
Шаблон номера страницы в пагинации. |
|
&pageActiveTpl=`имя чанка` Доступные значения: <li[[+activeClasses]]><a[[+activeClasses:default= `class="active"`]][[+title]] href="[[+href]]">[[+pageNo]]</a></li> |
&tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a></li>` |
Шаблон активного номера страницы в пагинации. |
|
&pageFirstTpl=`имя чанка` Доступные значения: <li class="control"><a[[+classes]][[+title]] href="[[+href]]">First</a></li> |
&tplPageFirst=`@INLINE <li class="control"><a href="[[+href]]">[[%pdopage_first]]</a></li>` |
Шаблон первой страницы в пагинации. |
|
&pageLastTpl=`имя чанка` Доступные значения: <li class="control"><a[[+classes]][[+title]] href="[[+href]]">Last</a></li> |
&tplPageLast=`@INLINE <li class="control"><a href="[[+href]]">[[%pdopage_last]]</a></li>` |
Шаблон последней страницы в пагинации. |
|
&pagePrevTpl=`имя чанка` Доступные значения: <li class="control"><a[[+classes]][[+title]] href="[[+href]]"><<</a></li> |
&tplPagePrev=`@INLINE <li class="control"><a href="[[+href]]">«</a></li>` |
Шаблон предыдущей страницы (стрелка влево). |
|
&pageNextTpl=`имя чанка` Доступные значения: <li class="control"><a[[+classes]][[+title]] href="[[+href]]">>></a></li> |
&tplPageNext=`@INLINE <li class="control"><a href="[[+href]]">»</a></li>` |
Шаблон следующей страницы (стрелка вправо). |
|
&pageNavOuterTpl=`имя_чанка` Доступные значения: [[+first]][[+prev]][[+pages]][[+next]][[+last]] |
&tplPageWrapper=`@INLINE <div class="pagination"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>` |
Шаблон, в котором определяется порядок отображения первой, предыдущей страницы, номерных страниц, а так же следующей и последней страницы. |
Пример вызова getPage
[[!getPage?
&element=`getResources`
&tpl=`blog_item`
&includeContent=`1`
&includeTVs=`image, gallery, video`
&limit=`3`
&pageNavOuterTpl=`wrapper_p`
&pageActiveTpl=`active_p`
&pageNavTpl=`page_p`
]]
Давайте разберём параметры сниппета:
&pageNavOuterTpl=`wrapper_p` - чанк-обёртка для вывода всех страниц. Пример содержимого чанка:
<ul>[[+pages]]</ul>
&pageActiveTpl=`active_p` - чанк для вывода текущей страницы. Пример содержимого чанка:
<span class="current">[[+pageNo]]</span>
&pageNavTpl=`page_p` - чанк ссылки на страницу. Пример содержимого чанка:
<a href="[[+href]]" class="inactive">[[+pageNo]]</a>
Напоминаю, что сниппет является обёрткой для getResources, поэтому в нём доступны параметры getResources. Так же доступен плэйсхолдер [[!+page.nav]], в котором собственно и хранится вся пагинация.
Параметры вызова pdoPage
Пример использования:
[[!pdoPage?
&element=`pdoResources`
&tpl=`blog_item`
&includeContent=`1`
&includeTVs=`image, gallery, video`
&limit=`3`
&tplPageWrapper=`@INLINE [[+pages]]`
&tplPageActive=`@INLINE <span class="current">[[+pageNo]]</span>`
&tplPage=`@INLINE <a href="[[+href]]" class="inactive">[[+pageNo]]</a>`
]]
Если на странице указано 2 или более вызова данного сниппета, следующие параметры должны отличаться :
&pageVarKey=`another_page` - имя переменной, через которую будет передаваться номер страницы.
&pageNavVar=`another_pages` - имя плейсхолдера для вывода пагинации.
При вызове сниппета единожды, указывать их не обязательно, поскольку у них уже используется значение по умолчанию.
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()