Omar Khazamov, раз уж Вы спрашиваете про варианты...
1) Через CBXVirtualIo открывать страницу и искать вхождение компонента catalog.element
Минусы:
- Страница с коплексным компонентом catalog, не содержит catalog.element, но показывает детальную карточку
- А с чего Вы взяли, что это не самопис и там не какой-нибудь catalog.detail иди sale.detail? К тому же не забываем про eshop и мобильные сайты(не адаптив)
- Даже если Вы будете кешировать результаты, страницу это все равно замедляет
- Быстрый просмотр (например вывод какой-то части контента) Вам будет отследить не под силу
2) Можно проверять через URL и сравнивать с ЧПУ каждого инфоблока который является торговым каталогом.
Минусы:
- А с чего Вы взяли что у всех они совпадают?
- Опять же фича с быстрым просмотром
3) В старой (не обновленной) версии битрикса можно подписываться на событие OnBeforeViewedAdd модуля sale
Оно появилось позде (когда был топик, его еще не было).
В новой версии оно работает, только если включен режим совместимости.
Проверить можно выполнив кусочек кода в php-консоли:
echo (\Bitrix\Main\Config\Option::get('sale', 'product_viewed_save')==='Y')? "Включен" : "Выключен";
4) В новой версии (тестил на 17.5) Битрикса можно подписываться на события ORM у \Bitrix\Catalog\CatalogViewedProductTable
Насколько я знаю, Битриксовая big-data именно оттуда и берет информацию
5) Ну и конечно можно в наглую тырить данные которые собирает сам битрикс (js-переменная _ba на странице).
Первую и вторую не рекомендую.
1) Через CBXVirtualIo открывать страницу и искать вхождение компонента catalog.element
Минусы:
- Страница с коплексным компонентом catalog, не содержит catalog.element, но показывает детальную карточку
- А с чего Вы взяли, что это не самопис и там не какой-нибудь catalog.detail иди sale.detail? К тому же не забываем про eshop и мобильные сайты(не адаптив)
- Даже если Вы будете кешировать результаты, страницу это все равно замедляет
- Быстрый просмотр (например вывод какой-то части контента) Вам будет отследить не под силу
2) Можно проверять через URL и сравнивать с ЧПУ каждого инфоблока который является торговым каталогом.
Минусы:
- А с чего Вы взяли что у всех они совпадают?
- Опять же фича с быстрым просмотром
3) В старой (не обновленной) версии битрикса можно подписываться на событие OnBeforeViewedAdd модуля sale
Оно появилось позде (когда был топик, его еще не было).
В новой версии оно работает, только если включен режим совместимости.
Проверить можно выполнив кусочек кода в php-консоли:
echo (\Bitrix\Main\Config\Option::get('sale', 'product_viewed_save')==='Y')? "Включен" : "Выключен";
4) В новой версии (тестил на 17.5) Битрикса можно подписываться на события ORM у \Bitrix\Catalog\CatalogViewedProductTable
Насколько я знаю, Битриксовая big-data именно оттуда и берет информацию
5) Ну и конечно можно в наглую тырить данные которые собирает сам битрикс (js-переменная _ba на странице).
Первую и вторую не рекомендую.