Основные возможности:
— автоопреление местоположения по ip-адресу, домену, сайту;
— доступен для всех редакций;
— автоматическая переадресация на домены/поддомены, в том числе и на сторонние домены;
— автозаполнение местоположения, в том числе и в оформлении заказа;
— адаптивное окно выбора городов с широкими настройками логики работы;
— автоматическое обновление базы IP адресов, а также — по кнопке в настройке модуля;
— попап подтверждения выбранного города, с возможностью изменить установленный город. Можно показывать только при первом заходе, а можно пока не закроет посетитель. Или вообще не показывать;
— богатые настройки кастомизации окон, под стилистику вашего сайта;
— возможность подмены данных на основе определенного города;
— отображение региона у городов с одинаковыми названиями;
— отображение «избранных» городов в нескольких местах модального окна на выбор;
— автозамена плейсхолдеров на текущее местоположение и привязанный контент;
— удобное api для отображение информации элементов иноблока в зависимости от местоположения;
— отдельный инфоблок (Местоположения -> Контент), элементы которого можно привязать к имени и id местоположения, а так же к id сайта. Что позволяет отображать любые геозависимые данные, а так же привязывать их к отдельным сайтам. Соответствующий элемент легко получить с помощью api модуля. Описание api на вкладке «Установка»;
— ядро модуля на d7;
— поддержка композита.
Данные о местоположении автоматически вставляются в поле с типом «Местоположение» в процессе оформления заказа. Так же модуль может заменить стандартный шаблон компонента выбора местоположения на свой, гораздо более удобный.
Контент с привязкой к местоположению — функции для CEO оптимизации
С помощью нашего модуля можно отображать контент привязанный к местоположению пользователя сайта.
Для каждого города в отдельности вы можете прописать необходимые данные, тайтлы, дескрипшены, телефоны, варианты доставок и другие необходимые геозависимые данные.
Решение поддерживает передачу в компонент оформления заказа выбранный город сразу при загрузке страницы — выбранный город сразу применяется для показа вариантов доставки и оплаты с ограничениями по местоположениям.
Пример: При заходе пользователя на сайт город автоматически определился, добавляем товар в корзину и переходим в оформление заказа. На странице оформления заказа будет указан определенный город и доступные для города способы доставки и оплаты.
Модуль работает на основе базы данных Sypex Geo и не делает запросы на сторонние сервисы, за счёт чего скорость определения местоположения гораздо выше. Также все запросы к базе данных местоположений кешируются, что тоже существенно увеличивает скорость работы.
Модуль работает на всех редакциях!
Для редакций «Бизнес» и «Малый бизнес» список населенных пунктов берется из Местоположений модуля «Интернет-магазин». На младших редакциях по-умолчанию выводится список городов для России и Украины из внутренней базы решения.
- Улучшена совместимость с новыми шаблонами оформления заказа, а также шаблонами от Аспро
- Добавлена поддержка заголовка X-Real-IP для корректного определения ip-адреса в случае, если на сервер они подменяются
- Обновлена база местоположений
- Исправлены мелкие ошибки и неточности
- Обновлена база местоположений
- Исправлены ошибки при установке, возникавшие, если на сервере не был установлен curl
- Обновлена база местоположений
- Добавлена возможность задавать местоположение по-умолчанию для домена/поддомена, а также возможность задавать порядок определения местоположения: сначала по ip-адресу, а затем по домену, или наоборот
- Название домена перенесено в название элемента инфоблока. Отдельное свойство для названия удалено. Название теперь следует задавать без протокола (https://, http://). Для протокола добавлена отдельная галочка. Все старые домены будут сконвертированы в новый формат.
- Добавлена возможность отключать окно подтверждения после редиректа
- Переработан первый таб настроек модуля: настройки доменов/поддоменов вынесены в отдельный блок
- Разработчикам: добавлено событие beforeLocationDetect, которое вызывается на каждом хите перед началом логики определения местоположения. Можно написать обработчик для указания своего местоположения.
- Улучшена поддержка английского языка
- Обновлена база местоположений
- исправлены мелкие ошибки и неточности
- обновлена база местоположений
- исправлениа ошибка 'Undefined constant "CURLPROXY_HTTP"' в php 8
- исправлениы прочие найденные оишбки
- обновлениа база местоположений
- Добавлена возможность отключения определения местоположения по ip-адресу
- Добавлена возможность отключения установки местоположения по-умолчанию в случае, если его не удалось определить по ip-адресу
- Обновлена база местоположений
- Повышена безопасность хранения cookie
- Исправлены найденные ошибки
- Обновлена база местоположений
- Исправлена ошибка, из-за которой не выводились родительские регионы в редакциях без Интернет-магазина
- Исправлены другие найденные ошибки
- Удалены некоторые методы, давно помеченные как устаревшие
- Обновлена база местоположений
- Исправлен баг, из-за которого при многосайтовости на подпапках редирект мог происходить на неправильный адрес
- Актуализирована база местоположений
- Актуализирована база местоположений
- Исправлены ошибки при установке
- Исправлены прочие найденные ошибки
- Исправлена ошибка, возникавшая при отсутствующей/поломанной базе местоположений
- Исправлена ошибка, из-за которой иногда не добавлялось свойство "Склад"
- База местоположений обновлена до последней актуальной версии
- Для более корректной работы, при склонении местоположения добавлена возможность указать род
- Обновлена база местоположений
- Незначительные исправления
- к иб "Контент" добавлены свойства для привязки типов цен и складов
- для главного модуля добавлен обработчик геолокации TwoFingers Location. Его можно подключить как стандартный при определении местоположения при оформлении заказа. А также использовать для других целей геолокации.
- добавлена возможность склонять название местоположений по падежам
- обновлена база местоположений
- доработана совместимость с php 8.1
- добавлено св-во "адрес" в иб контент
- сво-во "телефон" в контенте сделано множественным
- обновлена база местоположений
- исправлены найденные ошибки
- Добавлен контент по-умолчанию для всех сайтов
- В контент сразу добавлено свойство телефон
- исправлены возможные ошибки при обновлении базы, если сервис Sypex Geo недоступен
- исправлены другие мелкие ошибки
- перезалита база местоположений
- обновлена база местоположений
- исправлены мелкие ошибки
- отключена переадресация для поисковых роботов
- обновлена база местоположений
- исправление ошибок при установке
- исправление ошибок при отсутствии местоположений на сайте
- правки совместимости шаблона
- исправление прочих мелких ошибок
- рефакторинг
- Значительно расширены возможности кастомизации внешнего вида попапа выбора местоположений
- добавлена возможность выбора версии подключаемой библ-ки jQuery
- при открытии окна выбора местоположений курсор автоматически ставится в поле ввода
- изменены настройки логики появления попапа подтверждения города
- исправлены найденные ошибки
- Уточнено определение местоположений с одинаковыми названиями
- Более детальное описание местоположений с одинаковым названием (область, район, город)
- При выборе местоположения в списке теперь также возвращается и контент и его можно использовать в обработке js-события onTFLocationSetLocation
- Ускорена загрузка списка местоположений
- Теперь могут определиться только те местоположения, которые есть на сайте (в интернет-магазине или инфоблоке)
- Улучшена синхронизация местоположений в оформлении заказа
- Обновлена база для гео-локации
- Отключена возможность задать местоположение по умолчанию сразу для всех сайтов. Теперь оно задаётся только для каждого сайта отдельно (возможность оставлена в режиме совместимости)
- Отключена поддержка модуля "Интернет магазин" версий младше 16.0.26
- Удалены некоторые методы, которые долгое время были помечены как устаревшие
- Исправлены ошибки при переадресации между доменами
- Исправлены ошибки установки
- Исправлены проблемы совместимости с шаблонами от Аспро
- Улучшена совместимость со старыми версиями шаблона компонента определения местоположений (в режиме совместимости)
- Исправлена ошибка автоматического обновления базы местоположений в режиме совместимости
- Добавлена возможность работать с группами местоположений
- Добавлена возможность обновлять базу местоположений через прокси
- Исправлена ошибка отображения местоположения в кодировке сайта windows-1251
- Исправлены незначительные ошибки
- Обновлена база местоположений
- исправление ошибок
- удалён класс устаревший класс \TwoFingers\Location\Settings, используйте вместо него \TwoFingers\Location\Options
- удалены некоторые прочие устаревшие методы
- обновлена база местоположений
- рефакторинг
— обновлена база местоположений
- добавлена настройка - перезагружать страницу после подтверждения местоположения
- добавлено автоматическое обновление базы местоположений, работает только если агенты переведены на крон
- добавлена возможность менять отступы и размеры шрифтов для попапа подтверждения местоположения отдельно для декстоп- и мобильной версии.
- добавлена возможность задать шрифт для текста в попапе подтверждения
- добавлена возможность задать ширину попапа подтверждения на десктопе
- добавлено управление с клавиатуры: прокрутка списка местоположения и закрытие папа выбора местоположений
- изменена анимация загрузки папапа выбора местоположений
- другие незначительные визуальные доработки
- исправлены ошибки при установке/обновлении
- исправлены прочие найденные ошибки
- обновлена база местоположений
- рефакторинг
- добавлены отдельные настройки отступов для каждой стороны списка местоположений
- добавлен выбор шрифта заголовка окна выбора местоположений
- доработка административной части
- доработка внешнего вида
- обновлена база местоположений
- добавлена поддержка регионов и стран при привязке к контенту
- обновлена база местоположений
- улучшено определение местоположений
- переработана страница настроек
- исправлена ошибка, из-за которой в любом случае подключался jquery из модуля, если компонент на странице размещался два и более раз
- прочие незначительные изменения, исправления и рефакторинг
- добавлено действие, если для местоположения не задан свой домен
- исправлена ошибка, из-за которой иногда не удавалось сменить местоположение после переадресации на другой домен
- исправлена ошибка, из-за которой не происходила автоматическая переадресация при заходе на поддомен, привязанный к местоположению
- исправлены ошибки совместимости в прошлыми версиями
- исправлены ошибки при установке
- исправлены прочие найденные ошибки
- в оформлении заказа доработана синхронизация местоположений, если используется стандартный компонент выбора. Теперь местоположения также синхронизируются в направлении стандартный компонент — модуль Улучшенных Местоположений
- исправлена ошибка, из-за которой в новых версиях Битрикс не обновлялся индекс, если он был привязан к доставке или оплате
- удалены некоторые устаревшие методы
- восстановлена автозамена плейсхолдеров
- обновлена база местоположений
- исправлена ошибка неработающих чекбоксов в ИБ Местоположения (для редакция без "Инетрнет-магазина")
- небольшие прочие оптимизации
- добавлена настройка отступа списка от края окна для десктоп и моб. версии
- исправлено "запоминание" местоположения
- восстановлена совместимость катомизированных шаблонов со последними версиями модуля (необходимо включить режим совместимости)
- исправлены прочие незначительные ошибки и неточности
- исправлена ошибка, из-за которой иногда не устанавливались местоположения
- добавлены настройки ограничения максимального кол-ва местоположений в списке, максимального кол-ва результатов поиска.
- настройка "Текст перед ссылкой" перенесена в раздел "Внешний вид" вкладки "Окно выбора города"
- настройка "Добавлять деревни в список местоположений" перенесена на вкладку "Общие настройки"
- добавлена возможность менять ширину попапа со списком местоположений на дектопе
- добавлена возможность менять размер шрифта заголовка, поля ввода и местоположений в попапе со списком
- легкий редизайн попапа со списком местоположений
- улучшена инициализация в композитном режиме и при включенных оптимизаторах
- актуализирована база местоположений
- частично удалены устаревшие классы и методы
- удалён старый шаблон old
- исправлена ошибка с заменой плейсхолдеров в случае, если местоположение было неопределено
- оптимизирован расход памяти
- исправлены найденные ошибки и неточности
- добавлена возможность прикреплять к элементам ИБ Контент не только города, но и области со странами
- незначительные исправления и доработки
- добавлено сохранение местоположений при редиректе между доменами;
- добавлены новые свойства для множественной привязки местоположений магазина/инфоблока к контенту;
- для местоположений в редакции ниже Малый Бизнес добавлена привязка к сайтам;
- добавлена возможность задать местоположение по умолчанию отдельно для каждого сайта;
- изменена логика определения контента по умолчанию. Теперь контент по умолчанию этот тот, который привязан к местоположению по умолчанию для текущего сайта;
- добавлен вывод даты последнего ручного обновления базы;
- список выводимых местоположений ограничивается местоположениями для текущего сайта. Если таковых нет, то всеми местоположениями;
- добавлена возможность ограничить определяемые местоположения списком выводимых;
- добавлена визуальная настройка вывода избранных местоположений в списке: над и под поиском, слева и справа от местоположений;
- небольшие визуальные доработки;
- исправление ошибок и рефакторинг
- Добавлены новые сущности 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 удалены
- при локальном поиске добавлен вывод региона у городов с одинаковыми названиями
- при локальном поиске более подходящие местоположения выводятся в первую очередь
- переработана верстка попапа выбора местоположений, улучшена его мобильная версия
- исправлена кодировка местоположений для редакций ниже "Малый Бизнес" в windows-1251
- сортировка избранных местоположений для редакций ниже "Малый Бизнез" теперь осуществляется по индексу сортировки, а не по алфавиту
- обновлена база местоположений
- исправлены ошибки в верстке мобильной версии
- исправлены прочие найденные ошибки и неточности
- добавлена возможность задавать местоположение по-умолчанию, которое будет выводиться в случае, если не удалось определить местоположение по ip
- для редакций ниже Малый Бизнес список местоположений сконвертирован в элементы инфоблока. Страны и регионы реализованы в виде разделов этого инфоблока. Появилась возможность редактировать список местоположений
- для редакций ниже Малый Бизнес добавлена возможность задавать избранные и местоположение по-умолчанию (задается в элементах инфоблока)
- определение текущего местоположения вынесено в пролог. После определения вызывается событие afterLocationDetect
- добавлена поддержка отдельных местоположений для каждого сайта
- добавлена возможность ограничить определяемые местоположения списком местоположений на сайте
- оптимизирована работа в композитном режиме
- добавлена проверка наличия библиотеки curl на сервере (необходима для автоматического обновления базы местоположений)
- обновлена база местоположений
- прочие незначительные исправления и доработки
- исправлена ошибка, из за которой при некоторых настройках кодировки на сайте не загружался список городов
- исправлены найденные ошибки работы с кодировкой windows-1251
- исправлены другие незначительные ошибки и неточности
- Исправлена ошибка верстки при поиске местоположений
- Исправлены другие незначительные ошибки и неточности
- Исправлена ошибка, из-за которой ломалась верстка при поиске местоположений, в имени которых сожержались кавычки
- Исправлено иногда возникающее дублирование результатов при поиске местоположений без использования ajax
- Актуализирована база местоположений
- Исправление ошибок
- Переадресация на домены/поддомены "из коробки"
- Обновление базы местоположений по кнопке в админке
- Ускорение загрузки списка городов
- Возможность загрузки базы местоположений целиком в память для более быстрой геолокации (требуется больше памяти)
- Правки верстки списка в десктопной и мобильной версиях
- Исправлена ошибка с кодировкой для сайтов в windows-1251
- При смене местоположения в оформлении заказа индекс, службы доставки и оплаты теперь перезагружаются мгновенно, а не после перехода переходе между шагами оформления
- Доработано окно подтверждения:
- Добавлено новое поведение: автоматическое открытие, если не удалось определить местоположение и пока не будет закрыто пользователем
- Добавлены настройки кнопки отмены/перехода к выбору городов
- Улучшено отображение в мобильной версии
- Исправлен вылет за границы окна браузера
- Скорректирована работа с фиксированным хедером
- Актуализирована геобаза
- Доработано апи, добавлена функция для получения элемента инфболока, привязанного к местоположению на основе данных хранилища
- Исправлены мелкие ошибки и недочеты
- Внесены небольшие правки внешнего вида
- Для ускорения загрузки созданы минифицированные версии стилей и скриптов в шаблоне
- Добавлена возможность ajax-загрузки местоположений по поисковому запросу. Это позволяет ускорить открытие списка. Сразу можно отображать как полный список, так и только города или только избранные местоположения.
- Обновлён дизайн списка местоположений в шаблоне по-умолчанию.
- Переработан попап подтверждения местоположения для мобильной версии сайта
- Исправлено отображение местоположений по-умолчанию в настройках модуля
- Другие незначительные исправления и улучшения
- Добавлена возможность хранить местоположение в cookie. Это позволяет сохранять его и после закрытия браузера.
- Добавлена возможность в списке местоположений выводить деревни (для местоположений 2.0)
- добавлена настройка, позволяющая перезагружать страницу после выбора местоположения
- прочие незначительные исправления и доработки
- Добавлен скролл в избранные местоположения, позволяет просматривать их, если их много
- Исправлена ошибка, из-за которой иногда не создавался тип инфоблоков "Местоположение" и инфоблок "Контент" в нём
- Небольшие правки верстки в десктопной и мобильной версиях
- Добавлена возможность автоматически подставлять индекс для выбранного местоположения, полезно для служб доставки, которые считают по индексу
- Добавлена проверка наличия js-библиотеки BX для стандартного шаблона. Если библиотека не подключена, то событие "onTFLocationSetLocation" вызвано не будет
- В сессию добавлены так же ид и названия определившегося региона и страны. При изменении местоположения они тоже автоматически меняются в сессии. Методы для их получения см. на вкладке "Установка"
- Исправлена подгрузка стилей в компоненте избранных местоположений в админке при включенной опции "Подключить шаблон выбора местоположения"
- Исправлены ошибки при подстановке значений в плейсхолдеры #TF_LOCATION_CITY_ID# и #TF_LOCATION_CITY_NAME# для события, которое вызывается после смены города
- доработан шаблон компонента определения местоположения для корректной работы в композитном режиме
- добавлена настройка для отображения попапа подтверждения местоположения: показывать, пока не будет закрыт пользователем
- добавлена настройка цвета основной кнопки в попапе подтверждения местоположения при наведении курсора
- исправлено отображение выбранной цветовой темы в шаблоне по-умолчанию
- Добавлен инфоблок (Местоположения -> Контент), элементы которого можно привязать к имени и id местоположения, а так же к id сайта. Соответствующий элемент легко получить с помощью api модуля. Описание api на вкладке "Установка"
- Переработан шаблон компонента выбора местоположений, убраны important-ы и каскады стилей, единицы измерения заменены на относительные, оптимизирован javascript-код.
Для лучшей совместимости старый шаблон тоже оставлен, теперь он называется 'old'. В случае необходимости Вы можете продолжить его использовать, явно указав в вызове компонента. Чтобы продолжить использование старого шаблона при оформлении заказа, выполните в командной строке php код COption::SetOptionString('twofingers.location', 'sale-order-template', 'old'); . - В новый шаблон добавлен миниатюрный попап подтверждения местоположения
- В настройках модуля теперь можно задавать текст, и дополнительные визуальные настройки попапов
- Ядро модуля переведено на d7, старые классы пока оставлены для совместимости, они помечены как deprecated и в будущих версиях будут удалены.
- Исправлена ошибка появления названия города в стандартном компоненте выбора местоположений при оформлении заказа
- Исправлены незначительные ошибки в кешировании
- Старые события компонента оформления заказа больше не поддерживаются, в место них используются их новые аналоги.
- Код модуля оптимизирован для лучшей совместимости различными настройками хостингов.
- Обновлены базы ip-адресов.
- Прочие доработки, усовершенствования, рефакторинг и исправление мелких ошибок
- Для ускорения отклика добавлено кеширование запросов к базе
- Добавлено js-событие "onTFLocationSetLocation", вызываемое после выбора местоположения (пример использования см. на вкладке "Установка")
- Исправлено отображение списка местоположений для кодировки cp1251
- Обновлена внутренняя библиотека jqury до версии 3.3.1
- Удалена внутренняя библиотека fancybox, т.к. она больше нигде не используется
- Оптимизирован код вызова всплывающего окна с выбором местоположений
- Для местоположений 2.0 в админку добавлен вывод избранных местоположений, а так же добавлена ссылка для быстрого их задания
- Исправлена ошибка сохранения избранных местоположений для несконвертированной базы
- Исправлены ошибки безопасности при загрузке шрифтов
- Рефакторинг и прочие незначительные доработки и исправления
- Исправлена ошибка, иногда возникавшая при выборе служб доставки
- Исправлена корректная обработка не заполненного местоположения при оформлении заказа
- Исправлена ошибка, из-за которой могло не закрываться окно после выбора местоположений
- Добавлена поддержка всех версий Битрикс
- Добавлена полная поддержка местоположений 2.0, в том числе в компоненте sale.order.ajax
- Актуализирована база ip
- Добавлена вывод регионов для одинаковых городов
- Доработан внешний вид
- В младших версиях Битрикс по-умолчанию выводится список городов для России и Украины
- исправление работы демо-режима
- исправление отображения избранных местоположений
- поддержка адаптивного режима
- предподстановка местоположения при первом заходе в оформление заказа
- исправление мелких проблем
- обновление базы определения по IP
- исправление проблемы выполнения произвольного js после выбора города
- другие мелкие исправления
- исправлена ошибка незаполненного поля LOCATION при оформлении заказа на старых шаблонах оформления заказа
- исправлена проблема настроек избранных изображений и интернет-магазина в бекофисе битрикса после установки модуля
- исправлена проблема в оформлении заказа (не прикреплялось к заказу выбранное местоположение)
- улучшен показ определенных по IP местоположений, если они не нашлись в местоположениях
- обновлена подключаемая по настройке версия jquery до 2.1.4
Решение устанавливается стандартно. После установки Вы будете перенаправлены в интерфейс настройки модуля.
Для корректной работы модуля на редакциях «Бизнес» и «Малый бизнес» необходимо, чтобы были загружены местоположения в базу модуля «Интернет-магазин» 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(); // для композитного режима |
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
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.