БД стран, регионов, городов + марки и модели авто

Аватар пользователя penexe penexe 4 января 2009 в 1:08

База стран, регионов и городов
она неполная но вроде самое главное есть, взята отсюда

0) сделайте дамп вашей БД
1) импортируйте в БД дамп из dump.sql, там содержатся таблицы country, region и city
2) залейте в корень друпала файл import.php
3) создайте новый словарь таксономии, и пропишите его id в import.php
4) запустите import.php
5) удалите таблицы country, region и city

на выходе у вас получится 3х уровневый словарь таксономии, к которому можно подключить hierarchical select и использовать в своих целях
будет что-то вроде этого

UPD1
добавил базу марок и моделей авто, взято с яндекса
проделывать с ней тоже самое
UPD2
добавил скрипт импорта для д5

ВложениеРазмер
Иконка пакета base.zip144.41 КБ

Комментарии

Аватар пользователя penexe penexe 5 января 2009 в 2:19

kyky wrote:
вот спасибо! еще бы дал кто базу по автомобилям: марка-->модель

добавил

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 4 января 2009 в 19:50

Ого-го! Большое спасибо!

UPD Вы используете hierarchical_select c шестым Друпалом? Возможно я чего-то не понимаю, но мне казалось, что для шестёрки его нет...

Аватар пользователя penexe penexe 4 января 2009 в 20:15

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
UPD Вы используете hierarchical_select c шестым Друпалом? Возможно я чего-то не понимаю, но мне казалось, что для шестёрки его нет...

dev версия меня вполне устраивает

Аватар пользователя News News 7 января 2009 в 12:27

камент читали?
написано ВСЕМ, кому могут пригодится подобные классификаторы, а не только хамящим индивидуумам.

Аватар пользователя Nodachi Nodachi 14 января 2009 в 18:37

Запускаю import_avto.php - выдает ошибку:

Fatal error: Call to undefined function db_last_insert_id() in ..\..\import_avto.php on line 12

Аватар пользователя Nodachi Nodachi 15 января 2009 в 9:02

О, сори - не заметил. Страницу эту в гугле нашел ))

PS
А для пятерки не посоветуете решение?

Аватар пользователя Товарищ 620 Товарищ 620 18 января 2009 в 9:16

Не сразу у меня "заработало", сначала заимпортировалось в кривой кодировке. В начало скрипта dump.sql надо бы прописать «set names utf8», чтобы у mysql не возникало разночтений.

А вообще — спасибо!

Аватар пользователя rainbox rainbox 3 июня 2009 в 11:00

Товарищ 620 wrote:
Не сразу у меня "заработало", сначала заимпортировалось в кривой кодировке. В начало скрипта dump.sql надо бы прописать «set names utf8», чтобы у mysql не возникало разночтений.

Про этот совет на забываем. Спасибо тов.620.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 4 февраля 2009 в 13:50

Дошли сегодня руки до базы географических названий. Проблема там с переводами — многие не соответствуют правилам и справочникам, а кое-где переводы вообще отсутствуют, как класс (

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 4 февраля 2009 в 13:53

penexe
А второй jQuery Update для шестёрки Вы где достали, если не секрет? А то он требуется дл hierarchical_select, как я погляжу.

Аватар пользователя penexe penexe 4 февраля 2009 в 14:11

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
penexe
А второй jQuery Update для шестёрки Вы где достали, если не секрет? А то он требуется дл hierarchical_select, как я погляжу.

он нетребуется

Аватар пользователя Integral Integral 26 февраля 2009 в 13:54

А как Вы сделали этот скрипт?
Хотелось бы попробовать импортировать базу geonames или кладр.
P.S. А как можно сделать вышеперечисленные операции не используя пхпма или не обращаясь напрямую к базе, как-нибудь через друпал?

Аватар пользователя penexe penexe 28 февраля 2009 в 0:09

"Integral" wrote:
А как Вы сделали этот скрипт?

руками как ни странно =), скачал базу > перегнал в нужный формат > залил > написал > запустил
"Onza" wrote:
Хотелось бы попробовать импортировать базу geonames или кладр.

пробуйте
"Integral" wrote:
P.S. А как можно сделать вышеперечисленные операции не используя пхпма или не обращаясь напрямую к базе, как-нибудь через друпал?

никак

Аватар пользователя Integral Integral 28 февраля 2009 в 9:20

Это Вы каждую строку руками переписывали? Не верю. У Вас шаблона не осталось какого-нибудь?

Аватар пользователя penexe penexe 28 февраля 2009 в 11:12

Integral wrote:
Это Вы каждую строку руками переписывали? Не верю. У Вас шаблона не осталось какого-нибудь?

по ссылке в топике написано как структура выглядит изначально, я только перегнал её в таксономию

Аватар пользователя Integral Integral 28 февраля 2009 в 12:41

Ага. Это самое важное. Geonames тоже готовые базы - только б в таксономию многоуровневую перегнать. А как Вы это сделали?

Аватар пользователя Dr_Kertis Dr_Kertis 28 февраля 2009 в 22:43

Ничего не понимаю Sad
Пытался ставить на пятерку, все проделано как сказано, использовал import_5x.php. Вроде экспортируется, города в словаре появляются. Но при попытке редактировать словарь - вылетает масса ошибок:
Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', 'MySQL server has gone away\nquery: UPDATE cache_views SET data = &#039;a:4:{s:6:\\&quot;tables\\&quot;;a:41:{s:4:\\&quot;book\\&quot;;a:5:{s:4:\\&quot;name\\&quot;;s:4:\\&quot;book\\&quot;;s:8:\\&quot;provider\\&quot;;s:8:\\&quot;internal\\&quot;;s:4:\\&quot;join\\&quot;;a:2:{s:4:\\&quot;left\\&quot;;a:2:{s:5:\\&quot;table\\&quot;;s:4:\\&quot;node\\&quot;;s:5:\\&quot;field\\&quot;;s:3:\\&quot;vid\\&quot;;}s:5:\\&quot;right\\&quot;;a:1:{s:5:\\&quot;field\\&quot;;s:3:\\&quot;vid\\&quot;;}}s:7:\\&quot;filters\\&quot;;a:1:{s:6:\\&quot;parent\\&quot;;a:4:{s:4:\\& in Z:\home\localhost\www\reklamir5.9\includes\database.mysql.inc on line 174

Warning: MySQL server has gone away query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (1, 'php', 'MySQL server has gone away\nquery: UNLOCK TABLES в файле Z:\\home\\localhost\\www\\reklamir5.9\\includes\\database.mysql.inc в строке 174.', 2, '', 'http://localhost/reklamir5.9/?q=admin/content/taxonomy', 'http://localhost/reklamir5.9/?q=admin/content/taxonomy/edit/vocabulary/1', '127.0.0.1', 1235848019) in Z:\home\localhost\www\reklamir5.9\includes\database.mysql.inc on line 174

Ну и дальше в том-же духе. Поставил на шестерку. Встало без вопросов. Правда не понял одного - выбрал я в словаре категорию Блоги.
Но там появляется всего одно поле, в котором я могу выбрать хоть страну, хоть регион, хоть город...
А в самих натройках словаря (при включенном hierarchical_select) все выбирается нормально... Что не так?

И, главное, что не так с установкой на пятерку? Я на ней работаю Sad

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 28 февраля 2009 в 22:48

>> А в самих натройках словаря (при включенном hierarchical_select) все выбирается нормально... Что не так?
У вас и для словаря включён hierarchical_select?

Аватар пользователя Dr_Kertis Dr_Kertis 28 февраля 2009 в 23:24

Когда включается этот модуль в таксономию он сам встраивается. Его можно активировать, можно не активировать, пробовал и так и эдак, даже отключал.
В пятерке результат один - масса ошибок и дамп бызы данных Smile

В шестерке, ошибок нет, но вот множественный выбор не выходит. В смысле получается один уровень для всех слов словаря, выбирай хоть страну, хоть город...
Ну тут я, вероятно, что-то не доделал, особо разобраться не пробовал, поскольку на шестерке запустил только чтобы посмотреть будут ли там косяки. Нет, все нормально Sad

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 5 апреля 2009 в 2:07

Я в итоге вручную составляю трёхуровневый словарь таксономии для городов Великобритании с графствами/землями в качестве промежуточного уровня.

Аватар пользователя winniepoo winniepoo 14 апреля 2009 в 0:08

Без директивы
set names utf8
добавляет белиберду.

С добавлением этой директивы в dump.sql выводит ошибку

ERROR 1064 (42000) at line 15: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `city` (
`city_id` int(11) unsigned NOT NULL auto_increme' at line 2

Аватар пользователя kiev1 kiev1 22 апреля 2009 в 15:18

а в hierarchical select есть так что бы вывести поле что бы на ходу досоздавать те разделы которых нет?

Аватар пользователя penexe penexe 22 апреля 2009 в 15:29

"kiev1" wrote:
а в hierarchical select есть так что бы вывести поле что бы на ходу досоздавать те разделы которых нет?

есть

Аватар пользователя symsym symsym 12 мая 2009 в 13:15

А что значит запустить import.php? и что должно появится после этого?

Я пробывал
php -f import.php
и открывать через url этот файл. Видно что что-то происходит, но результата не вижу :(.

Аватар пользователя penexe penexe 12 мая 2009 в 13:19

symsym, в соответствующих папках есть по 2 скрипта импорта, под 5х и 6х
нужный надо запустить, через url

Аватар пользователя symsym symsym 12 мая 2009 в 13:56

запустил, а где потом смотреть что данные импортировались и как их использовать? Никак не пойму как эти города прикрутить к Hierarhical menu. Мне нужно сделать выбор города в профиле пользователя при регистрации.

Аватар пользователя penexe penexe 12 мая 2009 в 14:49

symsym wrote:
запустил, а где потом смотреть что данные импортировались и как их использовать? Никак не пойму как эти города прикрутить к Hierarhical menu. Мне нужно сделать выбор города в профиле пользователя при регистрации.

создайте словарь таксономии для начала, а потом еще раз внимательно прочтите топик, все написано

Аватар пользователя symsym symsym 15 мая 2009 в 19:58

Ох намучился я. Заработало только после того как я сначала добавил вручную в словарь несколько значений, а только потом запустил import.php.

Аватар пользователя Glavshpan Glavshpan 29 марта 2011 в 10:47

Ох намучился я. Заработало только после того как я сначала добавил вручную в словарь несколько значений, а только потом запустил import.php.

Symsym, Расскажи об этом как ты это сделал?

Аватар пользователя ShadOR ShadOR 22 мая 2009 в 12:08

При попытке все выполнить, оно вроде работает, но таксономию при этом заполняет только до букв Р/С. То есть в раене "России" - "США" это все останавливается.

Аватар пользователя volocuga volocuga 23 мая 2009 в 1:10

"Integral" wrote:
Хотелось бы попробовать импортировать базу geonames

А если импортировать ВСЮ базу geonames,не треснет ли дру?

Аватар пользователя overall@drupal.org overall@drupal.org 23 мая 2009 в 13:12

volocuga wrote:
"Integral" wrote:
Хотелось бы попробовать импортировать базу geonames

А если импортировать ВСЮ базу geonames,не треснет ли дру?


Не думаю, что треснет.
Но если есть предубеждение, то можно не импортировать в термы, а использовать как отдельные таблицы, только надо заиметь виджеты, которые бы с ними могли работать.
Но вот имеет ли смысл использовать geonames?
Я смотрел их базу, там всё через одно место, иерархия для большинства стран (смотрел Россия, Великобритания) не правильная, перепутаны районы городов и области (для России). Вообщем не советую эту базу...

Аватар пользователя volocuga volocuga 24 мая 2009 в 12:54

"<a href="mailto:overall@drupal.org">overall@drupal.org</a>" wrote:
Вообщем не советую эту базу...

Имеется ли альтернатива?

Аватар пользователя overall@drupal.org overall@drupal.org 25 мая 2009 в 1:13

volocuga wrote:
"<a href="mailto:overall@drupal.org">overall@drupal.org</a>" wrote:
Вообщем не советую эту базу...

Имеется ли альтернатива?


Я использую эту. Из первого поста.

Аватар пользователя stenli21 stenli21 10 ноября 2015 в 11:46

При запуске import_6x.php на локальном компе (денвер 3, Друпал 6.11) выдавало постоянно ошибку о дублировании поля tid в таблице term_data.

Когда начал разбираться, то увидел одну небольшую ошибку в скрипте - в поле tid таблицы term_data он пытается записать значение 'null', хотя это поле является автоинкрементным, т.е. заполняется само при добавлении записей.

Подправил скрипт и все прошло удачно.

Исправленный скрипт в прикреплении.

Аватар пользователя ShadOR ShadOR 23 июня 2009 в 12:27

Все просто шикарно, огромное спасибо!

Остается такой вопросик.
Как задать страну по-умолчанию? Можно ли это?
И выборка выводится в поле под названием "Словари", как поменять это название?

Аватар пользователя ik3 ik3 13 августа 2009 в 14:30

НО, справочник вроде загрузился, а потом на 35 стр выдал ошибку: Fatal error: Allowed memory size of 134217728 bytes exhausted at /usr/ports/lang/php5/work/php-5.2.10/Zend/zend_hash.c:499 (tried to allocate 43 bytes).
Решили пришить только Россию. Если нажать на список терминов выходит все та же ошибка. Понимаю что не хватает памяти но мой сисадмин говорит что это уж слишком и больше не даст, и что здесь что то не правильно, что не может так много памяти потреблять, Кто-нибудь помогите!!!!!!!!! СРОЧНО!!!! Что еще может быть? Как исправить?

Аватар пользователя Strycker Strycker 10 ноября 2009 в 16:03

Справочники классные, но для меня многовато. Я для себя сделал сам по странам СНГ, кроме Грузии. Забивал данные из википедии, города с населением не меньше 10 тысяч жителей. Если кому интересно, могу выложить.

Аватар пользователя Arturus Arturus 30 ноября 2009 в 5:30

А как вывести в профиль пользователя выбор страны и города из списка с использованием этой базы (таксономии) ?

Аватар пользователя penexe penexe 30 ноября 2009 в 16:10

Arturus wrote:
А как вывести в профиль пользователя выбор страны и города из списка с использованием этой базы (таксономии) ?

обычно используют для профиля content_profile (nodeprofile для 5.x) а там уже проще простого

Аватар пользователя Clarion Clarion 6 марта 2010 в 18:46

я оставил в дампе только Россию, все сделал как написано, словарь создался и вроде нормально работает, но возникла такая проблема - на странице "список терминов" выпадают все термины и пустой пэйджер, по переходу на вторую страницу пэйджер пропадает.
В чем может быть проблема ?

UPD:
Проблема была в том, что был 1 корневой термин

Аватар пользователя agent0785 agent0785 15 марта 2010 в 16:34

При импортировании вылазиет ошибка:
Ответ MySQL:
#1146 - Table 'phpmyadmin.pma_bookmark' doesn't exist

Мне то понятно что по английски написано что эта таблица не используется, но непонятно что делать:))

Ещё извеняюсь за глупые вопросы, но где этот ID словаря посмотреть и как собственно вызывается этот import.php?

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 15 марта 2010 в 18:28

"agent0785" wrote:
Мне то понятно что по английски написано что эта таблица не используется, но непонятно что делать:))

По-английски написано, что эта таблица не существует.

Аватар пользователя agent0785 agent0785 17 марта 2010 в 19:49

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:

Хорошо а подошёл бы этот модуль, для того чтобы в location добавить регионы россии?

Аватар пользователя misterpronin misterpronin 28 января 2011 в 13:33

<a href="mailto:mail_ru@drupal.org">mail_ru@drupal.org</a> wrote:
Более точная и полная база городов\населенных пунктов для России есть на http://gis-lab.info/qa/vmap0-settl-rus.html[/quote]

Что-то я никак не разберу сейчас что за формат у этой базы... и туда ли я вообще смотрю... Формат - .osm - как им пользоваться то?

Аватар пользователя Softovick Softovick 28 января 2011 в 13:38

misterpronin wrote:
<a href="mailto:mail_ru@drupal.org">mail_ru@drupal.org</a> wrote:
Более точная и полная база городов\населенных пунктов для России есть на http://gis-lab.info/qa/vmap0-settl-rus.html

Что-то я никак не разберу сейчас что за формат у этой базы... и туда ли я вообще смотрю... Формат - .osm - как им пользоваться то?[/quote]
XML же

Аватар пользователя chel chel 30 августа 2010 в 14:25

вопрос филосовского характера:
применил я словарь человека к полю - местонахождение сотрудника - все клево, теперь думаю как быть чтобы у человека также выбриралось место рождения....итого получается
место нахождения - словарь таксономии
место рождения - .... ваши предложения

Аватар пользователя zaharovrd zaharovrd 2 сентября 2010 в 9:02

Возник вопрос.
А почему не сделать самозаполняемый список терминов таксокомии?
Например, пользователь в процессе регистрации вводит свой город. Если кто-то уже есть и регистрировался из того же города - он ему выскочет и он выберет из списка, а если он первый кто регистрируется, то город удет добавлен в словарь таксокомии.

Просто возникла такая мысль.

Давайте подумаем над плюсами и минусами такой схемы...

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 2 сентября 2010 в 22:36

"Zevs" wrote:
А почему не сделать самозаполняемый список терминов таксокомии?

Автозаполнение только на бумаге выглядит так хорошо. В реальности пользователи, во-первых, иногда вводят теги с ошибками, иногда просто «прикалываются» и вводят всякую чушь или там ещё чего.

У меня, например, есть сайт liverbird.ru, на котором пользователям дана возможность самим вводить город и страну, откуда они. Причём в комментарии к полям высказана убедительная просьба не указывать всякую фигню, потому что благодаря нормальным ответам в этом поле пользователи смогут находить других болельщиков, которые живут в том же городе (это сайт болельщиков «Ливерпуля»). Там же сказано, чтобы писали по-русски. И что же? Чего там только нет. Ладно ещё РФ и Россия, но есть и Russia, и Rossia, и просто всякий бред, начиная от реально существующих государств, которые пользователям захотелось указать (Барбадос) до всякой хрени вроде «Хохляндия», «не скажу» и проч. и проч. С городами то же самое на сайте. В общем, эта идея не работает, как можете видеть.

Я даже больше скажу. У меня возникают проблемы с тегами, введёнными авторами новостей на том же сайте, потому что они не всегда проверяют, есть ли уже тег для этого термина, но несколько в другом написании (Рафаэль Бенитес, а не предложенный ими Рафа Бенитес), а потому постоянно приходится отслеживать, не появились ли снова неправильные теги. А ведь это делают люди, которые искренне хотят, чтобы всё было сделано лучшим образом. И их не тысяча, как зарегистрированных пользователей, а всего десять-пятнадцать человек.

Аватар пользователя mak-vardugin mak-vardugin 10 ноября 2015 в 11:46

Перевел всю базу в доступный для импорта словарь терминов с иерархией. Импорт можно сделать с помощью модуля[module=taxonomy_xml], но тот кто эту базу видимо застрелился ближе к концу. Дальше первых нескольких штатов США все похерено...

Аватар пользователя chel chel 7 сентября 2010 в 0:24

как сделать, чтобы вбил "город" в материала, и у в после таксономии авто-добавились бы Область, страна.
Например чтобы не идти путем Страна - область - город, а вбил город и остальные более верхнии цепочки добавились?

Аватар пользователя chel chel 7 сентября 2010 в 2:16

думаю да, если они внутри иерархии. Например внес "москва", а получилось "Россия, Москва"

Аватар пользователя vavilova vavilova 9 сентября 2010 в 7:10

"HIgor1968" wrote:
На английском языке база городов с привязкой к странам в CSV файле есть здесь
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/[/quote]

А как такая база в деле? Насколько я понимаю , это free, а free не всегда качественное в данном случае...

Аватар пользователя vgoodvin vgoodvin 9 сентября 2010 в 7:56

"vavilova" wrote:
А как такая база в деле? Насколько я понимаю , это free, а free не всегда качественное в данном случае...

Помню как-то IP из г. Кривой Рог не определился.

Аватар пользователя allexx allexx 10 ноября 2015 в 11:47

К вопросу о том, что база большая, есть левые страны, а многим нужно только СНГ. Немного подправил загрузку, чтобы загружались только страны СНГ.

Аватар пользователя chel chel 25 декабря 2010 в 3:25

вопрос: если я выбираю Страну - Область - Город - и потом хочу другое что-то выбрать, то у меня не обнулятеся HS

Аватар пользователя chel chel 25 декабря 2010 в 20:06

К примеру выбираю: Россия, и следующим щагом случайно ошибаюсь и выбираю не тот регион, потом пытаюсь заного выбрать Россия - и бац - выборка не пашет, только если перегрузить/обновить(F5) страницу

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 25 декабря 2010 в 21:25

У HS есть серьёзная проблема с кэшированием, которую пока не могут решить. Может быть, это имеет отношение и к вашему вопросу.

Аватар пользователя chel chel 25 декабря 2010 в 22:46

Допустим имеем Три дочерних пункта, если в HS вы выбрали все три, а потом передумали и заного начинаете выбирать, то у вас HS работает?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 25 декабря 2010 в 21:47

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
У HS есть серьёзная проблема с кэшированием, которую пока не могут решить. Может быть, это имеет отношение и к вашему вопросу.

Это из-за которой за сутки набегает по гигу кеша?

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 25 декабря 2010 в 22:08

"RxB" wrote:
Это из-за которой за сутки набегает по гигу кеша?

О таком не слышал. Там проблема с тем, что кеш сбрасывается в процессе работы с HS, из-за чего выборка не сохраняется. Это всегда происходит, например, при добавлении нового термина через HS — ужасно раздражает.
Вот соответствующий тред: http://drupal.org/node/697172

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 26 декабря 2010 в 2:56

"RxB" wrote:
Очень неприятная грабля, видел на трёх сайтах на хостинге, за сутки до гига набегает

Действительно неприятно. Но, видимо, пофиксена бага — Вим опубликовал патч ещё в ноябре (комментарий #19 в треде).
"chel" wrote:
Допустим имеем Три дочерних пункта, если в HS вы выбрали все три, а потом передумали и заного начинаете выбирать, то у вас HS работает?

Три дочерних на одном уровне или на разных?

Аватар пользователя chel chel 26 декабря 2010 в 18:32

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
Три дочерних на одном уровне или на разных?

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

Аватар пользователя Softovick Softovick 28 января 2011 в 14:29

misterpronin wrote:
то есть osm это и есть xml ? (извиняюсь за тупой вопрос...)

Ну ты смотришь на страницу там или нет? Написано же "OSM XML"

Аватар пользователя misterpronin misterpronin 28 января 2011 в 16:07

"Softovick" wrote:
Ну ты смотришь на страницу там или нет? Написано же "OSM XML"

Понял... только ожидал что расширение будет ".xml"...

Но т.к. модуля Taxonomy import/export via XML для Drupal 7 ещё нет... и альтернативы я не нашёл... Поэтому нашёл внятную базу данных (прикрепил её к посту выше...) и собираюсь делать всё вручную чуть позже...

Аватар пользователя misterpronin misterpronin 10 ноября 2015 в 11:47

Есть ли альтернатива модуля hierarchical select для Drupal 7 ? Или какой-нибудь альтернативный способ реализации его возможностей..?

Сейчас создаю 3 словаря - (страны, регионы, города)... и очень нужно реализовать такое... чтоб при выборе региона в одном списке, в соседнем списке находились бы города только этого выбранного региона, а не всех подряд...

Интересует пока только Россия... Поэтому нашёл отдельную базу городов России с 1250 городами (смотрите прикреплённый файл) и уже настроился на ручное добавление всех городов из этой базы в словари таксономии (страшно и подумать как это долго и муторно будет!..) Хотя... Может как-нибудь автоматом можно из этой базы термины создать? Подскажите пожалуйста! Заранее спасибо за ответы!

Аватар пользователя misterpronin misterpronin 30 января 2011 в 10:11

"mak-vardugin" wrote:
Сер, а чего вы в 7 уперлись? Не рановато ли.

Боюсь что переход готового D6-сайта на D7 в будущем будет невозможен... Мало ли... Вот и волнуюсь... Может зря? Подскажите пожалуйста! Просто я пока, как говориться, нуб в этом вопросе...
"RxB" wrote:
1250 городов, ниачом.
Выложу под 200 000 населённых пунктов

Жду с нетерпением!

Аватар пользователя mak-vardugin mak-vardugin 8 февраля 2011 в 3:48

"misterpronin" wrote:
D6-сайта на D7 в будущем будет невозможен...

Зря вы так думаете, учитывая количество сайтов на д6 уж импорт на 7 сделают минимум в 3-5 вариантах

Аватар пользователя misterpronin misterpronin 1 марта 2011 в 22:11

Раза 3-4 уже встречал на разных сайтах (на ucoz-е...) вот такой интересный способ выбора страны-региона-города moy.su , ruworms (при регистрации выберите "другой город", после чего должно появится то самое... окно...). Интересно узнать есть ли такой плагин под drupal... Может быть кто-то в курсе?

Аватар пользователя Yarri Yarri 12 марта 2011 в 0:21

А базу все страны с полным наименованием и их сокращенным названием в виде синонима можно сделать?

Я так понимаю, этот вариант может мне подойти. Мне надо при регистрации и потом в профиле (с учетом измененного модуля) у пользователя выбирать страну по полному наименованию, а в таблице юзверей выводить только короткое, типа RUS.

Аватар пользователя stepnoy stepnoy 28 марта 2011 в 12:47

не хочу создавать др топик

может кто то уже переделал таблицу городов,
нужно к городу например Краснодар дописать чтоб было так: Краснодар, Краснодарский край

Аватар пользователя DUM DUM 6 апреля 2011 в 11:01

Как подключить hierarchical select к уже созданному словарю таксономии?

Аватар пользователя vgoodvin vgoodvin 10 апреля 2011 в 17:27

"DUM" wrote:
А если серьёзно.

Модуль hierarchical select предназначен как раз для того, чтобы подключить hierarchical select к уже созданному словарю таксономии

Аватар пользователя DUM DUM 10 апреля 2011 в 19:48

Да это понятно, тольк после подключения в предпросмотре модуля всё есть, а на странице сайт ничего нет.

Аватар пользователя Nodachi Nodachi 13 мая 2011 в 14:00

Подправил в php-файле импорта в запросах MySql названия таблиц в надежде провернуть все это дело под семеркой. А запустить php-файл через браузер не получается... Пишет не найдена страница... Как быть?

Ребят, кто шарит получше - переделайте плиз под семерочку данный архивчик, очень надо. Там ведь две минутки работы, если я не ошибаюсь.

Аватар пользователя misterpronin misterpronin 30 мая 2011 в 13:27

Самостоятельно занёс в словарь все города и регионы России (страны - области - города/сёла, всего 4044 термина). Помог Taxonomy Manager. Пропатчил hierarchical select для drupal 7. В итоге наверное из за большого количества терминов при выборе родительского элемента "Россия" выскакивает ошибка - "с сервера получен неверный ответ", а список терминов этого словаря вообще невозможно открыть - около минуты что-то грузится... (для php выделил 1400 MB памяти) и в итоге - "Fatal error: Allowed memory size of 1468006400 bytes exhausted (tried to allocate 24 bytes) in C:\xampp\htdocs\site\includes\form.inc on line 3736". В Taxonomy manager все термины можно просматривать без проблем, а вот по стандартному адресу эта ошибка... Не может же быть чтоб 1400 MB не хватало...

Создал ещё один словарь всего с тремя терминами - "1", "2", "3", вложенными друг в друга - с ними всё работает отлично и быстро... А вот словарь с областями и городами/сёлами отказывается работать (а я на его создание потратил часов 12 в общей сложности (два дня сидел!))...

Позже начала выскакивать ошибка - "Fatal error: Call to undefined function db_rewrite_sql() in C:\xampp\htdocs\site\sites\all\modules\hierarchical_select\modules\hs_taxonomy.module on line 730", тоже только когда тот словарь включаю...

В чём может быть проблема? Заранее огромное спасибо!

Аватар пользователя leramulina leramulina 19 октября 2011 в 15:23

<a href="mailto:rbogdan@drupal.org">rbogdan@drupal.org</a> wrote:
Вот php скрипт для импорта данных для Drupal 7. Кому нужно пользуйтесь.

Попробовала. Скрип сообщил что все импортировалось. Но словарь остался пустым.

Аватар пользователя dgastudio dgastudio 9 июля 2011 в 9:46

полная и обновленная по настоящий момент база авто:

<?php
$file 
file_get_contents('http://scripts.kbb.com/kbb/ymmData.axd?VehicleClass=UsedCar');
$file explode("\n",$file);

$patternMake '/ymUsed_\[\d{4}\]\s*=\s*\'([^\']+)\'/';
$patternModel '/ymmUsed_\["(\d+)~(\d+)"\]\s*=\s*"([^"]+)"/';

foreach(

$file as $row) {
if(
preg_match($patternMake,$row,$matched)){
$tmpMakes explode(',',$matched[1]);
foreach(
$tmpMakes as $str) {
list(
$id,$name) = explode("|",$str);
$arrMakes[$id] = $name;
}
}
unset(
$str);

if(

preg_match($patternModel,$row,$matched)){
$year $matched[1];
$make_id $matched[2];
$models $matched[3];
$tmpModels explode(',',$models);
foreach(
$tmpModels as $str) {
list(
$id,$model_name) = explode("|",$str);
$make_name $arrMakes[$make_id];
$arrModels[$make_name][$model_name][$year] = $year;
}
}
}

ksort($arrModels);

function 

listArrayRecursive($array_name$ident 0){
    if (
is_array($array_name)){
        foreach (
$array_name as $k => $v){
            if (
is_array($v)){
                for (
$i=0$i $ident $i++){ echo "-"; }
                echo 
$k "<br>";
                
listArrayRecursive($v$ident 1);
            }else{
                for (
$i=0$i $ident $i++){ echo "-"; }
                echo  
$v "<br>";
            }
        }
    }else{
        echo 
"Variable = " $array_name;
    }
}

listArrayRecursive($arrModels);

?>

единственное но, это то что марки модели идут по алфавиту, но годы выпуска в разнобой

Аватар пользователя pws pws 27 сентября 2011 в 22:30

ОГРОМНОЕ СПАСИБО ВСЕ РАБОТАЕТ для 6-ки. Но к выше перечисленному списку я бы еще добавил следующие указания !

0) сделайте дамп вашей БД
0.1) Сразу сохраните BACKUP вашей базы, чтобы потом не ругаться, нехорошими словами..))
1) импортируйте в БД дамп из dump.sql, там содержатся таблицы country, region и city
2) залейте в корень друпала файл import.php
3) создайте новый словарь таксономии, и пропишите его id в import.php
3.1) В настройках словаря - выберите Множественный выбор у меня иначе не сработало
3.2) Включите hierarchical select словаря
3.3) Создайте предварительные ТЕСТОВЫЕ термины в указанием родителей
111
-222
--333
4) запустите import.php и все без проблем, с мультисайтингом тоже отлично работает..
5) удалите таблицы country, region и city

Аватар пользователя Yuzver Yuzver 16 декабря 2011 в 15:53

Есть альтернатива. Проще и удобнее. Кому-то пригодится.

База городов с регионами: _ttp://autotravel.ru/towns.php?l=5
Модули, которые помогут импортировать массово в словарь: Quick Terms (6.х), Taxonomy CSV import/export (7.x).

Если нужны только города, то через регулярное выражение, в notepad++, возможно убрать лишнее: (.*.) - http://screencast.com/t/wCpVKt4VhWgp

Аватар пользователя Frantsuzzz Frantsuzzz 9 февраля 2012 в 13:45

Я решил задачу с географией след. образом:
1.Скачал базу городов, регионов и стран от GeoLite (на англ.)
2.Удалил всякий бред оттуда. Получилось около 250 000 городов (возможно бред остался)
3.Данные хранятся в трех таблицах.
4.Создал словарь таксономии
5.Создал поле location1 в профиле пользователя, привязал к словарю таксономии.
6. Теперь начались танцы с бубном:
- Полез разбираться с HS Api
-Сделал модуль, который создает поле при помощи HS. Привязал поле к моим таблицам (страна,регион,город).
-Создал модуль, который на форме редактирования профиля пользователя заменяет поле location1 на location2
-Во время сохранения формы делаю проверку: если выбранный город есть в терминах, просто присваиваю полю location1 индекс термина, если нет такого города, то сначала добавляю в таблицу терминов страну, регион и город, а уже потом сохраняю в location1 значение индекса термина.

Какие плюсы:
В словаре терминов содержится информация о тех городах, которые конкретно выбрали пользователи. Ведь нет никакого смысла хранить в терминах все 250 000 городов (сайт просто ложится)Подумайте, сколько городов из большой таблицы на самом деле будет задействовано на сайте: 10,20,100, 1000. Ну никак не 250000)))) Да я и не думаю, что изначально таксономию придумавали для хранения такого объема ненужных данных.

Когда использую views с фильтрами по городам, шанс нарваться на вариант с пустым результатом минимален.
Результат можно увидеть на сайте novvice.com в профиле пользователя.

Спасибо автору топика за скрипт импорта терминов в словарь. Очень помогло.
На весь этот геморой ушло 5 дней и ночей)))
Это описание моего подхода. Могу выложить свои разработки, но они немного кривенькие. (так сказать, под себя)

Делал на drupal6. Сейчас наверно буду также крутить и на 7.

Аватар пользователя Frantsuzzz Frantsuzzz 10 ноября 2015 в 11:48

Вот модуль и таблицы
В каждой таблице еще есть поле tid. Для норм.работы еще нужно все значения проставить в -1. В это поле потом будет записываться индекс термина после добавления его в словарь.
ВНИМАНИЕ! Не спешите устанавливать на сайт. Выкладываю просто для ознакомления с кодом. Лучше где-то на локальном сервере... у друга... лучше у врага...мало-ли что
Проверяйте имена полей на форме и в модуле.

Аватар пользователя afishi afishi 14 февраля 2012 в 1:42

Frantsuzzz wrote:
Вот модуль и таблицы

Реально еще добавить столбик в БД?
чтобы при выборе городов, народ же выбирать будет, у тебя собиралась в базу IP того народа кто какие города выбирает.
В результате, Параллельно вы соберете IP по города и странам, и уже из этого можно будет поставить определение и выдачу следующим клиентам или этим же, сразу их регион!

Аватар пользователя Frantsuzzz Frantsuzzz 14 февраля 2012 в 9:52

"afishi" wrote:
Реально еще добавить столбик в БД?

Реально добавлять столько столбиков, сколько позволяет воображение. В обработчике формы добавить что и куда сохранить. При генерации формы указать что и откуда брать в качестве значения по умолчанию для селекта.
Не вижу особого смысла в этих IP. На практике, выбрать город не выглядит пугающим и трудоемким процессом. Для удобства в таблице Страны есть поле вес. Можно задать порядок вывода стран.

Кстати, кому интересно, прикрутил такую же шляпу и к Друпал7.

Аватар пользователя petrovnn petrovnn 18 июля 2012 в 3:10

Кстати кому интересна тема Базы городов с координатами, вот моя подборочка:

http://www.drupal.ru/node/5146

http://www.drupal.ru/node/7588 - в самом низу база от xandeadx с mamba.ru (без координатов, но с разбивкой по регионам)

http://habrahabr.ru/post/19955/
http://habrahabr.ru/post/108541/
http://habrahabr.ru/post/110385/
http://www.razgonka.ru/info/143 - фарш
http://gis-lab.info/qa/vmap0-settl-rus.html

(достал из закладок, когда-то давно гуглил)
Может с тех пор появилось что-то более новое и более актуальное.

Кстати, меня не интересует интеграция с друпалом - первостепенная важность для меня это полнота данных, точность названий и координатов. Короче актуальность данных ну и кол-во городов. Запихать в друпал в том виде в каком мне надо (как сейчас кажется) - не проблема

Аватар пользователя petrovnn petrovnn 20 августа 2012 в 0:31

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

Аватар пользователя Друб Друб 29 января 2013 в 15:55

Здравствуйте! можете подробней и простыми словами расписать процесс, ато мне как начинающему понятно только вобщем, зарание спасибо!

Аватар пользователя buddy90210 buddy90210 3 февраля 2013 в 20:17

Друб wrote:
Здравствуйте! можете подробней и простыми словами расписать процесс, ато мне как начинающему понятно только вобщем, зарание спасибо!

+1 было бы полезно знать, хоть направьте на путь верный:)

Аватар пользователя buddy90210 buddy90210 4 февраля 2013 в 21:18

buddy90210 wrote:
Друб wrote:
Здравствуйте! можете подробней и простыми словами расписать процесс, ато мне как начинающему понятно только вобщем, зарание спасибо!

+1 было бы полезно знать, хоть направьте на путь верный:)

Может кому нибудь будет полезно, я импортировал базу городов с помощью модуля taxonomy_xml причем для 7 он в статусе dev, но тем не менее получилось, разве что пришлось увеличить максимальное время выполнения скрипта до 180 сек.

Аватар пользователя stilerv stilerv 4 апреля 2013 в 12:50

"leramulina" wrote:
Попробовала. Скрип сообщил что все импортировалось. Но словарь остался пустым.

закоментировать проверку

<?php
//if (in_array($country->country_id, $countries_sng)) {
....
//}
?>

для добавления всех стран в словарь, или же раскоментировать масив стран снг (посмотреть по коментах в коде)

Аватар пользователя RedDemon RedDemon 10 августа 2014 в 17:05

С 6 версией все предельно ясно на 7 не работает, а как использовать прочие доработки для drupal 7 не совсем понятно