Учитывая перспективы развития сайта давно хочется заняться географией пользователей. Если попросту, то хочется по ip-адресу определять местоположение пользователя (а именно - страну и регион). И даже предлагаться зарегистрированным пользователям сохранять свое основное местоположение в своих профилях. Далее подробней.
1. Создать иерархический справочник "География" со странами и регионами.
2. При входе на сайт определять по IP местоположение пользователя.
Порядок следующий. На внешнем сервисе (на сколько я понял подходящих два: отечественный IpGeoBase и импортный MaxMind GeoIP® City Database. Для обоих есть соответствующие модули) определять страну и регион по IP-адресу. Проверять в словаре с географическими терминами наличие определенной страны и региона. В случае отсутствия добавлять их в справочник. Страну корневым термином, регион - дочерним.
2.1. Гостю (незарегистрированному пользователю - гостю) только отображать определенное местоположение с возможностью его коррекции. Местоположение хранить все время действия сессии.
2.2. При регистрации нового пользователя заполнять поле с местоположением на основе определенного по IP. Опять же, с возможностью коррекции.
2.3. Зарегистрированным пользователям отображать указанное в профиле местоположение и предлагать сохранить его в случае коррекции.
3. Зарегистрированным пользователям обеспечить возможность корректировать местоположение в профиле.
Теперь буду искать подходящие модули. О ходе буду писать в комментариях.
Назрел первый вопрос:
1. Большинство средств определяют страну и регион в формате ISO 3166. Через это вопрос, стоит ли париться с таксономией, или все-таки сделать таблицу в базе?
Созданный словарь подтащил к
Баллы: 36
Созданный словарь подтащил к профилю модулем User Terms.
Для словаря "География" сделал иерархический выбор при помощи модулей Hierarchical Select, Hierarchical Select Taxonomy.
Подружил иерархический выбор и пользовательской таксономией с помощью Hierarchical Select User Terms
Пока создал словарь. Привязал
Баллы: -14
Пока создал словарь. Привязал его к материалам.
Теперь хочу привязать к пользователям.
Боюсь, что тему с автоматическим определением местоположения придется отложить.
Тут же ставил Profile
Баллы: 13
Тут же ставил Profile Taxonomy. Частная реализация - мое почтение. Но в общую картину не складывается :/
Так и не уговорил я его. В
Баллы: 2
Так и не уговорил я его.
В итоге остановился на User Terms
Попробовал модуль Profile
Баллы: -2
Попробовал модуль Profile Location. Позволяет пользователю выбирать страну и регион своего местонахождения. Данные берет из собственных таблиц, а не из словаря таксономии. Не совсем подходит.
Посмотрел модуль GeoIP. Вроде
Баллы: 3
Посмотрел модуль GeoIP. Вроде бы (сам так и не проверил) местоположение определяет. Но и только. Полностью задачу не решает.
Еще одна тонкость - сведения хранятся в файле. Не в базе и не на внешнем сервисе. Вернее, на внешнем сервисе стоит денег. Файл периодически обновляется. Надо скачивать и обновлять у себя.
Сведения на английском языке.
Пробовал модуль Location.
Баллы: -2
Пробовал модуль Location. Чувствуется, фундаментальная вещь. Вроде бы есть модули и для пользователей и для таксономии. Русского описания использования модуля не нашел. Как определять местоположение пользователя по IP-адресу не понял. Отложил. Буду пробовать еще.
Очень похожим оказался модуль
Баллы: -2
Очень похожим оказался модуль Addresses.