В модуле используется несколько классов, которые вы можете использовать для выполнения поставленных задач.
Основной класс для работы с модулем - \BXmaker\GeoIP\Manager
, в нем находятся все методы для работы с модулем. Все другие классы используются для служебных целей.
Обработчик для подключения компонентов в эпилоге сайта, постановки значений в соответствующие поля при оформлении заказа, а также для обработки ajax запросов от компонентов модуля - \BXmaker\GeoIP\Handler
.
Этот главный класс, который содержит практически всю информацию по местоположению пользователя. При инициализации модуля происходит определение IP адреса пользователя. После этого происходит попытка связать местоположение полученyое из базы диапазонов IP адресов с местоположениями которые имеются в битриксе (для варианта когда установлен модуль Интернет-магазин).
Чтобы начать работу с модулем необходимо получить объект этого модуля в любой части сайта как в примере ниже.
$oManager = \BXmaker\GeoIP\Manager::getInstance();
Используется для получения параметров модуля для текущего сайта
$value = $oManager->getParam($name, $default_value = '', $siteId = null)
Получение текущего идентификатора сайта, вне зависимости от контекста - публичная часть сайта или административная. В административной части определение произойдет по доменному имени из адресной строки или будет возвращен идентификатор сайта по умолчанию
$siteId = $oManager->getCurrentSiteId();
Используется для поиска города, результатом будет массив со стандартизированным описанием городов.
$oManager->searchLocation('москва');
Установка местоположения по идентификатору, все зависимости будут выполнены автоматически - сохранены соответствующие значения в сессии и установлены куки (cookie).
$locationId = 84;
$oManager->selectLocation($locationId;
Получение текущего IP адреса пользователя
$ip = $oManager->getIP();
Получение страны
$oManager->getCountry(); // здесь может быть значение RU вместо Россия
Получение названия региона
$oManager->getRegion();
Получение округа, района
$oManager->getDistrict();
Получение названия города
$oManager->getCity();
Получение идентификаторы местоположения
$oManager->getLocation();
Установка наименования страны
$oManager->setCountry('Россия');
Установка региона
$oManager->setRegion('Московская область');
Установка района
$oManager->setArea('Балашихинский район');
Установка наименования города
$oManager->setCity('Железнодорожный');
Установка идентификатора местоположения setLocation()
, не путайте с selectLocation()
;
$locationId = 84;
$oManager->setLocation($locationId); // этот метод просто сохраняет значение в сессии и для установки в куках
Избранные местоположения используются в публичной части сайт. Они выводятся в всплывающем окне при смене города, позволяют не вводить пользователю город, не искать а сразу выбрать из заготовленных.
Также они используются как группы местоположений, когда не устанволен модуль интернет-магазин ,в который входят местоположения и есть функционал для группироваки.
Если у вас на сайте не устанволен модуль интернет-магазина, то вы можете импортировать местоположения России, Украины, Казахстана, используя это модуль. Функционал импорта есть на соответствующей странице в административной части сайта.
\Bxmaker\GeoIP\FavoritesTable - Класс для работы с группами избранными местоположениями,
поля - ID, NAME, SITE, CITY
\Bxmaker\GeoIP\Favorites\SiteTable -Привязка избранной группы местоположений к сайтам,
поля - ID, FID, SID
\Bxmaker\GeoIP\Favorites\CityTable - привязка местоположений к группе избранных местоположений,
ID, FID, LOCATION_ID, MARK (выделение в публичной части), SITE, LOCATION ref \Bitrix\Sale\Location\LocationTable
В геозависимых сообщения используется привязка к группам местоположений, если модуль неитернет-магазина не установлен, то используются избранные местоположения на соответствующей вкладке.
Перечисленные выше классы используют ORM битрикса.
Класс \Bxmaker\GeoIP\MessageTable
используется для организации работы с геозависимыми сообщениями.
Поля:
Для любого типа сообщения, может быть только одно сообщение с отметкой DEF=true
, оно используется как значений по умолчанию когда другие сообщения либо не подходят по городу, либо не попадают в интервал показа
Класс \Bxmaker\GeoIP\Message\TypeTable
для работы с типами сообщений и привязки их к сайтам.
Поля:
s1
PHONE
При работе с классами используйте ORM битрикса, то есть методы getList
, add
, update
, delete
.