GeoLocation2 для MODX Revolution 3.x

GeoLocation2 — компонент определяет город посетителя по ip и выводит список доступных городов.
Особенности
- определение города пользователя по ip
- справочник стран, регионов и городов в базе. Можно добавить и изменить нужную локацию под себя
- модалка подтверждения и смены города
- контакты, адрес и изображение в gl_data
- импорт и экспорт городов в csv
- Подключите репозиторий дополнений modstore
- Установите GeoLocation2
- Заполните страны, регионы и города в Компоненты → GeoLocation2
Сниппет GeoLocation2Current — Текущее состояние города и confirmed.
Сниппет GeoLocation2Modal — UI выбора и подтверждения города.
Сниппет GeoLocation2Location — Определение локации по IP.
Сниппет GeoLocation2 — Список активных городов.
Сниппет GeoLocation2Data — Контактные данные gl_data (вкладка «Данные»).
Примеры со стенда. Fenom. Если Bootstrap 5 нет в теме, у Initialize поставьте loadBootstrap => 1.
Пример вызова, текущий город
{set $city = '!GeoLocation2Current'|snippet:[
'asJson' => 1
]|fromJSON}
{$city|print}
(
[gl2_current_id] => 1
[gl2_current_name_ru] => Москва
[gl2_current_name_en] => Moscow
[gl2_display_name_ru] => Москва
[gl2_real_name_ru] => Москва
[gl2_default_id] => 1
[gl2_default_name_ru] => Москва
[gl2_prompt_done] => 0
[gl2_confirmed] => 0
[gl2_csrf] =>
[gl2_unknown_label] => не определён
[gl2_default_label] => По умолчанию
)Пример вызова, модалка выбора города{'!GeoLocation2Initialize' | snippet : ['loadBootstrap' => 1]}
{'!GeoLocation2Modal' | snippet : ['modalShow' => 1, 'modalId' => 'geolocation2Modal']}
<a href="#" class="gl2-open-modal">Открыть модалку</a>На стенде вопрос модалки: «Ваш город — Москва?», кнопки «Да, верно» и «Изменить город».Пример вызова, геолокация по IP
{'!GeoLocation2Location' | snippet : ['ip' => '8.8.8.8']}
{'!GeoLocation2Location' | snippet : ['ip' => '1.1.1.1']}Пример вызова, список городов
{'!GeoLocation2' | snippet : ['limit' => 10, 'sortby' => 'name_ru', 'sortdir' => 'ASC']}Поля записи города на стенде (Москва):
(
[id] => 1
[region_id] => 1
[name_ru] => Москва
[name_en] => Moscow
[lat] => 55.75583
[lon] => 37.61778
[okato] => 45000000000
[default] => 1
[active] => 1
)Пример вызова, контакты текущего города{'!GeoLocation2Data' | snippet : ['forCurrent' => 1, 'tpl' => 'tpl.GeoLocation2.data.current']}Управление локациями в админке
Компоненты → GeoLocation2: вкладки Страны, Регионы, Города, Данные.
На вкладке Города доступен импорт и экспорт csv.
На вкладке Данные: email, телефон, адрес, изображение. Поле class задаёт тип (GlCountry, GlRegion, GlCity), identifier: id записи.
Для сохранения нужен permission geolocation2_save.
Геолокация пользователя
Из коробки город определяется по ip через SxGeo (SxGeoCity.dat).
Стратегия задаётся настройкой geolocation2_detect_method:
- sxgeo: по ip, включено по умолчанию
- session: только сессия, без обращения к SxGeo
assets/components/geolocation2/vendor/sypexgeo/data/Обновление:
php core/components/geolocation2/bin/update-sxgeo.phpМожно повесить на cron или на задачу Scheduler geolocation2_update_sxgeo. Scheduler для работы компонента не нужен.
Примечание
Справочник городов вы заполняете сами. В список и поиск попадают города с флагом active. Город с флагом default подставляется, если посетитель закрыл модалку без выбора.
Ссылки
GeoLocation2, pdoTools, MiniShop3 и другие проекты экосистемы MODX развиваются открыто и доступны сообществу. При этом значительная часть работы над ними выполняется в свободное от коммерческих проектов время.
Если вы используете эти проекты в своих сайтах и магазинах, они помогают вам зарабатывать, экономить время разработки или просто хотите, чтобы MODX и его Open Source-экосистема продолжали развиваться — можно поддержать разработку донатом.
Даже небольшой регулярный донат помогает выделять больше времени на:
- развитие Open Source-проектов;
- выпуск новых версий и функциональности;
- исправление ошибок и технический долг;
- поддержку актуальных версий PHP и MODX;
- развитие документации;
- разбор issues и pull request'ов;
- создание новых бесплатных дополнений и инструментов.
- Поддержать разработку на Sponsr
- Поддержать разработку с помощью TBank
- Поддержать разработку с помощью Сбербанк
Open Source существует благодаря людям, которые не только используют проекты, но и помогают им становиться лучше.
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
0
Комментарии: 0