Класс Manager

Кратко о  классе Manager

Этот главный класс, который содержит практически всю информацию по местоположению пользователя. При инициализации модуля происходит определение IP адреса пользователя. После этого происходит попытка связать местоположение полученyое из базы диапазонов IP адресов с местоположениями которые имеются в битриксе (для варианта когда установлен модуль Интернет-магазин).

Чтобы начать работу с модулем необходимо получить объект этого модуля в любой части сайта как в примере ниже.

$oManager = \BXmaker\GeoIP\Manager::getInstance();

Основные методы для работы с модулем определения местоположения по IP в Битрикс

Побочные методы


1.  Для получения параметров модуля для текущего сайта используется метод getParam();

$value = $oManager->getParam($name, $default_value = '', $siteId = null)

2 Для проверки в кодировки в которой работает сайт, isUTF();

$bUtf = $oManager->isUTF();

  3 Проверка не находимся ли мы в административном разделе isAdminSection();

$bAdminSection = $oManager->isAdminSection();

  4. Подготовка данных для отправки в формате json ( если необходимо, произойдет преобразование кодировки в UTF-8) в ответе на ajax запросы prepareEncoding();

// $data - может быть как строкой так и массивом
$data = $oManager->prepareEncoding($data);
echo json_encode($data);


 5. Восстановление при необходимости кодировки полученных данных  из ajax запроса (например сайт работает в windows-1251 кодировке, а данные в ajax запросах приходят в кодировке UTF-8) restoreEncoding() 

// перекодируются как строки. так и массивы
$data = $oManager->restoreEncoding($_POST['name']); 


6. Получение текущего идентификатора сайта, вне зависимости от контекста - публичная часть сайта или административная. В административной части определение произойдет по доменному имени из адресной строки или  будет возвращен идентификатор сайта по умолчанию getCurrentSiteId().

$siteId = $oManager->getCurrentSiteId();
7. Для поиска города используйте метод searchLocation('москва'),  результатом будет массив со стандартизированным описанием городов.
$oManager->searchLocation('москва');
8. Установка местоположения по идентификатору selectLocation(), все зависимости будут выполнены автоматически - сохранены соответствующие значения в сессии  и установлены куки (cookie).

$oManager->selectLocation(10);

9. Запуск и инициализация конкретного IP адреса, используется для установки текущего IP пользователя, при этом если в сессии уже хранятся данные о местоположении пользователя то будут установлены данные из сессии, иначе произойдет поиск в базе IPGeoBase и соответствующие данные будут сохранены в сессии. А также будут сформированы соответствующие заголовки для установления cookie.

// этот метод уже автоматически вызывается 
$oManager->setIP(193.111.222.33);
// после этого можно пользоваться методами getCity(), getCountry() и тд.


10. Принудительная установка cookie saveCookie(), для использования на клиентской стороне в js. Будут установлены куки с названием города текущего,  идентификатором местоположения, регионом и тд.

$oManager->saveCookie();

Основные методы


1. Получение текущего IP адреса пользователя getIP()

$ip = $oManager->getIP();
2. Получение страны getCountry()

$oManager->getCountry(); // здесь может быть значение RU вместо Россия
3. Получение названия региона getRegion()

$oManager->getRegion();
4. Получение округа, района - getDistrict()

$oManager->getDistrict();
5. Получение названия города getCity()

$oManager->getCity();
6. Получение идентификаторы местоположения getLocation()

$oManager->getLocation();
7. Установка наименования страны setCountry()

$oManager->setCountry('Россия');
8. Установка региона setRegion()

$oManager->setRegion('Московская область');
9. Установка района setArea()

$oManager->setArea('Балашихинский район');

10. Установка наименования города - setCity()

$oManager->setCity('Железнодорожный');
11. Установка идентификатора местоположения setLocation(), не путайте с selectLocation();

$oManager->setLocation(10); // этот метод просто сохраняет значение в сессии и для установки в куках