Что умеет решение
Назначение
Модуль централизованно управляет подключением к API Яндекс.Карт, заменяя все прямые ссылки на api-maps.yandex.ru на единый URL из настроек. Это предотвращает конфликты и ошибки, возникающие при одновременной работе нескольких модулей (awz.ydelivery, awz.belpost, awz.europost), использующих разные ключи или версии библиотеки ymaps.
Основные возможности
Автоматическая замена скриптов: Модуль перехватывает HTML-контент страницы и подменяет все запросы к api-maps.yandex.ru на указанный в конфигурации адрес.
Гибкое управление: Возможность активации или отключения модуля для отдельных сайтов в рамках мультисайтовых решений.
Исключения по URL: Настройка правил отключения модуля на конкретных страницах с использованием регулярных выражений.
Исключения по параметрам: Возможность отключения функционала на страницах, содержащих определённые GET-параметры.
Автоматическое получение ключей: Если установлены модули awz.ydelivery, awz.belpost, awz.europost или fileman, система пытается автоматически извлечь и использовать API-ключи из их настроек.
Поддержка Enterprise: При наличии ключа для Enterprise-версии модуль автоматически переключает подключение на адрес enterprise.api-maps.yandex.ru.
Принцип работы
Модуль AWZ: Решение конфликтов Яндекс карт интегрируется с ядром Bitrix через событие OnEndBufferContent. Обработка выполняется только на этапе завершения генерации HTML-страницы для обычных GET-запросов, исключая административную панель, POST-запросы и AJAX-вызовы. В мультисайтовых проектах используются настройки, привязанные к конкретному сайту (SITE_ID). Перед выполнением скрипт проверяет текущий URL и GET-параметры на соответствие регулярным выражениям для отключения модуля при необходимости.
Алгоритм работы с кодом страницы включает поиск всех тегов с подключением api-maps.yandex.ru. Первое найденное подключение заменяется на URL, указанный в настройках, с добавлением метки #awzfixymap для последующей очистки. Все остальные дублирующие подключения к Яндекс Картам удаляются. В финальном HTML-коде метка #awzfixymap также удаляется.
Установка модуля происходит автоматически при регистрации в системе, после чего подключается обработчик события. Управление параметрами осуществляется в разделе административной панели «Настройки модулей» → «Настройки модуля AWZ: Решение конфликтов Яндекс карт». Для каждого сайта в мультисайтовой конфигурации настройки хранятся изолированно, что обеспечивает гибкое управление поведением модуля. Базовая опция «Включить модуль (ACTIVE)» позволяет активировать или деактивировать функционал на текущем сайте; по умолчанию значение установлено в «Нет».
AWZ: Решение конфликтов карт Яндекс
Путь к библиотеке ymaps
Укажите полный URL для подключения библиотеки ymaps. Если поле оставить пустым, адрес будет сформирован автоматически на основе ключей, заданных в других модулях.
Отключение на страницах с GET-параметрами (DSBL_GET)
Перечислите GET-параметры через запятую. При их наличии в URL модуль не будет активирован. Например, указав preview,edit, скрипт отключится на страницах /catalog/?preview=1 или /product/?edit=true.
Отключение по регулярному выражению (DSBL_REJ)
Введите список регулярных выражений, каждое с новой строки. Если текущий URL совпадает с любым из них, модуль не запустится. Примеры:
/catalog/ — точное совпадение пути (работает на /catalog/index.php).
#\/catalog\/*#i — регулярное выражение (не сработает на */catalog/*).
Эти правила имеют приоритет над правилами включения.
Включение по регулярному выражению (ENBL_REJ)
Укажите список регулярных выражений, каждое с новой строки. Если хотя бы одно выражение задано, модуль будет работать исключительно на страницах, совпадающих с этими шаблонами.
Права доступа
Настройка прав доступа для различных групп пользователей выполняется в отдельной вкладке настроек.
General iT поможет установить модуль, настроить его и проверить работу на твоём сайте.