Вывод блоков в зависимости от города посетителя, ч.2

Автор: Дмитрий Акифьев. Размещено в: 1С-Битрикс

Геолокация

Приветствую, Друзья!

В этом видеоуроке мы продолжим тему о том, как поменять блок на сайте в зависимости от того, из какого города пришел посетитель. Сейчас уже без привязки к 1С-Битрикс.

Я не буду повторять текст прошлого поста – зачем надо определять город, где используется и т.д. 

Повторю только 2 варианта решения задачи:

  1. С помощью модуля Веб-аналитика – это простой вариант, работает с помощью 4-х строк простейшего PHP кода.
  2. С помощью внешних интернет-сервисов, которые могут по запросу сказать город по представленному IP адресу.

Сегодня смотрим как раз 2-й вариант. Кто пропустил первый – смотрим прошлый урок на блоге.

Вариант №2 немного сложнее. Там не 4 строки PHP кода, а аж 15 :)
Причем не просто чистый PHP, а будем использовать пару библиотек его расширяющих – cURL и SimpleXML. С помощью cURL запросим город отослав IP посетителя. В ответ получим строку в XML формате, из которого вытащим только нужный нам город с помощью SimpleXML.

Я не скажу, что если Вы ничего не знаете PHP, то можете и не смотреть урок. В принципе, если просто скопировать код из урока в свой магазин на Битриксе с ред. Малый бизнес, то все работать будет, просто меняете город на свой и получаете результат. Но это только если Ваш хостинг умеет cURL и SimpleXML, и если кодировка Вашего сайта UTF-8. Ну и если посещаемость маленькая и можно позволить на каждом хите запрашивать город посетителя с другого сайта.

Я не рассматриваю как закешировать результат запроса к внешнему сервису для конкретного посетителя, хотя даю направление куда рыть и какие могут быть грабли на Вашем пути. Мы только смотрим механизм как определить город посетителя и поменять в зависимости от этого что-то на сайте. Причем сайт может быть и не Битриксе, а любом другом PHP движке (Joomla, WordPress, DLE, Drupal, MODx, и т.д. ).

Если еще не отпугнул предыдущим текстом, то жмем кнопку Play:

На этом сегодня все! Не забываем жать на социальные кнопки слева и задавать свои вопросы чуть ниже в комментариях!

 
Стрела влево

Если вам понравилась статья, то нажмите на одну из кнопок социальных сетей для размещения ссылки на страницу в своей ленте в этой соцсети.

 

Метки:, , , ,

 

Комментарии (4):

  • Marat

    |

    исправил проблему — заменил вывод информации о переменной dump($city) на var_dump($city)

    Ответить

    • Дмитрий Акифьев

      |

      В PHP нет встроенной функции dump(). Я использую свою самописную функцию, которая выводит информацию в нужном мне формате и которую видят только администраторы, а другие пользователи сайта не видят. Функция прописана в отдельном файле и подключается в init.php, то есть доступна в любом файле движка.

      Если у Вас такая функция не прописана, то var_dump() поможет, если проект не на продакшене.

      Ответить

  • Marat

    |

    у меня этот код не работает((( cURL на сервере установлен

    Ответить

    • Дмитрий Акифьев

      |

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

      Просто писать «код не работает», когда в видео показано, что код работоспособный, я не вижу смысла. Я не экстрасенс, мысли читать не умею, лечить на расстоянии сайты тоже.

      Ответить

Написать комментарий