Использование модуля GeoIP в PHP-шаблонизаторе — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 3 промежуточные версии 1 участника)
Строка 1: Строка 1:
#перенаправление [[Отработка макросов внутри html кода]]
+
'''Актуально для версии 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 == "Россия"): ?>
 +
    &lt;span>Приветствую вас на моём сайте!</span>
 +
<?php else: ?>
 +
    &lt;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}&amp;markers={$latitude},{$longitude}&amp;zoom=9&amp;size=400x400";
 +
 
 +
Затем, добавить в место, где Вы хотите видеть вывод карты код:
 +
 
 +
&lt;img alt="GoogleMaps" src=<?= $googleMaps?> />
 +
 
 +
 
 +
:Вот как будет выглядеть карта:
 +
 
 +
[[Изображение: 59.950_30.316.gif]]
 +
 
 +
[[category:Верстка в PHP]][[category:Модуль_GeoIP]]

Текущая версия на 12:55, 16 июля 2018

Актуально для версии 2.17

Общая информация

Модуль [GeoIP] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота.
Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка Geoip.png - это значит что данный модуль еще не установлен на Вашей системе.

После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” > “Модули” > “Список модулей, доступных для установки” и установить данный модуль.

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?> />


Вот как будет выглядеть карта:

59.950 30.316.gif