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

Сниппет ms3FavoritesPage

Страница /wishlist/ — табы списков (default, gifts, plans), тулбар («Добавить все в корзину», выбор чекбоксов и т.д.), контейнер под карточки.

Вывод карточек: HTML списка не собирается PHP-пагинацией. Встроенный скрипт в чанке tplFavoritesPage вызывает window.ms3Favorites.render() с limit: 100 на вкладку — данные из localStorage/cookie и синхронизации с БД (как у остального фронта). Для очень длинных списков со разбивкой по страницам используйте отдельный вывод через pdoPage (см. ниже и Интеграцию).

Что делает сервер: для каждого таба подсчитываются ID из БД (авторизованный пользователь или гость с session_id при ms3favorites.guest_db_enabled) с учётом sortBy; если в БД пусто, для гостя подмешиваются ID из cookie. Результат попадает в tabCounts и в плейсхолдер ms3f.total (сумма по трём табам). Так корректно отображаются числа в табах до и после загрузки JS.

Удалён параметр usePdoPage

В актуальных сборках пакета встроенный вызов pdoPage в чанке страницы убран. Параметры usePdoPage, limit (для страницы), pageVarKey у сниппета не используются. Серверную пагинацию собирайте отдельно: ms3FavoritesIdspdoPagems3Favorites (или msProducts) — см. Интеграция и кастомизация.

Панель «Каталог / Очистить / Поделиться»: extendedToolbar=1 или &tpl=tplFavoritesPageDemo (тот же файл, что и tplFavoritesPage).

Параметры

ПараметрОписаниеПо умолчанию
tplЧанк обёртки страницыtplFavoritesPage
extendedToolbar1 — показать кнопки Каталог, Очистить, Поделитьсяfalse (становится true при tpl=tplFavoritesPageDemo)
itemTplЧанк элемента списка (для render())tplFavoritesPageItem
emptyTplЧанк пустого состояния (для render())tplFavoritesEmpty
listАктивный список (или из $_REQUEST['list'])default
resource_typeТип ресурсовproducts
sortByПорядок ID при подсчёте счётчиков: added_at_desc, added_at_ascadded_at_desc

Плейсхолдеры и данные для чанка

ИмяОписание
[[+ms3f.total]]Устанавливается через $modx->setPlaceholder — суммарное число элементов по табам default + gifts + plans (для вывода вне чанка страницы)
В чанк tpl передаются: itemTpl, emptyTpl, list, resource_type, extendedToolbar, tabCounts (массив с ключами default, gifts, plans)

В Fenom-чанке используются, например, {$tabCounts.default}, {$list}, {$resource_type}.

Примеры

Базовый:

modx
[[!ms3FavoritesPage]]
fenom
{'!ms3FavoritesPage' | snippet}

Расширенная панель инструментов:

modx
[[!ms3FavoritesPage? &extendedToolbar=`1`]]
fenom
{'!ms3FavoritesPage' | snippet : ['extendedToolbar' => 1]}

Эквивалентно вызову с &tpl=tplFavoritesPageDemo.

Другой тип ресурсов и сортировка счётчиков:

modx
[[!ms3FavoritesPage?
  &resource_type=`articles`
  &sortBy=`added_at_asc`
]]
fenom
{'!ms3FavoritesPage' | snippet : [
  'resource_type' => 'articles',
  'sortBy' => 'added_at_asc'
]}

Пагинация

Не через ms3FavoritesPage. Соберите отдельный ресурс или блок по схеме из Интеграции (ms3FavoritesIds + pdoPage + ms3Favorites / msProducts).

Гости при пустой БД видят данные из браузера после инициализации JS; счётчики на сервере могут быть нулевыми до появления записей в БД или cookie.