Изменяем компонент каталога SOBI2 для Joomla, заменяем карты Google на Яндекс.Карты

Для системы управления сайтом Joomla существует компонент бизнес-каталога SOBI2, в котором для показа месторасположения организации используются карты Google Maps.

Проблема в том, что мало городов России и Украины представлены на картах Google с детализацией до дома. И хотелось бы иметь возможность использовать Яндекс.Карты в место Google Maps.

Как это легко сделать я покажу Вам в этой заметке.

И так в начале, Вы должны скачать компонент и установить его на своем сайте, если он не был установлен.

На момент написания статьи доступна версия SOBI2 RC2.9.2.2 и загрузить ее можно по адресу http://www.sigsiu.net/download/components/sigsiu_online_business_index_2.html

Устанавливаем компонент и создаем необходимые категории и записи.

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

Для использования карт Google в праметрах отображения компонента SOBI2 существует вкладка Google Maps.

В режиме администрирования системы нужно выбрать компонент Sigsiu Online Business Index 2

На открывшейся странице в левой колонке выбрать ссылку Параметры (), а затем Параметры отображения ().

На странице выбрать вкладку Google Maps.

Мы увидим форму следующего содержания (если у Вас компонент русифицирован):

Окно SOBI2 Параметры отображения - 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="<?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'] ) ) && strlen( trim( $GeoPos['long'] ) ) ) && !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");
		}
    }

Сохраняем измененный файл.

Задаем значение полей долготы и широты для какой либо организации и наблюдаем результат:

Пример отображения местоположения SOBI2 - Яндекс.Карты

Посмотреть пример в действии

  • Гость: А как ты ставил сам SOBI2 во всех мануалах советуют не использовать FTP мод. А как же иначе его засетапить?
  • Гость: Я с начала конфигурировал каталог SOBI2 и наполнял данными на локальной машине. Затем на сервере установил компонент SOBI2 стандартным образом в Joomle. После этого с использованием PhpMyAdmin обновил содержание таблиц категорий и данные полей.
  • Гость: Спасибо за статью! все работает, кроме одного момента... по аналогии с SOBI2+GoogleMaps, хотелось бы, чтобы при размещении пользователем информации в каталоге, он мог указать на Яндекс.карте место, получив в поля input field_latmap и field_lonmap координаты точки. Будет ли продолжение статьи SOBI2 + Яндукс.Карты? Еще раз Большое спасибо за эту статью!
  • Гость: Просьба выложить или прислать на мыло весь отредактированый файл, тк мешают кривые ручки или что-то еще (Предупреждение Этот шаблон включает в себя несколько JavaScripts, которые могут конфликтовать с MooTools библиотеки. SOBI2 поиска функция может не работать должным образом.: mootools)вываливается на стадии входа в каталог
  • Гость: Выложил исправленный файл entry.functions.php Загрузить его можно по ссылке <a href="http://webmap-blog.ru/files/entry.functions.txt" rel="nofollow">http://webmap-blog.ru/files/entry.functions.txt</a>. После загрузки замените расширение файла на php
  • Гость: Спасибо будем пробовать!
  • Гость: Для любителей sobi2 могу предложить услугу тематического наполнения вашего sobi2-каталога - получите ТЫСЯЧИ СТРАНИЦ легко! Детали предложения тут http://grabilka.ru/integrator/sobi2-joomla
  • Гость: а как сделать захват геокоординат как реализовано здесь http://www.sigsiu.net/faq/how_to_fetch_geo_coordinates_in_add_edit_entry_form_by_map.html
  • Гость: Здравствуйте! А возможно сделать так, чтобы координаты автоматически определялись по адресу? И как сделать так, чтобы карта была внизу, сейчас она у меня выводится вверху
  • Гость: Здравствуйте! подскажите пожалуйста как сделать так, чтобы карта была внизу, сейчас она у меня выводится вверху icq 589-119-638
  • Гость: Ответ есть в заметке по адресу <a href="http://webmap-blog.ru/?p=473" rel="nofollow">http://webmap-blog.ru/?p=473</a> Нужно изменить файл sobi2.details.tmpl.php
  • Гость: а не подскажите вот этот плагин для ads manager можно в нем заменить гугл карты на яндекс http://narod.ru/disk/18485836000/gmap.zip.html
  • Гость: Да, возможно. Нужно поправить функции осуществляющие вывод карты: getFormDisplay, getDetailsDisplay
  • Гость: После вышеописанных манипуляций на странице с картой появляется сообщение "Невозможно использовать ключ Google Api для этого сайта". В чем может быть дело? PHP файл подправил и ключ яндекса вбил.
  • Гость: А можете написать как сделать чтобы яндекс карты были в adsmanager???? интересует что куда вставить. Помогите ооочень надо
  • Гость: Можно ли сделать не стандартную, а народную карту?
  • Гость: Нужно сделать два действия: 1. Добавить подключение модуля Народной карты к ключу API. 2. Добавить необходимый тип для Народной карты (Схема или Гибрид). Если необходимо напишу заметку по этому вопросу.
  • Гость: Можно сделать карту или добавление координат (с добавлением ссылки на карту) в виртумарте? Думаю это многих заинтересует..
  • Гость: Спасибо за инструкцию - очень полезная штука, но у меня почему-то не получилось. сделал все как описано выше, после замены разделы соби на жумле вообще не загружаются, в исходном коде страницы только это "<!-- Start of Sigsiu Online Business Index 2 component --> аЅаАб�б�аКаОаВ " и все, т.е. белый экран и надпись в непонятной кодировке. Соби - 2.9.3.2 , жумла - 1.5.22, установлен модуль SOBI2 Geo Category Overview. все делал по инструкции, потом скачал ваш исправленный файл entry.functions.php, и перезалил - заработало. может версии соби разные и поэтому не работало?
  • Гость: Пытался показывать карту через модальное окно Mootools.. Показывается рамка, элементы, но непосредственно карты (топографии) не видно. Только серый фон.. ( Кто сталкивался ?
  • Гость: Скажите пожалуйста, не могли бы Вы заменить гугл карту на яндекс карту в компоненте Improve My City . Можно за денежку, можно за ссылки и слова благодарности на сайтах. Спасибо. С уважением, Михаил
  • Allen James: ПРИВЕТ...... От whitelabellending. На whitelabellending мы предлагаем все виды кредитов (Безопасный и небезопасный кредиты), мы предлагаем все виды кредиты для всех целей, дома, автомобилей и бизнес-кредитов и все это происходит на 3% в Anun, мы в whitelabellending мы предлагаем лучшее, что вы можете найти, для получения дополнительной информации свяжитесь с нами VIA: whitelabellending@outlook.com