Skip to content

Commit a0a6079

Browse files
committed
Update documentation for ms3Favorites component
- Enhanced descriptions for various templates and actions in the favorites list. - Clarified the notification system, detailing the chain of notification methods and customization options. - Updated integration instructions to reflect changes in pagination and merging lists. - Removed deprecated parameters and improved overall clarity in the documentation.
1 parent 1c612fa commit a0a6079

File tree

32 files changed

+1097
-246
lines changed

32 files changed

+1097
-246
lines changed

docs/components/ms3favorites/frontend.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ title: Подключение на сайте
3737
|------|------------|
3838
| `tplFavoritesItem` | Карточка товара в списке «Избранное» |
3939
| `tplFavoritesEmpty` | Пустое состояние (при отсутствии товаров) |
40-
| `tplFavoritesPage` | Страница `/wishlist/` (обёртка с табами, кнопками корзины) |
40+
| `tplFavoritesPage` | Страница `/wishlist/` (табы, тулбар; карточки заполняет `favorites.js`, встроенной пагинации нет) |
4141
| `tplFavoritesPageItem` | Элемент для страницы `/wishlist/` (checkbox, заметка, кнопка удаления) |
42-
| `tplFavoritesPageDemo` | Demo: табы + кнопки Каталог/Очистить/Поделиться, `?list=` |
42+
| `tplFavoritesPageDemo` | Тот же файл, что и `tplFavoritesPage`: при `&tpl=tplFavoritesPageDemo` или `&extendedToolbar=1` включается панель «Каталог / Очистить / Поделиться» |
4343
| `tplFavoritesListSelector` | Dropdown выбора списка (`default`, `gifts`, `plans`) |
4444
| `tplFavoritesSharePage` | Страница шаринга (обёртка) |
4545
| `tplMs3fBtn` | Кнопка добавления/удаления в избранное (сниппет `ms3FavoritesBtn`) |
@@ -86,9 +86,6 @@ title: Подключение на сайте
8686
| `--ms3f-color` | Цвет текста |
8787
| `--ms3f-price-color` | Цвет цены |
8888
| `--ms3f-button-active` | Цвет активной кнопки (товар в списке) |
89-
| `--toast-bg` | Фон toast-уведомления |
90-
| `--toast-color` | Текст toast |
91-
| `--toast-radius` | Скругление toast |
9289

9390
Пример:
9491

@@ -103,6 +100,18 @@ title: Подключение на сайте
103100
}
104101
```
105102

103+
## Уведомления (toast)
104+
105+
Вместо встроенного DOM-toast используется цепочка:
106+
107+
1. **`ms3fConfig.notify(variant, text)`** — если функция задана и возвращает `true`, стандартный вывод не выполняется (полностью своё UI).
108+
2. **`window.ms3Message.show`** (MiniShop3) — если доступен.
109+
3. **iziToast** — если на странице уже есть глобальный `iziToast`; иначе скрипт и стили один раз подгружаются из `ms3fConfig.iziToastBaseUrl` (по умолчанию задаётся в `ms3fLexiconScript`).
110+
111+
Отключить стандартные уведомления: `window.ms3fConfig.showToast = false` (до загрузки `favorites.js`).
112+
113+
Кастомизация внешнего вида iziToast — через API библиотеки после загрузки или через свой `notify`.
114+
106115
## JavaScript API
107116

108117
```javascript

docs/components/ms3favorites/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@ ms3Favorites — компонент реализует функционал со
3838
- **Гости в БД** — при `guest_db_enabled` список гостя сохраняется по session_id
3939
- **Несколько списков**`default`, `gifts`, `plans` и др. (до `max_lists`)
4040
- **Шаринг списка** — публичная ссылка `/wishlist/share?token=xxx`, копирование чужого списка
41-
- **Страница /wishlist/**серверный вывод с pdoPage или JS-режим
41+
- **Страница /wishlist/**табы и контейнер от `ms3FavoritesPage`, карточки дорисовывает JS; счётчики табов и `ms3f.total` на сервере; пагинация отдельно (ms3FavoritesIds + pdoPage)
4242
- **Интеграция с корзиной** — «Добавить все в корзину», «Добавить выбранные»
4343
- **Популярность** — «У N пользователей в избранном»
4444
- **Типы ресурсов**`products`, `resources`, `articles`, `pages`, `custom`
4545
- **Локализация** — MODX Lexicon (ru, en), на фронте — сниппет `ms3fLexiconScript`
4646
- **Кастомизация** — Fenom-чанки, BEM-классы (префикс `ms3f`), CSS-переменные
47+
- **Уведомления** — цепочка: опционально `ms3fConfig.notify``window.ms3Message.show` (MiniShop3) → [iziToast](https://marcelodolza.github.io/iziToast/) (ленивая загрузка из `assets/components/ms3favorites/vendor/izitoast/`, базовый URL в `ms3fConfig.iziToastBaseUrl` из `ms3fLexiconScript`). Настройка `ms3favorites.use_minishop3_toast` удалена.
4748

4849
## Системные требования
4950

docs/components/ms3favorites/integration.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,12 +289,19 @@ document.addEventListener('ms3f:removed', function(e) {
289289

290290
```javascript
291291
window.ms3fConfig = window.ms3fConfig || {};
292-
window.ms3fConfig.onAdd = function(id, list) { /* ... */ };
293-
window.ms3fConfig.onRemove = function(id, list) { /* ... */ };
294-
window.ms3fConfig.showToast = false; // отключить стандартный toast
292+
window.ms3fConfig.onAdd = function (id, list, resourceType) { /* ... */ };
293+
window.ms3fConfig.onRemove = function (id, list, resourceType) { /* ... */ };
294+
// Полностью своё уведомление: вернуть true — встроенная цепочка не вызывается
295+
window.ms3fConfig.notify = function (variant, text) {
296+
// variant: 'success' | 'error' | 'info' и т.д.
297+
return false; // true — пропустить ms3Message и iziToast
298+
};
299+
window.ms3fConfig.showToast = false; // отключить любые стандартные toast
295300
window.ms3fConfig.debug = true; // логи в консоль
296301
```
297302

303+
Цепочка уведомлений по умолчанию: `notify``window.ms3Message.show` (MiniShop3) → iziToast (подгрузка из `ms3fConfig.iziToastBaseUrl`, задаётся в `ms3fLexiconScript`). Системная настройка `use_minishop3_toast` в пакете не используется.
304+
298305
## Плейсхолдер ms3f.total
299306

300307
Серверный счётчик количества элементов в избранном. Устанавливается сниппетами [ms3FavoritesPage](snippets/ms3FavoritesPage) и [ms3Favorites](snippets/ms3Favorites).

docs/components/ms3favorites/quick-start.md

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ title: Быстрый старт
8282

8383
:::
8484

85-
При клике товар добавляется или удаляется из списка. Toast-уведомление показывается автоматически.
85+
При клике товар добавляется или удаляется из списка. Уведомление показывается автоматически (iziToast / MiniShop3 `ms3Message` / свой `ms3fConfig.notify` — см. [Интеграция](integration)).
8686

8787
## Шаг 3: Счётчик Wishlist
8888

@@ -176,28 +176,7 @@ document.addEventListener('DOMContentLoaded', function() {
176176

177177
:::
178178

179-
**Пагинация через pdoPage:**
180-
181-
Для авторизованных пользователей — серверный вывод с разбивкой по страницам:
182-
183-
::: code-group
184-
185-
```modx
186-
[[!ms3FavoritesPage?
187-
&usePdoPage=`1`
188-
&limit=`12`
189-
]]
190-
```
191-
192-
```fenom
193-
{'!ms3FavoritesPage' | snippet : [
194-
'usePdoPage' => 1,
195-
'limit' => 12
196-
]}
197-
```
198-
:::
199-
200-
Гости при пустой БД по-прежнему видят JS-режим (данные из localStorage).
179+
**Пагинация:** у сниппета `ms3FavoritesPage` **нет** встроенного pdoPage — карточки на `/wishlist/` всегда подгружает `favorites.js`. Чтобы вывести избранное постранично на **отдельной** странице, используйте цепочку **ms3FavoritesIds → pdoPage → ms3Favorites** (или `msProducts`) — примеры в [Интеграции и кастомизации](integration).
201180

202181
## Что дальше
203182

docs/components/ms3favorites/settings.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,30 @@ title: Системные настройки
1313
|-----------|----------|--------------|--------------|
1414
| `ms3favorites.max_items` | Максимум товаров в блоке «Избранное» (localStorage/cookie и вывод) | `20` | 20–50 для большинства сайтов; макс. 100. Учитывается в JS при наличии ms3fLexiconScript. |
1515
| `ms3favorites.storage_type` | Тип хранилища списка избранного | `localStorage` | `localStorage` — данные в браузере до очистки; `cookie` — общий домен для поддоменов, срок 30 дней. |
16-
| `ms3favorites.guest_db_enabled` | Сохранять список гостя в БД | `true` | Включить для серверного счётчика и страницы /wishlist/ (usePdoPage) для гостей. Идентификация по session_id. |
16+
| `ms3favorites.guest_db_enabled` | Сохранять список гостя в БД | `true` | Включить для серверного счётчика, корректных **счётчиков табов** на `/wishlist/` и синхронизации гостя. Идентификация по session_id. |
1717
| `ms3favorites.guest_ttl_days` | Срок хранения записей гостей (дней) | `30` | 0 — не удалять. Учитывается при автоочистке (cron). |
1818
| `ms3favorites.share_ttl_days` | Срок действия ссылки шаринга (дней) | `90` | 0 — без срока. |
1919
| `ms3favorites.max_lists` | Максимум списков на пользователя | `10` | Лимит именованных списков (default, gifts, plans и др.). Максимум — 20. |
2020
| `ms3favorites.comments_enabled` | Включить заметки к элементам | `true` | Показывать textarea для заметок в карточках. При отключении update_comment отклоняется. |
2121
| `ms3favorites.check_resource_availability` | Проверять доступность ресурса перед добавлением | `false` | При включении добавляются только опубликованные и неудалённые ресурсы (sync, copy_share). |
2222
| `ms3favorites.list_page` | URL страницы списка (для ms3FavoritesLists) | `wishlist/` | Относительный путь для формирования ссылок в списках. |
2323

24-
## Области настроек
24+
## Область в менеджере MODX
2525

26-
- **default**`max_items`, `storage_type` (фронт, блок вывода).
27-
- **sync**`guest_db_enabled`, `guest_ttl_days` (хранение в БД, плагины).
28-
- **share**`share_ttl_days` (публичные ссылки).
29-
- **features**`comments_enabled`, `check_resource_availability`, `max_lists`, `list_page`.
26+
В транспортном пакете все ключи относятся к области **default** (одна группа в списке системных настроек). Логически настройки можно разделить так:
27+
28+
| Группа | Ключи |
29+
|--------|--------|
30+
| Лимиты и хранение | `max_items`, `storage_type`, `max_lists` |
31+
| Гости и БД | `guest_db_enabled`, `guest_ttl_days` |
32+
| Шаринг | `share_ttl_days` |
33+
| Поведение | `comments_enabled`, `check_resource_availability`, `list_page` |
3034

3135
## Рекомендации
3236

3337
- **max_items:** 20–50 для большинства сайтов; учитывается в JS при наличии `ms3fLexiconScript`.
3438
- **storage_type:** `cookie` — если нужен общий список для поддоменов (срок cookie 30 дней).
35-
- **guest_db_enabled:** включить для серверного счётчика и страницы `/wishlist/` с `usePdoPage` для гостей.
39+
- **guest_db_enabled:** включить для серверного счётчика и **счётчиков табов** на `/wishlist/` у гостей (и синхронизации в БД).
3640
- **guest_ttl_days:** для регулярной очистки добавьте в cron вызов `cli/cleanup_guests.php`.
3741
- **share_ttl_days:** `0` — ссылка без срока действия; иначе — автоматическое истечение.
3842

docs/components/ms3favorites/snippets/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: Сниппеты
99
- [ms3FavoritesBtn](ms3FavoritesBtn) — кнопка добавления/удаления из избранного
1010
- [ms3FavoritesCounter](ms3FavoritesCounter) — счётчик количества элементов
1111
- [ms3FavoritesIds](ms3FavoritesIds) — получение ID списка в плейсхолдер или вывод
12-
- [ms3FavoritesPage](ms3FavoritesPage) — страница `/wishlist/` с табами и пагинацией
12+
- [ms3FavoritesPage](ms3FavoritesPage) — страница `/wishlist/` с табами (список дорисовывает JS; пагинация — отдельно через ms3FavoritesIds + pdoPage)
1313
- [ms3FavoritesLists](ms3FavoritesLists) — список списков избранного с количеством
1414
- [ms3FavoritesPopularity](ms3FavoritesPopularity) — «У N пользователей в избранном»
1515
- [ms3FavoritesShare](ms3FavoritesShare) — страница шаринга по токену

docs/components/ms3favorites/snippets/ms3FavoritesBtn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ title: ms3FavoritesBtn
1111
|----------|----------|--------------|
1212
| **id** | ID ресурса/товара (обязательный) | `` |
1313
| **list** | Идентификатор списка | `default` |
14-
| **resource_type** | Тип ресурсов: `products`, `resources` | `products` |
14+
| **resource_type** | Тип ресурсов: `products`, `resources`, `articles`, `pages`, `custom` | `products` |
1515
| **tpl** | Чанк кнопки | `tplMs3fBtn` |
1616
| **remove** | `1` — перезагрузка при удалении; или префикс id элемента (product-item) для удаления `#product-item-{id}` | `` |
1717
| **label** | Метка для аналитики (передаётся в чанк) | `` |

0 commit comments

Comments
 (0)