Определение города (местоположения) по IP 2.0

Компоненты

После установки появятся 4 комопнента, которые можно найти при редактирвоании страницы сайта в редакторе справа.

Важно - все компоненты зависят от наличия на странице комопнента bxmaker:geoip.city, так как для исключения дублирования вся основная логика по определению и смене города, а также переадресациям, уточнениями и прочим действиям находится в нем.

  • bxmaker:geoip.city - «Город + popup» выводится город (опционально) и скрытое попап окно, которое отображается для смены города
  • bxmaker:geoip.city.line - «Вывод названия города» - выводит город и таблички с подтверждением (опционально)
  • bxmaker:geoip.delivery - «Информация о доставке» - выводит о стоимость и сроки доставки товара в город пользователя
  • bxmaker:geoip.message - «Геозависимые сообщения» - позволяют выводить разные данные, например номер телефона, для разных городов (местоположений) или групп местоположений

Компоненты модуля определения местоположения по IP 2.0

Вывод города bxmaker:geoip.city.line

Этот компонент выводит наименование города. Помимо этого, он выводит табличку с вопросом для пользователя, верно ли определен его город. Эта табличка показывается только при первом заходе на сайт, потом если пользователь подтвердил свой город, или указал иной, вместо таблички с вопросом, выводится вторая табличка с кнопкой для изменения города и ссылкой на страницу с информацией о доставке, условиях и тп.

Вторая табличка появляется после наведения указателя мышки на наименование города.

Эти таблички и тексты задаются в параметрах вызова комопнента.

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

Всплывающее окно для смены города на страницу добавляет компонент bxmaker:geoip.city о котором написано ниже.

Вот пример вызова комопнента, дял размещения в коде страницы.

// вызов вне кэшируемой части сайта
<?php $APPLICATION->IncludeComponent( "bxmaker:geoip.city.line", 
    ".default", 
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "Y",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "Y",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город"
    ),
    false
);?>

// вызов в шаблоне другого компонента, например в шаблоне карточки товара - bitrix:catalog.element
<?php $APPLICATION->IncludeComponent( "bxmaker:geoip.city.line", 
    ".default", 
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "Y",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "Y",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город"
    ),
    $component
);?>

Вы можете указать у нужных тегов класс js-bxmaker__geoip__city-name-global , в который автоматически подставится город и при клике по которому, ппоявится окно для смены города, на странице обязательно должен быть размещен компонент bxmaker:geoip.city Город + popup

Вывод информации о доставке bxmaker:geoip.delivery

Этот компонент работает только на сайтах где установлен модуль Интернет-магазин. Он выводит информацию о вариантах , стоимости и сроках доставки в город пользователя.

При смене города пользователем, этот компонент автоматически без перезагрузки страницы подгружает новые актуальные данные.

Пример вызова комопнента

// Для размещения  на странице, в шаблокне сайта и тд.. где нет родительского компонента
<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
   false
); ?>

// Для размещения в шаблоне карточки товара, в области которая является шаблоном другого компоненте, например bitrix:catalog.element
<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
    $component
); ?>

Компонент bxmaker:geoip.message - Геозависимые сообщения

Этот компонент выводит произвольное сообщение конкретного типа, например это может быть изменяемый в зависимости от города номер телефона (для москвы будет выводить 8495..., а для других городов 8800..), или допустим нужен какой то рекламный текст для конкретного города

//В административном разделе тип сообщения - PHONE
//для вывода указываем тип PHONE
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'));

// для вывода в шаблоне кэшируемого компонента
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'), $component);

Компонент «Город + popup» - выввод города (опционально) и popup


Пример вызова компонента

```php
// вызов вне кэшируемой части других комопнентов, в любом месте сайта
<? $APPLICATION->IncludeComponent( "bxmaker:geoip.city",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CITY_SHOW" => "Y",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "N",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "N",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город",
        "SEARCH_SHOW" => "Y",
        "FAVORITE_SHOW" => "Y",
        "CITY_COUNT" => "30",
        "FID" => "12",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "POPUP_LABEL" => "МЫ ДОСТАВЛЯЕМ ПО ВСЕЙ РОССИИ!",
        "INPUT_LABEL" => "Введите название города...",
        "MSG_EMPTY_RESULT" => "Ничего не найдено"
    ),
    false
); ?>

//если вызов происходитв кэшируемой части другого комопнента, обязательно третим парамтером вызова комопнента передаем ссылку на родительский комопнент 

<? $APPLICATION->IncludeComponent( "bxmaker:geoip.city",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CITY_SHOW" => "Y",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "N",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "N",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город",
        "SEARCH_SHOW" => "Y",
        "FAVORITE_SHOW" => "Y",
        "CITY_COUNT" => "30",
        "FID" => "12",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "POPUP_LABEL" => "МЫ ДОСТАВЛЯЕМ ПО ВСЕЙ РОССИИ!",
        "INPUT_LABEL" => "Введите название города...",
        "MSG_EMPTY_RESULT" => "Ничего не найдено"
    ),
      $component
); ?>
```

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