====== Вывести на карту пункты выдачи доставки СДЭК ====== 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