[GeoLocation] - геолокации пользователя
[GeoLocation] — компонент реализует функционал геолокации. Используется библиотека SxGeo.
Определение страны, региона, города.
пример можно посмотреть тут — location.vgrish.ru/index.php?id=7
загрузка стран
Необходимо зайти на вкладку страны и выполнить загрузку. Затем активировать необходимые.
загрузка регионов
Необходимо зайти на вкладку регионы и выполнить загрузку. Затем активировать необходимые.
загрузка городов
Необходимо зайти на вкладку города и выполнить загрузку. Затем активировать необходимые.
данные
Каждой локации можно добавить данные, телефон, email, адрес
доступные плейсходеры
После установки пакета будут доступны следующие плейсходеры
с префиксом current — плейсходеры информирующие о выбранном местоположении пользователя.
Необходимые данные вы можете использовать для своих нужд. Показывать конкретному посетителю нужный телефон/ email для связи, направлять письма от посетителей на нужный email и тд.
сниппет gl.location
Выводит объекты геолокации.
Выводит модальное окно с выбором геолокации.
— вывести элемент для вызова модального окна. Дефолтный скрипт срабатывает при клике на элементе с классом gl-current-select
пример
пример
пример можно посмотреть тут — location.vgrish.ru/index.php?id=7
Код на github, создавайте isuue
Компонент бесплатный, буду рад donation
Определение страны, региона, города.
пример можно посмотреть тут — location.vgrish.ru/index.php?id=7
загрузка стран
Необходимо зайти на вкладку страны и выполнить загрузку. Затем активировать необходимые.
загрузка регионов
Необходимо зайти на вкладку регионы и выполнить загрузку. Затем активировать необходимые.
загрузка городов
Необходимо зайти на вкладку города и выполнить загрузку. Затем активировать необходимые.
данные
Каждой локации можно добавить данные, телефон, email, адрес
доступные плейсходеры
После установки пакета будут доступны следующие плейсходеры
[gl.check] => 1
[gl.real.city.id] => 543460
[gl.real.city.lat] => 56.35722
[gl.real.city.lon] => 41.31917
[gl.real.city.name_ru] => Ковров
[gl.real.city.name_en] => Kovrov
[gl.real.region.id] => 826294
[gl.real.region.name_ru] => Владимирская область
[gl.real.region.name_en] => Vladimirskaya Oblast'
[gl.real.region.iso] => RU-VLA
[gl.real.country.id] => 185
[gl.real.country.iso] => RU
[gl.real.country.lat] => 60
[gl.real.country.lon] => 100
[gl.real.country.name_ru] => Россия
[gl.real.country.name_en] => Russia
[gl.real.data.class] => glCity
[gl.real.data.phone] => 8999999999
[gl.real.data.email] => email@mail.ru
[gl.real.data.address] =>
[gl.current.data.class] => glCity
[gl.current.data.phone] => 84923222222
[gl.current.data.email] => kovrov@mail.ru
[gl.current.data.address] => ковров
[gl.current.city.id] => 543460
[gl.current.city.lat] => 56.35722
[gl.current.city.lon] => 41.31917
[gl.current.city.name_ru] => Ковров
[gl.current.city.name_en] => Kovrov
[gl.current.region.id] => 826294
[gl.current.region.name_ru] => Владимирская область
[gl.current.region.name_en] => Vladimirskaya Oblast'
[gl.current.region.iso] => RU-VLA
[gl.current.country.id] => 185
[gl.current.country.iso] => RU
[gl.current.country.lat] => 60.00
[gl.current.country.lon] => 100.00
[gl.current.country.name_ru] => Россия
[gl.current.country.name_en] => Russia
[gl.set] => 1
с префиксом real — плейсходеры информирующие о реальном местоположении пользователя.с префиксом current — плейсходеры информирующие о выбранном местоположении пользователя.
Необходимые данные вы можете использовать для своих нужд. Показывать конкретному посетителю нужный телефон/ email для связи, направлять письма от посетителей на нужный email и тд.
сниппет gl.location
Выводит объекты геолокации.
- class — Имя класса для выборки. По умолчанию, «glCity».
- limit — Ограничение количества результатов выборки. Можно использовать «0».
- offset — Пропуск результатов от начала.
- sortby — Любое поле для сортировки.
- sortdir — Направление сортировки: по убыванию или возрастанию.
- where — Массив дополнительных параметров выборки, закодированный в JSON.
- sortBy — Поле сортировки.
- sortDir — Направление сортировки.
- tpl — Имя чанка для оформления.
Выводит модальное окно с выбором геолокации.
- class — Имя класса для выборки. По умолчанию, «glCity».
- modalShow — Показать модальное окно.
- jqueryJs — Файл с jquery.js для подключения на фронтенде.
- frontendCss — Файл с css стилями для подключения на фронтенде.
- frontendJs — Файл с javascript для подключения на фронтенде.
— вывести элемент для вызова модального окна. Дефолтный скрипт срабатывает при клике на элементе с классом gl-current-select
пример
<p>
Ваш город:
<span class="gl-current-select">[[!+gl.current.city.name_ru]]</span>
</p>
— вызвать сниппет gl.modalпример
[[!gl.modal?
&class=`glCity`
]]
пример можно посмотреть тут — location.vgrish.ru/index.php?id=7
Код на github, создавайте isuue
Компонент бесплатный, буду рад donation
Поблагодарить автора
Отправить деньги
Комментарии: 326
Зачем называть дополнение 2 буквами?
Чтобы потом как можно сложнее было гуглить ответы на вопросы по нему? Почему не назвать пакет GeoLocation или даже sxGEO? Например, это топик уже нельзя найти по запросу gl.
Сразу представляется диалог:
Как скоро мы придём к пакету XX такими темпами?
Чтобы потом как можно сложнее было гуглить ответы на вопросы по нему? Почему не назвать пакет GeoLocation или даже sxGEO? Например, это топик уже нельзя найти по запросу gl.
Сразу представляется диалог:
— Установи gl!
— Чего?
— Ну, gl, то есть GeoLocation
— А чего бы сразу так и не сказать?
Как скоро мы придём к пакету XX такими темпами?
Фиг знает с чего меня дернуло все сокращать…
Сейчас переименую.
Сейчас переименую.
Спасибо!
переименовал, спасибо!
Отличное решение. А подскажите, как собрать транспортный пакет из файлов на github? Иликак установить с github?
мои дополнения доступны в репозитории, там же можно и скачать.
Имя — RStore.pro
Url сервиса — http://rstore.pro/extras/
или подождите немного, и компонент будет доступен в modstore.pro
Когда можно ждать в modstore.pro?
скоро, скоро…
просто самостоятельно у меня не вышло загрузить, наверно ограничение на размер пакета сработало…
просто самостоятельно у меня не вышло загрузить, наверно ограничение на размер пакета сработало…
Необычный прием — сниппетом выводить модальное окно. :)
что в этом необычного?
Володь, просто мне показалось (после прочтения заметки), что ты каким-то образом нашел способ вызывать модальное окно через сниппет. Хотел прибрать этот способ в свой багаж знаний. Но глянул код и понял, что я все неправильно понял. :) Сорри за тафталогию.
Пытаюсь разобраться как выставить коэффициент для цен в прайс-листе для разных городов. Подскажите пожалуйста как как в сниппете задать переменную определяющую реальное [gl.real.city.id]
и выбранное положение пользователя [gl.current.city.id]?
что то вроде
$id = "{$city['city']['id']}";
и выбранное положение пользователя [gl.current.city.id]?
что то вроде
$id = "{$city['city']['id']}";
все данные лежат в сессии
$_SESSION['gl']
Здравствуйте! При первом появлении модального окна с выбором геолокации «Ваш город — По умолчанию?»
А как сделать так чтобы вместо «По умолчанию» был реальный?
А как сделать так чтобы вместо «По умолчанию» был реальный?
думаю заменить на плейсходер с реальным городом — gl.real.city.name_ru
Действительно=)Спасибо.
Все таки не очень понимаю логику работы компонента.
Я подставляю в tpl.gl.modal вместо «Ваш город — [[+gl.current.city.name_ru]]» => «Ваш город — [[+gl.real.city.name_ru]]»
Посетитель видит свой город и нажимает «ДА». Но в итоге в [[+gl.current.city.name_ru]] остается «По умолчанию».
Зачем нужна геолокация «По умолчанию»? Вы не подскажите как мне при первом посещений записать в current значения real?
Помогите разобраться, пожалуйста.
Я подставляю в tpl.gl.modal вместо «Ваш город — [[+gl.current.city.name_ru]]» => «Ваш город — [[+gl.real.city.name_ru]]»
Посетитель видит свой город и нажимает «ДА». Но в итоге в [[+gl.current.city.name_ru]] остается «По умолчанию».
Зачем нужна геолокация «По умолчанию»? Вы не подскажите как мне при первом посещений записать в current значения real?
Помогите разобраться, пожалуйста.
Присоединяюсь к вопросу Михаила, замена плейсхолдеров в чанках ничего не изменила, как выводилось «По умолчанию» так и выводится.
В описании сказано «Определение страны, региона, города.» — это значит он автоматом по IP должен это делать. Он не делает, как бороться?
В описании сказано «Определение страны, региона, города.» — это значит он автоматом по IP должен это делать. Он не делает, как бороться?
надо посмотреть в чем дело. Пока нет времени, но посмотрю обязательно.
пробуйте обновится, изменения касаются дефолтного чанка tpl.gl.modal
теперь он выглядит так — github.com/vgrish/gl/blob/master/core/components/gl/elements/chunks/chunk.modal.tpl
по умолчанию выводится — по умолчанию, ежели в активном списке локаций есть местонахождение пользователя то выводится сразу оно, по клику да подставляется его значение.
теперь он выглядит так — github.com/vgrish/gl/blob/master/core/components/gl/elements/chunks/chunk.modal.tpl
по умолчанию выводится — по умолчанию, ежели в активном списке локаций есть местонахождение пользователя то выводится сразу оно, по клику да подставляется его значение.
Обновился, но изменений не заметил. По умолчанию выводится — по умолчанию.
Да и сломалось само окно для ввода города. Скриншот joxi.ru/ZrJYMpjF1g971A
Да и сломалось само окно для ввода города. Скриншот joxi.ru/ZrJYMpjF1g971A
Может попробовать снести компонет и установить заново? Но тогда наверное пропадут все созданные в админке геолокации с прописанными свойствами?
попробуй переустановить, пропасть ниче не должно.
вот у меня стоит обновленная версия, точнее только поставил самую последнюю, какая была… все-равно задаюсь тем же вопросом (
Сделал не правильно но работает
Просто скрипт добавил прямо в модальное окно )))))
Просто скрипт добавил прямо в модальное окно )))))
<script>
if($('#gladdressreal').html() == "По умолчанию") {
$('.gl-current-select').html("[[!+gl.real.city.name_ru]]");
}
</script>
Пошел по тому же пути тк дельного ответа не нашел. Сделал через скрипты)
это вставляем туда, где хотим отобразить город —
это вставляем туда, где хотим отобразить город —
<div id="citylocation"></div>
а это куда-нибудь в html<script>
if ([[!+gl.current.city.id]] == 1) var citylocation = " [[!+gl.real.city.name_ru]] ";
else var citylocation = " [[!+gl.selected.city.name_ru]] ";
document.getElementById("citylocation").innerHTML = citylocation;
</script>
Теперь по умолчанию показывает real город, а после выбора города, меняется на выбранный
Зачем? Если я замею потом город, то он все равно будет показывать мой реальный город? Где логика?)
При первом входе снниппет должен показывать Реальный город, а не по умолчанию, а при смене этого города показывать тот город который я выбрал…
Сейчас работает так — я заходу, пишет ваш город «по умолчанию..» я хочу его сменить, нажимаю, меня спрашивают — ваш город по умолчанию?) я говорю ДА… и никаких изменений… т.е он не определяет мой город?)
Хотя плейсхолдер real нормально показывает мой город. Что то ту не так…
Как сделать, чтоб при первом заходе показывало REAL, и при нажатии на кнопку ДА записывало этот город в CURRENT? Сэйчас это не работает… =\
P.S. Еще можно сделать, если по каким-то причинам город определить не удалось, указывать в настройках дефолтный город.
При первом входе снниппет должен показывать Реальный город, а не по умолчанию, а при смене этого города показывать тот город который я выбрал…
Сейчас работает так — я заходу, пишет ваш город «по умолчанию..» я хочу его сменить, нажимаю, меня спрашивают — ваш город по умолчанию?) я говорю ДА… и никаких изменений… т.е он не определяет мой город?)
Хотя плейсхолдер real нормально показывает мой город. Что то ту не так…
Как сделать, чтоб при первом заходе показывало REAL, и при нажатии на кнопку ДА записывало этот город в CURRENT? Сэйчас это не работает… =\
P.S. Еще можно сделать, если по каким-то причинам город определить не удалось, указывать в настройках дефолтный город.
присоединяюсь к вопросу.
Павел, вы смогли победить?, я сижу уже и с минут 20 туплю над этим всем добром…
Павел, вы смогли победить?, я сижу уже и с минут 20 туплю над этим всем добром…
Павел, получилось ли решить проблему? Если да, то как?
Нашел ответ ниже по коду:
modx.pro/components/7294#comment-85971
modx.pro/components/7294#comment-85971
Здравствуйте!
Подскажите как исправить?
При попытке загрузить страну, город выдает ошибку:
Код: 200 OK
Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in .../public_html/core/model/modx/modconnectorresponse.class.php:175 Stack trace: #0 [internal function]: PDO->__sleep() #1.../public_html/core/model/modx/modconnectorresponse.class.php(175): session_write_close() #2 .../public_html/core/model/modx/modconnectorrequest.class.php(82): modConnectorResponse->outputContent(Array) #3 .../public_html/core/model/modx/modconnectorrequest.class.php(69): modConnectorRequest->prepareResponse(Array) #4 .../public_html/assets/components/gl/connector.php(29): modConnectorRequest->handleRequest(Array) #5 {main} thrown in .../public_html/core/model/modx/modconnectorresponse.class.php on line 175
Подскажите как исправить?
При попытке загрузить страну, город выдает ошибку:
Код: 200 OK
Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in .../public_html/core/model/modx/modconnectorresponse.class.php:175 Stack trace: #0 [internal function]: PDO->__sleep() #1.../public_html/core/model/modx/modconnectorresponse.class.php(175): session_write_close() #2 .../public_html/core/model/modx/modconnectorrequest.class.php(82): modConnectorResponse->outputContent(Array) #3 .../public_html/core/model/modx/modconnectorrequest.class.php(69): modConnectorRequest->prepareResponse(Array) #4 .../public_html/assets/components/gl/connector.php(29): modConnectorRequest->handleRequest(Array) #5 {main} thrown in .../public_html/core/model/modx/modconnectorresponse.class.php on line 175
Вопрос снят. Не выключил Register_Globals в php.ini
Добрый день! Мне необходимо отправлять письмо об изменении статуса заказа в minishop2 на [gl.current.data.email]. Не подскажите как это реализовать? Нашел функцию changeOrderStatus в minishop2.class.php. Но не знаю как получить [gl.current.data.email] чтобы подсунуть его в sendEmail.
Добрый вечер.
Или написать плагин на changeOrderStatus или же расширить класс заказа minishop2 и в нем менять почту.
Или написать плагин на changeOrderStatus или же расширить класс заказа minishop2 и в нем менять почту.
А как мне получить [gl.current.data.email] в классе заказа minishop2?
в сессии посмотрите
$_SESSION['gl']
Спасибо! [gl.current.data.email] лежит тут $_SESSION['gl']['opts']['current']['data']['email']
Некоторые названия на транслите, это с SxGeo такое подтягивается?
данные да с SxGeo
Для тех у кого с ошибками работает модуль и вы не знаете как починить:
Проверьте свой .htaccess на строчку «AddDefaultCharset UTF8». Если она у вас присутствует — удаляйте смело.
Проверьте свой .htaccess на строчку «AddDefaultCharset UTF8». Если она у вас присутствует — удаляйте смело.
а данные потом где сохраняются о его городе, у пользователя в стандартном поле город? и есть ли связь с UserProfile2?
данные у пользователя в сессии… что дальше с ними делать решать вам.
Добрый день, подскажите пожалуйста в чем может быть проблема.
При переносе сайта на хостинг jino.ru — перестал определяться реальный город пользователя.
Т.е. реальное местоположение всегда равно значению `По умолчанию`
joxi.ru/KAg8aaBfgkv1Nr
При переносе сайта на хостинг jino.ru — перестал определяться реальный город пользователя.
Т.е. реальное местоположение всегда равно значению `По умолчанию`
echo 'pre'; print_r($_SESSION['gl']); echo '<pre>';
массив с данными нижеjoxi.ru/KAg8aaBfgkv1Nr
В версии 1.2.1 нет иконок в админке. Кеш чистил, пакет переустанавливал.
http://joxi.ru/ZrJd1qXF1zebX2
http://joxi.ru/ZrJd1qXF1zebX2
Деинсталировал и удалил все версии пакетов, поставил заново последнюю версию, иконки появились.
И еще вопрос из интереса: почему используется colorbox? Я просто у себя на всех проектах использую fancybox для всплывающих окон с формами и изображениям, мне кажется он удобнее. Ваш скрипт довольно легко переделать под него.
И еще вопрос из интереса: почему используется colorbox? Я просто у себя на всех проектах использую fancybox для всплывающих окон с формами и изображениям, мне кажется он удобнее. Ваш скрипт довольно легко переделать под него.
Деинсталировал и удалил все версии пакетов, поставил заново последнюю версию, иконки появились.Отлично!
И еще вопрос из интереса: почему используется colorbox?Было такое требование от заказчика. Потом добавился еще UIlkit…
Я просто у себя на всех проектах использую fancybox для всплывающих окон с формами и изображениям, мне кажется он удобнееВы можете с легкостью переписать код под фанси и прислать pr. Думаю все будут довольны.
Спасибо!
Здравствуйте,
Возникла такая проблема: как только я устанавливаю данной дополнение, сайт перестает отображаться (отображается пустая белая страница). Удаляю дополнение и все приходит в норму. С чем может быть связано такое поведение?
Возникла такая проблема: как только я устанавливаю данной дополнение, сайт перестает отображаться (отображается пустая белая страница). Удаляю дополнение и все приходит в норму. С чем может быть связано такое поведение?
Добрый день, Подскажите. Работает модуль на сайте все отлично.
Встала задача хранить часть страниц в отдельном контексте, написан плагин для события pageNotFound, для показа этих страниц.
Так вот если открываются страницы из этого отдельного контекста все плейсхолдеры не выдают значений, т.е. при вызове [[!+gl.current.data.phone]] пусто. Если открыть страницу из контекста web все ок, плейсхолдеры работают.
Шаблон у страниц из контекста web и отдельного один и тот же, соответственно вызовы на странице одинаковые.
вызов:
Что можно придумать?
Встала задача хранить часть страниц в отдельном контексте, написан плагин для события pageNotFound, для показа этих страниц.
Так вот если открываются страницы из этого отдельного контекста все плейсхолдеры не выдают значений, т.е. при вызове [[!+gl.current.data.phone]] пусто. Если открыть страницу из контекста web все ок, плейсхолдеры работают.
Шаблон у страниц из контекста web и отдельного один и тот же, соответственно вызовы на странице одинаковые.
вызов:
[[!gl.modal?
&class=`glCity`
&frontendCss=`0`
]]
На этих страницах работает и вроде даже можно сменить регион, но плейсхолдеры ничего не выдают.Что можно придумать?
как выглядит ваш плагин:?
Вот так
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}
$request_uri = $_SERVER['REQUEST_URI'];
$request_uri = substr($request_uri,0,1)=='/' ? substr($request_uri,1) : $request_uri;
$clean=explode('?', $request_uri);
$tmp = explode('/', $clean[0]);
$alias=end($tmp);
if($alias==''){$alias=prev($tmp);}
$alias = str_replace('.html', '', $alias);
$alias = str_replace('.txt', '', $alias);
$qq = array(
'alias' => $alias
,'deleted' => 0
,'published' => 1
,'context_key' => 'info'
);
$section = $modx->getObject('modResource', $qq);
if (!isset($section)) {return;}
$section_id = $section->get('id');
$modx->switchContext('info');
$modx->sendForward($section_id);
// Иначе ничего не делаем и юзер получает 404 или его перехватывает другой плагин.
плагин по вашему примеру, проверить ввести любой id > 45
location.vgrish.ru/index.php?id=46
вроде все пашет?
location.vgrish.ru/index.php?id=46
вроде все пашет?
хм, чтож ему у меня не нравиться). У вас тоже этот документ в другом контексте? Задавали особые параметры контексту с документом или в вызов сниппета?
Спасибо, буду пробовать найти проблему.
Странная история, если ресурс в другом контексте открывается напрямую без плагина на PageNotFound все плейсхолдеры работают, если через ошибку не найден и плагин не работает(…
А можно как-то по другому вызвать плейсхолдеры чтоб значение получить не
А можно как-то по другому вызвать плейсхолдеры чтоб значение получить не
[[+]]
Подскажите, как сделать редирект на другую страницу при выборе города?
Спасибо )
А как сделать редирект без выбора города, учитывая real?
А можно наоборот убрать редирект при выборе города? У каждого города в админке назначен ресурс с контактами по этому городу. Но мне не нужно чтобы при смене города пользователя перекидывало на страницу с контактами.
спасибо!
да пожалуйста)
Странно, у меня не работает редирект. Выбрал страницу в другом контексте (и поддомене) — не редиректит. Хотя и выбирал страницу в web контексте, тоже не работает.
удалось решить? та же проблема
неа
Удалось решить проблему?
в версии 1.2.7 файла assets/components/gl/js/web/default.js, который идет в пакете из modstore заменил
вроде все работает
Володя, это ничего не поломает?
if (response.object.current && response.object.current.data && response.object.current.data.resource_url) {
document.location.href = response.object.current.data.resource_url;
}
if (glConfig.pageReload) {
location.reload();
}
наif(response.object.current && response.object.current.data && response.object.current.data.resource_url) {
document.location.href = response.object.current.data.resource_url;
} else {
location.reload();
}
из файла версии 1.1.9 на гитхабевроде все работает
Володя, это ничего не поломает?
Привет. Подскажите пожалуйста, как получить через fenom плейсхолдер [[!+gl.current.city.name_ru]] например?
{!$gl.real.city.name_ru} — даёт 1.
{$gl.real.city.name_ru} — ничего не даёт.
{!$gl.real.city.name_ru} — даёт 1.
{$gl.real.city.name_ru} — ничего не даёт.
{$_modx->getPlaceholder('gl.real.city.name_ru')}
Спасибо!
У меня возникла проблема, во Владимиркой области очень мало городов, есть ли возможность добавить отсутствующие? и как?
пока к сожалению нет…
Жаль, на заметку нашел интересный скрипт github.com/rossvs/ipgeobase.php
А если совместить dadata, было бы круто ;)
А если совместить dadata, было бы круто ;)
Да, кстати, городов очень мало, в моём случае нельзя использовать (
Вообще странно, т.к. я использовал в нескольких проектах sxGeo (с базой SxGeoCity.dat) и не замечал такой проблемы…
Вообще странно, т.к. я использовал в нескольких проектах sxGeo (с базой SxGeoCity.dat) и не замечал такой проблемы…
Проверил: всё норм. Городов, которых нет (которые я проверил) — нет в БД IP вообще, их адреса записаны на областные центы.
Володя, привет. Поставил компонент, но пока не сообразил как его использовать, не определяет местоположение — пока разбираюсь, заметил что используются системный параметры, например gl_ischeck_site_status, gl_core_path, default_real_class итд, и я нигде их не вижу, возможно конечно что они определяются каким-либо плагином ибо в системный настройках их нет. Я поискал в билдере и тоже их не нашел, не будет ли это влиять на правильную работу компонента? И в классе gl есть
public function __call($n, array$p)
{
echo __METHOD__ . ' says: ' . $n;
}
не помешает?
проблема была в том что папка кеша не обновлялась и плагин gl не запускался., но вопросы остаются в силе.
проблема была в том что папка кеша не обновлялась и плагин gl не запускался.вот тут подробнее можно, какой кэш и какой плагин
по какой-то космической причине (грешу на права или кеширование на самом сервере), папка cache категорически не хотела обновлять includes пока ручками не почистил, в результате плагин с именем gl туда вообще не попадал и не срабатывал, как результат плейсхолдеры не создавались и сниппеты ничего не выводили.
например gl_ischeck_site_status, gl_core_path, default_real_class итдони заданы по умолчанию, в случае чего их всегда можно переопределить.
Я поискал в билдере и тоже их не нашел, не будет ли это влиять на правильную работу компонентанет.
И в классе gl естьнет, сработает если будет обращение к несуществующему в данном классе методу.
public function __call($n, array$p)
{
echo __METHOD__. ' says: '. $n;
} не помешает?
а мне понравилась идея разделения файлов и классов по именам событий, весьма прикольно выглядит, для маленького проекта смысла в этом может и не много, но для большого думаю будет удобно, спасибо за код!
Использую версию 1.2.1-beta меня не устроила логика, что при открытии города, данных по которому нет, не подставляются значения по умолчанию, чтобы это реализовать можно сделать так, в файл core/components/gl/model/gl/systems/glonhandlerequest.class.php в последнее условие добавить:
Также в компоненте предусмотренны 3 доп. поля с именами add1, add2, add3, которые можно использовать в плейсхоледерах gl.current.data. Чтобы их добавить нужно создать сист. настройку с именем
gl_fields_window_data (тип текстовое поле или текст область) и присвойте ей «id,default,class,resource,identifier,image,phone,email,address,active,name_alt,add1,add2,add3». При редактировании такой записи галочки не будут установленны, но данные все равно сохраняются в БД. Также, без изменения кода, вывести данные в общую таблицу нельзя. Думаю это были остатки или зачатки чего то, так что не стоит использовать не обдуманно, ибо в след версии этих полей может не быть вовсе, или измениться их принцип храниения/вывода.
elseif(!$this->gl->opts['current']['data'] && $tmp = $this->gl->getDefaultData()){
$this->gl->opts['current']['data'] = $tmp['data'];
unset ($tmp);
}
. Тогда плейсхолдеры с префиксом gl.current.data получат данные из объекта помеченного как «по умолчанию».Также в компоненте предусмотренны 3 доп. поля с именами add1, add2, add3, которые можно использовать в плейсхоледерах gl.current.data. Чтобы их добавить нужно создать сист. настройку с именем
gl_fields_window_data (тип текстовое поле или текст область) и присвойте ей «id,default,class,resource,identifier,image,phone,email,address,active,name_alt,add1,add2,add3». При редактировании такой записи галочки не будут установленны, но данные все равно сохраняются в БД. Также, без изменения кода, вывести данные в общую таблицу нельзя. Думаю это были остатки или зачатки чего то, так что не стоит использовать не обдуманно, ибо в след версии этих полей может не быть вовсе, или измениться их принцип храниения/вывода.
нашел еще поля phone_add и email_add, вот они могут попасть в общую таблицу, свойство gl_fields_grid_data значение «id,class,identifier,phone,phone_add,email,email_add»
пожалуйста github.com/vgrish/gl/compare
Скажите удалось вам поле address вывести? У меня не получается… галочку ставлю, но не сохраняется…
Подскажите пожалуйста, как можно проще сделать динамическую подгрузку данных. Что имеется ввиду:
Есть поле ввода страны. Идет поиск по стране, затем в следующий селект загружаются города аяксом, для выбранной страны итд. Вопрос, по какому адресу отправлять аякс запрос, чтобы мне вернулся массив с данными (страны, регионы, города), которые в админке я активировал? Спасибо!
Есть поле ввода страны. Идет поиск по стране, затем в следующий селект загружаются города аяксом, для выбранной страны итд. Вопрос, по какому адресу отправлять аякс запрос, чтобы мне вернулся массив с данными (страны, регионы, города), которые в админке я активировал? Спасибо!
Спасибо большое!
Добрый день, подскажите пожалуйста, как сделать вывод реального города пользователя с возможностью выбрать другой город?
Пример сайта с таки функционалом: lotki. ru
У меня сейчас так:
Пример сайта с таки функционалом: lotki. ru
У меня сейчас так:
<div class="gl-current-select">[[!+gl.real.city.name_ru]]</div>
[[!+gl.real.data.address]]
[[!+gl.real.data.phone]]
[[!+gl.real.data.email]]
[[!gl.modal?
&tpl=`tpl.gl.modal_2`
&frontendJs=`[[+assetsUrl]]js/web/_default.js`
&modalShow=`0`
]]
Подскажите пожалуйста, как привязать к каждому городу отдельный поддомен? Скажем, для Истры — istra.site.ru, для Подольска — podolsk.site.ru
В поле Ресурс можно только страницу указать. А как быть с поддоменами — не понятно :/
В поле Ресурс можно только страницу указать. А как быть с поддоменами — не понятно :/
Решение нашел. Вдруг кому-то понадобится.
В общем, компонент GeoLocation вполне подходит и для сайта с городами-поддоменами. Владимир подсказал, что можно создать ресурс-ссылку на поддомен. А в данных города указать в качестве ресурса этот ресурс-ссылку.
Но тогда происходила не приятная особенность — посетитель, первый раз зашедший на сайт получал всплывашку с уточнением города (Ваш город — Москва?), например выбирал свой и его перебрасывало на поддомен, где вновь появлялась такая же всплывашка. Более того, в шапке было написано «Ваш город: По умолчанию» не смотря на то, что посетитель уже 1 раз указал свой город, находится на поддомене и тд. Почему так происходит вы наверно знаете.
Решение нашел такое. В системных настройках MODx:
Домен для сессионных куки (session_cookie_domain) — прописываем свой основной домен. Теперь модальное окно не будет появляться каждый раз, «а сайт будет помнить» выбор пользователя.
Также, в /> пришлось поставить воскл знак /> — чтобы базовый адрес сайта не кэшировался и в меню, например, ссылки не вели с поддомена на домен второго уровня.
Ну и все плейсходеры компонента я выводил в шаблон с! — чтобы телефоны, email и тд тоже не кэшировались.
Так как я не программер и с MODx знаком не очень — нашел только такое решение. Думаю, что у программеров более изящные решения :)
В общем, компонент GeoLocation вполне подходит и для сайта с городами-поддоменами. Владимир подсказал, что можно создать ресурс-ссылку на поддомен. А в данных города указать в качестве ресурса этот ресурс-ссылку.
Но тогда происходила не приятная особенность — посетитель, первый раз зашедший на сайт получал всплывашку с уточнением города (Ваш город — Москва?), например выбирал свой и его перебрасывало на поддомен, где вновь появлялась такая же всплывашка. Более того, в шапке было написано «Ваш город: По умолчанию» не смотря на то, что посетитель уже 1 раз указал свой город, находится на поддомене и тд. Почему так происходит вы наверно знаете.
Решение нашел такое. В системных настройках MODx:
Домен для сессионных куки (session_cookie_domain) — прописываем свой основной домен. Теперь модальное окно не будет появляться каждый раз, «а сайт будет помнить» выбор пользователя.
Также, в /> пришлось поставить воскл знак /> — чтобы базовый адрес сайта не кэшировался и в меню, например, ссылки не вели с поддомена на домен второго уровня.
Ну и все плейсходеры компонента я выводил в шаблон с! — чтобы телефоны, email и тд тоже не кэшировались.
Так как я не программер и с MODx знаком не очень — нашел только такое решение. Думаю, что у программеров более изящные решения :)
что-то наверное я туплю, но мне тоже понадобилось реализовать такой же выбор города как у вас с поддоменами, но ни как не могу найти этот ресурс в выборе города:
у меня в городах такого поля нету, ну может я вообще не туда смотрю, подскажите пожалуйста)
у меня в городах такого поля нету, ну может я вообще не туда смотрю, подскажите пожалуйста)
все вроде бы разобрался))
Домен для сессионных куки (session_cookie_domain) — прописываем свой основной домен. Теперь модальное окно не будет появляться каждый раз, «а сайт будет помнить» выбор пользователя.Не прокатывает что-то :/
Добрый вечер!
Есть ли возможность вывести подгруженные регионы в tv-параметре «список(множественный выбор)»? Что нужно прописать в возможных значениях?
Есть ли возможность вывести подгруженные регионы в tv-параметре «список(множественный выбор)»? Что нужно прописать в возможных значениях?
Доброго дня! Подскажите пожалуйста, возможно ли использовать данный модуль на EVO? Если нет, то есть ли возможность портировать его на данную систему, и в какую сумму это выльется? Спасибо.
Добрый день.
Модуль под revo, с evo не работаю.
Модуль под revo, с evo не работаю.
Владимир, Спасибо за уделенное время. Возможно Вы знаете человека/людей, которые бы взялись за данную работу? Поскольку я совсем новичок в МОДэкс, и не обзавелся подобными знакомствами=)
Если новичок, стоит ли смотреть на Evo? Лучше сразу на Revo учиться.
Дело в том, что у заказчика уже есть сайт, и не один. И все на evo.
Могу только посочувствовать. Придется пилить решение самостоятельно.
А если не самому, сколько это может стоить? =)
Не подскажу, ибо тоже не работаю с Evo. Если рассматриваешь вариант переезда на Revo, то пиши на почту.
vargantreal@gmail.com, буду очень признателен за помощь
Обратитесь на modx.im или modx.ru, возможно там вам помогут.
Здравствуйте подскажите такая проблема установил компонент все установилось без ошибок но при открытии в админке Компоненты-Геолокации пустая страница в чем может быть проблема
Как сделать что бы вместо По умолчанию выводился другой город? Зачем вообще по умолчанию нужен, у меня реальный город Самара, в списке городов Самара есть и активна, и все равно выводит По умолчанию.
В общем сделал так:
Там где название города
Там где задается вопрос про ваш город
В сниппет где выводится дефолтный город и откуда он назначается в случает согласия подставляем тоже
То условие которое стоит по умолчанию в where не работает, по крайней мере у меня, и непонятно зачем тут sortby, если всего 1 результат выводится.
Там где название города
[[!+gl.selected.city.name_ru:is=`По умолчанию`:then=`Самара`:else=`[[!+gl.selected.city.name_ru]]
Там где задается вопрос про ваш город
[[!+selected.city.name_ru:is=`По умолчанию`:then=`Самара`:else=`[[!+selected.city.name_ru]]`]]
В сниппет где выводится дефолтный город и откуда он назначается в случает согласия подставляем тоже
[[!gl.location?
&limit=`1`
&class=`[[+class]]`
&where=`{"name_ru:=": "[[!+selected.city.name_ru:is=`По умолчанию`:then=`Самара`:else=`[[!+selected.city.name_ru]]`]]", "AND:active:=": "1"}`
&sortby=`FIELD([[+class]].name_ru, "[[!+selected.city.name_ru:is=`По умолчанию`:then=`Самара`:else=`[[!+selected.city.name_ru]]`]]")`
]]
То условие которое стоит по умолчанию в where не работает, по крайней мере у меня, и непонятно зачем тут sortby, если всего 1 результат выводится.
Ошибки при создании таблиц в ДБ при установке последней версии
MODX 2.5.1
MODX 2.5.1
Значение wait_timeout в my.cnf изменил на 60, помогло
наверно оттого что у меня там прежде инсталятор кучу всего скачивает и не успевает в wait_timeout.
Я из-за этого и полез в конфиги MySQL, значение 20 было, оказалось, его мало.
Новый пакет GeoLocation (на сегодня) загружает на страницу js скрипты даже будучи неиспользуемым. До обновления этого не было. :(
скрипты грузятся только при вызове сниппета gl.modal, проверяй где вызываешь.
Грузился на главной, новой, с новым шаблоном где гарантированно не было ни когда вызова gl.modal, а gl.modal был вызван в двух неиспользуемых шаблонах, причем закомментирован (вызван с минусом [[-gl.modal )
Чудес то не бывает.
Если можешь скинь доступ к админке — посмотрю в чем дело.
Если можешь скинь доступ к админке — посмотрю в чем дело.
Чудес то не бывает.полностью согласен. Но я проверил, дополнительно стали подгружаться скрипты и отвалился Scrollbar на главной.
В данный момент пакет полностью удалил, ибо сейчас в нем нет надобности. Если нужен доступ, не вопрос, но придется все ставить назад.
вот, ща дам доступ, повторил, все как и говорю, закомментированный вызов модального окна в совсем другом шаблоне ломает главную (шаблон главной ни как не связан с тем, где вызов)
PS написал в Skype
PS написал в Skype
Пишу тут покаяние)) не знаю что было, но переустановка все «вылечила». Кривые руки ли мои.., короч все ОК.
бывает)))
Как заставить работать компонент на динамических страницах созданных с помощью VirtualPage?
обновляйся, должно работать.
Здравствуйте. В интернет магазине нужно определять не город, а код региона (например, для Владимирской области это 33). Можно ли это реализовать через ваш компонент? Если — да, то посоветуйте как.
Можно сделать доп.поле и для каждого нужного региона прописать свой
А сейчас каждому региону соответствует какой-то номер? Если — да, то где его взять? Для каждого города код региона руками не хотелось бы прописывать.
Инфа берется с базы SxGeo. Что уже доступно смотрите в шапке по пункту доступные плейсходеры
Все верно, кода региона в базе sxGeo нет. Есть объект data который крепится к локации, вы можете использовать уже существуюшее поле, либо добавить свое и проставить областям код региона.
Добрый день!
В новой версии не определяется город по умолчанию location.vgrish.ru/index.php?id=7
Старая версия (пример на сайте)
new.zooregion.ru/th/testovaya-stranicza.html
2026696 — gl.current.city.id
46.81293 — gl.current.city.lat
134.25012 — gl.current.city.lon
Новая версия
zooregion.ru/th/testovaya-stranicza.html
— gl.current.city.id
— gl.current.city.lat
— gl.current.city.lon
Пустые значения. Подскажите, пожалуйста, в чем проблема?
В новой версии не определяется город по умолчанию location.vgrish.ru/index.php?id=7
Старая версия (пример на сайте)
new.zooregion.ru/th/testovaya-stranicza.html
2026696 — gl.current.city.id
46.81293 — gl.current.city.lat
134.25012 — gl.current.city.lon
Новая версия
zooregion.ru/th/testovaya-stranicza.html
— gl.current.city.id
— gl.current.city.lat
— gl.current.city.lon
Пустые значения. Подскажите, пожалуйста, в чем проблема?
Спасибо ) сами разобрались.
Добрый день. У меня проблема с данными. Не выводит установленный [[!+gl.real.data.email]] (или любое другое поле из data). Не пойму в чем проблема. Также пробовал менять email по умолчанию — тоже не меняется. Сам город и остальные параметры определяется корректно.
он определяет, сохраняет в сессии и больше эти данные не меняет, если ты вносил изменения после, то почисти сессию и потом проверь.
Спасибо! Всё получилось.
Возникла еще одна проблема. С городами все было отлично, но когда поменял привязку на регион — стало выводить данные по умолчанию. Попробовал поменять данные по умолчанию на регион — все равно не пошло. [gl.real.data.class] — выводит glCity, может быть это важно. Сниппеты вашего плагина на странице не вызываются, использую только плейсхолдеры.
создайте системную настройку gl_default_real_class и задайте ей значение glRegion, по умолчанию работает с glCity
Благодарю!
Добрый день. Подключил много стран. И при вое города, например Москва, у меня выпадает длинный список из семи Москвы. Как вывести рядом с сними регион или страну. Москва — Россия, Москва — США?
в комбике? Скопируйте дефлтный скрипт и вот тут добавьте что вам нужно github.com/vgrish/gl/blob/master/assets/components/gl/js/web/default.js#L242
данные что приходят посмотрите в консоли браузера.
данные что приходят посмотрите в консоли браузера.
Спасибо за ответ. Я понял что нужно вот тут поменять вывод
getResult: function(el) {
if (!el.id) {
return '';
}
var name = !!!el.name_alt ? el.name_ru :el.name_alt;
return $('<div>' + name + '</div>');
},
Но не пойму как вывести регион и страну тут. Можете помочь?
да, сам понял что там этого нет)
Сейчас посмотрю подробнее…
Сейчас посмотрю подробнее…
обновляйся, теперь все там есть…
Благодарю за такую оперативность!
А какие изменения надо внести, чтобы появилось название региона и страны около города? Я не смог понять( Помогите пожалуйста)
А какие изменения надо внести, чтобы появилось название региона и страны около города? Я не смог понять( Помогите пожалуйста)
например вот так
getResult: function(el) {
if (!el.id) {
return '';
}
//var name = !!!el.name_alt ? el.name_ru :el.name_alt;
var name = [];
['country_name_ru', 'region_name_ru', 'name_ru'].filter(function(k) {
if (el[k]) {
name.push(el[k]);
}
});
name = name.join(', ');
return $('<div>' + name + '</div>');
},
Сердечное Вам спасибо!:)
Добрый день! Проблема такая же как и у eflit. Установил компонент все установилось без ошибок но при открытии в админке Компоненты-Геолокации пустая страница в чем может быть проблема? MODX Revolution 2.2.14-pl
MODX Revolution 2.2.14-plработает только >= 2.3
Спасибо, обновился все заработало!
Есть еще один вопрос, убрал вывод модального окна, в элементе для вызова модального окна вывожу реальное местоположение. Как при загрузке выбранному присвоить значение реального, чтобы сразу при загрузке выводились и адрес и телефон реального региона?
Есть еще один вопрос, убрал вывод модального окна, в элементе для вызова модального окна вывожу реальное местоположение. Как при загрузке выбранному присвоить значение реального, чтобы сразу при загрузке выводились и адрес и телефон реального региона?
Добрый день, подскажите, можно ли с помощью данного компонента реализовать следующее:
Есть список из двух городов.
Если пользователь заходит с одного из этих городов, его автоматически редиректит на поддомен этого города.
Если пользователь заходит с города, которого нет в списке, появляется модалка с возможностью выбрать один из двух городов.
Есть список из двух городов.
Если пользователь заходит с одного из этих городов, его автоматически редиректит на поддомен этого города.
Если пользователь заходит с города, которого нет в списке, появляется модалка с возможностью выбрать один из двух городов.
написать плагин, при загрузке страницы смотрите реальный город, если у него в данных есть привязанный ресурс и домен не тот — то делаете редирект
Всем привет! Мне нужно при заходе на сайт и в current записать значения real. Можно это как-то реализовать?
плагином или сниппетом задать значение в сессии
$_SESSION['gl']['opts']['current'] = $_SESSION['gl']['opts']['real'];
А на какое событие его привязать? Нужно чтобы при первом заходе срабатывало. А затем пользователь мог поменять город самостоятельно.
например на OnHandleRequest, только выставьте приоритет больше 0
Спасибо. А что такое [gl.set] и [gl.check]?
Есть ли возможность отсортировать в gl-change-list все данные, которые у меня выводятся, по ID в порядке возрастания
Как уже только не пробовал, но ничего не получается.
Как уже только не пробовал, но ничего не получается.
Всем привет! Установил GeoLocation, при переходе на вкладку «Страны» сразу же выдает 500 ошибку. Страны, естественно, не загружаются. В чем может быть проблема?
Разобрался, дело было в версии PHP — стояла 5.3
Добрый день, в базе городов нет городов Крыма.
Как их можно добавить?
Как их можно добавить?
дело в том что при просмотре файла /www/assets/components/gl/vendor/sypexgeo/info/city.tsv в нем есть и Киев и Симферополь.
В админке в приложения-геолокации на вкладке страны включены и Россия и Украина, но на вкладке города — нет ни Киева ни Симферополя.
В чем может быть проблема?
В админке в приложения-геолокации на вкладке страны включены и Россия и Украина, но на вкладке города — нет ни Киева ни Симферополя.
В чем может быть проблема?
Проверьте: загружены ли у вас базы с городами и включены ли они?
На одном из сайтов как раз такиСевастополь Симферополь есть joxi.ru/krD0KyVHn95Erp
На одном из сайтов как раз таки
спасибо за помощь, помогло
Если нужно вывести имя региона рядом с названием города в выпадающем списке (вот так joxi.ru/EA4Zw58CRkQOmb) то нужно сделать следующее:
1. Открываем файл по этому пути (у меня UiKit, и в моем случае путь такой):
2. Ищем в самом конце «getResult», после «var name = !!!el.name_alt итд.» вставляем следующее:
3. Находям рядышком «return $('четатам');» и меняем всю строку на
4. Сохраняем, заходим на страницу с вызовом GeoLocation, перезагружаем страницу с ctrl+f5 (для чистки кеша) и проверяем.
Должна получиться такая конструкция:
joxi.ru/KAgXn3lCq0M4rl
1. Открываем файл по этому пути (у меня UiKit, и в моем случае путь такой):
assets/components/gl/js/web/uikitdefault.js
2. Ищем в самом конце «getResult», после «var name = !!!el.name_alt итд.» вставляем следующее:
var xname = el.region_name_ru;
3. Находям рядышком «return $('четатам');» и меняем всю строку на
return $('<div>' + name + ' (' + xname + ')' + '</div>');
4. Сохраняем, заходим на страницу с вызовом GeoLocation, перезагружаем страницу с ctrl+f5 (для чистки кеша) и проверяем.
Должна получиться такая конструкция:
joxi.ru/KAgXn3lCq0M4rl
Печально, но у SxGeo нету в базе МОЛДОВЫ, определяется местоположение как Румыния!!!
Только из-за этого приходится отказываться от такого дополнения… (((
Только из-за этого приходится отказываться от такого дополнения… (((
Володя, подскажи пожалуйста а ты тестил на мобильных устройствах? Как он определяет.
Так же есть вопрос по поводу «кеша» т.е. про сессию. Например я был в Москве, уехал в Питер существует какой-то кеш?
Так же есть вопрос по поводу «кеша» т.е. про сессию. Например я был в Москве, уехал в Питер существует какой-то кеш?
Володя, подскажи пожалуйста а ты тестил на мобильных устройствах? Как он определяет.нет, не тестил
Например я был в Москве, уехал в Питер существует какой-то кеш?сохраняется в сессию…
Вот щас тестили на мобильнике, зашли на сам сайт sypexgeo.net/
Показывает Самару, хотя мы вообще в другой области, печально…
Показывает Самару, хотя мы вообще в другой области, печально…
да, у меня тоже с мобильного соседнюю область показывает…
Это нормально. В Сочи МТС, например, говорит что он Ростов-на-дону, в Саратове (часто) показывает так же соседние регионы. Про Северный Кавказ вообще молчу, по мобильному там регион меняется через каждый метр в движении (по опыту утверждаю).
Вот что пишет яндекс
yandex.ru/support/common/browsers-settings/geo-mobile.html
«Геолокация устройства определяется по Bluetooth, радиосигналу GPS, ближайшим точкам доступа Wi-Fi и номеру ячейки сотовой сети.»
sypexgeo определяет по айпи, видать операторы выдаю айпи которые прописаны в другом городе.
Не говоря про библиотеку sypexgeo, какой то выход есть, чтобы нормально определял?
yandex.ru/support/common/browsers-settings/geo-mobile.html
«Геолокация устройства определяется по Bluetooth, радиосигналу GPS, ближайшим точкам доступа Wi-Fi и номеру ячейки сотовой сети.»
sypexgeo определяет по айпи, видать операторы выдаю айпи которые прописаны в другом городе.
Не говоря про библиотеку sypexgeo, какой то выход есть, чтобы нормально определял?
Возможно таким образом будет корректнее dadata.ru/api/detect_address_by_ip/
а не… тоже самое все. Определяет по ip и результат один в один. Кароч не годится
Костя!
Смотрел по GA-аналитике, кол-во так называемых покупашек, которые что-то реально покупали и при этом город, определенный по SxGeo, не совпал с реальным, приблизилось за 4 месяца к катастрофической тройке человек)) Из общего количества покупателей в 3800 чел…
Совпадение? Не думаю)))
Проблему решил менеджер за 2,5 секунды, уточнив при подтверждении заказа адрес доставки. Ну и поле «Комментарии к заказу» всю жизнь было нелишнее.
Нагружать кучей сервисов биолокации и шаманотерапии ради 0,078% покупателей? Увольте…
Имхо проблема преждевременной оптимизации… Поменьше читайте яндекс на ночь)))
Смотрел по GA-аналитике, кол-во так называемых покупашек, которые что-то реально покупали и при этом город, определенный по SxGeo, не совпал с реальным, приблизилось за 4 месяца к катастрофической тройке человек)) Из общего количества покупателей в 3800 чел…
Совпадение? Не думаю)))
Проблему решил менеджер за 2,5 секунды, уточнив при подтверждении заказа адрес доставки. Ну и поле «Комментарии к заказу» всю жизнь было нелишнее.
Нагружать кучей сервисов биолокации и шаманотерапии ради 0,078% покупателей? Увольте…
Имхо проблема преждевременной оптимизации… Поменьше читайте яндекс на ночь)))
В том проекте был смысл такой, что при определении региона показывать магазины в этом регионе, ну или городе. Это так сказать для юзабилити было. Но то решение с адресом тоже присутствовало на сайте. Просто Илон Маск не добрался до этой проблемы ;)
не знаю))) в России имеется с десяток городов, где есть Покупатели и еще 800 городов, жители которых покупают 20, а то и 10% от всей массы заказов.
т.е. правило Парето смело можно переименовать в правило Руссето:
1% городов делает 90% выручки.
можно и покупашек посчитать, но в данной теме привязка именно к городам…
т.е. правило Парето смело можно переименовать в правило Руссето:
1% городов делает 90% выручки.
можно и покупашек посчитать, но в данной теме привязка именно к городам…
Автор подскажи, плз. Вот такие ошибки в консоли. Компонент и MODX обновил до последней версии
default.js:17 Uncaught ReferenceError: glConfig is not defined
at Object.initialize (default.js:17)
at Object.initialize (default.js:56)
at default.js:260
не инициализировали скрипт… Почему? Ктоже знает…
Больше конкретики… вызов… пример и тд…
Больше конкретики… вызов… пример и тд…
Вызываю так:
Чанк my.tpl.gl.modal:
Ваш город:
<span class="gl-current-select">[[!+gl.current.city.name_ru:is=`По умолчанию`:then=`Щёлково`:else=`[[!+gl.current.city.name_ru]]`]]</span>
[[!gl.modal?
&modalShow=`0`
&class=`glCity`
&tpl=`my.tpl.gl.modal`
]]
Чанк my.tpl.gl.modal:
<div style="display: none;">
<div class="gl-modal uk-modal">
<div class="gl-default uk-modal-dialog">
<h5>Выберите Ваш город</h5>
<p class="desc">
Введите название вашего города
</p>
<div class="gl-change-input-block">
<select name="location" value="" style="width: 100%" class="select2 " multiple>
</select>
<span class="gl-select2-container"></span>
</div>
<ul class="gl-change-list">
[[!gl.location?
&class=`[[+class]]`
&where=`{"default":0}`
&limit=`0`
]]
</ul>
</div>
</div>
</div>
ну тут все нормально. А вживую есть где посмотреть?
Конечно ссылка
да, там действительно нет инициализации. Сложно сказать почему, если есть возможность скиньте доступ к админке, посмотрю. И вот это странно
<meta charset="[(modx_charset)]">
хотя в футере AjaxForm инициализирован…
Добавил в скайпе.
Сайт раньше на EVO был… может при переносе не поправили
Сайт раньше на EVO был… может при переносе не поправили
У меня на версии Modx 2.5.5 ни в одном сайте города не подгружаются и регионы только страны. С чем это связано? Даже на версии php 7 ни чего не подгружается. Переустанавливать пробовал.
У меня на версии Modx 2.5.5 ни в одном сайте города не подгружаются и регионы только страны. С чем это связано?
куда не подгружаются? В админку? в модалку при запросе?
У меня и там и там работает, ошибок не вижу.
Пункты загрузка регионов и загрузка городов.
В ветке уже есть похожие комментарии.
Страны подгружаются, а города и регионы нет.
В ветке уже есть похожие комментарии.
Страны подгружаются, а города и регионы нет.
В ветке уже есть похожие комментарии.не вижу ничего подобного, оставляйте всегда ссылку — так будет сразу понятно про что вы имеете ввиду. Читать всю ветку комментов нет ни времени ни желания.
Страны подгружаются, а города и регионы нет.В любом случае когда вы пытаетесь решить проблему стоит подробнее ее описывать. Можно приложить скрины и тд и тп.
Иногда проблема настолько мелкая и решить ее быстро, но вот понять в чем она и где на… на это порой тратится столько времени.
Можно скинуть в личку доступы к админ панели и я постараюсь выяснить в чем дело.
Можно постараться повторить ситуацию на тестовом сайте modhost.pro/ и скинуть доступы к нему.
Спасибо!
Решил пробовать другой сниппет, но он периодически выдает ошибка и нагрузку на сервер.
Поэтому возвращаюсь к вопросу.
Я пробовал загрузить города и регионы на 5-ти и они ни на одном не загрузились.
С чем это может быть связано?
Если вы готовы посмотреть в админ панели я могу скинуть доступ по почте.
Если что вот моя почта: simox@inbox.ru
Буду премного благодарен )
Поэтому возвращаюсь к вопросу.
Я пробовал загрузить города и регионы на 5-ти и они ни на одном не загрузились.
С чем это может быть связано?
Если вы готовы посмотреть в админ панели я могу скинуть доступ по почте.
Если что вот моя почта: simox@inbox.ru
Буду премного благодарен )
Здравствуйте!
У меня такая же проблема, как и у Семёна Лебедева
В админке загружается информация только о странах, а о регионах и городах — нет.
Пробовал на разных сайтах modhost.pro.
Вот тестовый сайт
s9877.h8.modhost.pro/manager/
s9877
0TJyG59Hkh6E
там тоже не работает
У меня такая же проблема, как и у Семёна Лебедева
В админке загружается информация только о странах, а о регионах и городах — нет.
Пробовал на разных сайтах modhost.pro.
Вот тестовый сайт
s9877.h8.modhost.pro/manager/
s9877
0TJyG59Hkh6E
там тоже не работает
Нет я не получилось, пока временно на это забил, но если бы сниппет норм работал было бы здорово. Возможно мы что-то упускаем.
У меня на всех сайтах ничего кроме стран не грузилось.
У меня на всех сайтах ничего кроме стран не грузилось.
а хостеры разные?
upd,
пробовал на webhost1.ru та же самая проблема
upd,
пробовал на webhost1.ru та же самая проблема
города загружаются для регионов, регионы для стран…
сначала активируете нужные страны и загружате регионы, затем активируете регионы и загружаете города.
Помоему ничего сложного.
сначала активируете нужные страны и загружате регионы, затем активируете регионы и загружаете города.
Помоему ничего сложного.
Потрясающе!
Спасибо за просвещение!
Закидываю донат!
Спасибо за просвещение!
Закидываю донат!
пожалуйста!)
Спасибо, это ответа я и ждал попозже проверю )
Проверил, всё действительно оказалось проще ))
Добрый день.
В админке страны Europe/Moscow — загружено, регионы Europe/Moscow — тоже, все активировано, но города не загружаются.
MODX Revolution 2.6.5-pl
В чем ошибка?
В админке страны Europe/Moscow — загружено, регионы Europe/Moscow — тоже, все активировано, но города не загружаются.
MODX Revolution 2.6.5-pl
В чем ошибка?
Подскажите, а как GeoLocation подружить с msPointsIssue?
расчет цены продукта указать параметр pointId 1
[[!AjaxSnippet?
&snippet=`msPointsIssue.product.cost`
&delivery=`68`
&pointId=`1`
&as_target=`.mspointsissue-product-cost`
]]
корзина указать параметр pointLocation[[!msPointsIssue.Order?
&elements=`msOrder`
&tpl=`msAll.order`
&pointLocation=`1`
]]
Здравствуйте, установил компонент, но все названия стран и регинов это знаки вопроса ????????, явно буквы заменились на знак вопроса, как исправить?
Добрый вечер. Явно проблемы с кодировкой бд.
вижу что созданные таблицы для модуля имеют кодировку latin1_swedish_ci
как исправить проблему?
хотя весь сайт: utf8_general_ci
как исправить проблему?
хотя весь сайт: utf8_general_ci
Здравствуйте. Проблема. Не редиректит после выбора города.
Поставил чистый MODX, установил пакет и города.
Скажите пожалуйста в чем может быть проблема, куда «копать»?
Поставил чистый MODX, установил пакет и города.
Скажите пожалуйста в чем может быть проблема, куда «копать»?
Спасибо за нужное дополнение. Возникла проблема с тем что после выбораа города не хочет переадресовывать на страницу которую выбрал для города. Не могли бы вы помочь?
При установке возникает следующая ошибка:
Trying to download sxgeocity. Please wait...
Error HY000 executing statement: Array ( [0] => HY000 [1] => 2006 [2] => MySQL server has gone away )
Error HY000 executing statement: INSERT INTO `modx_session` (`id`, `access`, `data`) VALUES ('cjtbnkq5dspj1gutiufgrr4ja1', 1497397299, 'modx.user.contextTokens|a:1:{s:3:\"mgr\";i:1;}modx.mgr.user.token|s:52:\"modx59406c85322492.08125157_159406ca6cb69f8.32650469\";modx.mgr.session.cookie.lifetime|i:0;modx.mgr.user.config|a:0:{}') Array ( [0] => HY000 [1] => 2006 [2] => MySQL server has gone away )
Подскажите в чём может быть беда?
Это ошибку победил, теперь установка виснет на:
Trying to download sxgeocity. Please wait...
очевидно не установка не укладывается в таймауты
Володя
Не думали о том, чтобы сократить количество js и css файлов, которые подключаются для работы компонента?
Не думали о том, чтобы сократить количество js и css файлов, которые подключаются для работы компонента?
gl/css/web/default.css
gl/vendor/colorbox/example1/colorbox.css
gl/vendor/select2/dist/css/select2.min.css
gl/js/web/default.js
gl/vendor/colorbox/i18n/jquery.colorbox-ru.js
gl/vendor/colorbox/jquery.colorbox-min.js
gl/vendor/select2/dist/js/i18n/ru.js
gl/vendor/select2/dist/js/select2.min.js
Почти во всех дополнениях для оформления из коробки используется Bootstrap. Было бы очень удобно, если бы GeoLocation также использовал Bootstrap. Что думаете? Было бы очень удобноАналогичное мнение, было бы очень удобно.
Не всегда действующий функционал пишется как мне того хочется, а по желанию заказчика…
Сколько будет стоить реализация?
5 000 руб
Согласен. Что нужно сделать? Куда платить?
напишите в скайп или на почту, контакты в профиле modx.pro/users/297/
Добрый день!
Поддержку прошлых ораторов, чисто теоретически можно сделать и через модификаторы, но почему если город есть в списке, то предлагает не его выбрать а тот, что по умолчанию? И автоматически не определяет его, хотя параметр
[gl.real.city.name_ru] работает как часы.
Поддержку прошлых ораторов, чисто теоретически можно сделать и через модификаторы, но почему если город есть в списке, то предлагает не его выбрать а тот, что по умолчанию? И автоматически не определяет его, хотя параметр
[gl.real.city.name_ru] работает как часы.
Добрый вечер.
Не могу сказать, попробуйте вызвать сниппет некешированным.
Не могу сказать, попробуйте вызвать сниппет некешированным.
Он и так выводиться не кешированным
Что бы было понятно, как я проверяю, добавляю свой регион, в котором я нахожусь, по умолчанию другой регион. Захочу с компьютера, на котором не разу не посещал сайт и он меня спрашивает, ваше регион? и показывает не мой, а тот, что «по умолчанию». все сниппеты вызываются не кешированными. Может кто сталкивался и нашел решение проблемы?
У меня почему-то определяет, что я в Астрахани. Хотя тот же 2ip определяет город корректно. У вас не было такой ситуации?
Добрый День! Подскажите, а возможно ли реализовать вывод товаров в зависимости от выбранного города и как это можно сделать. Для вывода товаров использую msProducts
Привет.
а возможно ли реализовать вывод товаров в зависимости от выбранного городавозможно…
как это можно сделатьсамое простое забить у товара поле город и выводить товары фильтрую по данному полю.
Я наверно не совсем правильно поставил вопрос, я имею ввиду, можно ли как то привязывать товары к городам именно в GeoLocation? Вариант с дополнительным полем впринципе тоже подошел бы если к примеру в условии выборки сравнивать его значение со значением выбранного города, но если честно не знаю как это сделать, с чем именно сравнивать и не уверен что вообще так будет работать
можно ли как то привязывать товары к городам именно в GeoLocationнет, можно сделать написав плагин для подгрузки комбика к товару…
либо писать название города просто в текстовое поле.
в условии выборки сравнивать его значение со значением выбранного городаданные локации доступны в сессии и в служебных плейсхолдерах. Берете оттуда и подставляете в сниппет.
Если у вас не хватает знаний это реализовать попробуйте разместить объявление о работе modx.pro/work/
Здравствуйте! Подскажите как добавить (и вообще возможно ли) дополнительное поле с телефоном. В большинстве случаев просто используются два типа номера — городской и мобильный. Попытался редактировать файлы gl.mysql.schema.xml, gl.class.php, data.map.inc.php и при изменении последнего все летит.
Добрый день.
СУдя по таблице github.com/vgrish/gl/blob/master/core/components/gl/model/schema/gl.mysql.schema.xml#L99-L111
я уже добавлял кучу полей, создайте настройку
gl_fields_window_data и пропишите в ней
СУдя по таблице github.com/vgrish/gl/blob/master/core/components/gl/model/schema/gl.mysql.schema.xml#L99-L111
я уже добавлял кучу полей, создайте настройку
gl_fields_window_data и пропишите в ней
id,default,class,resource,identifier,image,phone,phone_add,email,address,active,name_alt
и у вас будет два поля с телефоном
Добрый день! Спасибо за направление: создал настройку — телефон появился, но каким плейсхолдером его вызывать я так и не понял. По комментариям выше создал аналогичную настройку с добавлением add1,add2,add3 и собственно номер теперь указывается через доп. поле, хотя ваш вариант более эстетичнее.
но каким плейсхолдером его вызывать я так и не понял.
аналогично другим плейсхолдерам. Тестировать лучше в анонимном режиме браузера. так как данные дергаются один раз и пишутся в сессию, затем берутся отттуда. Скорее всего с этим связана ваша проблема.
Приветствую.
Как все же отключить или удалить это регион по умолчанию?
Чтобы при определение региона отображались его реальные данные, а не По умолчанию.
Как все же отключить или удалить это регион по умолчанию?
Чтобы при определение региона отображались его реальные данные, а не По умолчанию.
Привет.
Немного подумать. Например создать плагин на событие OnHandleRequest с приоритетом -1
Немного подумать. Например создать плагин на событие OnHandleRequest с приоритетом -1
/* check context */
if ($modx->context->key == 'mgr') {
return;
}
/** @var gl $gl */
if (!$gl = $modx->getService('gl', 'gl',
$modx->getOption('gl_core_path', null, $modx->getOption('core_path') . 'components/gl/') . 'model/gl/')
) {
return 'Could not load gl class!';
}
$gl->initialize($modx->context->key);
if (empty($gl->opts['check'])) {
$gl->opts['real'] = $gl->opts['current'] = $gl->getRealData();
$gl->opts['check'] = true;
}
Доброго времени! Почему не определяется реальный город при первом посещении страницы? А всегда показывает ваш город по умолчанию? Эта функция вообще работает?Пробовал на разных Modx. Как при первом запуске поместить реальный город в сплывающее окно, а при нажатии ДА записывать в current? Пробовал при помощи сессии поместить реальный город при загрузке страницы в current но в итоге реальный город появляется после того как несколько раз обновить страницу
Подскажите, можно ли выбор города сделать без перезагрузки страницы? Кроме того, что переписывается ключ в сессии, что еще меняется при этом? Как это будет выглядеть на странице товара и на странице корзины?
Подскажите, можно ли выбор города сделать без перезагрузки страницы?вызвать сниппет gl.modal с параметром
&pageReload=`0`
Кроме того, что переписывается ключ в сессии, что еще меняется при этом?ничего.
Как это будет выглядеть на странице товара и на странице корзины?как и на любой другой странице
А тогда зачем сам релоад был задуман?
Перезагрузить страницу и показать данные соответствующие новой локации.
Ок, а каким параметрам нужен новый ключ из сессии?? На странице товара понятно — город он и есть город, а в корзине? Хотелось бы на странице корзины обновлять стоимость доставки с учетом вновь выбранного города без перезагрузки самой страницы.
Хотелось бы на странице корзины обновлять стоимость доставки с учетом вновь выбранного города без перезагрузки самой страницыа это уже совсем другая история…
Подскажите каким образом можно ограничить реальную геопозицию? Мне нужно чтобы определялась геопозиция только пользователей крупных городов Москва Питер Новосибирск а остальным подставлялся г Москва.
Плагин вроде этого modx.pro/components/7294-gl-geo-location/#comment-85971
только с приоритетом > =1
в нем смотрите локацию и если она не соответствует вашим требованиям заменяете на то что нужно
только с приоритетом > =1
в нем смотрите локацию и если она не соответствует вашим требованиям заменяете на то что нужно
Ну так вытащите id этих крупных городов в свой список и проверяйте, если не совпадает, то Москва. например для Питера это =498817, Новосиб = 1496747, Москва =524901
Владимир, можете подсказать как в нем смотреть локацию?
Код в примере более чем очевиден. Я на данный момент не располагаю временем, есть раздел modx.pro/work/
разместите предложение о нужной вам помощи там.
Если вам прям горит — могу завтра помочь за 1 тр. Кидаете вот тут yasobe.ru/na/vgrish и пишите в личку.
Спасибо за понимание.
разместите предложение о нужной вам помощи там.
Если вам прям горит — могу завтра помочь за 1 тр. Кидаете вот тут yasobe.ru/na/vgrish и пишите в личку.
Спасибо за понимание.
привет! а можете ответить на мой вопрос? функция определения города работает при первом посещении? или это только у меня не работает
Вот ответ и не е** мозга!:
<span class="gl-current-select">[[!+gl.current.city.name_ru:is=`По умолчанию`:then=`[[!+gl.real.city.name_ru]]`:else=`[[!+gl.current.city.name_ru]]`]]</span>
Ну далее? как потом? если пользователь захочет сменить город? будет все время реальный показывать. Мне нужно записать реальный город в сессию current. И по логике как написано так и должно работать по у молчанию а у меня не работает
Будет показывать то что выбрано! В сессию как раз и запишется то что выбрано, ты весь код рассмотрел или только то что видно? там ползунок… Этот код приводил выше разработчик. у меня все пашет.
На край смотри чо в сессии!
На край смотри чо в сессии!
Самый умный что ли?)) Вот ветка комментариев где эта проблема изложена и она не у меня одного. вот еще комментарий по данному вопросу. Да действительно если выводить параметр real то будет определение города — это работает, но при смене города так и будет реальное место положение а не выбранное так как выбранное храниться в current. А теперь объясни как твой код решает данную проблему? если там условие на проверку по умолчанию а по умолчанию будет всегда так как не определяется город реальный при заходе на сайт а подставляется всегда по умолчанию. тут Володя подсказал что можно записать в сессию реальное место положение при первом посещении сайта и это работает, только опять же в моем случае это плагином не работало, какой бы я приоритет не ставил — только если загрузить страницу и следом обновить — только потом подставляется реальный город, если он есть в списке. Данный вопрос решил изменением в файле glonhandlerequest.class.php там получаю массив id городов и при условии если есть реальный город в списке, записываю в сессию и вывожу данные города. И вопрос я задал не тебе, я просто спросил работает ли данная функция или только у меня не все ладно
Да как бы код не мой как бы, а как бы Володя его выше приводил как бы.
А насчет самый умный — да, так и есть, в народе именно так и говорят про меня.
И как бы ты спросил работает или нет — я ответил — да, у меня работает. А приведенный код для понятного показа того, что выбрано, а что не выбрано, сама сессия пишется исправно! Вопрос только в выводе из неё информации.
А насчет самый умный — да, так и есть, в народе именно так и говорят про меня.
И как бы ты спросил работает или нет — я ответил — да, у меня работает. А приведенный код для понятного показа того, что выбрано, а что не выбрано, сама сессия пишется исправно! Вопрос только в выводе из неё информации.
а, дядь, смотри! вот еще что я применяю, в файл default.js из папки /assets/components/gl/js/web добавь внизу пару штрихов!!!)
Было:
Было:
$(document).on('gl_action', function (e, action, data, response) {
//console.log(action, data, response);
});
Стало:$(document).on('gl_action', function (e, action, data, response) {
var name_city_new = response['object']['current']['city']['name_ru'];
$('.gl-current-select').text(name_city_new);
});
при первом посещении в сессию current у меня записывается город по умолчанию, а не реальный который есть в списке и должен там быть. собственно данный скрипт если я правильно понимаю, будет записывать по умолчанию в элемент с классом .gl-current-select. а нужно чтоб был реальный город
Поделитесь пожалуйста решением, а то у меня такая же беда, подхватывает только после обновления страницы
найдите и откройте этот файл core/components/gl/model/gl/systems/glonhandlerequest.class.php начиная с 22 строки есть такой код
if (empty($this->gl->opts['check'])) {
$this->gl->opts['real'] = $this->gl->getRealData();
$this->gl->opts['current'] = $this->gl->getDefaultData();
$os = array('542415','524894','524925','498671','578853','2017623');
$reg = $_SESSION['gl']['opts']['real']['region']['id'];
if (in_array($reg, $os)) {
$_SESSION['gl']['opts']['current'] = $_SESSION['gl']['opts']['real'];
}
$this->gl->opts['check'] = true;
}
я добавил следующее $os = array('542415','524894','524925','498671','578853','2017623');
$reg = $_SESSION['gl']['opts']['real']['region']['id'];
if (in_array($reg, $os)) {
$_SESSION['gl']['opts']['current'] = $_SESSION['gl']['opts']['real'];
}
цифры это ID городов или Регионов которые у вас есть в списке, записанные в переменную os дальше идет сравнение с реальным место положением ну если ID одинаковый в current записывается реальное место положение. P/S — я не программист и в PHP практически не разбираюсь
Мне необходимо добавить Симферополь в города. SxGeo считает что это Украина. Я включаю Украину на вкладке «Страны». Теперь мне нужно загрузить города. Но если это сделать то пропадут все данные по городам. А у меня там по каждому городу России заполнены данные. Может есть какой-то вариант добавить город без потери данных?
Подскажите пожалуйста, как выводить больше 10 городов в модальном окне?
limit — Ограничение количества результатов выборки.
Спасибо!
Добрый день.
Точно такой же вопрос как и здесь.
modx.pro/components/7294/#comment-89586
И еще если обновить приложение, то пропадают все города. (А если их очень много, то это печаль).
Как можно восстановить их после обновления? Что нужно перед обновлением сделать, чтобы их восстановить или чтобы они не пропали?
Точно такой же вопрос как и здесь.
modx.pro/components/7294/#comment-89586
И еще если обновить приложение, то пропадают все города. (А если их очень много, то это печаль).
Как можно восстановить их после обновления? Что нужно перед обновлением сделать, чтобы их восстановить или чтобы они не пропали?
Доброе утро.
Как можно восстановить их после обновления? Что нужно перед обновлением сделать, чтобы их восстановить или чтобы они не пропали?такой возможности нет.
Скажите можно ли как-то сделать, что при указании данных (адрес, телефон) с классом «Регион», они применялись ко всем городам региона? Т.е указали номер телефона для Воронежской области и они выводятся и для Воронежа и для других городов области
плагин на OnHandleRequest и там выставляете нужные вам данные.
я просто думал эта логика из коробки в методе getCurrentData (core/components/gl/model/gl/gl.class.php). Если нет данных для города, берем данные для региона, если нет для региона берем для страны… или нет?
...
case 'glCity':
if ($city = $this->getObjectData('glCity', array('id' => $id))) {
$data['city'] = $city;
}
if (
!empty($city)
AND
$regionId = $this->modx->getOption('region_id', $city)
AND
$region = $this->getObjectData('glRegion', array('id' => $regionId))
) {
$data['region'] = $region;
}
if (
!empty($region)
AND
$countryId = $this->modx->getOption('country', $region)
AND
$country = $this->getObjectData('glCountry', array('iso' => $countryId))
) {
$data['country'] = $country;
}
...
Если честно то я не помню. Поднимите тестовый сайт, проверьте.
Уже разобрался, из коробки такой логики нет, пришлось переписать getCurrentData, добавить условия:
if ($this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'));
} elseif ($this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'));
} else {
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryId, 'class' => 'glCountry'));
}
полная версия:public function getCurrentData($id = 0, $class = 'glCity')
{
/* array cache $options */
$options = array(
'cache_key' => 'gl/data/' . $class . '/' . $id,
'cacheTime' => 0,
);
if (!$data = $this->getCache($options)) {
$data = array();
switch ($class) {
case 'glCountry':
if ($country = $this->getObjectData('glCountry', array('id' => $id))) {
$data['country'] = $country;
}
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => $class));
break;
case 'glRegion':
if ($region = $this->getObjectData('glRegion', array('id' => $id))) {
$data['region'] = $region;
}
if (
!empty($region)
AND
$countryId = $this->modx->getOption('country', $region)
AND
$country = $this->getObjectData('glCountry', array('iso' => $countryId))
) {
$data['country'] = $country;
}
if ($this->getObjectData('glData', array('identifier' => $id, 'class' => 'glRegion'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => 'glRegion'));
} else {
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryId, 'class' => 'glCountry'));
}
break;
case 'glCity':
if ($city = $this->getObjectData('glCity', array('id' => $id))) {
$city = $this->getObjectData('glCity', array('id' => $id));
$data['city'] = $city;
}
if (
!empty($city)
AND
$regionId = $this->modx->getOption('region_id', $city)
AND
$region = $this->getObjectData('glRegion', array('id' => $regionId))
) {
$data['region'] = $region;
}
if (
!empty($region)
AND
$countryId = $this->modx->getOption('country', $region)
AND
$country = $this->getObjectData('glCountry', array('iso' => $countryId))
) {
$data['country'] = $country;
}
if ($this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'));
} elseif ($this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'));
} else {
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryId, 'class' => 'glCountry'));
}
break;
default:
$data = array();
break;
}
if ($this->modx->getOption('gl_isprocess_data', null, true, true)) {
$data = $this->processData($data);
}
$this->setCache($data, $options);
}
return $data;
}
К сожалению как оформить это, по человечески, в виде плагина не знаю
и почему-то не работает, если данные для города надо подтянуть из данных для страны
немного поправил где надо вернуть данные для страны вместо
вот полный код:
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryId, 'class' => 'glCountry'));
нужно$data['data'] = $this->getObjectData('glData', array('identifier' => $countryIdTemp, 'class' => 'glCountry'));
где $countryIdTemp = $this->modx->getOption('id', $country);вот полный код:
public function getCurrentData($id = 0, $class = 'glCity')
{
/* array cache $options */
$options = array(
'cache_key' => 'gl/data/' . $class . '/' . $id,
'cacheTime' => 0,
);
if (!$data = $this->getCache($options)) {
$data = array();
switch ($class) {
case 'glCountry':
if ($country = $this->getObjectData('glCountry', array('id' => $id))) {
$data['country'] = $country;
}
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => $class));
break;
case 'glRegion':
if ($region = $this->getObjectData('glRegion', array('id' => $id))) {
$data['region'] = $region;
}
if (
!empty($region)
AND
$countryId = $this->modx->getOption('country', $region)
AND
$country = $this->getObjectData('glCountry', array('iso' => $countryId))
) {
$data['country'] = $country;
$countryIdTemp = $this->modx->getOption('id', $country);
}
if ($this->getObjectData('glData', array('identifier' => $id, 'class' => 'glRegion'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => 'glRegion'));
} else {
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryIdTemp, 'class' => 'glCountry'));
}
break;
case 'glCity':
if ($city = $this->getObjectData('glCity', array('id' => $id))) {
$city = $this->getObjectData('glCity', array('id' => $id));
$data['city'] = $city;
}
if (
!empty($city)
AND
$regionId = $this->modx->getOption('region_id', $city)
AND
$region = $this->getObjectData('glRegion', array('id' => $regionId))
) {
$data['region'] = $region;
}
if (
!empty($region)
AND
$countryId = $this->modx->getOption('country', $region)
AND
$country = $this->getObjectData('glCountry', array('iso' => $countryId))
) {
$data['country'] = $country;
$countryIdTemp = $this->modx->getOption('id', $country);
}
if ($this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $id, 'class' => 'glCity'));
} elseif ($this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'))) {
$data['data'] = $this->getObjectData('glData', array('identifier' => $regionId, 'class' => 'glRegion'));
} else {
$data['data'] = $this->getObjectData('glData', array('identifier' => $countryIdTemp, 'class' => 'glCountry'));
}
break;
default:
$data = array();
break;
}
if ($this->modx->getOption('gl_isprocess_data', null, true, true)) {
$data = $this->processData($data);
}
$this->setCache($data, $options);
}
return $data;
}
сильно не пинайте, в php нуб) но лучше конечно плагин сильно не пинайте, в php нуб) но лучше конечно плагинучитесь… читайте данный ресурс, тут есть множество примеров, в том числе и с плагинами.
Идеально, работает спасибо. Файл где надо менять /core/components/gl/model/gl/gl.class.php
Здравствуйте, Володя. Скажите, как можно объединить 2 ваших дополнения: GeoLocation (для создания разных регионов и указания им разных данных, напр., контактных) и msOptionsPrice2 (для создания разных опций товаров и указания им соответственно разных цен). Идея такая: чтобы в msOptionsPrice2 появился новый «модификатор» Город/Регион, наравне с color, size и др. Отличие лишь в том, что этот параметр нельзя изменить в карточке товара, а он устанавливается в 1 месте на весь сайт.
Если у товара в модификациях только 1 регион, то этот товар отображать только в этом регионе.
Если у товара несколько регионов, то отображать в этих регионах, а в других скрывать.
Если у товара не указан регион, то отображать во всех.
Если у товара в модификациях только 1 регион, то этот товар отображать только в этом регионе.
Если у товара несколько регионов, то отображать в этих регионах, а в других скрывать.
Если у товара не указан регион, то отображать во всех.
del
Володя, не сразу разобрался снаскока. Подскажите, в чем может быть проблема?
Установил компонент, загрузил базы — все нормально. Хочу сделать вывод не через модальное окно. В итоге у меня к полю select не цеплялся стиль от select2. Я его принудительно вызвал, стиль поменялся. Но когда я ввожу в поле курсор, у меня в выпадающем списке только одно поле «No results found». При этом в консоле никакие ajax запросы не идут. Убираю принудительный вызов и ставлю чтобы работал через модальное окно — всё пашет.
Что нужно сделать? Пытался самостоятельно разобраться, есть подозрение, что обработчик фокуса работает только в обертке каких-то определенных классов. Подскажите, или какой скрипт за это отвечает?
Установил компонент, загрузил базы — все нормально. Хочу сделать вывод не через модальное окно. В итоге у меня к полю select не цеплялся стиль от select2. Я его принудительно вызвал, стиль поменялся. Но когда я ввожу в поле курсор, у меня в выпадающем списке только одно поле «No results found». При этом в консоле никакие ajax запросы не идут. Убираю принудительный вызов и ставлю чтобы работал через модальное окно — всё пашет.
Что нужно сделать? Пытался самостоятельно разобраться, есть подозрение, что обработчик фокуса работает только в обертке каких-то определенных классов. Подскажите, или какой скрипт за это отвечает?
Добрый день!
Можно ли определить местоположение (улицу и №дома) пользователя сайта.
На основе этих данных вывести магазины наиболее близкие к нему?
Можно ли определить местоположение (улицу и №дома) пользователя сайта.
На основе этих данных вывести магазины наиболее близкие к нему?
Добрый.
Нет.
Нет.
Здравствуйте, подскажите, почему может возникать такая ошибка при установке? Пробовал мудрить с кодировками типа utf8mb4 и так далее, ничего не помогло… на сервере стоит просто LAMP, php 7.1, версия modx 2.6.1-pl
При этом, Страны не загружаются и разумеется дальше ничего не работает ((( Хотя сама форма отображается на сайте, всё ок… (
При этом, Страны не загружаются и разумеется дальше ничего не работает ((( Хотя сама форма отображается на сайте, всё ок… (
Добрый день! Подскажите, как выводить в списке городов модального окна не все загруженные, а только те города, которые я добавил на вкладке «Данные»?
Здесь нужно указать другой класс?
Здесь нужно указать другой класс?
<ul class="gl-change-list">
[[!gl.location?
&class=`[[+class]]`
&where=`{"default":0}`
&limit=`30`
]]
</ul>
Добрый день!
Требуется сделать всё что может данный модуль через
Ну и при выборе то или иного меняется номер телефона, адрес
Как это реализовать, помогите пожалйуста.
Требуется сделать всё что может данный модуль через
<select>
<option>Москва</option>
<option>Санкт-Петербург</option>
</select>
Т.е. модальное окно не нужно вообще.Ну и при выборе то или иного меняется номер телефона, адрес
Как это реализовать, помогите пожалйуста.
Очень не хватает колонки menuindex для стран, регионов и городов. Это нужно для кастомного вывода и сортировки на фронте сайта.
Получится добавить эту возможность в пакет?
Получится добавить эту возможность в пакет?
Возможно когда будет нечем заняться или потребуется такая возможность.
Вы можете сделать это самостоятельно и прислать PR.
Вы можете сделать это самостоятельно и прислать PR.
Ок, спасибо…
Добрый день. При вызове скрипта. Модальное окно пустое. Ошибок нету, Не один город не выводится. Подскажите в чем проблема prnt.sc/jjh2sp
Все нужные города прогрузились
Уже решил проблему
Добрый день. Подскажите пожалуйста перенес сайт на другой хостинг, и теперь почти все ip Москвы определяет как Маунтин-Вью.
Здравствуйте!
Подскажите, пожалуйста, как я могу вывести определенные города в форме выбора города?!
Вывести Таганрог, Азов, Новочеркасск.
Но, чтоб при поиске все города работали по прежнему
Подскажите, пожалуйста, как я могу вывести определенные города в форме выбора города?!
Вывести Таганрог, Азов, Новочеркасск.
Но, чтоб при поиске все города работали по прежнему
Чтобы вывести определенные города можно сделать так
[[!gl.location?
&class=`[[+class]]`
&limit=`30`
&where=`{«id:IN»:[1486209,524901,1488754,1496747,479561,1508291,542420]}`
]]
где 1486209 — это id городов
[[!gl.location?
&class=`[[+class]]`
&limit=`30`
&where=`{«id:IN»:[1486209,524901,1488754,1496747,479561,1508291,542420]}`
]]
где 1486209 — это id городов
Приветствую, подскажите почему то не выводится адрес [[!+gl.current.data.address]]
в админке ставлю галочку перед полем адрес, а после того как нажимаю сохранить и опять захожу назад, то галочки уже нет. Ставлю снова, открывается доп. поле, и адрес там уже введен. Но как только нажимаю сохранить то галочка переде «адрес» пропадает (((
в админке ставлю галочку перед полем адрес, а после того как нажимаю сохранить и опять захожу назад, то галочки уже нет. Ставлю снова, открывается доп. поле, и адрес там уже введен. Но как только нажимаю сохранить то галочка переде «адрес» пропадает (((
Здравствуйте, а есть возможность добавить почтовые индексы городов? если да то как?
приветствую как отключить модальное окно но чтобы модуль работал?
Компонент исправен? При установке у меня пишет «Unable to find End of Central Dir Record signature», и не распаковывает colorbox и 2 ещё каких-то (не запомнил) архива. Разумеется, после этого компонент не работает.
проверьте на тесте modhost.pro
у меня все корректно установилось и работает.
у меня все корректно установилось и работает.
Подскажите, как можно импортировать данные в поля из excel файла/xml/из других источников? Например, загрузить телефоны/email для 100 регионов
в компоненте нет такой реализации. Выход написать скрипт который зальет данные из xml в регионы.
В последней версии ошибочка в glregion.map.inc.php из за чего поиск по имени ломается:
github.com/vgrish/gl/blob/master/core/components/gl/model/gl/mysql/glregion.map.inc.php#L36-L51
phptype должен быть string
github.com/vgrish/gl/blob/master/core/components/gl/model/gl/mysql/glregion.map.inc.php#L36-L51
phptype должен быть string
Добрый день!
Как решить такую проблему:
При выборе посетителем города по умолчанию, данные адреса и телефона не показываются.
Т.е человек заходит на сайт, видит данные (по умолчанию) и окно выбора городов, если он выбирает тот же город, что показывается по умолчанию — то все данные тут же пропадают.
Скрин кода
Как решить такую проблему:
При выборе посетителем города по умолчанию, данные адреса и телефона не показываются.
Т.е человек заходит на сайт, видит данные (по умолчанию) и окно выбора городов, если он выбирает тот же город, что показывается по умолчанию — то все данные тут же пропадают.
Скрин кода
Такая же проблема с полем Адрес… При сохранение данных галочка отключается…
Доброго времени суток, коллеги.
Подскажите пожалуйста есть ли возможность обращаться к gl.selected.city.name_ru и им подобным переменным используя феном?
Вызов на феноме
{$city|print_r} выдаёт 1…
UPD: Прошу прощения, увидел комментарием выше, {$_modx->getPlaceholder('gl.real.city.name_ru')}.
Подскажите пожалуйста есть ли возможность обращаться к gl.selected.city.name_ru и им подобным переменным используя феном?
Вызов на феноме
{set $city=$_modx->runSnippet('!gl.modal')}
, но при обращении $city.selected.city.name_ru или просто к $gl.selected.city.name_ru получаю пустоту.{$city|print_r} выдаёт 1…
UPD: Прошу прощения, увидел комментарием выше, {$_modx->getPlaceholder('gl.real.city.name_ru')}.
Здравствуйте!
Столкнулась с такой ситуацией:
определение геолокации как-будто бы работает/не работает в зависимости от интернет провайдера. Не знаю как такое может быть, но с мобильного интернета теле2 — местоположение определяется правильно, Санкт-Петербург. С другого провайдера — city telecom, [[!+gl.real.region.name_ru]] постоянно выдаёт Москву. Проблема проявилась ещё и в другом регионе, и при попытках проверять через прокси.
Для интереса заходила на другие сайты с наличием геолокации (сделанные не на modx) — где-то определение правильно, а где-то опять Москва.
На location.vgrish.ru/index.php?id=7 такая же ситуация. С сити телеком — Москва, с теле2 — правильное определение.
Наверное вопрос не совсем сюда, т.к. сам компонент отличный и работает отлично.
Но возможно Вы или ещё кто-нибудь сможет подсказать в каком направлении мне искать.
Заранее спасибо.
Столкнулась с такой ситуацией:
определение геолокации как-будто бы работает/не работает в зависимости от интернет провайдера. Не знаю как такое может быть, но с мобильного интернета теле2 — местоположение определяется правильно, Санкт-Петербург. С другого провайдера — city telecom, [[!+gl.real.region.name_ru]] постоянно выдаёт Москву. Проблема проявилась ещё и в другом регионе, и при попытках проверять через прокси.
Для интереса заходила на другие сайты с наличием геолокации (сделанные не на modx) — где-то определение правильно, а где-то опять Москва.
На location.vgrish.ru/index.php?id=7 такая же ситуация. С сити телеком — Москва, с теле2 — правильное определение.
Наверное вопрос не совсем сюда, т.к. сам компонент отличный и работает отлично.
Но возможно Вы или ещё кто-нибудь сможет подсказать в каком направлении мне искать.
Заранее спасибо.
Всем доброго времени!
Столкнулся вот с такой проблемой — при загрузке списка стран, вместо России выдаёт вот такое:
И список регионов и городов не загружается(
Уже и удалял пакет целиком с чисткой БД и кеша, но не помогает. Может поможете? Заранее спасибо.
Столкнулся вот с такой проблемой — при загрузке списка стран, вместо России выдаёт вот такое:
И список регионов и городов не загружается(
Уже и удалял пакет целиком с чисткой БД и кеша, но не помогает. Может поможете? Заранее спасибо.
Поищи в списке стран Россию повнимательнее. DD — это поле «по умолчанию».
В списке, в ручную нашёлся, но, основная проблема не в этом. Во фронтенде также не ищет «Москву».
Вопрос решил, может кому пригодиться, как писали выше, есть ошибка в "/components/gl/model/gl/mysql/glregion.map.inc.php", в 'phptype' для «name_ru» надо выставить 'string' вместо 'varchar' Это касаеться и файлов glcountry.map.inc.php и glcity.map.inc.php
Вопрос решил, может кому пригодиться, как писали выше, есть ошибка в "/components/gl/model/gl/mysql/glregion.map.inc.php", в 'phptype' для «name_ru» надо выставить 'string' вместо 'varchar' Это касаеться и файлов glcountry.map.inc.php и glcity.map.inc.php
Не качаются Регионы и Города, проблема известна?
Добрый день! Подскажите пожалуйста, в каком-то файле настраивается время жизни сессий и кук, хранящих город пользователя, или же время жизни установлено только на уровне настроек сервера?
Доброго дня! Использую компонент в Tickets. Выставил город по умолчанию Москва. Вызываю так
Заранее спасибо за ответы! А то перелопатил всё… ничего не нашел
<div class="form-group">
<label for="ticket-pagetitle">Ваш Город</label>
<input type="text" class="form-control gl-current-select" placeholder="city" name="city" value="[[!+gl.real.city.name_ru]]" maxlength="50" id="ticket-city"/>
[[!gl.modal?
&class=`glCity`
]]
<span class="error"></span>
</div>
Как сделать, что-бы при изменение города из модального окна город менялся на выбранный. т.е value менялось с [[!+gl.real.city.name_ru]] на [[!+gl.current.city.name_ru]]?Заранее спасибо за ответы! А то перелопатил всё… ничего не нашел
Доброго времени суток.
Не могу сообразить, как поменять внешний вид модального окна!
Т.е. я имеюю ввиду не редактирование чанка tpl.gl.modal, а внешней оболочки.
Самое элементарное — переместить кнопку «закрыть» в верх.
В ощем если я правильно понял все эти стили и внешние дивы запилены в каких-то скриптах, где именно не подскажете?
Не могу сообразить, как поменять внешний вид модального окна!
Т.е. я имеюю ввиду не редактирование чанка tpl.gl.modal, а внешней оболочки.
Самое элементарное — переместить кнопку «закрыть» в верх.
В ощем если я правильно понял все эти стили и внешние дивы запилены в каких-то скриптах, где именно не подскажете?
Дорогие друзья, скажите можно ли сделать отображение ссылок на контексты в коде страницы?
<li>
<span class="gl-list-location" data-id="580497" data-class="glCity">Астрахань</span>
<< URL ссылка на контекст>>
</li>
Hi! Вывожу список товаров через msProducts, при смене города цена не меняется. Внутри в карточке товара и в корзине все ок. Может кто сталкивался или знает где покопаться :)?
И еще заметил когда добавляешь региональные цены для категории а потом удаляешь то удаляются все товары в категории.
И еще заметил когда добавляешь региональные цены для категории а потом удаляешь то удаляются все товары в категории.
Подскажите, как вывести сниппет gl.modal список городов с select чтобы работал?
Это сообщение было удалено
Приветствую!
Обнаружил такую проблему. Город меняется со второго раза. Т.е. захожу я в первый раз на сайт и мне показывают окно с вопросом о городе. Я выбираю другой город, страница перезагружается, происходит верная переадресация и показывается верный контент, но в шапке (http://prntscr.com/ofg2sl) по прежнему остается город «по умолчанию» и только повторно вызвав модальное окно и сменив город в шапке наконец появляется нужное название. Дальнейшая смена работает с первого раза.
У меня стандартный вызов по инструкции, но такое даже на демо-сайте.
Кто-нибудь сталкивался с подобным?
Обнаружил такую проблему. Город меняется со второго раза. Т.е. захожу я в первый раз на сайт и мне показывают окно с вопросом о городе. Я выбираю другой город, страница перезагружается, происходит верная переадресация и показывается верный контент, но в шапке (http://prntscr.com/ofg2sl) по прежнему остается город «по умолчанию» и только повторно вызвав модальное окно и сменив город в шапке наконец появляется нужное название. Дальнейшая смена работает с первого раза.
У меня стандартный вызов по инструкции, но такое даже на демо-сайте.
Кто-нибудь сталкивался с подобным?
Поддерживаю вопрос, та же ерунда, вроде как вызов не кеширован, но смена города работает со 2го раза только…
Ура! Нашёл решение проблемы!
Открываем core/components/gl/model/gl/gl.class.php
Ищем
и заменяем на
У меня меняется город при первом входе с первого раза!
Открываем core/components/gl/model/gl/gl.class.php
Ищем
$this->opts = &$_SESSION[$this->namespace]['opts'];
на 64 строкеи заменяем на
$this->opts = &$_SESSION[$this->namespace]['gl']['opts']['current'];
PROFIT!У меня меняется город при первом входе с первого раза!
Большое спасибо за дополнение. Как поменять «по умолчанию» на текущее определенное положение понял. Но заметил, что когда нажимаешь «да» то определенное положение никуда не записывается. Если давишь «изменить» и выбрать другой город- его значение записывается в current.city. Такое ощущение что надо допилить только момент с записыванием определенного города в current.city по клику на «да» в модальном окне и приложение будет идеальным! Кто нибудь этот момент победил, и как?
Коммент выше от меня, думаю Вам должно помочь, мне помогло.
Не помогло. При смене города у меня из коробки все меняется. Я сделал так, что при первом заходе скрипт определяет город и уточняет- ваш город такой-то? Так вот, если в этом случае нажать «да» то определенный город не записывается в текущий, там так и остается «По умолчанию».
Хм, не совсем понимаю, что требуется у Вас сделать, но по моему речь о том, что «По умолчанию» мешает, я просто через PHPMyAdmin переименовал «По умолчанию» в главный город и проблема пропала. Так же например я поступал с городами которых нет в SxGeo, брал ближайший к нужному (отсутствующему).
при первом заходе у меня вылетает модальное окно с вопросом «ваш город- Москва?» и ниже 2 кнопки «да» и «нет». Москва — реальное место, определяется автоматом для каждого юзера. Я давлю «да» но в Curent это значение не пишется, то есть мне выводится что я в городе «По умолчанию». Если город изменить вручную (выбрать, например, Рязань), то новый выбранный город записывается нормально (в Curent буде выводиться Рязань). Вопрос в том- почему не записывается город определенный автоматически при клике на кнопочку «да»?
Не могу установить пакет. Такая ошибка
2 This file does not appear to be a transport package
получается пакет не совместим с MODX Revolution 2.7.2-pl? Или дело в чем то другом?
2 This file does not appear to be a transport package
получается пакет не совместим с MODX Revolution 2.7.2-pl? Или дело в чем то другом?
по моему вы пытаетесь установить не транспортный пакет, ошибка говорит именно об этом.
Спасибо за ответ! Я скачал архив с github.com/vgrish/gl
пытался установить локально из папки core/packages не вышло
с компа тоже не получилось, выдает ошибку о которой выше писал (2 This file does not appear to be a transport package)
подскажите пожалуйста что нужно сделать, как установить, я начинающий
спасибо
пытался установить локально из папки core/packages не вышло
с компа тоже не получилось, выдает ошибку о которой выше писал (2 This file does not appear to be a transport package)
подскажите пожалуйста что нужно сделать, как установить, я начинающий
спасибо
Я скачал архив с github.com/vgrish/glэто не транспортный пакет, это просто архив и его вы не сможете установить через установщик modx.
пытался установить локально из папки core/packages не вышло
подскажите пожалуйста что нужно сделать, как установить, я начинающийпоиск по данному сайту — сборка транспортного пакета
Подскажите пожалуйста как сделать простейший снипет который будет проверять значение gl.current.city.name_ru
Пробовал так:
if ( $gl.current.city.name_ru == 'Москва') {
echo 'Контент для москвы'
}
Задача в том чтобы выводить разный контент в зависимости от города.
Пробовал так:
if ( $gl.current.city.name_ru == 'Москва') {
echo 'Контент для москвы'
}
Задача в том чтобы выводить разный контент в зависимости от города.
Добрый день,
возможно ли обновить базу ip адресов?
проблема в том, что некорректно отображает город у некоторых ip адресов, причем на сайте библиотеки город корректно определил sypexgeo.net/ru/demo
возможно ли обновить базу ip адресов?
проблема в том, что некорректно отображает город у некоторых ip адресов, причем на сайте библиотеки город корректно определил sypexgeo.net/ru/demo
Доброе утро.
но база <> базе на демо сайте sypexgeo, той базы нет в свободном доступе.
возможно ли обновить базу ip адресов?база закачивается всегда актуальная с sypexgeo.net/ru/download/
проблема в том, что некорректно отображает город у некоторых ip адресов, причем на сайте библиотеки город корректно определил sypexgeo.net/ru/demo
но база <> базе на демо сайте sypexgeo, той базы нет в свободном доступе.
Компонент больше не поддерживается? из modstore тоже удален был :-(
+
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.