Выводим данные родительского ресурса в балунах

09 июня 2019, 07:00

У любого объекта на карте в плейсхолдере {$data} хранится массив данных этого объекта. Если в балуне прописать что-то вроде {$data | print}, то на фронт-энде мы получим примерно такую картину:

Array
(
    [parent] => 13
    [class] => modDocument
    [list] => default
)

Здесь нас интересует элемент parent, который содержит ID объекта родителя. Кстати, класс modDocument означает принадлежность родителя к ресурсам.

Вот таким образом в балуне можно вывести pagetitle родительского ресурса объекта:

{$data.parent | resource : "pagetitle"}

Давайте представим, что нам надо в каком-то универсальном чанке, который вызывается на многих ресурсах с картой, вывести сниппет карты. Помимо этого, если текст в балунах у объектов на карте не заполнен, вывести там название родительского ресурса и какое-то TV поле. Вызов по заданным параметрам будет выглядеть примерно так:

{'!YandexMaps2' | snippet : [
    'class' => 'modDocument',
    'parent' => $_modx->resource['id'],
    'defaultBalloonContent' => '
        <div><b>pagetitle</b>: {$data.parent | resource : "pagetitle"}</div>
        <div><b>tv</b>: {$data.parent | resource : "name_of_tv"}</div>
    ',
]}

Тоже самое можно проделывать и с выводом карты через mFilter2.



Предыдущий документ
Отключаем все элементы управления на карте
Следующий документ
Точки из MIGX с кастомными иконками на фронт-энде