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

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «__TOC__ == Общая информация == Модуль GeoIP возвращает данные об IP-адресе посетителя, такие, как …»)
 
 
(не показано 25 промежуточных версий 4 участников)
Строка 1: Строка 1:
__TOC__
+
'''Актуально для версии 2.17'''
 +
 
 
== Общая информация ==
 
== Общая информация ==
Модуль [[GeoIP]] возвращает данные об IP-адресе посетителя, такие, как код страны, страна, область, город, широта и долгота.
+
:Модуль [[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]]:
  
== [[XML]] ==
+
<source lang="xml">
Если открыть исходный [[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]] и XSLT
 +
 +
=== Вывод на странице страны и города ===
 +
:Выведем в отдельном блоке страну и город пользователя. В файле \templates\demodizzy\xslt\layouts\default.xsl добавим вызов шаблона:
 +
 +
<source lang="xml">
 +
<xsl:apply-templates select="result/user/geo" />
 +
</source>
 +
 +
и после основного шаблона добавим шаблон вызова [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:
 +
 +
<source lang="xml">
 +
<xsl:template match="geo">
 +
<div class="infoblock">
 +
<ul>
 +
<li>
 +
<xsl:text>Страна: </xsl:text>
 +
<xsl:value-of select="country"/>
 +
</li>
 +
<li>
 +
<xsl:text>Город: </xsl:text>
 +
<xsl:value-of select="city" />
 +
</li>
 +
</ul>
 +
</div>
 +
</xsl:template>
 +
</source>
 +
 +
=== Вывод текста в зависимости от страны ===
 +
:Выведем сообщение, если IP не российский:
 +
 +
<source lang="xml">
 +
<xsl:template match="geo">
 +
<xsl:choose>
 +
<xsl:when test="country = 'Россия'">
 +
<xsl:text>Приветствую вас на моём сайте!</xsl:text>
 +
<xsl:apply-templates select="/" />
 +
</xsl:when>
 +
<xsl:otherwise>
 +
<xsl:text>Sorry, available only  from Russia</xsl:text>
 +
</xsl:otherwise>
 +
</xsl:choose>
 +
</xsl:template>
 +
</source>
 +
 +
  
=== [[GoogleMaps]] ===
+
=== [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]] ===
Так же можно отобразить точку на карте [[GoogleMaps]], используя широту и долготу.
+
:Так же можно отобразить точку на карте [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]], используя широту и долготу.
  
 
==== Статическая карта ====
 
==== Статическая карта ====
http://maps.google.com/staticmap?center=59.95005,30.31645?&markers=59.95005,30.31645&zoom=9&size=400x400
+
<source lang="xml">
 +
<xsl:variable name="lat" select="result/user/geo/latitude" />
 +
<xsl:variable name="long" select="result/user/geo/longitude" />
 +
<xsl:variable name="link" select="concat('https://maps.googleapis.com/maps/api/staticmap?center=
 +
        ', $lat, ',', $long, '&amp;markers=', $lat, ',', $long, '&amp;zoom=9&amp;size=400x400')" />
 +
</source>
  
Вот как будет выглядеть карта:
+
:Вот как будет выглядеть карта:
  
 
[[Изображение: 59.950_30.316.gif]]
 
[[Изображение: 59.950_30.316.gif]]
  
[[Категория:Верстка в XSLT]][[Категория: GeoIP]]
+
[[Категория:Верстка в XSLT]][[Категория:Модуль_GeoIP]]

Текущая версия на 12:25, 10 января 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] и XSLT

Вывод на странице страны и города

Выведем в отдельном блоке страну и город пользователя. В файле \templates\demodizzy\xslt\layouts\default.xsl добавим вызов шаблона:
<xsl:apply-templates select="result/user/geo" />

и после основного шаблона добавим шаблон вызова [GeoIP]:

	<xsl:template match="geo">
		<div class="infoblock">
			<ul>
				<li>
					<xsl:text>Страна: </xsl:text>
					<xsl:value-of select="country"/>
				</li>
				<li>
					<xsl:text>Город: </xsl:text>
					<xsl:value-of select="city" />
				</li>
			</ul>
		</div>
	</xsl:template>

Вывод текста в зависимости от страны

Выведем сообщение, если IP не российский:
<xsl:template match="geo">
	<xsl:choose>
		<xsl:when test="country = 'Россия'">
			<xsl:text>Приветствую вас на моём сайте!</xsl:text>
			<xsl:apply-templates select="/" />
		</xsl:when>
		<xsl:otherwise>
			<xsl:text>Sorry, available only  from Russia</xsl:text>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>


[GoogleMaps]

Так же можно отобразить точку на карте [GoogleMaps], используя широту и долготу.

Статическая карта

	<xsl:variable name="lat" select="result/user/geo/latitude" />
	<xsl:variable name="long" select="result/user/geo/longitude" />
	<xsl:variable name="link" select="concat('https://maps.googleapis.com/maps/api/staticmap?center=
        ', $lat, ',', $long, '&amp;markers=', $lat, ',', $long, '&amp;zoom=9&amp;size=400x400')" />
Вот как будет выглядеть карта:

59.950 30.316.gif