
Сниппеты msViewCounter
| Сниппет | Назначение |
|---|---|
| msViewCounter | Вывод просмотров и active-посетителей товара |
Порядок на типовой странице товара
- Плагин
msViewCounterBootstrapнаOnMODXInit— подключает автозагрузчик и функциюmsvc_get_service(). С версии 1.0.1 сниппет подключаетbootstrap.phpсамостоятельно, так что без плагина страница не падает, но теряются учёт просмотров, стили и heartbeat. - Плагин
msViewCounterTrackнаOnLoadWebDocument— определяет страницу товара, записывает просмотр и подключает CSS и JS. msViewCounterв шаблоне — HTML-блок и регистрация CSS.viewcounter.jsв браузере — шлёт heartbeat вconnector.php, который продлевает active-сессию в БД.
Порядок важно понимать буквально: heartbeat JS подключает плагин на странице товара, а не наоборот. JS не запускается сам по себе — его регистрирует ViewCounter::registerAssets() из плагина. Условие подключения: режим не fake и msviewcounter_show_online включён.
Число на странице обновляется само начиная с версии 1.0.2: ответ коннектора разбирается, и числа подставляются в блок с сохранением формулировки.
Таблица соответствий (MODX / Fenom)
| Назначение | MODX | Fenom |
|---|---|---|
| Базовый вывод | [[!msViewCounter? &pid=`[[*id]]` &tpl=`tplMsViewCounter`]] | {'!msViewCounter' | snippet : ['pid' => $_modx->resource.id, 'tpl' => 'tplMsViewCounter']} |
| Другой товар | [[!msViewCounter? &pid=`42`]] | {'!msViewCounter' | snippet : ['pid' => 42]} |
| Свой чанк | [[!msViewCounter? &tpl=`myCounter`]] | {'!msViewCounter' | snippet : ['tpl' => 'myCounter']} |
| В каталоге | [[!msViewCounter? &pid=`[[+id]]`]] | в чанке msProducts: pid из [[+id]] |
Кэширование
Вызывайте сниппет некэшированно ([[!...]] или {'!...' | snippet}), иначе на закэшированной странице могут застыть устаревшие числа online.
Плейсхолдеры в чанке
| Плейсхолдер | MODX | Fenom (если чанк Fenom) |
|---|---|---|
| ID товара | [[+pid]] | {$pid} |
| Просмотры | [[+total]] | {$total} |
| Online | [[+online]] | {$online} |
| Текст просмотров | [[+total_text]] | {$total_text} |
| Текст online | [[+online_text]] | {$online_text} |
