Mapex 1.0 - custom TV Яндекс.Карты

Дополнение для MODX Revolution, добавляющее новый тип ввода TV параметров, позволяющий указать координаты точки на Яндекс.Картах.

Внимание!
Выпущена 2-ая версия компонента, они имеют различный функционал и несовместимы между собой.
Следить за развитием проекта вы можете по тегу Mapex.

После установки пакета Mapex 1.0 при создании TV-параметра можно указать новый тип ввода: "mapex.yandex". Этот тип ввода добавляет Яндекс.Карту на страницу редактирования ресурса:

Mapex

Основные особенности:

  • Указание точки путем перетаскивания ее мышкой.
  • Быстрый поиск по адресу.
  • Поддержка всех типов карты: Схема, Спутник, Гибрид, Народная карта.
  • Работает на API Яндекс.Карты 2.0

Все данные сохраняются в виде JSON:

{"lat":54.182949,"lon":37.612339,"zoom":12,"type":"yandex#map"}

Инструкция по применению

Устанавливаем пакет. Установить можно, скачав пакет по ссылке. В настоящий момент в официальном репозитории MODX этого пакета нет.

Создаем новый TV параметр. Указываем ему тип ввода mapex.yandex, назначаем TV нужному шаблону.

Заполняем значение по умолчанию для TV. В поле "Значение по-умолчанию" можно написать JSON строку, аналогичную приведенной выше, что бы при создании нового ресурса карта сразу была открыта нужного типа и с нужными координатами. Документация доступна на сайте Яндекс.Карт http://api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/map.xml

Создаем ресурс, присваиваем ему наш шаблон, наслаждаемся!

Отображение карты на сайте

Читаем api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/load.xml о том, как подключить карты к сайту, смотрим примеры api.yandex.ru/maps/doc/jsapi/2.x/examples/ Для работы с JSON, в котором хранятся координаты, зум и тип карты, написан небольшой сниппет-фильтр mapexYandexFltr, который входит в пакет. Он умеет парсить JSON массив и возвращать нужное поле (здесь mapInfo — имя TV-параметра). Пример работы:

[[*mapInfo]]
[[*mapInfo:mapexYandexFltr]]
[[*mapInfo:mapexYandexFltr=`lat`]]
[[*mapInfo:mapexYandexFltr=`lon`]]
[[*mapInfo:mapexYandexFltr=`zoom`]]
[[*mapInfo:mapexYandexFltr=`type`]]

Этот код выводит следующий результат:

{"lat":54.20288109538611,"lon":37.64632848434251,"zoom":15,"type":"yandex#satellite"}
54.202881095386,37.646328484343
54.202881095386
37.646328484343
15
yandex#satellite

Ссылка на установочный пакет

Mapex 1.2