QA-стенд ms3Favorites.
Товар A: 26 · карточка;
товар B: 27;
каталог: 2;
список: default.
?ms3f_debug=0 — скрыть журнал.
0. Окружение и настройки
Плагин ms3fFrontend (событие OnLoadWebDocument) подключает favorites.css/js
и inline window.ms3fLexicon / window.ms3fConfig.
Namespace ms3favorites | Установлен |
|---|---|
Plugin ms3fFrontend | Активен |
Snippet ms3FavoritesBtn | Найден |
Snippet ms3FavoritesCounter | Найден |
Snippet ms3FavoritesPage | Найден |
Snippet ms3FavoritesIds | Найден |
Snippet ms3FavoritesShare | Найден |
Chunk tplMs3fBtn | Найден |
Chunk tplMs3fCounter | Найден |
Chunk tplFavoritesItem | Найден |
Connector connector.php | На месте |
| Assets JS/CSS | favorites(.min).js / .css |
ms3favorites.max_items | 20 |
ms3favorites.storage_type | localStorage |
guest_db_enabled | Да |
guest_ttl_days | 30 |
share_ttl_days | 90 |
max_lists | 10 |
comments_enabled | Вкл. |
register_global_config | Авто (ms3fLexiconScript не нужен) |
frontend_assets | [
"favorites.min.css",
"favorites.min.js"
] |
| Кнопка на витрине | chunks/demo.product_row.tpl, templates/tpl.product.tpl |
| Счётчик в шапке | chunks/demo.header.tpl → data-favorites-count |
| Connector URL | /assets/components/ms3favorites/connector.php |
window.ms3fConfig — нажмите «Вывести ms3fConfig» в разделе Connector
1. Кнопка добавления в избранное
Чанк chunks/demo.ms3f_button.tpl · дата-атрибуты data-favorites-toggle data-id data-list data-resource-type.
Клик → localStorage/cookie + БД (гости) → toast, класс ms3f--active, обновление счётчика.
Товар A (26)
Товар B (27)
2. Счётчик избранного
Сниппет ms3FavoritesCounter (серверный старт) + элемент data-favorites-count (живое обновление из localStorage).
В шапке сайта счётчик уже подключён.
ms3FavoritesCounter)
0
data-favorites-count)
3. Несколько списков
Чанк пакета tplFavoritesListSelector — выбор списка (data-favorites-list-selector).
Кнопки ниже привязаны к разным спискам; счётчик можно посмотреть на вкладке «Списки» страницы (раздел 7).
default
gifts
plans
4. Каталог msProducts + кнопки
Чанк chunks/demo.ms3f_catalog_row.tpl — кнопка избранного в каждой строке.
5. Серверный вывод сниппета ms3Favorites
ms3FavoritesIds → список ID из БД → ms3Favorites (чанк tplFavoritesItem).
Для гостей с пустой БД блок пуст, пока JS не синхронизирует localStorage. Список:
default.
ms3FavoritesIds: -0
6. JS-рендер списка (localStorage)
Контейнер заполняется из браузера методом window.ms3Favorites.render(selector, list).
Не зависит от БД и сессии — отражает текущее состояние вкладки.
7. Страница избранного (ms3FavoritesPage)
Сниппет ms3FavoritesPage рисует табы + тулбар (Очистить, Поделиться, Добавить в корзину) и серверный список.
Полный вызов вынесен на отдельный ресурс tpl.ms3favorites_page (см. MODX-SETUP.md).
Здесь — только ключи и ссылка на страницу.
→ размещается на ресурсе с alias wishlist.
9. Connector и события
/assets/components/ms3favorites/connector.php — AJAX-эндпоинт (POST): action=render → HTML списка.
События: ms3f:added, ms3f:removed, ms3f:changed, ms3f:cleared, ms3f:shared.
Результат появится здесь…
10. События и чеклист
ms3f:added— товар добавлен в списокms3f:removed— товар удалёнms3f:changed— изменилось содержимое спискаms3f:cleared— список очищенms3f:shared— создана ссылка шаринга- Кнопка в каталоге/на главной —
demo.product_row.tpl, на карточке товара —tpl.product.tpl - Счётчик в шапке —
demo.header.tpl→data-favorites-count - Рядом на витрине: msFastOrder, msViewCounter, msCurrency, mxQuickView — см. другие QA-стенды в меню «Стенды»