
ms3Favorites
Списки избранного для MiniShop3 и других ресурсов — хранение в браузере, синхронизация в БД
- MODX 3
- PHP 8.1
- miniShop3


Показывает, сколько пользователей добавили ресурс в избранное. Пример: «У 12 пользователей в избранном».
| Параметр | Описание | По умолчанию |
|---|---|---|
| resource_id | ID ресурса (обязательный) | — |
| resource_type | Тип ресурсов: products, resources, articles, pages, custom | products |
| tpl | Чанк для вывода. Плейсхолдеры: [[+count]], [[+resource_id]], [[+text]]. Пусто — фраза лексикона «У N пользователей в избранном» | — |
| minCount | Не выводить, если count < minCount | 0 |
| Плейсхолдер | Описание |
|---|---|
[[+count]] | Количество пользователей |
[[+resource_id]] | ID ресурса |
[[+text]] | Текст из лексикона (ms3favorites_popularity) |
Независимо от чанка сниппет ставит плейсхолдеры [[+ms3f_popularity_count]], [[+ms3f_popularity_resource_id]], [[+ms3f_popularity_text]]. Их можно использовать на странице после вызова.
В карточке товара:
[[!ms3FavoritesPopularity? &resource_id=`[[+id]]`]]{'!ms3FavoritesPopularity' | snippet : ['resource_id' => $id]}С минимальным порогом (не показывать, если меньше 2):
[[!ms3FavoritesPopularity?
&resource_id=`[[+id]]`
&minCount=`2`
]]{'!ms3FavoritesPopularity' | snippet : [
'resource_id' => $id,
'minCount' => 2
]}Со своим чанком:
[[!ms3FavoritesPopularity?
&resource_id=`[[+id]]`
&tpl=`tplPopularityBadge`
]]{'!ms3FavoritesPopularity' | snippet : [
'resource_id' => $id,
'tpl' => 'tplPopularityBadge'
]}Клиентская загрузка (connector action get_popularity):
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} */ });