
Подключение на сайте
Подробное подключение лексикона, стилей и скриптов описано в Быстрый старт. Ниже — коннектор, кастомизация и чанки.
Проверка интеграции: пустая статистика в админке
Статистика и история в админке берутся из таблицы ms3recentlyviewed_items. Записи попадают туда при включённой синхронизации — для авторизованных и анонимных (гостей) пользователей. Анонимные идентифицируются по сессии; учёт гостей включается настройкой ms3recentlyviewed.track_anonymous. Просмотры от поисковых ботов не сохраняются при включённой настройке ms3recentlyviewed.block_bots (она включена по умолчанию).
Чек-лист: лексикон и viewed.js подключены на каждой странице товара; на странице товара задан data-viewed-product-id на <body> или window.ms3rvCurrentProductId; ms3recentlyviewed.sync_enabled = Да; для авторизованных — пользователь авторизован в контексте web (не только в админке). Блок fromDB работает только для пользователей, авторизованных на фронте (контекст web).
Коннектор (AJAX)
URL: assets/components/ms3recentlyviewed/connector.php
Метод: POST.
Действия:
- Вывод списка просмотренных — параметры
ids(обязательно), опциональноlimit,tpl,emptyTpl - Похожие —
action=similar,ids, опциональноlimit,tpl,depth - Для авторизованных —
action=track+product_id,action=sync+ids,action=get(получить из БД)
Ответ: HTML списка; при отсутствии товаров — пустая строка. Если заданы window.MODX_ASSETS_URL или window.MODX_BASE_URL, JS сам формирует URL коннектора.
Коннектор использует централизованные helper-функции для санитизации: идентификаторы парсятся как целые числа (лимит 100), имена чанков — только допустимые символы. Персональные данные в запросах не передаются.
Чанки
| Чанк | Назначение |
|---|---|
| tplViewedItem | Карточка товара в списке «Недавно просмотренные» |
| tplViewedEmpty | Пустое состояние (при отсутствии товаров блок можно не выводить) |
| tplSimilarItem | Карточка в блоке «Похожие» (опционально) |
Чанки можно переопределять своими (Fenom или MODX), параметры tpl и emptyTpl в сниппете и при вызове render() в JS.
Стили и BEM
Классы с префиксом ms3rv (BEM): ms3rv__list, ms3rv__item и др. Файл стилей: assets/components/ms3recentlyviewed/css/viewed.css. Карточки по умолчанию используют Bootstrap (ms3-product-card, product-image-wrapper); для корректного отображения подключите Bootstrap и при необходимости стили каталога.
На мобильных — горизонтальный скролл списка (.ms3rv__list).
CSS-переменные
Переопределяйте в своей теме (:root или контейнер блока):
| Переменная | Описание |
|---|---|
--ms3rv-bg | Фон карточки |
--ms3rv-border | Граница |
--ms3rv-radius | Скругление |
--ms3rv-color | Цвет текста |
--ms3rv-price-color | Цвет цены |
Пример:
:root {
--ms3rv-bg: #fff;
--ms3rv-border: #eee;
--ms3rv-radius: 0.5rem;
--ms3rv-color: #333;
--ms3rv-price-color: #111;
}Передача ID товара вручную
Опционально: кнопка с атрибутами data-viewed-toggle и data-id для добавления товара в список по клику (например, из сетки каталога без перехода на страницу товара).