Скорее памятка для себя, но, может, ещё кому-то окажется полезным. [spoiler] Нужен модуль веб-аналитики.
Установка
1) Скачать архив с cidr_ru_block.txt со страницы http://ipgeobase.ru/cgi-bin/Archive.cgi, распаковать файл cidr_ru_block.txt в /bitrix/modules/statistic/ip2country 2) Зайти на страницу списка мастеров (/bitrix/admin/wizard_list.php?lang=ru) и запустить мастер создания индексов IP (bitrix:statistic.locations) 3) В мастере выбрать "Создание индекса для определения страны и города по IP адресу", "Далее", выбрать cidr_ru_block.txt, "Далее"
Получение списка регионов и городов России
Через класс CCity модуля веб-аналитики (не документирован):
А зачем, если всё уже есть? Таблица -- b_stat_city Класс для работы с ней -- CCity Мастер импорта -- bitrix:statistic.locations Правда, нужен модуль веб-аналитики.
О, огромное спасибо!!! Недавно столкнулся с данным вопросом, надо было выводить телефоны в нужном порядке в зависимости от того, из какого региона зашли на сайт.
Долго ломал голову, как решить, в итоге сделал через модуль рекламы.
Надо будет переделать все. ИМХО, предлагаемое решение проще и гибче.
Спасибо хорошая статья, а если задача выводить контент на сайте в зависимости от города , это придется создать инфоблок содержащий города и для них создавать свойства для этого контента, т.е. получается 2 базы с городами. Вот только у них назначение разное. Мой вариант он нормальный 2 базы с городами одна для модуля Веб-аналитика, другая в инфоблоках для контента в публичной части сайта ?
М. Борис, например используя сервис https://ipstack.com/signup/free, просто регистрируете бесплатный акк (до 10тыс чеков в месяц) и через API подставив IP получите город. Всё чётко работает, сам проверял. Если нужно бОльший лимит, цены достаточно доступные.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».