К содержанию

Определение страны посетителя и вывод ресурсов под это

Всем привет!
Необходимо решение для определения ГЕО а точнее страны посетителя и вывод ресурсов в зависимости от от этого
Есть ли какие то пакеты для этого? Подскажите буду благодарен

при помощи ipinfo.io и js определение происходит но вряд ли есть возможность использовать эти данные для фильтра вывода ресурсов
у ресурсов есть TV поле где перечислены страны для которых ресурс в категории не нужно показывать
так же в самом ресурсе есть строка с надписью «доступно в стране или нет»

знаю про PHP geoip2, даже установил его на сервер, но дальше пока не прошел…

пс есть еще пакет Locator но он пока не завелся, точнее работает криво
Евгений
Евгений
01 февраля 2024, 01:16
modx.pro
1 698
Реклама

Комментарии: 13

iWatchYouFromAfar
iWatchYouFromAfar Проверенный
01 февраля 2024, 01:29
Был опыт работы с www.maxmind.com/en/geoip-api-web-services, правда вне контекста MODx. Но это по сути не так важно, там rest. Сделаешь сниппет или какой-нибудь модификатор с проверкой.
    Сергей Карпович
    01 февраля 2024, 09:01
    polylang из коробки так умеет.
    1. нужно создать локализации.
    2. в ресурсе добавить эти локализации к нем и переводы
    3. в выводе ресурсов чререз pdotools добавить параметр 'onlyWithLocalization' => 1,
      Евгений
      Евгений Старожил
      01 февраля 2024, 11:20
      нужен не язык а именно гео
        Сергей Карпович
        01 февраля 2024, 11:23
        Там как раз в настройках можно привязываться к гео позиции ipinfo
          Евгений
          Евгений Старожил
          01 февраля 2024, 11:34
          получается данные c ipinfo все таки можно как то на бэкенд подтянуть (сделать проверку)? по сути мне только это и нужно сейчас
          либо другое решение совсем
            Сергей Карпович
            01 февраля 2024, 11:40
            если тебе нужны просто данные c ipinfo, то почитай их доку, у них API есть.
              Евгений
              Евгений Старожил
              01 февраля 2024, 11:46
              просто их данные они выводятся без проблем но по js подтягивается в поле с #country к примеру
              с этим никаких проблем
              а вот как вывод ресурсов и фильтрацию или например сравнить с тв полем и выяснить доступен для страны или нет — увязать с этими данными непонимаю
                Евгений
                Евгений Старожил
                01 февраля 2024, 13:45
                а, понял курлом по апи дернул
                попробую теперь полученный код адаптировать под выборки
        Евгений
        Евгений Старожил
        03 февраля 2024, 22:02
        подскажите как можно сравнить код и tv поля и плейсхолдера
        то есть например у меня в поле TV restricted заполнено us
        и результат работы снипета передает в плейсхолдер us — написать restricted

        [[*restricted:is=`[[+geo]]`:then=`restricted`:else=`accepted`]]
        типа такого но чтобы сработало :)
          Евгений
          Евгений Старожил
          04 февраля 2024, 01:29
          [[!*restricted:is=`[[+geo]]`:then=`Restricted`:else=`Accepted`]]
          такое срабатывает если в tv restricted только один гео выбран, а если несколько то не работает…
            Евгений
            Евгений Старожил
            04 февраля 2024, 01:38
            inarray по идее в бы сработал ыы
            [[+geo:is=`[[*restricted]]`:then=`Restricted`:else=`Accepted`]]
              Евгений
              Евгений Старожил
              04 февраля 2024, 01:48
              contains в итоге затащил
            Евгений
            Евгений Старожил
            04 февраля 2024, 23:41
            теперь вопрос как это провернуть в чанке :)
            [[+geo]] напомню это плейсхолдер содержащий код страны
            [[+tv.restricted:contains=`[[+geo]]`:then=`1`:else=`0`]]
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              13