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

Сниппет ms3FavoritesPopularity ​

Показывает, сколько пользователей добавили ресурс в избранное. Пример: «У 12 пользователей в избранном».

Параметры ​

ПараметрОписаниеПо умолчанию
resource_idID ресурса (обязательный)—
resource_typeТип ресурсов: products, resources, articles, pages, customproducts
tplЧанк для вывода. Плейсхолдеры: [[+count]], [[+resource_id]], [[+text]]. Пусто — фраза лексикона «У N пользователей в избранном»—
minCountНе выводить, если count < minCount0

Плейсхолдеры в чанке ​

ПлейсхолдерОписание
[[+count]]Количество пользователей
[[+resource_id]]ID ресурса
[[+text]]Текст из лексикона (ms3favorites_popularity)

Независимо от чанка сниппет ставит плейсхолдеры [[+ms3f_popularity_count]], [[+ms3f_popularity_resource_id]], [[+ms3f_popularity_text]]. Их можно использовать на странице после вызова.

Примеры ​

В карточке товара:

modx
[[!ms3FavoritesPopularity? &resource_id=`[[+id]]`]]
fenom
{'!ms3FavoritesPopularity' | snippet : ['resource_id' => $id]}

С минимальным порогом (не показывать, если меньше 2):

modx
[[!ms3FavoritesPopularity?
  &resource_id=`[[+id]]`
  &minCount=`2`
]]
fenom
{'!ms3FavoritesPopularity' | snippet : [
  'resource_id' => $id,
  'minCount' => 2
]}

Со своим чанком:

modx
[[!ms3FavoritesPopularity?
  &resource_id=`[[+id]]`
  &tpl=`tplPopularityBadge`
]]
fenom
{'!ms3FavoritesPopularity' | snippet : [
  'resource_id' => $id,
  'tpl' => 'tplPopularityBadge'
]}

Клиентская загрузка (connector action get_popularity):

javascript
fetch(connectorUrl, {
  method: 'POST',
  headers: { 'X-Requested-With': 'XMLHttpRequest' },
  body: new URLSearchParams({ action: 'get_popularity', ids: '1,2,3', resource_type: 'products' })
}).then(r => r.json()).then(counts => { /* {1: 5, 2: 12, 3: 0} */ });