Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента. Например в детальной новости или в детальном элементе каталога. Достаточно часто это нужно при разработке сайта недвижимости или фирменного сайта, для вывода объектов или филиалов, сети офисов и так далее.
У этой заметки есть продолжение: Свойство: привязка к Яндекс:Картам - вывести из нескольких элементов на одну карту
Часто бывает нужно вывести свойство "привязка к Яндекс карте" в детальном описании элемента. Например, в детальной новости или в детальном элементе каталога. Достаточно часто это нужно при разработке сайта недвижимости или фирменного сайта, для вывода объектов или филиалов, сети офисов и так далее.
Для начала в настройках инфоблока создаем новое свойство типа "Привязка к Яндекс картам", затем выводим необходимый компонент в публичной части сайта и копируем шаблон компонента в шаблон своего сайта
Затем добавляем в template.php шаблона компонента вот такой код
<? $arProperty = $arResult["DISPLAY_PROPERTIES"]; ?>
<? if (isset($arProperty['YAMAP'])):?>
<? $arPos = explode(",", $arProperty['YAMAP']['VALUE']);?>
<div class="yandexmapa">
<?$APPLICATION->IncludeComponent(
"bitrix:map.yandex.view",
"",
Array(
"INIT_MAP_TYPE" => "MAP",
"MAP_DATA" => serialize(array(
'yandex_lat' => $arPos[0],
'yandex_lon' => $arPos[1],
'yandex_scale' => 13,
'PLACEMARKS' => array (
array(
'TEXT' => $arProperty["YAMAP"]["VALUE"].", ".$arProperty["YAMAP"]["VALUE"],
'LON' => $arPos[1],
'LAT' => $arPos[0],
),
),
)),
"MAP_WIDTH" => "100%",
"MAP_HEIGHT" => "300",
"CONTROLS" => array("ZOOM", "MINIMAP", "TYPECONTROL", "SCALELINE"),
"OPTIONS" => array("DESABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING"),
"MAP_ID" => ""
),
false
);?>
</div>
<?endif;?>
В атрибуте YAMAP хранится наша связь. Также можно создать свойство адрес (город / улица / дом) - типа строка, карта может получать местоположение с помощью поиска по карте Яндекс и использовать типовой компонент "Яндекс карта: поиск по карте"
В итоге получится примерно так же как я вывел это на одном разрабатываемом сайте по недвижимости Москвы

Поддержать выпуски видео уроков, поблагодарить за полезную инструкцию или заметку можно через:
Юманей
Цитата |
---|
Константин Нечаев написал: Как таким же методом вывести карту Гугла? |
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|
Цитата |
---|
Михаил Базаров пишет: Вставте карту не в template.php а в component_epilog.php тогда кеширование будет работать |

Цитата | ||
---|---|---|
Сергей Стефанович написал:
|
Цитата |
---|
Михаил Базаров пишет: Создать файл component_epilog.php рядом с template.php и вставить туда |
Михаил, не плохо было бы увидеть статью по component_epilog.php. С разъяснением зачем он и как работает.

Цитата | ||
---|---|---|
Сергей Стефанович пишет:
Михаил, не плохо было бы увидеть статью по component_epilog.php. С разъяснением зачем он и как работает. |

https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2975
Цитата |
---|
Михаил Базаров пишет: Зачем нужен и как используется описано вот здесь. Вроде как и добавить нечего https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2975 |
но все равно не понял как решить данную задачу, что, куда и как вставлять

Код |
---|
'TEXT' => $arProperty["YAMAP"]["VALUE"].", ".$arProperty["YAMAP"]["VALUE"], |
Код |
---|
"TEXT"=>$arItem["NAME"].",<br> ".$arItem["PREVIEW_TEXT"] |

Цитата | ||||
---|---|---|---|---|
Тимур Парфенцев написал:
|
Код |
---|
<?=$arItem['DISPLAY_PROPERTIES']['YAMAP']['VALUE']?> |