Определение города по IP адресу пользователя
Получите быструю помощь по покупке, оплате, установке, настройке, продлению и другим вопросам, оставив заявку
💡 Нужна консультация и помощь по работе?
Стандартная установка через систему обновления сайта.
Модуль работает только с версии главного модуля 21.1200.800 и выше, рекомендуемая версия PHP - 7.4.*.
С версии модуля 2.2.1 добавлена поддержка PHP 8.2
На этапе установки модуля будет предложено "Загрузить данные только для России и стран СНГ". Оставьте галочку включенной, если вам не нужен выбор зарубежных городов.
Если галочка установлена, модуль при обновлении базы будет загружать только города, которые входят в страны СНГ и Россию.
Как альтернатива API можно привязываться к cookie REASPEKT_GEOBASE. Либо использовать библиотеку модуля, статическую функцию getAddr() в классе Reaspekt\Geobase\DefaultCities. В этом направлении планируются доработки в дальнейшем.
Пример кода по работе с cookie:
<? // Получить через класс-обертку: use \Reaspekt\Geobase\DefaultCities; $arCityInfo = DefaultCities::getAddr(); // Получить через работу напрямую с cookie $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); $strData = $request->getCookie("REASPEKT_GEOBASE"); $arCityInfo = current(\CUtil::JsObjectToPhp($strData)); ?>Внутри массива $arCityInfo будут ключи CITY - название города, OKRUG - название страны, REGION - название региона/области, ID - ID города, UF_XML_ID - XML_ID города (по нему связка база IP -> база городов и выбор избранных местоположений), ID - ID выбранного города в highload’e.
Для корректной работы модуля необходимо будет получить ключ API от сервиса Maxmind. Для этого необходимо:
Подписаться на бесплатную триал-версию по ссылке
Заполнить и отправить форму, в графе Intended Use выбрать пункт Personalizing web content
В течение нескольких дней на указанный email вам должно прийти подтверждение, что вы создали аккаунт. Теперь в нем необходимо будет авторизоваться: ссылка на личный кабинет
После этого откроется ваша личная страница с меню слева, там необходимо выбрать пункт Manage License Keys, и нажать справа кнопку Generate new license key
Полученный ключ и надо ввести в поле для API-ключа
На главной странице личного кабинета в самом низу обязательно проверьте, появился ли у вас доступ к базам
Если таблица продуктов пустая, вам необходимо сначала принять лицензионное соглашение. Для этого в адресной строке уберите лишнее - должно остаться https://www.maxmind.com/en/accounts/ID_АККАУНТА/, после этого добавьте к ссылке geolite2/eula. Итого, общая ссылка должна иметь вид: https://www.maxmind.com/en/accounts/ID_АККАУНТА/geolite2/eula. Пролистайте страницу до конца, поставьте галочку соглашения, и нажмите кнопку I Agree. После этого доступ к продуктам должен появиться автоматически.
После установки необходимо на страницу добавить компонент "Определение местоположения по IP"
<?$APPLICATION->IncludeComponent( "reaspekt:reaspekt.geobase.city", "", Array( "CHANGE_CITY_MANUAL" => "Y" )); ?>