Skip to content
  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} */ });