Skip to content
Reactions
Reactions
Универсальная система реакций для MODX 3 — лайки, наборы в стиле GitHub, топы и trending на любом объекте
  1. Компоненты
  2. Reactions
  3. Сниппеты
  4. TopRated

Сниппет TopRated

Выводит список объектов с наивысшим рейтингом. Рейтинг = likes − dislikes (баланс up/down).

Параметры

ПараметрПо умолчаниюОписание
classmodResourceclass_key объектов в выборке
periodallПериод: day, week, month, year, all
limit10Максимум элементов
context(пусто)Фильтр по контексту
tpltpl.Reactions.topЧанк одной строки списка
toPlaceholder(пусто)Имя плейсхолдера вместо прямого вывода

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

ПлейсхолдерОписание
[[+idx]]Порядковый номер
[[+object_id]]ID объекта
[[+class_key]]Класс объекта (в БД: object_class)
[[+pagetitle]]Заголовок ресурса / name товара
[[+uri]]URL объекта (или пусто)
[[+likes]]Количество лайков
[[+dislikes]]Количество дизлайков
[[+total]]Сумма всех реакций
[[+rating]]Рейтинг (likes − dislikes)
[[+trending_score]]Оценка trending

Примеры

Сортировка по rating (= likes − dislikes). Те же периоды, что у TopLiked: day / week / month / year / all.

Ресурсы за выбранный период

modx
<ul class="reactions-top">
[[!TopRated?
    &class=`modResource`
    &period=`week`
    &limit=`5`
]]
</ul>
fenom
<ul class="reactions-top">
{'!TopRated' | snippet : [
    'class'  => 'modResource',
    'period' => 'week',
    'limit'  => 5,
]}
</ul>

Месяц и год

modx
[[!TopRated? &period=`month` &limit=`10`]]
[[!TopRated? &period=`year` &limit=`10`]]
fenom
{'!TopRated' | snippet : ['period' => 'month', 'limit' => 10]}
{'!TopRated' | snippet : ['period' => 'year', 'limit' => 10]}

Товары miniShop3

modx
<ul class="reactions-top">
[[!TopRated?
    &class=`msProduct`
    &period=`year`
    &limit=`8`
]]
</ul>
fenom
<ul class="reactions-top">
{'!TopRated' | snippet : [
    'class'  => 'msProduct',
    'period' => 'year',
    'limit'  => 8,
]}
</ul>

В плейсхолдер + свой чанк

modx
[[!TopRated?
    &period=`all`
    &limit=`3`
    &tpl=`myTopRatedRow`
    &toPlaceholder=`rx.rated`
]]
<ul class="reactions-top">[[+rx.rated]]</ul>
fenom
{'!TopRated' | snippet : [
    'period' => 'all',
    'limit'  => 3,
    'tpl' => 'myTopRatedRow',
    'toPlaceholder' => 'rx.rated',
]}
<ul class="reactions-top">{$_modx->getPlaceholder('rx.rated')}</ul>

Контекст web

modx
[[!TopRated? &period=`all` &context=`web` &limit=`20`]]

Комментарии Tickets

На MODX 3 не проверено:

modx
[[!TopRated? &class=`TicketComment` &period=`week` &limit=`3`]]

TopLiked vs TopRated

СниппетСортировкаКогда использовать
TopLikedПо likes«Самые популярные» — много положительных реакций
TopRatedПо rating«Лучшие» — высокий баланс лайков и дизлайков

Статья с 100 лайками и 95 дизлайками попадёт в TopLiked, но не в TopRated.