GitHub - https://github.com/azahalski/awz.ymapfix/
Маркетплейс 1с-Битрикс:
https://marketplace.1c-bitrix.ru/solutions/awz.ymapfix/
Назначение
Модуль автоматически заменяет подключения к API Яндекс карт на заданный URL, обеспечивая единый и корректный способ подключения библиотеки ymaps. Это особенно полезно в ситуациях, когда несколько модулей (например, awz.ydelivery, awz.belpost, awz.europost) подключают карты с разными ключами и версиями, что приводит к конфликтам и ошибкам.
Основные возможности
- Автоматическая замена скриптов: Модуль перехватывает HTML-контент страницы и заменяет все подключения к
api-maps.yandex.ruна единый URL, указанный в настройках. - Гибкая настройка: Возможность включать/отключать модуль на отдельных сайтах (для мультисайтовых решений).
- Исключения по URL: Настройка страниц, на которых модуль не будет работать, с использованием регулярных выражений.
- Исключения по GET-параметрам: Отключение модуля на страницах с определёнными GET-параметрами.
- Автоматический поиск ключей: При наличии модулей
awz.ydelivery,awz.belpost,awz.europostилиfileman, модуль пытается автоматически подставить API-ключи из их настроек. - Поддержка enterprise-версии: При наличии API-ключа для enterprise-версии, модуль автоматически переключается на
enterprise.api-maps.yandex.ru.
Принцип работы
Модуль подключается к событию OnEndBufferContent ядра Bitrix. На этапе завершения формирования HTML-страницы он:
- Проверяет, что запрос не из админки, не POST-запрос и не AJAX-запрос.
- Получает настройки для текущего сайта (в мультисайтовых проектах).
- Проверяет, не отключён ли модуль для текущего GET-параметра или URL (через регулярные выражения).
- Ищет в HTML-коде все теги
<script>с подключениемapi-maps.yandex.ru. - Заменяет первое найденное подключение на указанный в настройках URL (с добавлением
#awzfixymapдля последующей очистки). - Удаляет все остальные подключения к Яндекс Картам.
- Удаляет метку
#awzfixymapиз итогового HTML.
Интеграция с Bitrix CMS
- Установка: Модуль регистрируется в системе и подключает обработчик события
OnEndBufferContent. - Настройки: Доступны через раздел "Настройки модулей" → "Настройки модуля AWZ: Решение конфликтов Яндекс карт".
- Мультисайтовость: Настройки хранятся отдельно для каждого сайта (
SITE_ID), что позволяет гибко управлять поведением модуля в мультисайтовых проектах.
Настройки и конфигурация
Основные настройки
-
Включить модуль (
ACTIVE)- Флажок для включения/отключения модуля на текущем сайте.
- Значение по умолчанию:
N(выключено).
-
URL путь к библиотеке ymaps (
URL)- Полный URL для подключения библиотеки
ymaps. - Значение по умолчанию: автоматически формируется на основе ключей из других модулей.
- Полный URL для подключения библиотеки
-
Отключить модуль на страницах с get параметрами (
DSBL_GET)- Список GET-параметров (через запятую), при наличии которых модуль не будет работать.
- Пример:
preview,edit— модуль отключится на страницах/catalog/?preview=1или/product/?edit=true.
-
Отключить модуль на страницах по регулярному выражению (
DSBL_REJ)- Список регулярных выражений (каждое с новой строки), при совпадении с текущим URL модуль не будет работать.
- Примеры:
/catalog/— точный путь (опубликуется на/catalog/index.php).#\/catalog\/*#i— регулярное выражение (не опубликуется на*/catalog/*).
- данные правила приоритетнее правил включения
-
Включить модуль на страницах по регулярному выражению (
ENBL_REJ)- Список регулярных выражений (каждое с новой строки).
- Если задано хотя бы одно выражение в
ENBL_REJ, модуль сработает только на страницах, совпадающих с этими выражениями.
Права доступа
В отдельной вкладке настроек доступна настройка прав доступа для различных групп пользователей.
Установка и удаление
- Установка: Через админку Bitrix → "Модули" → "Установить модуль".
- Удаление: Через админку Bitrix → "Модули" → "Удалить модуль". При удалении можно сохранить настройки модуля.






















