На одном сайте возникла необходимость определять город пользователя по ip и в зависимости от него выводить тот или иной контент. В русскоязычном интернете об этом как-то скудновато мануалов, а с привязкой к друпалу так еще меньше. Проблему в итоге решил, вот делюсь. Есть такие варианты:
или
Скачать модуль https://www.drupal.org/project/geo_block
Посмотреть историю создания https://www.drupal.org/project/geo_block
А вот почему еще не сделали полноценный, красивый официальный модуль для этих целей, я не знаю. Может быть когда-нибудь сам возьмусь.
UPD Оказалось, что Geo Block глючный, не сохраняет настройки и вообще плохо себя ведет. Поэтому пришлось еще порыться, вот вам два новых варианта:
и наконец, то, чем я в итоге победил свою проблему:
if (module_exists('ipgeo')) {
$region = ipgeo_get_region();
if (isset($region ) && $region ->city != '') {
echo $region ->city;
}
}
Удобная штука, еще бы запилили туда дефолтный тулбар для выбора города, вообще красота бы была.