Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует 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-pl7] - 2026-09-01
Fixed
FilterManager: приfilters=working_nowфильтрыcategoryиbrandостаются активны.FilterManager:product_idвключает MS3-фильтр безfilters=minishop_product(REST и search.php).FilterManager::describeFilters()отдаёт meta для Pro REST (amenity,brand,minishop_product).- Mgr geocode helper: retry, пока Ext не отрисует TV адреса. В fetch передаётся modAuth.
- Mgr geocode helper: кнопка под полем адреса в
.modx-tv-form-element, стили вmgr-tv-helpers.css. - Балун карты:
balloonMaxWidth360px. Кнопка «Построить маршрут» и картинка не обрезаются. WorkingHoursFormatter: чинит double-UTF-8 в слотах расписания (например «выходной»).- Free connector:
getUser('mgr')для сессии mgr. - Geocode/preview fetch: CSRF через
MODx.siteId, как у Ext.Ajax в MODX.
[1.0.0-pl6] - 2026-08-31
Fixed
- CI: добавлен
phpunit.xml, чтобы Pest не принимал--cache-directoryза конфиг. - PHPStan и PHP-CS-Fixer: stubs и стиль под зелёный CI.
- Transport build: настройки без
value=null(ломало упаковку). seed-qa-media.phpперенесён из_build/resolvers/в_build/scripts/и не попадает в transport.- Убран пустой Integration suite из PHPUnit.
[1.0.0-pl5] - 2026-08-31
Тег Git: 1.0.0-pl. В коде версия пакета: 1.0.0-pl5.
Fixed
map_config.restApiсмотрит наapi_enabled. Если REST выключен, локатор ходит вsearch.php.- Lexicon и docs: kill switch REST не трогает on-page
search.php.
[1.0.0-pl4] - 2026-08-31
Changed
- Карточка точки: в колонке meta сверху бейдж статуса (Pro), ниже часы.
- Дни в компактном расписании в
.yml-store__hours-day(working_hours_compact_html, JSemphasizeWorkingHoursDays).
[1.0.0-pl3] - 2026-08-31
Added
- Настройка
yandexmapslocator_timezone(IANA, по умолчаниюEurope/Moscow) для Proworking_nowиis_open_now. Расписание в TV считается в местном времени сети, не в UTC сервера.
Fixed
Search.js:contextберётся из опций. Обращения к несуществующемуthis.configбольше нет.
Docs
- REST: на многих хостингах работайте через
?route=api/v1/…. PATH_INFO часто не пробрасывается.
[1.0.0-pl2] - 2026-08-31
Fixed
- «Моё местоположение» и (Pro) «Только открытые» одной высоты
--yml-control-height-sm. Тема больше не раздувает locate.
[1.0.0-pl1] - 2026-08-31
Changed
- Под формой поиска ряд
.yml-search__tools: «Моё местоположение» и (в Pro) «Только открытые» в одном flex-ряду. - Стили secondary-кнопок поиска: underline у locate, outline у open-now.
[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.
Extension API
- События регистрации фильтров и feature providers, хуки prepare Store и search.
- Хуки сериализации для REST Pro.
- Frontend modules из capability
pro(подключениеpro.js).
Интерфейс
- Mobile-first: табы «Список» / «Карта», на desktop две колонки.
- CSS-токены на
.yml-locator, кэш-бастинг ассетов (?v=). - 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.
Requirements
- PHP 8.2+
- MODX Revolution 3.x
- MySQL / MariaDB
- pdoTools (Fenom-чанки)
- API-ключ Яндекс.Карт (JS API и HTTP Геокодер)




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