====== Вывести на карту пункты выдачи доставки СДЭК ======
1. В ТДС магазина передаем файл, в котором хранятся данные пунктов выдачи [[private:koding:hostcms:modules:siteuser:avtoopredelenie_goroda_polzovatelja_na_osnove_geoip|выбранного города]] {{ :private:koding:hostcms:shop:sdek.xml |сдек.xml}}
$cityName = $_SESSION['shop_country_location_city'];
$feed = simplexml_load_file('sdek.xml');
$aResult = $feed->xpath("/PvzList/Pvz[@City = '$city_name1']");
2. Передаем в XML нужные нам данные для дальнейшего вывода на страницу.
$i = 1;
foreach ($aResult as $City)
{
$dName[$i] = ($City['Name']);
$dWorkTime[$i] = $City['WorkTime'];
$dAddress[$i] = $City['Address'];
$dPhone[$i] = $City['Phone'];
$dCoordX[$i] = $City['coordX'];
$dCoordY[$i] = $City['coordY'];
$Shop_Controller_Show
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dName')
->value($dName[$i])
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dWorkTime')
->value($dWorkTime[$i])
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dAddress')
->value($dAddress[$i])
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dPhone')
->value($dPhone[$i])
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dCoordX')
->value($dCoordX[$i])
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dCoordY')
->value($dCoordY[$i])
);
$i++;
$Shop_Controller_Show
->addEntity(
Core::factory('Core_Xml_Entity')
->name('i')
->value($i)
);
}
$Shop_Controller_Show
->addEntity(
Core::factory('Core_Xml_Entity')
->name('dcity_name')
->value($cityName)
);
3. В xsl вставляем в нужное место код для всплывающего окна.
4. Вывод всплывающего окна с картой пунктами выдачи. Высплывающее окно можно сделать с помощью Fancybox [[private:koding:hostcms:modules:siteuser:avtoopredelenie_goroda_polzovatelja_na_osnove_geoip|Пункт 4.]]
5. Вставляем в xsl скрипт вывода карты.
6.В список пунктов доставки выводим название
7. Получаем данные координат и данные для метки на карту из xml
myPlacemark = new ymaps.Placemark([, ], {
// Чтобы балун и хинт открывались на метке, необходимо задать ей определенные свойства.
balloonContentHeader: " ",
balloonContentBody: "",
balloonContentFooter: " ",
hintContent: ""
});
myMap.geoObjects.add(myPlacemark);
placemarks.push(myPlacemark);
Страницу создал Вадим Гринев 12.10.16 в 13:14