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 - 50 товар 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