PDF Печать E-mail
(3 Голосов)
03.06.2010 16:39

Меняем карты Google на Яндекс.Карты для SOBI2

Для системы управления сайтом Joomla существует компонент бизнес-каталога SOBI2, в котором для показа
месторасположения организации используются карты Google Maps. Проблема в том, что мало городов России и Украины представлены на картах Google с детализацией до дома. И хотелось бы иметь
возможность использовать Яндекс.Карты в место Google Maps. Как это легко сделать я покажу Вам в этой заметке.

И так в начале, Вы должны скачать компонент и установить его на своем сайте, если он не был установлен.  
Устанавливаем компонент и создаем необходимые категории и записи. API используемые в Google Maps и Яндекс.Картах похожи и нам для перехода от использования одного к другому необходимо будет
исправить всего два файла (можно ограничиться одним).

 

Для использования карт Google в праметрах отображения компонента SOBI2 существует вкладка Google Maps. В режиме администрирования системы нужно выбрать компонент Sigsiu Online Business Index 2 На открывшейся странице в левой колонке выбрать ссылку Параметры (), а затем Параметры отображения (). На странице выбрать вкладку Google Maps. Мы увидим форму следующего содержания (если у Вас компонент русифицирован):

 

 

 

 

 

 

Здесь в принципе все понятно без пояснений. Единственное, что для использования Яндекс.Карт необходимо в поле API ключ ввести соответственно ключ к API Яндекс.Карт для вашего домена. И поменять местами поля для хранения значений широты и долготы карты. Тип поля – Скрытое. Первое значение – долгота (Longitude) поле filds_latmap и второе – широта (Latitude) поле filds_lonmap.

Если Вы хотите поменять текстовое описание в форме, то это можно сделав отредактировав следующие файлы:

  • – для русифицированной версии файл admin.russian.php, расположенный по адресу Папка сайта/ administrator/components/com_sobi2/languages/
  • – для английской версии файл admin.english.php, расположенный там же.

Нужно поиском найти текст, который необходимо заменить и ввести новый.

Теперь переходим к главному этапу. В папке установки вашего сайта находим каталог по адресу /components/com_sobi2/includes/ нужно найти файл entry.functions.php. Его мы будем изменять. Открываем его для редактирования. Находим в нем функцию showGoogleMaps, самая последняя в файле. Она отвечает за вывод карты при просмотре полного описания информации о компании, если введены координаты центра в соответствующие поля (filds_latmap и filds_lonmap). И заменяем весь код в функции между строчками

function showGoogleMaps($mySobi, $config)

{ и }

function waySearchUrl( $waySearchLink )

На новый код:

if( !$config->useGoogleMaps || !isset( $config->googleMapsApiKey ) ) {
 return null;
 }
 $map_url = "http://api-maps.yandex.ru";
 $map_api_version = "1.0";
 
 $title = $config->jsAddSlashes( $mySobi->title );
 $GeoPos = $config->getGeoPosition( $mySobi->id );
 if( $GeoPos['lat'] && $GeoPos['long'] && is_numeric( $GeoPos['lat'] ) && is_numeric( $GeoPos['lat'] ) ) {
 ?>
 
 <script src="/gold/<?php echo $map_url?>/<?php echo $map_api_version?>/?key=<?php echo $config->googleMapsApiKey ?>" type="text/javascript"></script>
 <script type="text/javascript">
 //<![CDATA[
 window.onload = function init () {
 var map = new YMaps.Map(document.getElementById("YMapsID"));
 map.setCenter(new YMaps.GeoPoint(<?php echo $GeoPos['lat']; ?>, <?php echo $GeoPos['long']; ?>), <?php echo $config->googleMapsZoom;  ?>);
 
var placemark=new YMaps.Placemark(new YMaps.GeoPoint(<?php echo $GeoPos['lat']; ?>, <?php echo $GeoPos['long']; ?>));
 map.addOverlay(placemark);
 placemark.openBalloon('<div style="text-align:center; width: 200px; "><strong><?php echo $title; ?></strong></div>'); 
 
 
map.addControl(new YMaps.SmallZoom());
 
 };
 
 //]]>
</script>
 
 <div style="width: <?php echo $config->googleMapsWidth; ?>px; height: <?php echo $config->googleMapsHeight; ?>px;" id="YMapsID"></div>
 
<?php
 }
 elseif ( ( strlen( trim($GeoPos['lat'] ) ) &amp;&amp; strlen( trim( $GeoPos['long'] ) ) ) &amp;&amp; !is_numeric( $GeoPos['lat'] ) || !is_numeric( $GeoPos['lat'] ) ) {
 trigger_error("HTML_SOBI::showGoogleMaps(): Given cooordinates ({$GeoPos['lat']}, {$GeoPos['long']}) are not correct. Please enter float values");
 }
 }

Оригинал статьи: http://webmap-blog.ru/?tag=sobi2

 

Комментарии  

 
+1 #1 друг 09.07.2010 16:17
ссылка на файл не рабочая! :P
скачал на сайте оригинала статьи
Цитировать
 

Добавить комментарий


Защитный код
Обновить