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

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

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

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

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

Модуль автоматически определяет местоположение пользователя по его IP и предоставляет возможность выбора города из списка в удобном и стильном всплывающем окне.Основные возможности:— доступен для всех редакций;— автоматическая переадресация на домены/поддомены, в том числе и на сторонние домены;— автозаполнение местоположения, в том числе и в оформлении заказа;— адаптивное окно выбора городов с широкими настройками логики работы;— автоматическое обновление базы IP адресов, а также — по кнопке в настройке модуля;— попап подтверждения выбранного города, с возможностью изменить установленный город. Можно показывать только при первом заходе, а можно пока не закроет посетитель. Или вообще не показывать;— богатые настройки кастомизации окон, под стилистику вашего сайта;— возможность подмены данных на основе определенного города;— отображение региона у городов с одинаковыми названиями;— отображение «избранных» городов в нескольких местах модального окна на выбор;— автозамена плейсхолдеров на текущее местоположение и привязанный контент;— удобное api для отображение информации элементов иноблока в зависимости от местоположения;— отдельный инфоблок (Местоположения -> Контент), элементы которого можно  привязать к имени и id местоположения, а так же к id сайта. Что позволяет отображать любые геозависимые данные, а так же привязывать их к отдельным сайтам. Соответствующий элемент легко получить с помощью api модуля. Описание  api на вкладке «Установка»;— ядро модуля на d7;— поддержка композита.Данные о местоположении автоматически вставляются в поле с типом  «Местоположение» в процессе оформления заказа. Так же модуль может заменить стандартный шаблон компонента выбора местоположения на свой, гораздо более удобный.Контент с привязкой к местоположению — функции для CEO оптимизацииС помощью нашего модуля можно отображать контент привязанный к местоположению пользователя сайта. Для каждого города в отдельности вы можете прописать необходимые данные, тайтлы, дескрипшены, телефоны, варианты доставок и другие необходимые геозависимые данные. Решение поддерживает передачу в компонент оформления заказа выбранный город сразу при загрузке страницы — выбранный город сразу применяется для показа вариантов доставки и оплаты с ограничениями по местоположениям. Пример: При заходе пользователя на сайт город автоматически определился, добавляем товар в корзину и переходим в оформление заказа. На странице оформления заказа будет указан определенный город и доступные для города способы доставки и оплаты.Модуль работает на основе базы данных Sypex Geo и не делает запросы на сторонние сервисы, за счёт чего скорость определения местоположения гораздо выше. Также все запросы к базе данных местоположений кешируются, что тоже существенно увеличивает скорость работы.Модуль работает на всех редакциях!Для редакций «Бизнес» и «Малый бизнес» список населенных пунктов берется из Местоположений модуля «Интернет-магазин». На младших редакциях  по-умолчанию выводится список городов для России и Украины из внутренней базы решения.Внимание!Если был произведен переход на Местоположения 2.0, то избранные города настраиваются непосредственно в модуле «Интернет Магазин» в настройках местоположений.

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

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

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

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

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

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

Описание

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

Основные возможности:

— доступен для всех редакций;
автоматическая переадресация на домены/поддомены, в том числе и на сторонние домены;
автозаполнение местоположения, в том числе и в оформлении заказа;
— адаптивное окно выбора городов с широкими настройками логики работы;
— автоматическое обновление базы IP адресов, а также — по кнопке в настройке модуля;
— попап подтверждения выбранного города, с возможностью изменить установленный город. Можно показывать только при первом заходе, а можно пока не закроет посетитель. Или вообще не показывать;
— богатые настройки кастомизации окон, под стилистику вашего сайта;
— возможность подмены данных на основе определенного города;
— отображение региона у городов с одинаковыми названиями;
— отображение «избранных» городов в нескольких местах модального окна на выбор;
— автозамена плейсхолдеров на текущее местоположение и привязанный контент;
удобное api для отображение информации элементов иноблока в зависимости от местоположения;
отдельный инфоблок (Местоположения -> Контент), элементы которого можно  привязать к имени и id местоположения, а так же к id сайта. Что позволяет отображать любые геозависимые данные, а так же привязывать их к отдельным сайтам. Соответствующий элемент легко получить с помощью api модуля. Описание  api на вкладке «Установка»;
— ядро модуля на d7;
— поддержка композита.

Данные о местоположении автоматически вставляются в поле с типом  «Местоположение» в процессе оформления заказа. Так же модуль может заменить стандартный шаблон компонента выбора местоположения на свой, гораздо более удобный.


Контент с привязкой к местоположению — функции для CEO оптимизации

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

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


Решение поддерживает передачу в компонент оформления заказа выбранный город сразу при загрузке страницы — выбранный город сразу применяется для показа вариантов доставки и оплаты с ограничениями по местоположениям.

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

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


Модуль работает на всех редакциях!

Для редакций «Бизнес» и «Малый бизнес» список населенных пунктов берется из Местоположений модуля «Интернет-магазин». На младших редакциях  по-умолчанию выводится список городов для России и Украины из внутренней базы решения.

Внимание!
Если был произведен переход на Местоположения 2.0, то избранные города настраиваются непосредственно
в модуле «Интернет Магазин» в настройках местоположений.


Отзывы (35)

1 - 10 из 35
Обсуждения (149)
1 - 5 из 149
Что нового
2.0.14 (27.02.2024)
  • исправлены мелкие ошибки и неточности
  • обновлена база местоположений
2.0.13 (22.01.2024)
  • исправлениа ошибка 'Undefined constant "CURLPROXY_HTTP"' в php 8
  • исправлениы прочие найденные оишбки
  • обновлениа база местоположений
2.0.12 (21.11.2023)
  • Добавлена возможность отключения определения местоположения по ip-адресу
  • Добавлена возможность отключения установки местоположения по-умолчанию в случае, если его не удалось определить по ip-адресу
  • Обновлена база местоположений
2.0.11 (19.09.2023)
  • Повышена безопасность хранения cookie
  • Исправлены найденные ошибки
  • Обновлена база местоположений
2.0.9 (29.06.2023)
  • Исправлена ошибка, из-за которой не выводились родительские регионы в редакциях без Интернет-магазина
  • Исправлены другие найденные ошибки
  • Удалены некоторые методы, давно помеченные как устаревшие
  • Обновлена база местоположений
2.0.7 (13.06.2023)
  • Исправлен баг, из-за которого при многосайтовости на подпапках редирект мог происходить на неправильный адрес
  • Актуализирована база местоположений
2.0.6 (10.05.2023)
  • Актуализирована база местоположений
  • Исправлены ошибки при установке
  • Исправлены прочие найденные ошибки
2.0.4 (07.04.2023)
  • Исправлена ошибка, возникавшая при отсутствующей/поломанной базе местоположений
  • Исправлена ошибка, из-за которой иногда не добавлялось свойство "Склад"
  • База местоположений обновлена до последней актуальной версии
2.0.2 (02.02.2023)
  • Для более корректной работы, при склонении местоположения добавлена возможность указать род
  • Обновлена база местоположений
  • Незначительные исправления
2.0.0 (19.01.2023)
  • к иб "Контент" добавлены свойства для привязки типов цен и складов
  • для главного модуля добавлен обработчик геолокации TwoFingers Location. Его можно подключить как стандартный при определении местоположения при оформлении заказа. А также использовать для других целей геолокации.
  • добавлена возможность склонять название местоположений по падежам
  • обновлена база местоположений
  • доработана совместимость с php 8.1
1.9.7 (09.12.2022)
  • добавлено св-во "адрес" в иб контент
  • сво-во "телефон" в контенте сделано множественным
  • обновлена база местоположений
  • исправлены найденные ошибки
1.9.6 (27.11.2022)
  • Добавлен контент по-умолчанию для всех сайтов
  • В контент сразу добавлено свойство телефон
  • исправлены возможные ошибки при обновлении базы, если сервис Sypex Geo недоступен
  • исправлены другие мелкие ошибки
  • перезалита база местоположений
1.9.5 (27.10.2022)
  • обновлена база местоположений
  • исправлены мелкие ошибки
1.9.4 (05.10.2022)
  • отключена переадресация для поисковых роботов
  • обновлена база местоположений
  • исправление ошибок при установке
  • исправление ошибок при отсутствии местоположений на сайте
  • правки совместимости шаблона
  • исправление прочих мелких ошибок
  • рефакторинг
1.9.0 (31.08.2022)
  • Значительно расширены возможности кастомизации внешнего вида попапа выбора местоположений
  • добавлена возможность выбора версии подключаемой библ-ки jQuery
  • при открытии окна выбора местоположений курсор автоматически ставится в поле ввода
  • изменены настройки логики появления попапа подтверждения города
  • исправлены найденные ошибки
1.8.21 (30.08.2022)
  • Уточнено определение местоположений с одинаковыми названиями
  • Более детальное описание местоположений с одинаковым названием (область, район, город)
  • При выборе местоположения в списке теперь также возвращается и контент и его можно использовать в обработке js-события onTFLocationSetLocation
  • Ускорена загрузка списка местоположений
  • Теперь могут определиться только те местоположения, которые есть на сайте (в интернет-магазине или инфоблоке)
  • Улучшена синхронизация местоположений в оформлении заказа
  • Обновлена база для гео-локации
  • Отключена возможность задать местоположение по умолчанию сразу для всех сайтов. Теперь оно задаётся только для каждого сайта отдельно (возможность оставлена в режиме совместимости)
  • Отключена поддержка модуля "Интернет магазин" версий младше 16.0.26
  • Удалены некоторые методы, которые долгое время были помечены как устаревшие
  • Исправлены ошибки при переадресации между доменами
  • Исправлены ошибки установки
  • Исправлены проблемы совместимости с шаблонами от Аспро
  • Улучшена совместимость со старыми версиями шаблона компонента определения местоположений (в режиме совместимости)
  • Исправлена ошибка автоматического обновления базы местоположений в режиме совместимости
1.8.10 (11.07.2022)
  • Добавлена возможность работать с группами местоположений
1.8.9 (07.07.2022)
  • Добавлена возможность обновлять базу местоположений через прокси
  • Исправлена ошибка отображения местоположения в кодировке сайта windows-1251
  • Исправлены незначительные ошибки
  • Обновлена база местоположений
1.8.7 (23.02.2022)
  • исправление ошибок
  • удалён класс устаревший класс \TwoFingers\Location\Settings, используйте вместо него \TwoFingers\Location\Options
  • удалены некоторые прочие устаревшие методы
  • обновлена база местоположений
  • рефакторинг
1.8.6 (26.01.2022) — исправлена ошибка, из-за которой иногда не срабатывало перенаправление между доменами
— обновлена база местоположений
1.8.5 (28.12.2021)
  • добавлена настройка - перезагружать страницу после подтверждения местоположения
  • добавлено автоматическое обновление базы местоположений, работает только если агенты переведены на крон
  • добавлена возможность менять отступы и размеры шрифтов для попапа подтверждения местоположения отдельно для декстоп- и мобильной версии.
  • добавлена возможность задать шрифт для текста в попапе подтверждения
  • добавлена возможность задать ширину попапа подтверждения на десктопе
  • добавлено управление с клавиатуры: прокрутка списка местоположения и закрытие папа выбора местоположений
  • изменена анимация загрузки папапа выбора местоположений
  • другие незначительные визуальные доработки
  • исправлены ошибки при установке/обновлении
  • исправлены прочие найденные ошибки
  • обновлена база местоположений
  • рефакторинг
1.7.4 (25.11.2021)
  • добавлены отдельные настройки отступов для каждой стороны списка местоположений
  • добавлен выбор шрифта заголовка окна выбора местоположений
  • доработка административной части
  • доработка внешнего вида
  • обновлена база местоположений
1.7.3 (01.11.2021)
  • добавлена поддержка регионов и стран при привязке к контенту
  • обновлена база местоположений
  • улучшено определение местоположений
  • переработана страница настроек
  • исправлена ошибка, из-за которой в любом случае подключался jquery из модуля, если компонент на странице размещался два и более раз
  • прочие незначительные изменения, исправления и рефакторинг
1.6.21 (26.08.2021)
  • добавлено действие, если для местоположения не задан свой домен
  • исправлена ошибка, из-за которой иногда не удавалось сменить местоположение после переадресации на другой домен
  • исправлена ошибка, из-за которой не происходила автоматическая переадресация при заходе на поддомен, привязанный к местоположению
  • исправлены ошибки совместимости в прошлыми версиями
  • исправлены ошибки при установке
  • исправлены прочие найденные ошибки
1.6.14 (01.07.2021)
  • в оформлении заказа доработана синхронизация местоположений, если используется стандартный компонент выбора. Теперь местоположения также синхронизируются в направлении стандартный компонент — модуль Улучшенных Местоположений
  • исправлена ошибка, из-за которой в новых версиях Битрикс не обновлялся индекс, если он был привязан к доставке или оплате
  • удалены некоторые устаревшие методы
  • восстановлена автозамена плейсхолдеров
  • обновлена база местоположений
  • исправлена ошибка неработающих чекбоксов в ИБ Местоположения (для редакция без "Инетрнет-магазина")
  • небольшие прочие оптимизации
1.6.9 (21.04.2021)
  • добавлена настройка отступа списка от края окна для десктоп и моб. версии
  • исправлено "запоминание" местоположения
  • восстановлена совместимость катомизированных шаблонов со последними версиями модуля (необходимо включить режим совместимости)
  • исправлены прочие незначительные ошибки и неточности
1.6.6 (06.04.2021)
  • исправлена ошибка, из-за которой иногда не устанавливались местоположения
  • добавлены настройки ограничения максимального кол-ва местоположений в списке, максимального кол-ва результатов поиска.
  • настройка "Текст перед ссылкой" перенесена в раздел "Внешний вид" вкладки "Окно выбора города"
  • настройка "Добавлять деревни в список местоположений" перенесена на вкладку "Общие настройки"
1.6.4 (31.03.2021)
  • добавлена возможность менять ширину попапа со списком местоположений на дектопе
  • добавлена возможность менять размер шрифта заголовка, поля ввода и местоположений в попапе со списком
  • легкий редизайн попапа со списком местоположений
  • улучшена инициализация в композитном режиме и при включенных оптимизаторах
  • актуализирована база местоположений
  • частично удалены устаревшие классы и методы
  • удалён старый шаблон old
  • исправлена ошибка с заменой плейсхолдеров в случае, если местоположение было неопределено
  • оптимизирован расход памяти
  • исправлены найденные ошибки и неточности
1.6.1 (04.03.2021)
  • добавлена возможность прикреплять к элементам ИБ Контент не только города, но и области со странами
  • незначительные исправления и доработки
1.6.0 (30.11.2020) ОБЯЗАТЕЛЬНО СДЕЛАЙТЕ БЕКАП перед данным обновлением.
  • добавлено сохранение местоположений при редиректе между доменами;
  • добавлены новые свойства для множественной привязки местоположений магазина/инфоблока к контенту;
  • для местоположений в редакции ниже Малый Бизнес добавлена привязка к сайтам;
  • добавлена возможность задать местоположение по умолчанию отдельно для каждого сайта;
  • изменена логика определения контента по умолчанию. Теперь контент по умолчанию этот тот, который привязан к местоположению по умолчанию для текущего сайта;
  • добавлен вывод даты последнего ручного обновления базы;
  • список выводимых местоположений ограничивается местоположениями для текущего сайта. Если таковых нет, то всеми местоположениями;
  • добавлена возможность ограничить определяемые местоположения списком выводимых;
  • добавлена визуальная настройка вывода избранных местоположений в списке: над и под поиском, слева и справа от местоположений;
  • небольшие визуальные доработки;
  • исправление ошибок и рефакторинг
По api:
  • Добавлены новые сущности TwoFingers\Location\Entity\Location и TwoFingers\Location\Entity\Location, которые вобрали в себя всю логику работы с местоположениями и контентом соответственно. Описание работы с ними есть на вкладке "Установка"
  • Объявлены устаревшими классы
    • класс TwoFingers\Location\Current => TwoFingers\Location\Entity\Location
    • класс и все классы неймспейса TwoFingers\Location\Iblock => TwoFingers\Location\Model\Iblock
    • класс и все классы неймспейса TwoFingers\Location\Location => TwoFingers\Location\Model\Iblock
  • Классы TwoFingers\Location\Storage и TwoFingers\Location\Storage\Session удалены
1.5.4 (07.10.2020)
  • при локальном поиске добавлен вывод региона у городов с одинаковыми названиями
  • при локальном поиске более подходящие местоположения выводятся в первую очередь
  • переработана верстка попапа выбора местоположений, улучшена его мобильная версия
  • исправлена кодировка местоположений для редакций ниже "Малый Бизнес" в windows-1251
  • сортировка избранных местоположений для редакций ниже "Малый Бизнез" теперь осуществляется по индексу сортировки, а не по алфавиту
  • обновлена база местоположений
  • исправлены ошибки в верстке мобильной версии
  • исправлены прочие найденные ошибки и неточности
1.5.2 (01.07.2020)
  • добавлена возможность задавать местоположение по-умолчанию, которое будет выводиться в случае, если не удалось определить местоположение по ip
  • для редакций ниже Малый Бизнес список местоположений сконвертирован в элементы инфоблока. Страны и регионы реализованы в виде разделов этого инфоблока. Появилась возможность редактировать список местоположений
  • для редакций ниже Малый Бизнес добавлена возможность задавать избранные и местоположение по-умолчанию (задается в элементах инфоблока)
  • определение текущего местоположения вынесено в пролог. После определения вызывается событие afterLocationDetect
  • добавлена поддержка отдельных местоположений для каждого сайта
  • добавлена возможность ограничить определяемые местоположения списком местоположений на сайте
  • оптимизирована работа в композитном режиме
  • добавлена проверка наличия библиотеки curl на сервере (необходима для автоматического обновления базы местоположений)
  • обновлена база местоположений
  • прочие незначительные исправления и доработки
1.4.6 (19.05.2020)
  • исправлена ошибка, из за которой при некоторых настройках кодировки на сайте не загружался список городов
  • исправлены найденные ошибки работы с кодировкой windows-1251
  • исправлены другие незначительные ошибки и неточности
1.4.4 (12.02.2020)
  • Исправлена ошибка верстки при поиске местоположений
  • Исправлены другие незначительные ошибки и неточности
    1.4.3 (22.01.2020)
    • Исправлена ошибка, из-за которой ломалась верстка при поиске местоположений, в имени которых сожержались кавычки
    • Исправлено иногда возникающее дублирование результатов при поиске местоположений без использования ajax
    • Актуализирована база местоположений
    1.4.2 (19.12.2019)
    • Исправление ошибок
    1.4.0 (17.12.2019)
    • Переадресация на домены/поддомены "из коробки"
    • Обновление базы местоположений по кнопке в админке
    • Ускорение загрузки списка городов
    • Возможность загрузки базы местоположений целиком в память для более быстрой геолокации (требуется больше памяти)
    • Правки верстки списка в десктопной и мобильной версиях
    • Исправлена ошибка с кодировкой для сайтов в windows-1251
    1.3.3 (09.12.2019)
    • При смене местоположения в оформлении заказа индекс, службы доставки и оплаты теперь перезагружаются мгновенно, а не после перехода переходе между шагами оформления
    • Доработано окно подтверждения:
      • Добавлено новое поведение: автоматическое открытие, если не удалось определить местоположение и пока не будет закрыто пользователем
      • Добавлены настройки кнопки отмены/перехода к выбору городов
      • Улучшено отображение в мобильной версии
      • Исправлен вылет за границы окна браузера
      • Скорректирована работа с фиксированным хедером
    • Актуализирована геобаза
    • Доработано апи, добавлена функция для получения элемента инфболока, привязанного к местоположению на основе данных хранилища
    • Исправлены мелкие ошибки и недочеты
    • Внесены небольшие правки внешнего вида
    • Для ускорения загрузки созданы минифицированные версии стилей и скриптов в шаблоне
    1.3.0 (12.10.2019)
    • Добавлена возможность ajax-загрузки местоположений по поисковому запросу. Это позволяет ускорить открытие списка. Сразу можно отображать как полный список, так и только города или только избранные местоположения.
    • Обновлён дизайн списка местоположений в шаблоне по-умолчанию.
    • Переработан попап подтверждения местоположения для мобильной версии сайта
    • Исправлено отображение местоположений по-умолчанию в настройках модуля
    • Другие незначительные исправления и улучшения
    1.2.10 (13.07.2019)
    • Добавлена возможность хранить местоположение в cookie. Это позволяет сохранять его и после закрытия браузера.
    • Добавлена возможность в списке местоположений выводить деревни (для местоположений 2.0)
    1.2.8 (04.06.2019)
    • добавлена настройка, позволяющая перезагружать страницу после выбора местоположения
    • прочие незначительные исправления и доработки
    1.2.7 (22.04.2019)
    • Добавлен скролл в избранные местоположения, позволяет просматривать их, если их много
    • Исправлена ошибка, из-за которой иногда не создавался тип инфоблоков "Местоположение" и инфоблок "Контент" в нём
    • Небольшие правки верстки в десктопной и мобильной версиях
    1.2.6 (03.04.2019)
    • Добавлена возможность автоматически подставлять индекс для выбранного местоположения, полезно для служб доставки, которые считают по индексу
    • Добавлена проверка наличия js-библиотеки BX для стандартного шаблона. Если библиотека не подключена, то событие "onTFLocationSetLocation" вызвано не будет
    • В сессию добавлены так же ид и названия определившегося региона и страны. При изменении местоположения они тоже автоматически меняются в сессии. Методы для их получения см. на вкладке "Установка"
    • Исправлена подгрузка стилей в компоненте избранных местоположений в админке при включенной опции "Подключить шаблон выбора местоположения"
    • Исправлены ошибки при подстановке значений в плейсхолдеры #TF_LOCATION_CITY_ID# и #TF_LOCATION_CITY_NAME# для события, которое вызывается после смены города
    1.2.3 (26.03.2019)
    • доработан шаблон компонента определения местоположения для корректной работы в композитном режиме
    • добавлена настройка для отображения попапа подтверждения местоположения: показывать, пока не будет закрыт пользователем
    • добавлена настройка цвета основной кнопки в попапе подтверждения местоположения при наведении курсора
    • исправлено отображение выбранной цветовой темы в шаблоне по-умолчанию
      1.2.0 (14.03.2019)
      • Добавлен инфоблок (Местоположения -> Контент), элементы которого можно привязать к имени и id местоположения, а так же к id сайта. Соответствующий элемент легко получить с помощью api модуля. Описание api на вкладке "Установка"
      1.1.1 (13.03.2019)
      • Переработан шаблон компонента выбора местоположений, убраны important-ы и каскады стилей, единицы измерения заменены на относительные, оптимизирован javascript-код.
        Для лучшей совместимости старый шаблон тоже оставлен, теперь он называется 'old'. В случае необходимости Вы можете продолжить его использовать, явно указав в вызове компонента. Чтобы продолжить использование старого шаблона при оформлении заказа, выполните в командной строке php код COption::SetOptionString('twofingers.location', 'sale-order-template', 'old'); .
      • В новый шаблон добавлен миниатюрный попап подтверждения местоположения
      • В настройках модуля теперь можно задавать текст, и дополнительные визуальные настройки попапов
      • Ядро модуля переведено на d7, старые классы пока оставлены для совместимости, они помечены как deprecated и в будущих версиях будут удалены.
      • Исправлена ошибка появления названия города в стандартном компоненте выбора местоположений при оформлении заказа
      • Исправлены незначительные ошибки в кешировании
      • Старые события компонента оформления заказа больше не поддерживаются, в место них используются их новые аналоги.
      • Код модуля оптимизирован для лучшей совместимости различными настройками хостингов.
      • Обновлены базы ip-адресов.
      • Прочие доработки, усовершенствования, рефакторинг и исправление мелких ошибок
      1.0.20 (10.02.2019)
      • Для ускорения отклика добавлено кеширование запросов к базе
      • Добавлено js-событие "onTFLocationSetLocation", вызываемое после выбора местоположения (пример использования см. на вкладке "Установка")
      • Исправлено отображение списка местоположений для кодировки cp1251
      • Обновлена внутренняя библиотека jqury до версии 3.3.1
      • Удалена внутренняя библиотека fancybox, т.к. она больше нигде не используется
      • Оптимизирован код вызова всплывающего окна с выбором местоположений
      • Для местоположений 2.0 в админку добавлен вывод избранных местоположений, а так же добавлена ссылка для быстрого их задания
      • Исправлена ошибка сохранения избранных местоположений для несконвертированной базы
      • Исправлены ошибки безопасности при загрузке шрифтов
      • Рефакторинг и прочие незначительные доработки и исправления
      1.0.13 (30.01.2019)
      • Исправлена ошибка, иногда возникавшая при выборе служб доставки
      • Исправлена корректная обработка не заполненного местоположения при оформлении заказа
      • Исправлена ошибка, из-за которой могло не закрываться окно после выбора местоположений
      1.0.12 (12.11.2018)
      • Добавлена поддержка всех версий Битрикс
      • Добавлена полная поддержка местоположений 2.0, в том числе в компоненте sale.order.ajax
      • Актуализирована база ip
      • Добавлена вывод регионов для одинаковых городов
      • Доработан внешний вид
      • В младших версиях Битрикс по-умолчанию выводится список городов для России и Украины
      1.0.11 (12.02.2018)
      • исправление работы демо-режима
      1.0.10 (25.02.2016)
      • исправление отображения избранных местоположений
      1.0.9 (17.02.2016)
      • поддержка адаптивного режима
      • предподстановка местоположения при первом заходе в оформление заказа
      • исправление мелких проблем
      1.0.8 (30.12.2015)
      • обновление базы определения по IP
      • исправление проблемы выполнения произвольного js после выбора города
      • другие мелкие исправления
      1.0.7 (08.12.2015)
      • исправлена ошибка незаполненного поля LOCATION при оформлении заказа на старых шаблонах оформления заказа
      1.0.6 (26.11.2015)
      • исправлена проблема настроек избранных изображений и интернет-магазина в бекофисе битрикса после установки модуля
      • исправлена проблема в оформлении заказа (не прикреплялось к заказу выбранное местоположение)
      • улучшен показ определенных по IP местоположений, если они не нашлись в местоположениях
      • обновлена подключаемая по настройке версия jquery до 2.1.4
      1.0.5 (15.05.2015) Исправление небольшой ошибки в JS
      1.0.4 (12.05.2015) Исправлены незначительные ошибки Исправлена работа модуля на предыдущих версиях Битрикса
      1.0.3 (13.04.2015) Полное обновление модуля. Реализована поддержка Местоположений 2.0
      1.0.2 (16.09.2014) Исправление проблем с совместимостью
      1.0.1 (03.09.2014) Исправлено несколько незначительных ошибок
      Установка
      Установка

      Решение устанавливается стандартно. После установки Вы будете перенаправлены в интерфейс настройки модуля.

      Для корректной работы модуля на редакциях «Бизнес» и «Малый бизнес» необходимо, чтобы были загружены местоположения в базу модуля «Интернет-магазин» http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=3074&LESSON_PATH=3912.4580.4828.3074#load


      Подключение компонента улучшенного выбора местоположений

      Вы можете вставить ссылку на выбор местоположения города в шапку сайта. Для этого в нужном месте шаблона добавьте вызов компонента:
      <?$APPLICATION->IncludeComponent("twofingers:location","",Array());?>
      Для вашего удобства, чтобы вам не приходилось вручную править шаблон компонента, мы предусмотрели поля для классов, которые будут присвоены ссылкам вызова всплывающего окна, если вы захотите их кастомизировать.
      Если вы используете модифицированный компонент sale.order.ajax, для того, чтобы использовать улучшенный выбор местоположения при оформлении заказа, необходимо для компонента sale.ajax.locations прописать шаблон tf_location.

      Вызов пользовательской javascript-функции

      В настройках модуля можно вписать JS функцию, которая будет выполняться при выборе города пользователем. В её названии можно использовать плейсхолдеры:
      #TF_LOCATION_CITY_ID# - ID выбранного города
      #TF_LOCATION_CITY_NAME# - Имя выбранного города
      
      Например: handleMePlease('#TF_LOCATION_CITY_ID#', '#TF_LOCATION_CITY_NAME#');

      Обработка javascript-события onTFLocationSetLocation

      Также после выбора местоположения генерируется javascript-событие "onTFLocationSetLocation", в которое передаётся DOM-объект выбранного местоположения. Пример обработчика:
      BX.addCustomEvent("onTFLocationSetLocation", function(response)
      {
          if (response.hasOwnProperty('location')) {
              console.log(response.location);
          }
      
          if (response.hasOwnProperty('content')) {
              console.log(response.content);
          }
      });

      Получение выбранного местоположения на сайте

      Выбранное местоположение сохраняется в сессию или куки (в зависимости от настроек) и может быть получено и использовано в любых местах сайта. Например, выведем регион и стран для текущего местоположения:
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Entity\Location;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')
          && $location = LocationFactory::buildByStorage())
      {
          echo $location->getId() . '<br>'; // ID местоположения
          echo $location->getCode() . '<br>'; // Код местоположения
          echo $location->getName() . '<br>'; // название местоположения
      
      
          if ($location->hasParent())
          {
              $parents = LocationFactory::buildParentsCollection($location);
              /** @var Location $parent */
              foreach ($parents as $parent)
              {
                  // выводим только регион и страну
                  if (in_array($parent->getType(), [Location::TYPE_REGION, Location::TYPE_COUNTRY]))
                  {
                      echo $parent->getId() . '<br>'; // ID родительского местоположения
                      echo $parent->getCode() . '<br>'; // Код родительского местоположения
                      echo $parent->getName() . '<br>'; // название родительского местоположения
                  }
              }
          }
      }
      
      $frame->end(); // для композитного режима
      
      Получение текущего местоположения:
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')) {
          $location = LocationFactory::buildCurrent();
          if ($location) {
              echo $location->getName();
          }
      }
      
      $frame->end(); // для композитного режима
      Получение местоположения по ip:
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')) {
          $location = LocationFactory::buildByIp('5.255.255.88'); //yandex.ru
          if ($location) {
              echo $location->getName();
          }
      }
      
      $frame->end(); // для композитного режима
      Получение местоположения по умолчанию для текущего сайта:
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')) {
          $location = LocationFactory::buildDefault();
          if ($location) {
              echo $location->getName();
          }
      }
      
      $frame->end(); // для композитного режима


      Склонение названия местоположения по падежам (бета)

      Чтобы получить склонение названия местоположения в выбранном падеже, надо передать соответствующую константу в метод getName() местоположения.

      $location = \TwoFingers\Location\Factory\LocationFactory::buildByStorage();
      
      echo $location->getName(); // Москва
      echo $location->getName(Location::CASE_ROD); // Москвы
      echo $location->getName(Location::CASE_DAT); // Москве
      echo $location->getName(Location::CASE_VIN); // Москву
      echo $location->getName(Location::CASE_TVOR); // Москвой
      echo $location->getName(Location::CASE_PRED); // Москве


      Получение информации из инфоблока в зависимости от местоположения

      При установке модуля будет создан инфоблок "Контент" в типе "Местоположения". В этом инфоблоке Вы можете создавать элементы и привязывать их к местоположениям. Обратите внимание, что с данным инфоблоком вы можете работать так же, как и со всеми остальными: заполнять все доступные поля, добавлять и удалять свойства (кроме системных LOCATION_ID и SITE_ID). Можно обращаться к нему как к обычному инфоблоку, а можно через специальную сущность:
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\ContentFactory;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')
          && $location = LocationFactory::buildByStorage())
      {
          $content = ContentFactory::buildByLocation($location);
          if ($content)
          {
              echo $content->getPhone() . '<br>';  // вывод значения свойства PHONE инфоблока "Местоположения" -> "Контент", магический метод
              echo $content->getPropertyValue('PHONE') . '<br>'; // тоже самое без магии
      
              echo $content->getPreviewText() . '<br>'; // вывод анонса, магический метод
              echo $content->getFieldValue('PREVIEW_TEXT') . '<br>'; // анонс без магии
      
              echo $content->getDomain(); // домен для перенаправления
      
              var_dump($content->getPriceTypes()); // получить доступные типы цен (только для старших редакций Битрикс)
              var_dump($content->getStores()); // получить доступные склады (только для старших редакций Битрикс)
      
      
              var_dump($content->getData()); // все поля и свойства привязанного элемента
          }
      }
      
      $frame->end(); // для композитного режима
      
      • Контент, к которому привязано местоположение по умолчанию, также будет выводиться по умолчанию.
      • Сначала выводит контент по умолчанию для текущего сайта, затем, если таковой не найден, контент, к которому привязано местоположение по-умолчанию для всех сайтов.


      Настройка автоматического редиректа на домены/поддомены для выбранных местоположений

      Редирект можно настроить для метоположений, добавленных в инфоблок "Контент" (тип "Местоположения"). Для этого элементу иноблока необходимо добавить домен в свойство "Домен".
      Элемент инфоблока обязательно должен быть связан с местоположением через свойство "ИД местоположения" или название.
      Предварительно желаемые домены необходимо добавить в инфоблок "Домены" (тип "Местоположения").


      Получение домена для перенаправления для местоположения
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')
          && $location = LocationFactory::buildByStorage())
      {
          echo $location->getDomain();
      }
      
      $frame->end(); // для композитного режима
      Редирект между доменами/поддоментам может быть заблокирован политикой CORS на сайте. Необходимо настроить эту политику самостоятельно!


      Пример работы с переменными без использования инфоблока

      Допустим, нам необходимо менять телефон в шапке сайта в зависимости от города. Привяжемся к названию города. Будем показывать один телефон для Москвы и другой телефон для всех остальных городов.
      use Bitrix\Main\Composite\BufferArea;
      use Bitrix\Main\Loader;
      use TwoFingers\Location\Factory\LocationFactory;
      
      $frame = new BufferArea("my_dynamic_area"); // для композитного режима
      $frame->begin(); // для композитного режима
      
      if (Loader::includeModule('twofingers.location')
          && $location = LocationFactory::buildByStorage())
      {
          if ($location->getName() == 'Москва')
              echo "+7 (495) 055-65-19";
          else
              echo "8 800 500 40 30";
      }
      
      $frame->end(); // для композитного режима


      Замена плейсхолдеров

      При включенной опции "Заменять плейсхолдеры" в настройке модуля, будут заменены:
      • #location_name#, #city_name# — название текущего местоположения;
      • #region_name# — название текущего региона, области, края, республики и т.п.;
      • #country_name# — название текущей страны;
      • #content_%код%# — значение поля или свойства с кодом %код% из привязанного элемента контента. Например, #content_preview_text# будет заменено на анонс, а #content_phone# — на значение свойства PHONE.
      Замена производится как в мета-тегах, так и в любом другом месте страницы.


      Обработка события afterLocationDetect

      Событие afterLocationDetect позволяет модифицировать местоположение после того, как оно было определено автоматически.

      Пример обработчика события, размещенного в файле init.php:
      use Bitrix\Main\EventManager;
      use TwoFingers\Location\Factory\LocationFactory;
      use TwoFingers\Location\Storage;
      
      EventManager::getInstance()->addEventHandler('twofingers.location', 'afterLocationDetect', function (){
          $location = LocationFactory::buildByStorage();
          if ($location->getName() == 'Троицк') {
              $newLocation = LocationFactory::buildByName('Москва');
              if ($newLocation) {
                  Storage::setLocation($newLocation);
              }
          }
      });
      
      Поддержка
      Мы можем оказать содействие в установке решения, а так же по вашему желанию добавить любой необходимый вам функционал.

      С нами можно свзяться по почте:  
      as@twofingers.ru

      Другие решения разработчика

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

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