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

Reactions

Универсальная система реакций для MODX Revolution 3. От пары «нравится / не нравится» до набора в стиле GitHub — на ресурсе, товаре miniShop3 или любом другом объекте.

Компонент headless: менеджерского интерфейса нет. Управление через системные настройки, REST API и CLI.

Исходники: modx-pro/Reactions (MIT).

Возможности

  • Три встроенных набора: updown, github, full (24 типа)
  • Compact picker для github / full (layout=auto): чипы + кнопка +; layout=bar — полная полоса
  • Свои типы и наборы через CLI или admin API
  • Реакции на любой объект (class / class_key; в БД — object_class)
  • Повторное нажатие снимает реакцию; в exclusive-наборе другая реакция заменяет предыдущую
  • Стратегии идентификации: auth_only, ip, ip_cookie, session
  • Топы за день / неделю / месяц / год / всё время; trending по формуле Reddit
  • Rate limit, блок ботов, CSRF, Origin check
  • События MODX, webhooks (Telegram, Discord, Slack), уведомления автору

Требования

MODX Revolution3.0+
PHP8.2–8.4
СУБДMySQL / MariaDB (InnoDB)

Установка

  1. Установите транспортный пакет Reactions через «Управление пакетами».
  2. Пакет создаёт таблицы, пресеты (updown, github, full), сниппеты, чанки и системные настройки.
  3. Настройки → Очистить кэш.

Сборка из исходников (нужны Node.js и npm):

bash
composer install
php _build/build.php

build.php собирает виджет из frontend/ в assets/components/reactions/js/web/.

Быстрый путь

  1. Подключите CSS/JS и вызовите [[!Reactions]]Быстрый старт.
  2. При необходимости смените набор и стратегию идентификации — Системные настройки.
  3. Для витрины: miniShop3, pdoTools, SEO.

Встроенные наборы

КлючРеакцииРежим
updown👍 like, 👎 dislikeВзаимоисключающие (exclusive)
github👍 👎 ❤️ 😂 😮 😢 😡 🎉Несколько реакций одновременно
fullgithub + 🚀👀🔥👏🤔🥳⭐🍺✨💯🙏💪😎😍😕🙌24 типа; подмножество через reactions_full_types

Свои типы и наборы: CLI или admin API.

Сниппеты

СниппетНазначение
ReactionsКнопки с счётчиками (picker / bar)
ReactionsCountСчётчики без кнопок
TopLikedТоп по лайкам
TopRatedТоп по рейтингу (likes − dislikes)
TrendingГорячие материалы (формула Reddit)
ReactionsSchemaJSON-LD AggregateRating

Права доступа

ПолитикаОписание
reactions_viewПросмотр данных реакций
reactions_manageТипы, наборы и баны через API
reactions_statsСтатистика

Быстрые ссылки

НужноДокумент
Вывести блок на страницеБыстрый старт
Ключи reactions_*Системные настройки
AJAX и стилиJavaScript-виджет
Endpoint и коды ошибокREST API
recount, ban, typeCLI
ПлагиныСобытия
Telegram / Discord / SlackWebhooks