Автоопределение города пользователя на основе GeoIP - версия 3.0
Добрый день всем )
Предлагаю вашему вниманию сиквел еще одного старого хита -
Спасибо he100885ldv и BorisK, которые замотивировали меня на портирование этой разработки на HostCMS API v.6
В качестве сервиса для определения по-прежнему используется ipgeobase.ru, формат вызова и возвращаемого результата схожи со старой разработкой, но немного изменены в стилистике нового API. Также, в новом модуле реализовано два уровня кеширования, для предотвращения излишней нагрузки на сервис.
Код модуля, традиционно, размещен в репозитарии на BitBucket -
Увидеть работу модуля можно на
Скачать последнюю версию - по ссылке
Для установки просто распакуйте скачанный архив в корень вашей системы.
Пример кода для использования модуля:
<?
$sIp = Core_Array::get($_SERVER, 'REMOTE_ADDR', Core_Array::get($_SERVER, 'HTTP_X_FORWARDED_FOR', '127.0.0.1'));
echo 'Ваш IP ' . $sIp;
$oGeoData = Core_Geoip::instance()->getGeoData($sIp);
if (!is_null($oGeoData))
{
echo 'Ваш город ' . Core_Entity::factory('Shop_Country_Location_City', $oGeoData->cityId)->name;
echo 'Ваш регион ' . Core_Entity::factory('Shop_Country_Location', $oGeoData->locationId)->name;
echo 'Ваша страна ' . Core_Entity::factory('Shop_Country', $oGeoData->countryId)->name;
}
else
{
echo 'Для вашего IP определить регион не удалось';
}
?>
Re: Автоопределение города пользователя на основе GeoIP - версия 3.0
Доброго дня всем. Осмелюсь спросить нет ли у кого решение поиска по локальной базе не обращаясь на
Уж больно сайт тормозит аж на 3-4 секунды как подключаю пример. Хочется держать у себя локальную базу адресов и по нему вытащить данные.
Вдруг как написал Puma перестанет работать сайт ipgeobase.ru или начнет долго отдавать данные. Что плачевно сайт не откроется тогда во время.
Пробовал сделать поиск как тут но к сожалению уже база другая.
Буду рад любым подсказкам и решением данного вопроса.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Re: Автоопределение города пользователя на основе GeoIP - версия 3.0
alexpimnev,
Спасибо, с первого раза быстрым обходом не заметил что пример реализован на основе поиска из *.txt файлов. Файлы перевел в БД MySQL стало более понятно, и конечно результат выдачи намного быстрее все же локально.
Интересует вопрос реализовать алфавитный указатель например как на например от А до Я по клику на букву выводим фильтром города выбранной страны.
Знаю есть и DISTINCT хочется понять как бы выделить только первые буквы городов в XSL или прямо в MySQL запросе .
Вопрос снят:
SELECT DISTINCT LEFT(`name`, 1) AS name FROM shop_country_location_cities WHERE shop_country_location_id = 175
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]