Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Версия
1.0.0-pl
Дата выпуска
31.08.2026
Загрузки
0
Просмотры
5
Внимание, этот компонент требует PHP
8.2
или выше!
Внимание, этот компонент требует MODX 3 или выше.
Локатор точек сети на Яндекс.Картах для MODX Revolution 3. На странице: карта с маркерами, список точек, поиск по адресу и кнопка «Моё местоположение». Одна точка = один опубликованный ресурс с TV (адрес, координаты, телефон, часы).
Кому подойдёт: сайт сети магазинов, пунктов выдачи или филиалов на MODX 3, где нужна карта на витрине без отдельной БД магазинов.
Назначение
Возможности Free

Free и Pro
Этот пакет — Free: локатор на сайте (карта, список, поиск, геолокация, категории, Extension API). Точки — ресурсы MODX с TV. Для витрины сети этого обычно достаточно.
YandexMapsLocatorPro — отдельный платный пакет. Ставится поверх Free (без Free не установится). Тот же UI локатора, плюс операции и интеграции:
Чего нет в Free вместо REST. Режим return=json и endpoint search.php работают только same-origin: нет CORS для чужого домена, нет выбора полей fields/include, нет Bearer. Публичный read API для SPA на другом хосте — только Pro.
Пустой api_token на стенде открывает REST без токена. На production задайте Bearer.
Если Pro установлен, а api_enabled выключен, REST отвечает 503, а локатор на странице остаётся на search.php.
Полная матрица: docs.modx.pro — Free и Pro.
Пример вызова
Фильтр по категории
Только открытые сейчас (Pro)
Задайте yandexmapslocator_timezone (IANA). Для фильтра в TV часов нужен JSON. Текст без JSON показывается в карточке, но «открыто» для него не считается.
TV по умолчанию
Ставятся при установке пакета. Имена можно сменить через настройки yandexmapslocator_tv_*.
Скриншоты




Кому подойдёт: сайт сети магазинов, пунктов выдачи или филиалов на MODX 3, где нужна карта на витрине без отдельной БД магазинов.
Назначение
- карта Яндекса со списком точек рядом (на телефоне — табы «Список» / «Карта»);
- поиск по адресу и сортировка по расстоянию;
- геолокация браузера и сброс фильтра («Все точки»);
- маршрут в Яндекс Навигатор с карточки и из балуна;
- категории, свои иконки маркеров и картинки в балуне.
Как это работает
- Создаёте контейнер и дочерние ресурсы-точки, заполняете TV адреса и координат.
- В форме ресурса можно нажать кнопку геокода (нужен API-ключ Яндекса).
- На странице вызываете сниппет YandexMapsLocator с parents = ID контейнера.
- JS синхронизирует список и маркеры.
Возможности Free
- Локатор. Сниппет YandexMapsLocator: форма, список, карта. Параметры parents, limit, radius, sortby, category, filters, context, return.
- Режимы вывода. chunks (HTML), data (плейсхолдеры), json для своего шаблона на том же origin.
- Геолокация и поиск. «Моё местоположение», поиск по адресу через HTTP Геокодер Яндекса, радиус и сортировка по distance.
- Карточка и балун. Адрес, телефон, часы, маршрут, balloon image, custom marker icon.
- TV и геокод в mgr. Набор TV ставится при установке. Имена задаёте через yandexmapslocator_tv_*.
- UI. Mobile-first, BEM yml-*, атрибуты data-yml-*, CSS-переменные на .yml-locator.
- Multi-context. Параметр context, настройки default_context и allowed_contexts.
- Extension API. События для фильтров и feature providers. Pro и свои extras подключаются без правок ядра Free.

Free и Pro
Этот пакет — Free: локатор на сайте (карта, список, поиск, геолокация, категории, Extension API). Точки — ресурсы MODX с TV. Для витрины сети этого обычно достаточно.
YandexMapsLocatorPro — отдельный платный пакет. Ставится поверх Free (без Free не установится). Тот же UI локатора, плюс операции и интеграции:
- REST API v1 — api.php?route=api/v1/locations (список, деталь, geocode). CORS, Bearer (api_token), whitelist fields/include, kill switch api_enabled. Нужен для headless (Nuxt/Next) с другого origin. См. Pro API.
- «Открыто сейчас» — фильтр working_now, поля is_open_now / working_hours_schedule, бейджи «Открыто» / «Закрыто», кнопка «Только открытые». Таймзона сети: Free-настройка yandexmapslocator_timezone (IANA, например Asia/Omsk). В TV часов для фильтра нужен JSON. Подробнее: открыто сейчас.
- CSV в CMP — Компоненты → YandexMapsLocator Pro: импорт и экспорт по ID контейнера (адрес, координаты, контакты, часы). Менеджер Pro.
- MiniShop3 — на карточке товара карта только с точками, где товар доступен: TV ms3_product_id на точке + параметр productId и фильтр minishop_product. MiniShop3.
Чего нет в Free вместо REST. Режим return=json и endpoint search.php работают только same-origin: нет CORS для чужого домена, нет выбора полей fields/include, нет Bearer. Публичный read API для SPA на другом хосте — только Pro.
Пустой api_token на стенде открывает REST без токена. На production задайте Bearer.
Если Pro установлен, а api_enabled выключен, REST отвечает 503, а локатор на странице остаётся на search.php.
Полная матрица: docs.modx.pro — Free и Pro.
Пример вызова
{'!YandexMapsLocator' | snippet : [
'parents' => 123,
'radius' => 50,
'sortby' => 'distance'
]}Фильтр по категории
{'!YandexMapsLocator' | snippet : [
'parents' => 42,
'category' => 'аптека',
'filters' => 'category'
]}Только открытые сейчас (Pro)
{'!YandexMapsLocator' | snippet : [
'parents' => 42,
'filters' => 'working_now'
]}Задайте yandexmapslocator_timezone (IANA). Для фильтра в TV часов нужен JSON. Текст без JSON показывается в карточке, но «открыто» для него не считается.
TV по умолчанию
Ставятся при установке пакета. Имена можно сменить через настройки yandexmapslocator_tv_*.
- yandexmaps_address — адрес точки (поиск, балун, карточка). По нему же работает кнопка геокода в mgr.
- yandexmaps_latitude / yandexmaps_longitude — координаты маркера на карте и сортировки по distance.
- yandexmaps_phone — телефон в карточке и балуне (ссылка tel:).
- yandexmaps_email — email точки (в данных Store / REST при запросе поля).
- yandexmaps_working_hours — часы работы: текст для показа или JSON для Pro-фильтра «открыто сейчас» и бейджей.
- yandexmaps_category — категория точки. Фильтр сниппета: filters=category + параметр category.
- yandexmaps_balloon_image — картинка в popup балуна на карте (если пусто — fallback из настройки default_balloon_image).
- yandexmaps_marker_icon — своя иконка маркера вместо стандартной. Размер: yandexmapslocator_marker_icon_size (например 32,32).
Скриншоты




Четыре шага
- Установите пакет через Управление пакетами. См. быстрый старт.
- Укажите yandexmapslocator_api_key (JS API и HTTP Геокодер в кабинете Яндекса). Список ключей: настройки.
- Создайте контейнер и дочерние точки, заполните TV.
- Вызовите сниппет на странице (нужен pdoTools). Параметры: сниппет YandexMapsLocator.
Changelog — YandexMapsLocator
Формат: Keep a Changelog Версии: Semantic Versioning
[1.0.0] - 2026-08-31
Первый публичный релиз YandexMapsLocator (Free) для MODX Revolution 3. Локатор точек на Яндекс.Картах: одна точка = один ресурс с TV.
Платное расширение YandexMapsLocatorPro (REST, working_now, CSV, MiniShop3) ставится отдельно поверх Free. Матрица: docs/free-vs-pro.md.
Added
Локатор на сайте
- Сниппет
YandexMapsLocator: список, карта, поиск по адресу, геолокация («Моё местоположение» / «Все точки»), сортировка по расстоянию, фильтрcategory. - AJAX
search.php(same-origin). Режимыreturn=chunks/data/json. - Chunks на Fenom (pdoTools):
outer,search,store,empty,error. Разметка BEM (yml-*), контрактdata-yml-*. - Кнопка маршрута в Яндекс Навигатор, кастомные иконки маркеров и картинки балуна (TV + settings).
Точки и TV
- TV по умолчанию: адрес, координаты, телефон, email, часы работы, категория, balloon image, marker icon.
- Имена TV переопределяются через
yandexmapslocator_tv_*. - Кнопка геокода адреса в форме ресурса (mgr).
Карта и настройки
- API-ключ Яндекс.Карт (
yandexmapslocator_api_key) для JS API и HTTP Геокодера. - Центр, zoom, кластеризация, радиус, единица расстояния, fallback-картинка балуна, размер иконки маркера.
- Multi-context:
context/ctx,yandexmapslocator_default_context,yandexmapslocator_allowed_contexts. yandexmapslocator_timezone(IANA, по умолчаниюEurope/Moscow) для Proworking_now/ бейджей «Открыто».
Extension API
- События регистрации фильтров и feature providers, хуки prepare Store и search.
- Хуки сериализации для REST Pro.
- Frontend modules из capability
pro(подключениеpro.js).
Интерфейс
- Mobile-first: табы «Список» / «Карта», desktop — две колонки.
- CSS-токены на
.yml-locator, кэш-бастинг ассетов (?v=). - Карточка: блок meta (статус Pro + часы), дни в
.yml-store__hours-dayчерезworking_hours_compact_html. - JavaScript API:
search(),locate(), событияstore:click,marker:click,balloon:build.
Документация и качество
docs/: установка, сниппет, UI, contexts, Extension API, события, Free vs Pro, REST (для Pro).- Pest / PHPStan / CI.
Fixed
- Чанк
store.tpl: вместо несуществующих в Fenom| defaultи| raw—?:и{raw …}(pdoTools больше не ищет сниппетыdefault/raw). map_config.restApi: учитываетapi_enabled. При выключенном REST локатор ходит вsearch.php.Search.js:contextпередаётся из опций, без обращения к несуществующемуthis.config.
Requirements
- PHP 8.2+
- MODX Revolution 3.x
- MySQL / MariaDB
- pdoTools (Fenom-чанки)
- API-ключ Яндекс.Карт (JS API и HTTP Геокодер)



Последние обсуждения в сообществе MODX.pro