Интересные статьи

После решения задачи, хочется рассказать об этом

Компонент карты метро на битрикс

Вашему вниманию хочу представить компонент битрикс с полноценной картой метро в формате SVG. Карту взял на сайте avito.ru Если я посягнул на чужие права, по запросу карту удалю. Решил создать этот компонент, так как в интернете не нашел ничего подобного. И после выполнение задачи для заказчика, решил выложить ее решение. Как всегда, может кому пригодится. Данное решение буду обновлять и выкладывать здесь.

Задача от заказчика

Мне нужно в контактах сайта установить карту метро и чтобы при клике клиента по станциям метро у меня оставалась статистика по каким станциям метро кликают клиенты. Клиенту же должно выдаваться страница сайта с 2-мя реально существующими на данный момент адресами офисов. Статистика нужна для понимания где открывать следующий офис.
Сайт сделан на Bitrix. Битрикс не обновлен.
Изначально клиенту выдается страница с картой метро и надписью Укажите вашу станцию метро. Клиент может выбрать несколько удобных для него станций. После того как он указал станции метро ему должна выдаваться существующие на сегодня 2-ва офиса как они есть сейчас в разделе контакты. Офис-1 Офис-2. На один ip карта выдается один раз, в очередной раз при заходе этого же клиента выдается стандартная страница контакты(чтобы не мучить тех клиентов которые и так готовы к нам ехать).

Компонент pashkof.project:map.metro

$APPLICATION->IncludeComponent(
	"pashkof.project:map.metro",
	"",
	Array(
	"IBLOCK_ID" => 21,
	),
	false
);

Компонент позволяет

во первых, собирать статистику по кликам по станциям и записывать информацию в инфоблоки,
во вторых, записывать в куки - сериализованный массив со станциями, которые выбрал пользователь и
в третьих, в зависимости от выбранной станции показывать - выводить адрес вашего офиса

Компонент карта метро подключается очень легко.

Необходимо создать инфоблок пустой без дополнительных свойств и прописать его ID в параметрах компонента
Если не прописать данный параметр, компонент будет писать метро только в куки
Сделать импорт станций метро из файлика в формате XML
Вставить компонент в любом месте сайта.
Кастомизировать шаблон компонента под дизайн вашего сайта

По логике

Если в куки присутствует сериализованный массив со станциями - METRO, то попап для выбора не выводится
Количество выбранных станций пишется в поле СОРТ в инфоблоке

Cкачать компонент pashkof.project:map.metro в формате tgz
Cкачать файл импорта каталога станций в формате XML