Всем привет,
была нужда сделать в таксономии базу всех регионов и городов.
Взял Классификатор адресов России (КЛАДР) здесь и сделал.
Выглядит примерно так - [img]
Использование:
- Устанавливаем
- Выбираем куда заливать /admin/settings/kladr
- Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Если решили заливать в другой vocablary:
- Создаем или Выбираем куда заливать /admin/settings/kladr
- Нажимаем кнопку "Начать загрузку сначала"
- Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Теперь подробнее:
- Требуется "extension=dbase.so"
- Вставляет два уровня терминов, первый - level1 из KLADR.DBF, второй населенные пункты от туда же.
- Использует Batch API (Загрузку базы можно прерывать)
Версия 0.1
Возможны планы развития: интеграция с http://drupal.org/project/location , http://drupal.org/project/addresses и т.п.
Ну, и как обычно, disclaimer, используйте только на Ваш страх и риск.
Вложение | Размер |
---|---|
drupal-kladr.png | 543.36 КБ |
Комментарии
Сильно. И оно там до какого уровня, улица-дом?
имел неоднократный секс с кладром, хорошо если требовалось только регион и город, в своё время я просто задолбался с изменением статусов городов когда они по уровням прыгают и не увязанными нас. пунктами.
В кладре все до домов.
>> первый - level1 из KLADR.DBF, второй населенные пункты
Два уровня: регионы и областные/районные центры.
Как таковой задачи сделать вплоть до домов не было, но в какой-нибудь из следующих версии можно будет реализовать все 6 уровней.
Если честно, на разбор с КЛАДР у меня ушла половина времени. Но сейчас понимаю, что вполне нормальная классификация, и навряд ли можно придумать другую, что бы учесть всю специфику территориального деления такой большой страны как у нас.
Здорово. ПРигодится.
Отличное дело, Nikit вроде над подобным работает
Я своё отменяю, раз уже начали, пусть здесь разовьют до поддержки известных контр.модулей.
Нужно еще добавить какой именно регион (город, и т.д.) импортит, не всегда вся россия нужна.
Спасибо! Жду «с нетерпением» следующих версии -> все 6 уровней.
Спасибо за модуль! Тоже интересует: все уровни для импорта с возможностью выбора + возможность выбора региона/города для импорта.
Знакомая задача...
В свое время тоже пытался использовать различные базы и экспортировать их в таксономию Drupal'а. Проблема в том, что в словаре таксономии получается несколько тысяч терминов, и друпал начинает безбожно тупить - особенно есть использовать какой-нибудь модуль вроде Hierarchical Select.
В итоге в одном из проектов сделали просто автодополняемый пользователями словарь, в другом - "ручками" сдернули с Википедии базу основных городов РФ по федеральным округам, и залили в таксономию.
А вообще задача встречается достаточно часто, поэтому уже возникают мысли, не написать ли отдельный модуль под это дело
И еще нужно чтобы обновления кладра также импортировались правильно, чтобы держать целостность бд кладра, да и импортить не нужно будет целиком.
бедный хостер который будет держать такой сайт. Это же сколько памяти будет отъедать такой словарь да еще и не забывайте о двойной развертке таксономии при построении. В общем помещение подобных данных в таксономию - это самый плохой путь.
По идеи его уже написали и довольно не плохо. Возможно удастся уговорить выложить его в паблик а пока его работу можете наблюдать на сайте www.relevantmedia.ru, в разделе редактирования платежной информации.
Я писал модуль на заказ для 6-ки решил подобную задачу по-другому.
Пихать всё в таксономию смысла не имеет - это, во-первых, лишний груз, особо не нужный и не несущий никакой информации для сайта в целом, во-вторых огромное количество терминов заметно тормозит таксономию - не рассчитано оно на сотни тысяч терминов, в-третьих, это не очень хорошо с точки юзабилити - человек заходит в фильтр материалов (например объявлений) и видит возможность выбрать географию по всей России, начинает выбирать и оказывается, что всё пусто - 95% - это Москва и МО, остальные 4% - россия, 1% - украина.
Сделал следующим образом: весь КЛАДР находится в отдельной БД (можно и в БД друпала, не принципиально, главное - отдельные таблицы). При добавлении материала, у которого должны быть указаны нас.пункты, я альтерил форму, подставляя туда hierarchical select с выборкой из кастомной таблицы (данный модуль позволяет такое делать, есть АПИ), при сохранении ноды, выбранные области-города-улицы добавлялись в таксономию друпала. Таким образом в друпале были только реально используемые термины.
Мне нравится это решение. А можно как-то получить ваш модуль? Особо клево будет, если кладр урезать до населенных пунктов, улицы не нужны.
Спасибо за модуль.
А можно попросить тебя cделать версию для drupal 7?
Странно, по завершении процесса сообщается:
DB opened, 199927 records
DB last inserted record 199928
KLADR taxonomy vocabulary updated.
При этом в словаре таксономии 1878 терминов.
И сколько ни нажимай кнопку Load ничего больше не меняется.
Это так и должно быть или я что-то не так делаю?
У меня этого модуля нет - я его делал при условии нераспространения. Может быть будет проект для 7-ки, где напишу его с нуля.
Ну это зависит от сайта, большинству нужны только города. С точки зрения нагрузки выборка из таблиц КЛАДР происходит только при добавлении/редактировании материалов.
спасибо
Может кому пригодится - обновил модуль для себя.
Изменения:
- адаптировано под Drupal 7
- немного переделана структура импорта. Сейчас создаются регионы + под-регионы + населённые пункты. Проблема в оригинальном коде была, что некоторые города не импортировались.
- переделан код - разделено создание структуры и создание населённых пунктов, небольшие оптимизации.
Пример как это выглядит сейчас:
https://github.com/auk/drupal-kladr/blob/master/example.png
Создал branch здесь:
https://github.com/auk/drupal-kladr
Автору отправил pull request, надеюсь сольёт.
Что-то не пашет.
Возникла AJAX HTTP ошибка. Полученный код HTTP: 500 Следует отладочная информация. Путь: /batch?render=overlay&id=15&op=do Текст Состояния: Internal Server Error Текст Ответа:
«Возникла AJAX HTTP ошибка. Полученный код HTTP: 500 Следует отладочная информация. Путь: /batch?render=overlay&id=15&op=do Текст Состояния: Internal Server Error Текст Ответа:»
нужен php 5.2, тк требует php_dbase.dll , которого в php 5.3 нет
Сделал небольшой модуль для хранения адресов с виждетом от kladr-api.ru. Скачать можно здесь: https://drupal.org/sandbox/chi/2135033
Хм, сделал сегменты город, улица, здание
а автокомплит работает только для города :/
Хорошее начинание, вот только зависимость от jq update немного усложняет жизнь
Кладровский плагин требует новую jQuery. Зависимость от jQuery Update наверно можно убрать, так это сейчас не единственный способ обновить jQuery. Есть еще модуль jQuery Multi.
Мож кому-то будет полезным, вот тут можно подписаться на обновления КЛАДР
Ребята, исправьте модуль под Drupal 7