Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Определение города по IP адресу пользователя

Информация для пользователей: 22 декабря 2022 года выпущена новая мажорная версия модуля.Модуль «Определение города по IP адресу пользователя» определяет город посетителя вашего сайта по его IP-адресу.Модуль «Определение города по IP адресу пользователя» использует сервис MaxMind. При первом обновлении базы она загружается в Highload-блоки, после чего работает с данными непосредственно из них. Если удаленная база не обновлялась после последней загрузки, то на вкладке База городов кнопки с обновлением не будет - это значит, у вас уже установлена актуальная версия базы.Особенности модуля:1. Применяются локальные базыПреимущество локальной базы данных IP-адресов в том, что сайт не зависит от внешних сервисов геопозиционирования, и их функционирование не влияет на работу модуля. Недостаток — эти БД нужно периодически обновлять, для чего в настройках предусмотрен специальный интерфейс.Локальные базы хранятся в Highload-блоках, что позволяет гибко настраивать города и привязку к ним.2. Автоматическое определение местоположенияРешение автоматически определит город посетителя по его IP и может выводить окна с подтверждением города либо выбором другого, из списка или в строке поиска.3. Поставляются готовые компонентыВ модуле присутствует компонент, необходимый для отображения выбранного местоположения и возможности его изменения пользователем.Модуль «Определение города по IP адресу пользователя» работает на любой редакции «1С-Битрикс: Управление сайтом».

Определение города по IP адресу пользователя

Определение города по IP адресу пользователя

Скриншоты
Описание

Технические данные

Опубликовано:
20.12.2016
Обновлено:
17.08.2023
Версия:
2.2.5
Установлено:
Более 1000 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз»
Адаптивность:
Да
Поддержка Композита:
Нет
Совместимо с Сайты24
Нет
Совместимо с PHP 8.1
Да

Пользовательское соглашение

Описание

Информация для пользователей: 22 декабря 2022 года выпущена новая мажорная версия модуля.

Модуль «Определение города по IP адресу пользователя» определяет город посетителя вашего сайта по его IP-адресу.

Модуль «Определение города по IP адресу пользователя» использует сервис MaxMind. При первом обновлении базы она загружается в Highload-блоки, после чего работает с данными непосредственно из них. Если удаленная база не обновлялась после последней загрузки, то на вкладке База городов кнопки с обновлением не будет - это значит, у вас уже установлена актуальная версия базы.

Особенности модуля:

1. Применяются локальные базы

Преимущество локальной базы данных IP-адресов в том, что сайт не зависит от внешних сервисов геопозиционирования, и их функционирование не влияет на работу модуля. Недостаток — эти БД нужно периодически обновлять, для чего в настройках предусмотрен специальный интерфейс.

Локальные базы хранятся в Highload-блоках, что позволяет гибко настраивать города и привязку к ним.

2. Автоматическое определение местоположения

Решение автоматически определит город посетителя по его IP и может выводить окна с подтверждением города либо выбором другого, из списка или в строке поиска.

3. Поставляются готовые компоненты

В модуле присутствует компонент, необходимый для отображения выбранного местоположения и возможности его изменения пользователем.

Модуль «Определение города по IP адресу пользователя» работает на любой редакции «1С-Битрикс: Управление сайтом».

Отзывы (7)
Обсуждения (54)
1 - 5 из 54
Что нового
2.2.5 (17.08.2023) Обновлена инструкция получения ключа к БД При отсутствии доступа к Maxmind теперь выводится соответствующее сообщение об ошибке
2.2.4 (27.07.2023) Правки старого класса с функциями для PHP 8.*
2.2.3 (06.07.2023) Правки по PSR
2.2.2 (03.07.2023) Небольшие правки по PSR Удален лишний обработчик событий, отвечавший за подключение js библиотеки главного модуля
2.2.1 (29.06.2023) Небольшие правки по PSR Улучшена работа с PHP 8.0 Улучшена работа кеша нового компонента
2.2.0 (22.06.2023) Добавлена поддержка PHP 8.2
2.1.4 (15.06.2023) Исправлено автоподключение старых классов для старого компонента
2.1.3 (02.03.2023) В компонент добавлено подключение библиотеки popup Исправлены ошибки возвращаемых значений в тайпхинтинге Дефолтный город теперь - Москва
2.1.2 (15.02.2023) Добавлен индекс для XML ID городов Добавлено кеширование в компонент для списка избранных городов
2.1.1 (27.01.2023) Исправлен запрос определения города на более легкий Исправлено отображение картинок в инструкции по подключению к сервису maxmind Добавлена проверка статуса загрузки базы при проверке обновлений Исправлено удаление города при пустой отправке инпута добавления города в избранное Обновлен компонент, если нет избранных городов, в попапе будет показываться только поле выбора города Создан индекс для IP
2.1.0 (22.12.2022) - Добавлена поддержка версии PHP 7.0.0 и выше.
- Добавлено новое ядро с использованием отдельных библиотек для работы разных частей модуля.
- Добавлен новый компонент, который работает на новом ядре и имеет новый интерфейс и отрефакторенный js.
- Всплывающие окна в компоненте переведены на стандартный функционал всплывающих окон Битрикс.
- Используемые сервисы сведены к сервису Maxmind.
- Модуль полностью переведен на UTF-8.
- Аякс-запросы переведены на контроллеры.
- Загрузка в Highload переведена с построковой записи на использование коллекций, что позволило в несколько раз ускорить процесс загрузки.
- Процесс загрузки теперь не зависит от js, а его состояние хранится в настройках модуля, что позволяет при сбоях продолжить загрузку с места остановки и инкапсулировать эту информацию.
- Передача данных из удаленного хранилища в локальное происходит посредством типа Dictionary.
- После загрузки удаленной базы в локальную файлы удаляются с сервера.
- Произведено форматирование кода, приведение к PSR.
- Добавлена инструкция по получению API ключа от сервиса MaxMind.
- Добавлена возможность ограничения по странам - чтобы загружались только города стран СНГ и России.
- Исправлены ранее выявленные ошибки, внесены изменения по замечаниям пользователей модуля.
Установка

Стандартная установка через систему обновления сайта.

Модуль работает только с версии главного модуля 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. Для этого необходимо:

  1. Подписаться на бесплатную триал-версию по ссылке

  2. Заполнить и отправить форму, в графе Intended Use выбрать пункт Personalizing web content

  3. В течение нескольких дней на указанный email вам должно прийти подтверждение, что вы создали аккаунт. Теперь в нем необходимо будет авторизоваться: ссылка на личный кабинет

  4. После этого откроется ваша личная страница с меню слева, там необходимо выбрать пункт Manage License Keys, и нажать справа кнопку Generate new license key

  5. Полученный ключ и надо ввести в поле для API-ключа

  6. На главной странице личного кабинета в самом низу обязательно проверьте, появился ли у вас доступ к базам

  7. Если таблица продуктов пустая, вам необходимо сначала принять лицензионное соглашение. Для этого в адресной строке уберите лишнее - должно остаться 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"   
));
?>

Поддержка
Решение предоставляется в виде as is .
Поддержка в данный момент не оказывается.

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки