Skip to content
ms3Favorites
ms3Favorites
Wishlists for MiniShop3 and other resources — browser storage, DB sync
  1. Extras
  2. ms3Favorites
  3. Snippets
  4. ms3FavoritesPopularity

Snippet ms3FavoritesPopularity

Shows how many users added the resource to favorites (e.g. “In 12 users’ favorites”).

Parameters

ParameterDescriptionDefault
resource_idResource ID (required)
resource_typeResource type: products, resourcesproducts
tplOutput chunk. Placeholders: [[+count]], [[+resource_id]], [[+text]]. Empty — number only
minCountDo not output if count < minCount0

Chunk placeholders

PlaceholderDescription
[[+count]]User count
[[+resource_id]]Resource ID
[[+text]]Text from lexicon (ms3favorites_popularity)

Examples

In product card:

modx
<span class="ms3f__popularity">[[!ms3FavoritesPopularity? &resource_id=`[[+id]]`]]</span>
fenom
<span class="ms3f__popularity">{'!ms3FavoritesPopularity' | snippet : ['resource_id' => $id]}</span>

With minimum threshold (hide if less than 2):

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

With custom chunk:

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

Client-side load (connector action get_popularity):

javascript
fetch(connectorUrl, {
  method: 'POST',
  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} */ });