Здравствуйте!
Нужно сделать автоопределения локации пользователей по ip, и исходя из его местоположения показывать контент.
И тут возникла небольшая проблема, айдишники городов которые возвращают api (https://find-ip.info/en/ или Яндекс.Карт) не совпадают с айдишниками городов в базе.
Кто знает откуда качали базу для ICMS2? Возможно там есть и API? Или может где можно слить другую базу?
Спасибо!
Локация в ICMS2
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
21 августа 2015 в 15:20
Функция для InstantCMS 2.X, аргументом опционально передается объект модели. Определяет страну и отдает название и id из бд icms2.
Если надо определение именно города, то по аналогичной схеме модифицируйте данную функцию. Для России ipgeobase.ru отдает данные с точностью до города.
Если надо определение именно города, то по аналогичной схеме модифицируйте данную функцию. Для России ipgeobase.ru отдает данные с точностью до города.
function get_country_by_ip($model=null) { if($model===null){ $model = new cmsModel(); } $cached_geo = cmsUser::sessionGet('cached_geo'); if($cached_geo){ return $cached_geo; } foreach ($out->ip[0] as $key=>$value) { $data[$key] = (string)$value; } } // для отладки того, что отдает сервис //dump($data); // определяем страну $country = $model->getItemByField('geo_countries', 'alpha2', $data['country']); } else { } cmsUser::sessionSet('cached_geo', $country); return $country; }
#3
22 августа 2015 в 11:26
Большое спасибо!