Использование модуля GeoIP в PHP-шаблонизаторе — различия между версиями
Gordeev (обсуждение | вклад) (переименовал «Создать статью в этой Категории» в «Отработка макросов внутри html кода») |
Po4emu4ka (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
− | + | '''Актуально для версии 2.17''' | |
+ | |||
+ | == Общая информация == | ||
+ | :Модуль [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота. | ||
+ | |||
+ | :Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка [[Изображение: geoip.png]] - это значит что данный модуль еще не установлен на Вашей системе. | ||
+ | |||
+ | После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” > “Модули” > “Список модулей, доступных для установки” и установить данный модуль. | ||
+ | |||
+ | == XML == | ||
+ | :Если открыть исходный XML страницы, можно увидеть узел, добавленный модулем [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]: | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <geo> | ||
+ | <country>Россия</country> | ||
+ | <region>Санкт-Петербург</region> | ||
+ | <city>Санкт-Петербург</city> | ||
+ | <latitude>59.93863</latitude> | ||
+ | <longitude>30.31413</longitude> | ||
+ | </geo> | ||
+ | </source> | ||
+ | |||
+ | == Примеры использования == | ||
+ | :Приведу простые для восприятия примеры использования [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] и PHP | ||
+ | |||
+ | === Вывод на странице страны, города, широты и долготы === | ||
+ | :Если в начале страницы шаблона есть теги <?php ?>, то нижеследующий код необходимо добавить между данными тегами. | ||
+ | Если данных тегов нет, от необходимо добавить их в начале страницы. В итоге должно получиться примерно следующим образом | ||
+ | |||
+ | |||
+ | <?php | ||
+ | $country = $variables['user']['geo']['country']; // Страна | ||
+ | $region = $variables['user']['geo']['region']; // Регион | ||
+ | $city = $variables['user']['geo']['city']; // Город | ||
+ | $latitude = $variables['user']['geo']['latitude']; // Широта | ||
+ | $longitude = $variables['user']['geo']['longitude']; // Долгота | ||
+ | ?> | ||
+ | |||
+ | |||
+ | затем добавим в файл шаблона вывод данных [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]: | ||
+ | |||
+ | <<nowiki />ul> | ||
+ | <<nowiki />li><?= $country?></li> | ||
+ | <<nowiki />li><?= $region?></li> | ||
+ | <<nowiki />li><?= $city?></li> | ||
+ | <<nowiki />li><?= $latitude?></li> | ||
+ | <<nowiki />li><?= $longitude?></li> | ||
+ | </ul> | ||
+ | |||
+ | |||
+ | === Вывод текста в зависимости от страны === | ||
+ | :Выведем сообщение, если IP не российский | ||
+ | Нижеуказанный код необходимо добавить на Вашу страницу в том месте, где Вы хотите отображать сообщение: | ||
+ | |||
+ | <?php if($country == "Россия"): ?> | ||
+ | <span>Приветствую вас на моём сайте!</span> | ||
+ | <?php else: ?> | ||
+ | <span>Sorry, available only from Russia</span> | ||
+ | <?php endif ?> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]] === | ||
+ | :Так же можно отобразить точку на карте [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]], используя широту и долготу. | ||
+ | |||
+ | ==== Статическая карта ==== | ||
+ | Необходимо в начале файла, где мы ранее добавляли переменные, указать еще одну переменную: | ||
+ | |||
+ | $googleMaps = "https://maps.googleapis.com/maps/api/staticmap?center={$latitude},{$longitude}&markers={$latitude},{$longitude}&zoom=9&size=400x400"; | ||
+ | |||
+ | Затем, добавить в место, где Вы хотите видеть вывод карты код: | ||
+ | |||
+ | <img alt="GoogleMaps" src=<?= $googleMaps?> /> | ||
+ | |||
+ | |||
+ | :Вот как будет выглядеть карта: | ||
+ | |||
+ | [[Изображение: 59.950_30.316.gif]] | ||
+ | |||
+ | [[category:Верстка в PHP]][[category:Модуль_GeoIP]] |
Текущая версия на 12:55, 16 июля 2018
Актуально для версии 2.17
Содержание
Общая информация
- Модуль [GeoIP] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота.
- Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка - это значит что данный модуль еще не установлен на Вашей системе.
После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” > “Модули” > “Список модулей, доступных для установки” и установить данный модуль.
XML
- Если открыть исходный XML страницы, можно увидеть узел, добавленный модулем [GeoIP]:
<geo>
<country>Россия</country>
<region>Санкт-Петербург</region>
<city>Санкт-Петербург</city>
<latitude>59.93863</latitude>
<longitude>30.31413</longitude>
</geo>
Примеры использования
- Приведу простые для восприятия примеры использования [GeoIP] и PHP
Вывод на странице страны, города, широты и долготы
- Если в начале страницы шаблона есть теги <?php ?>, то нижеследующий код необходимо добавить между данными тегами.
Если данных тегов нет, от необходимо добавить их в начале страницы. В итоге должно получиться примерно следующим образом
<?php
$country = $variables['user']['geo']['country']; // Страна $region = $variables['user']['geo']['region']; // Регион $city = $variables['user']['geo']['city']; // Город $latitude = $variables['user']['geo']['latitude']; // Широта $longitude = $variables['user']['geo']['longitude']; // Долгота
?>
затем добавим в файл шаблона вывод данных [GeoIP]:
<ul>
<li><?= $country?> <li><?= $region?> <li><?= $city?> <li><?= $latitude?> <li><?= $longitude?>
Вывод текста в зависимости от страны
- Выведем сообщение, если IP не российский
Нижеуказанный код необходимо добавить на Вашу страницу в том месте, где Вы хотите отображать сообщение:
<?php if($country == "Россия"): ?>
<span>Приветствую вас на моём сайте!
<?php else: ?>
<span>Sorry, available only from Russia
<?php endif ?>
[GoogleMaps]
- Так же можно отобразить точку на карте [GoogleMaps], используя широту и долготу.
Статическая карта
Необходимо в начале файла, где мы ранее добавляли переменные, указать еще одну переменную:
$googleMaps = "https://maps.googleapis.com/maps/api/staticmap?center={$latitude},{$longitude}&markers={$latitude},{$longitude}&zoom=9&size=400x400";
Затем, добавить в место, где Вы хотите видеть вывод карты код:
<img alt="GoogleMaps" src=<?= $googleMaps?> />
- Вот как будет выглядеть карта: