Modx revo pdopage параметры


pdoPage как замена getPage / Сниппеты / Modx Revolution / Технический блог веб-разработчика

pdoPage как замена getPage

getPage

Сниппет getPage используется для создания пагинации. Используется совместно со сниппетом getResources и как бы является его обёрткой. 

Параметры сниппета: &element=`getResources` - имя сниппета для вывода ресурсов. Поскольку, getPage работает с getResources, то обычно в качестве значения параметра передаётся - getResources. &limit=`3` - здесь указывается сколько элементов будет показано на странице. Другими словами, исходя из этого значения, будет зависеть то, из скольких страниц будет зависеть пагинация. &pageNavOuterTpl=`wrapper_p` - чанк-обёртка для вывода всех страниц. Пример чанка:

<ul>[­[+pages]]</ul>

&pageActiveTpl=`active_p` - чанк для вывода текущей страницы. Пример чанка:  

<span>[­[+pageNo]]</span>

&pageNavTpl=`page_p` - чанк ссылки на страницу. Пример чанка: 

<a href="[­[+href]]">[­[+pageNo]]</a>

Напоминаю, что сниппет является обёрткой для getResources, поэтому в нём доступны параметры getResources. Например: 

[­[!getPage?  &element=`getResources`  &tpl=`blog_item`  &includeContent=`1`  &includeTVs=`image, gallery, video`  &limit=`3`  &pageNavOuterTpl=`wrapper_p`  &pageActiveTpl=`active_p`  &pageNavTpl=`page_p`]]

После вывода сниппета, становится доступен плэйсхолдер [­[!+page.nav]], в котором собственно и находится вся пагинация. 

pdoPage

Как и в случае с остальными сниппетами pdoTools, pdoPage отличается от своего предшественника большей функциональностью, а именно: возможность создания пагинации с пропуском страниц и поддержка ajax из коробки. Ну и кроме того, возможность более гибко настраивать сниппет, задавая дополнительные параметры. Сниппет является обёрткой для pdoResources. 

Отличия от getPage: tplPageWrapper используется вместо pageNavOuterTpltplPageActive используется вместо pageActiveTpltplPage используется вместо pageNavTpl

Пример использования: [­[!getPage?  &element=`getResources`  &tpl=`blog_item`  &includeContent=`1`  &includeTVs=`image, gallery, video`  &limit=`3`  &tplPageWrapper=`@INLINE [­[+pages]]`  &tplPageActive=`@INLINE <span>[­[+pageNo]]</span>`  &tplPage=`@INLINE <a href="[­[+href]]">[­[+pageNo]]</a>`]]

Если на странице указано 2 или более вызова данного сниппета, следующие параметры должны отличаться : 

&pageVarKey=`page_all` - имя переменной, через которую будет передаваться номер страницы. &pageNavVar=`all_pages` - имя плейсхолдера для вывода пагинации. 

Если сниппет указан только один раз, то указывать их не обязательно, поскольку их значение задано по умолчанию. 

cms-dev.ru

три вызова pdoPage на одной странице

Друзья, всем привет! У меня такой вопрос, можно ли на одной странице сайта делать два и более вызовов сниппета pdoPage с параметром &ajaxMode=`button` ??

Сделал табы и в каждом табе свой каталог

<div> <div> <div> <!-- Табы --> <ul > <li><a href="#featured" data-toggle="tab">Каталог 1</a></li> <li><a href="#new-arrivals" data-toggle="tab">Каталог 2</a></li> <li><a href="#top-sales" data-toggle="tab">Каталог 3</a></li> </ul> <!-- Рекомендуем --> <div> <div > <div> <div> [[!pdoPage? &parents=`1` &limit=`4` &tpl=`AjaxTpl` &includeTVs=`img,price,old-price,new,sale,hit` &ajaxMode=`button` ]] </div> </div> <!-- Новинки --> <div> <div> [[!pdoPage? &parents=`2` &limit=`4` &tpl=`AjaxTpl` &includeTVs=`img,price,old-price,new,sale,hit` &ajaxMode=`button` ]] </div> </div> <!-- Скидки на товары --> <div> <div> [[!pdoPage? &parents=`3` &limit=`4` &tpl=`AjaxTpl` &includeTVs=`img,price,old-price,new,sale,hit` &ajaxMode=`button` ]] </div> </div> </div> [[!+page.nav]] </div> </div> </div> </div>

У меня почему то на первом табе показывает 2 кнопки «Загрузить еще» Вообщем не рабтае так как нужно, Это я делаю что-то не правильно? или такое не предусмотрено ??

modx.ru

Home / MODX Revolution

Home

msFavorites - списки избранного.

- работа с любыми ресурсами - работа с любыми пользователями

Примеры

пример 1

Постановка: - требуется вывести список ресурсов - возможность добавить ресурс в список избранного default - вывести общий счетчик кол-ва в избранном

Вызов:

<div> <div> [[!pdoPage? &parents=`0` &element=`msProducts` &tpl=`@INLINE <a data-click data-data-id="[[+id]]" data-data-list="default"> </a> 0 [[+pagetitle]] ` &ajaxMode=`default` ]] </div> [[!+page.nav]] </div>

В избранное 0

Результат:

0 товар 1 - 5

0 товар 2 - 6

0 товар 3 - 11

0 товар 4 - 12

0 товар 5 - 13

0 товар 6 - 14

0 товар 7 - 15

0 товар 8 - 16

0 товар 9 - 17

0 товар 10 - 18

Подключение msFavorites

В удобном месте шаблона сайта вам нужно вставить вызов сниппета msFavorites.initialize

[[!msFavorites.initialize]]

Примечание!

Настройка msFavorites

Основные настройки msFavorites находяться Настройки системы -> msFavorites

front_css - стили фронтенда front_js - скрипты фронтенда clear_temporary - очищать временные списки

Списки избранного

Вы можете использовать сниппет msFavorites.ids для получения списка ресурсов в избранном.

[[!msFavorites.ids?&list=`default`]]

Примечание!

list - название списка избранного Так же сниппет задает плейсхолдеры вида

[[!+msfavorite.list.default]] [[!+msfavorite.total.default]] msfavorite.list.default - список ресурсов в избранном default msfavorite.total.default - общее кол-во ресурсов в избранном default

Основное

Вы можете использовать msFavorites где угодно на странице. Для этого нужно подключить сниппет msFavorites.initialize, указать нужным элементам необходимые параметры вызова.

Примечание!

data-msfavorites-mode - режим работы, list - список избранного, в данном режиме удаляется элемент избранного

data-data-list - список избранного, например default data-data-id - идентификатор обрабатываемого ресурса

Особенности

Список избранного работает для все пользователей. Для авторизованных пользователей идентификатором служит id пользователя, для неавторизованный id сессии. Избранному анонимных пользователей присваивается флаг временный и проставляется метка создания, можно задать интервал (кол-во дней) жизни.

msfavorites.vgrish.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта