Skip to content
ms3Favorites
ms3Favorites
Списки избранного для MiniShop3 и других ресурсов — хранение в браузере, синхронизация в БД
  • MODX 3
  • PHP 8.1
  • miniShop3
  1. Компоненты
  2. ms3Favorites
  3. Сниппеты
  4. ms3Favorites

Сниппет ms3Favorites ​

Выводит список товаров или ресурсов по переданным ID. Нужен для блока «Избранное» при серверном выводе или после получения ID из коннектора.

Поддерживает resource_type: products (msProducts), resources (pdoResources), articles, pages, custom. Для products нужен MiniShop3.

Параметры ​

ПараметрОписаниеПо умолчанию
idsID товаров/ресурсов через запятую—
listИмя списка (default, gifts, plans)default
resource_typeТип ресурсов: products, resources, articles, pages, customproducts
tplЧанк карточки товараtplFavoritesItem
emptyTplЧанк пустого состоянияtplFavoritesEmpty
limitМакс. количество в выборкеиз настройки ms3favorites.max_items (20)
pageНомер страницы. Работает и без pdoPage: сдвиг выборки (page − 1) × limit1
offsetСмещение выборки. Явный offset имеет приоритет над page; не задан — считается из page. При пагинации смещение передаёт pdoPage—
totalVarПлейсхолдер для общего количества—

Параметр ids передаётся извне: из JS при вызове коннектора или из другого сниппета (ms3FavoritesIds). Для пагинации используйте pdoPage с element=ms3Favorites.

Примеры ​

fenom
{'!ms3Favorites' | snippet : [
  'ids' => $favoritesIds,
  'tpl' => 'tplFavoritesItem',
  'emptyTpl' => 'tplFavoritesEmpty',
  'limit' => 10
]}
modx
[[!ms3Favorites?
  &ids=`[[+favorites_ids]]`
  &tpl=`tplFavoritesItem`
  &emptyTpl=`tplFavoritesEmpty`
  &limit=`10`
]]

С пагинацией через pdoPage:

fenom
{'!pdoPage' | snippet : [
  'element' => 'ms3Favorites',
  'ids' => $_modx->getPlaceholder('favorites_ids'),
  'list' => 'default',
  'limit' => 12,
  'tpl' => 'tplFavoritesPageItem',
  'emptyTpl' => 'tplFavoritesEmpty',
  'totalVar' => 'page.total',
  'pageNavVar' => 'page.nav'
]}
<nav class="pagination">{$_modx->getPlaceholder('page.nav')}</nav>
modx
[[!pdoPage?
  &element=`ms3Favorites`
  &ids=`[[+favorites_ids]]`
  &list=`default`
  &limit=`12`
  &tpl=`tplFavoritesPageItem`
  &emptyTpl=`tplFavoritesEmpty`
  &totalVar=`page.total`
  &pageNavVar=`page.nav`
]]
<nav class="pagination">[[!+page.nav]]</nav>

Пустой ids возвращает пустую строку. Контент emptyTpl сниппет вернёт, если offset оказался за концом выборки или адаптер получил пустой набор после фильтрации. Коннектор при пустых ids отвечает emptyTpl.