<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ekaterina.ermohina&amp;*</id>
	<title>Umicms - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ekaterina.ermohina&amp;*"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Ekaterina.ermohina"/>
	<updated>2026-04-27T12:45:26Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BD%D0%B8%D1%84%D0%B5%D1%81%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&amp;diff=8071</id>
		<title>Пример написания манифеста для модуля</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BD%D0%B8%D1%84%D0%B5%D1%81%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&amp;diff=8071"/>
		<updated>2018-04-26T11:00:59Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.18&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Начиная с 16 версии в UMI.CMS появились [[http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/manifesty/ манифесты]].&lt;br /&gt;
&lt;br /&gt;
В данной статье мы покажем пример написания манифеста, который при установке и обновлении модуля присылает письмо на определенную почту.&lt;br /&gt;
&lt;br /&gt;
Например, сам модуль будет называться mailer.&lt;br /&gt;
Структура файлов у нас будет следующая:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/classes/components/mailer/manifest/install.xml&lt;br /&gt;
/classes/components/mailer/manifest/update.xml&lt;br /&gt;
/classes/components/mailer/manifest/actions/SendMail.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В файл install.xml мы добавим следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;manifest&amp;gt;&lt;br /&gt;
	&amp;lt;route&amp;gt;&lt;br /&gt;
		&amp;lt;transaction name=&amp;quot;send_mail_on_install&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;action name=&amp;quot;\UmiCms\Manifest\Mail\SendMail&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/transaction&amp;gt;&lt;br /&gt;
	&amp;lt;/route&amp;gt;&lt;br /&gt;
&amp;lt;/manifest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл update.xml добавляем код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;manifest&amp;gt;&lt;br /&gt;
	&amp;lt;route&amp;gt;&lt;br /&gt;
		&amp;lt;transaction name=&amp;quot;send_mail_on_update&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;action name=&amp;quot;\UmiCms\Manifest\Mail\SendMail&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/transaction&amp;gt;&lt;br /&gt;
	&amp;lt;/route&amp;gt;&lt;br /&gt;
&amp;lt;/manifest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл SendMail.php добавим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	namespace UmiCms\Manifest\Mail;&lt;br /&gt;
&lt;br /&gt;
	class SendMailAction extends \Action&lt;br /&gt;
	{&lt;br /&gt;
		public function __construct($name, array $params = []) {&lt;br /&gt;
			parent::__construct($name, $params);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		public function execute()&lt;br /&gt;
		{&lt;br /&gt;
			$lMail = new \umiMail;&lt;br /&gt;
			$lMail-&amp;gt;addRecipient(&amp;quot;recipient@example.com&amp;quot;, &amp;quot;Testing&amp;quot;);&lt;br /&gt;
			$lMail-&amp;gt;setFrom(&amp;quot;from@example.com&amp;quot;, &amp;quot;Testing&amp;quot;);&lt;br /&gt;
			$lMail-&amp;gt;setSubject(&amp;quot;Обновление CMS&amp;quot;);&lt;br /&gt;
			$lMail-&amp;gt;setPriorityLevel(&amp;quot;highest&amp;quot;);&lt;br /&gt;
			$lMail-&amp;gt;setContent(&amp;quot;Обновление завершено&amp;quot;);&lt;br /&gt;
			$lMail-&amp;gt;commit();&lt;br /&gt;
			$lMail-&amp;gt;send();&lt;br /&gt;
			&lt;br /&gt;
			return $this;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public function rollback()&lt;br /&gt;
		{&lt;br /&gt;
			return $this;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном файле в строке &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$lMail-&amp;gt;addRecipient(&amp;quot;recipient@example.com&amp;quot;, &amp;quot;Testing&amp;quot;);&amp;lt;/source&amp;gt; recipient@example.com необходимо заменить на адрес получателя, &lt;br /&gt;
а в строке &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$lMail-&amp;gt;setFrom(&amp;quot;from@example.com&amp;quot;, &amp;quot;Testing&amp;quot;);&amp;lt;/source&amp;gt; from@example.com заменить на заголовок From письма.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если модуль не добавлен к лицензионному ключу и не размещен на UMI.Market, то при установке и обновлении запуск манифестов происходить не будет.&lt;br /&gt;
Для проверки работы манифестов их нужно запускать вручную.&lt;br /&gt;
&lt;br /&gt;
Для этого создадим файл manifest_checker.php в корне сайта и добавим в него следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	include &amp;#039;standalone.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	$manifest = \UmiCms\Service::ManifestFactory()&lt;br /&gt;
		-&amp;gt;createByModule(&amp;#039;update&amp;#039;, ‘mail’);&lt;br /&gt;
&lt;br /&gt;
	do {&lt;br /&gt;
		$manifest-&amp;gt;execute();&lt;br /&gt;
	} while (!$manifest-&amp;gt;isReady());&lt;br /&gt;
&lt;br /&gt;
	foreach ($manifest-&amp;gt;getLog() as $message) {&lt;br /&gt;
		echo $message, PHP_EOL;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первый аргумент в методе createByModule это тип манифеста (install или update), а второй аргумент — имя вашего модуля.&lt;br /&gt;
&lt;br /&gt;
После этого вызываем файл example.com/manifest_checker.php, манифесты выполняются вручную и отображаются на экране.&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8070</id>
		<title>Подключение к нескольким базам данных</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8070"/>
		<updated>2018-04-25T10:40:59Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;Актуально для версии 2.18.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при выполнении вашего кастомного php-кода необходимо выполнить подключение к другой базе данных для выборки необходимых данных, то это можно сделать двумя способами.&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 1. Добавить новое соединение в config.ini&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
Для добавления нового соединения с базой данных необходимо добавить в секцию [connections] файла config.ini данные для подключения к базе данных.&lt;br /&gt;
Подключение к основной базе данных системы называется &amp;quot;core&amp;quot;. &lt;br /&gt;
Если назвать наше дополнительное подключение &amp;quot;other&amp;quot;, то секция [connections] в файле config.ini будет выглядеть, например, вот так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connections]&lt;br /&gt;
#основное подключение к бд&lt;br /&gt;
core.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
core.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
core.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.port = &lt;br /&gt;
core.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
core.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
core.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
#дополнительное подключение к бд&lt;br /&gt;
other.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
other.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
other.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.dbname = &amp;quot;other&amp;quot;&lt;br /&gt;
other.port = &lt;br /&gt;
other.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
other.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
other.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Дополнительное подключение в кастомном методе можно будет получить следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;quot;other&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 2. Создать новое соединение в кастомном методе&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
С помощью класса ConnectionPool, который расположен в файле &amp;#039;&amp;#039;&amp;#039;\classes\system\subsystems\database\ConnectionPool.php&amp;#039;&amp;#039;&amp;#039; можно создать новое подключение.&lt;br /&gt;
&lt;br /&gt;
Далее будет приведен пример кода, который осуществляет подключение к основной и второй базам данных, происходит выборка из второй базы данных, после чего на основании полученных данных создается страница типа &amp;quot;Новость&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
//основная база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;core&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;);&lt;br /&gt;
//вторая база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;comfort&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;comfort&amp;quot;);&lt;br /&gt;
$pool-&amp;gt;init();&lt;br /&gt;
&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;#039;comfort&amp;#039;);&lt;br /&gt;
$sql = &amp;quot;SELECT 	alt_name  FROM `cms3_hierarchy` WHERE `id` = 72&amp;quot;;&lt;br /&gt;
//выполнение запроса к второй базе данных&lt;br /&gt;
$result = $conn-&amp;gt;query($sql, true);&lt;br /&gt;
list($name) = mysql_fetch_row($result);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Создание новости с помощью API в основной базе&lt;br /&gt;
 $hierarchyTypes = umiHierarchyTypesCollection::getInstance();&lt;br /&gt;
 $hierarchyType = $hierarchyTypes-&amp;gt;getTypeByName(&amp;quot;news&amp;quot;, &amp;quot;item&amp;quot;);&lt;br /&gt;
 $hierarchyTypeId = $hierarchyType-&amp;gt;getId();&lt;br /&gt;
 &lt;br /&gt;
 $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 //add new element&lt;br /&gt;
 $newElementId = $hierarchy-&amp;gt;addElement(0, $hierarchyTypeId, $name, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
 if($newElementId === false) {&lt;br /&gt;
  echo &amp;quot;Не удалось создать новую страницу&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //Установим права на страницу в состояние &amp;quot;по умолчанию&amp;quot;&lt;br /&gt;
 $permissions = permissionsCollection::getInstance();&lt;br /&gt;
 $permissions-&amp;gt;setDefaultPermissions($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 //Получим экземпляр страницы&lt;br /&gt;
 $newElement = $hierarchy-&amp;gt;getElement($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 if($newElement instanceof umiHierarchyElement) {&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;h1&amp;quot;, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;publish_time&amp;quot;, time());&lt;br /&gt;
  $newElement-&amp;gt;setIsActive(true);&lt;br /&gt;
  $newElement-&amp;gt;commit();&lt;br /&gt;
  &lt;br /&gt;
  echo &amp;quot;Успешно создана страница с адресом: \&amp;quot;&amp;quot;, $hierarchy-&amp;gt;getPathById($newElementId), &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
  echo &amp;quot;Не удалось получить экземпляр страницы #{$newElementId}.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:API]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8069</id>
		<title>Подключение к нескольким базам данных</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8069"/>
		<updated>2018-04-25T10:40:35Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Актуально для версии 2.18.&lt;br /&gt;
&lt;br /&gt;
Если при выполнении вашего кастомного php-кода необходимо выполнить подключение к другой базе данных для выборки необходимых данных, то это можно сделать двумя способами.&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 1. Добавить новое соединение в config.ini&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
Для добавления нового соединения с базой данных необходимо добавить в секцию [connections] файла config.ini данные для подключения к базе данных.&lt;br /&gt;
Подключение к основной базе данных системы называется &amp;quot;core&amp;quot;. &lt;br /&gt;
Если назвать наше дополнительное подключение &amp;quot;other&amp;quot;, то секция [connections] в файле config.ini будет выглядеть, например, вот так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connections]&lt;br /&gt;
#основное подключение к бд&lt;br /&gt;
core.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
core.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
core.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.port = &lt;br /&gt;
core.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
core.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
core.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
#дополнительное подключение к бд&lt;br /&gt;
other.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
other.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
other.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.dbname = &amp;quot;other&amp;quot;&lt;br /&gt;
other.port = &lt;br /&gt;
other.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
other.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
other.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Дополнительное подключение в кастомном методе можно будет получить следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;quot;other&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 2. Создать новое соединение в кастомном методе&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
С помощью класса ConnectionPool, который расположен в файле &amp;#039;&amp;#039;&amp;#039;\classes\system\subsystems\database\ConnectionPool.php&amp;#039;&amp;#039;&amp;#039; можно создать новое подключение.&lt;br /&gt;
&lt;br /&gt;
Далее будет приведен пример кода, который осуществляет подключение к основной и второй базам данных, происходит выборка из второй базы данных, после чего на основании полученных данных создается страница типа &amp;quot;Новость&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
//основная база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;core&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;);&lt;br /&gt;
//вторая база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;comfort&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;comfort&amp;quot;);&lt;br /&gt;
$pool-&amp;gt;init();&lt;br /&gt;
&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;#039;comfort&amp;#039;);&lt;br /&gt;
$sql = &amp;quot;SELECT 	alt_name  FROM `cms3_hierarchy` WHERE `id` = 72&amp;quot;;&lt;br /&gt;
//выполнение запроса к второй базе данных&lt;br /&gt;
$result = $conn-&amp;gt;query($sql, true);&lt;br /&gt;
list($name) = mysql_fetch_row($result);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Создание новости с помощью API в основной базе&lt;br /&gt;
 $hierarchyTypes = umiHierarchyTypesCollection::getInstance();&lt;br /&gt;
 $hierarchyType = $hierarchyTypes-&amp;gt;getTypeByName(&amp;quot;news&amp;quot;, &amp;quot;item&amp;quot;);&lt;br /&gt;
 $hierarchyTypeId = $hierarchyType-&amp;gt;getId();&lt;br /&gt;
 &lt;br /&gt;
 $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 //add new element&lt;br /&gt;
 $newElementId = $hierarchy-&amp;gt;addElement(0, $hierarchyTypeId, $name, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
 if($newElementId === false) {&lt;br /&gt;
  echo &amp;quot;Не удалось создать новую страницу&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //Установим права на страницу в состояние &amp;quot;по умолчанию&amp;quot;&lt;br /&gt;
 $permissions = permissionsCollection::getInstance();&lt;br /&gt;
 $permissions-&amp;gt;setDefaultPermissions($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 //Получим экземпляр страницы&lt;br /&gt;
 $newElement = $hierarchy-&amp;gt;getElement($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 if($newElement instanceof umiHierarchyElement) {&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;h1&amp;quot;, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;publish_time&amp;quot;, time());&lt;br /&gt;
  $newElement-&amp;gt;setIsActive(true);&lt;br /&gt;
  $newElement-&amp;gt;commit();&lt;br /&gt;
  &lt;br /&gt;
  echo &amp;quot;Успешно создана страница с адресом: \&amp;quot;&amp;quot;, $hierarchy-&amp;gt;getPathById($newElementId), &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
  echo &amp;quot;Не удалось получить экземпляр страницы #{$newElementId}.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:API]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8068</id>
		<title>Подключение к нескольким базам данных</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85&amp;diff=8068"/>
		<updated>2018-04-25T10:39:59Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если при выполнении вашего кастомного php-кода необходимо выполнить подключение к другой базе данных для выборки необходимых данных, то это можно сделать двумя способами.&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 1. Добавить новое соединение в config.ini&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
Для добавления нового соединения с базой данных необходимо добавить в секцию [connections] файла config.ini данные для подключения к базе данных.&lt;br /&gt;
Подключение к основной базе данных системы называется &amp;quot;core&amp;quot;. &lt;br /&gt;
Если назвать наше дополнительное подключение &amp;quot;other&amp;quot;, то секция [connections] в файле config.ini будет выглядеть, например, вот так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connections]&lt;br /&gt;
#основное подключение к бд&lt;br /&gt;
core.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
core.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
core.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.port = &lt;br /&gt;
core.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
core.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
core.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
#дополнительное подключение к бд&lt;br /&gt;
other.type = &amp;quot;mysql&amp;quot;&lt;br /&gt;
other.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
other.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
other.dbname = &amp;quot;other&amp;quot;&lt;br /&gt;
other.port = &lt;br /&gt;
other.persistent = &amp;quot;0&amp;quot;&lt;br /&gt;
other.compression = &amp;quot;0&amp;quot;&lt;br /&gt;
other.api = &amp;quot;mysql&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Дополнительное подключение в кастомном методе можно будет получить следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;quot;other&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;&amp;lt;b&amp;gt;Способ 2. Создать новое соединение в кастомном методе&amp;lt;/b&amp;gt;:&amp;lt;/h4&amp;gt;&lt;br /&gt;
С помощью класса ConnectionPool, который расположен в файле &amp;#039;&amp;#039;&amp;#039;\classes\system\subsystems\database\ConnectionPool.php&amp;#039;&amp;#039;&amp;#039; можно создать новое подключение.&lt;br /&gt;
&lt;br /&gt;
Далее будет приведен пример кода, который осуществляет подключение к основной и второй базам данных, происходит выборка из второй базы данных, после чего на основании полученных данных создается страница типа &amp;quot;Новость&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$pool = ConnectionPool::getInstance();&lt;br /&gt;
//основная база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;core&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;);&lt;br /&gt;
//вторая база данных&lt;br /&gt;
$pool-&amp;gt;addConnection(&amp;quot;comfort&amp;quot;, &amp;quot;localhost&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;umi&amp;quot;, &amp;quot;comfort&amp;quot;);&lt;br /&gt;
$pool-&amp;gt;init();&lt;br /&gt;
&lt;br /&gt;
$conn = $pool-&amp;gt;getConnection(&amp;#039;comfort&amp;#039;);&lt;br /&gt;
$sql = &amp;quot;SELECT 	alt_name  FROM `cms3_hierarchy` WHERE `id` = 72&amp;quot;;&lt;br /&gt;
//выполнение запроса к второй базе данных&lt;br /&gt;
$result = $conn-&amp;gt;query($sql, true);&lt;br /&gt;
list($name) = mysql_fetch_row($result);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Создание новости с помощью API в основной базе&lt;br /&gt;
 $hierarchyTypes = umiHierarchyTypesCollection::getInstance();&lt;br /&gt;
 $hierarchyType = $hierarchyTypes-&amp;gt;getTypeByName(&amp;quot;news&amp;quot;, &amp;quot;item&amp;quot;);&lt;br /&gt;
 $hierarchyTypeId = $hierarchyType-&amp;gt;getId();&lt;br /&gt;
 &lt;br /&gt;
 $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 //add new element&lt;br /&gt;
 $newElementId = $hierarchy-&amp;gt;addElement(0, $hierarchyTypeId, $name, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
 if($newElementId === false) {&lt;br /&gt;
  echo &amp;quot;Не удалось создать новую страницу&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //Установим права на страницу в состояние &amp;quot;по умолчанию&amp;quot;&lt;br /&gt;
 $permissions = permissionsCollection::getInstance();&lt;br /&gt;
 $permissions-&amp;gt;setDefaultPermissions($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 //Получим экземпляр страницы&lt;br /&gt;
 $newElement = $hierarchy-&amp;gt;getElement($newElementId);&lt;br /&gt;
 &lt;br /&gt;
 if($newElement instanceof umiHierarchyElement) {&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;h1&amp;quot;, &amp;#039;umitest&amp;#039;);&lt;br /&gt;
  $newElement-&amp;gt;setValue(&amp;quot;publish_time&amp;quot;, time());&lt;br /&gt;
  $newElement-&amp;gt;setIsActive(true);&lt;br /&gt;
  $newElement-&amp;gt;commit();&lt;br /&gt;
  &lt;br /&gt;
  echo &amp;quot;Успешно создана страница с адресом: \&amp;quot;&amp;quot;, $hierarchy-&amp;gt;getPathById($newElementId), &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
  echo &amp;quot;Не удалось получить экземпляр страницы #{$newElementId}.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:API]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D0%BF%D1%80%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BB%D1%8E%D1%87&amp;diff=8059</id>
		<title>Не принимается лицензионный ключ</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D0%BF%D1%80%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BB%D1%8E%D1%87&amp;diff=8059"/>
		<updated>2018-02-02T10:39:11Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Скорее всего, у вас поменялся IP-адрес (например, вы сменили хостинг-провайдера или сервер). Обратитесь к нам со страницы поддержки (http://www.umi-cms.ru/support/) с просьбой снять привязку лицензионного ключа и активировать его на домене с новым ip, с объяснением причины сброса привязки.&lt;br /&gt;
&lt;br /&gt;
Если привязка сброшена, но Ваш лицензионный ключ не принимается  - попробуйте выполнить следующие действия&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;Очистите&amp;#039;&amp;#039;&amp;#039; содержимое папки &amp;#039;&amp;#039;&amp;#039;кэш&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Папка &amp;#039;&amp;#039;&amp;quot;~/sys-temp/runtime-cache/&amp;quot;&amp;#039;&amp;#039; - для системы версии от 2.8.X&lt;br /&gt;
* Папка &amp;#039;&amp;#039;&amp;quot;~/cache/&amp;quot;&amp;#039;&amp;#039; или содержимое в файле &amp;#039;&amp;#039;&amp;quot;~/cache/engine/&amp;quot;&amp;#039;&amp;#039; - для системы версии 2.7.X или ниже&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;Проставьте права&amp;#039;&amp;#039;&amp;#039; &amp;quot;755&amp;quot; на все директории, находящиеся в корне&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3. Проверьте таблицу &amp;#039;&amp;#039;&amp;#039;cms3_domains&amp;#039;&amp;#039;&amp;#039; (должен быть записан домен, где вводится ключ) в БД&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
4. Установите на папки &amp;quot;&amp;#039;&amp;#039;&amp;#039;/errors/&amp;#039;&amp;#039;&amp;#039;&amp;quot; и &amp;quot;&amp;#039;&amp;#039;&amp;#039;/sys-temp/runtime-cache/&amp;#039;&amp;#039;&amp;#039;&amp;quot; права &amp;#039;&amp;#039;&amp;#039;777&amp;#039;&amp;#039;&amp;#039; или &amp;#039;&amp;#039;&amp;#039;755&amp;#039;&amp;#039;&amp;#039; (рекурсивно)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
5. &amp;#039;&amp;#039;&amp;#039;Удалите&amp;#039;&amp;#039;&amp;#039; значение (val) записи с именем (var) &amp;#039;keycode&amp;#039;, в таблице &amp;#039;cms_reg&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
6. Если версия системы 2.8.X попробуйте &amp;#039;&amp;#039;&amp;#039;отключить кэш&amp;#039;&amp;#039;&amp;#039; в файле &amp;#039;&amp;#039;&amp;quot;config.ini&amp;quot;&amp;#039;&amp;#039;. Оставьте в строке engine пустые кавычки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[cache]&lt;br /&gt;
engine = &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
7. При ошибке о невозможности загрузить &amp;#039;&amp;#039;&amp;#039;тесты хостинга&amp;#039;&amp;#039;&amp;#039;, проверьте есть ли еще &amp;#039;&amp;#039;&amp;#039;свободное место&amp;#039;&amp;#039;&amp;#039; у Вас на FTP, если есть, то попробуйте 4 пункт.&lt;br /&gt;
&lt;br /&gt;
8. Если сайт работает по защищенному протоколу, в настройках браузера перейти на &amp;#039;&amp;#039;&amp;#039;незащищенное соединение&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
9. Проверить соответствие &amp;#039;&amp;#039;&amp;#039;версии PHP системным требованиям&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Перед каждой новой попыткой ввода ключа рекомендуем очищать папку кэш (1 пункт).&lt;br /&gt;
&lt;br /&gt;
[[category:Лицензионные ключи]][[Категория:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%BD%D0%B5%D0%B5_%D1%81%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0&amp;diff=8056</id>
		<title>Повторение ранее совершенного заказа</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%BD%D0%B5%D0%B5_%D1%81%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0&amp;diff=8056"/>
		<updated>2018-01-14T12:38:32Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.17&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать возможность повторного оформления заказа&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
В данной статье описан пример кастомного макроса, с помощью которого можно повторить ранее совершенный заказ, т.е. одним кликом перенести его в текущею корзину и оформить заказ.&lt;br /&gt;
&lt;br /&gt;
С версии 14 (2.14) UMI.CMS поддерживает работу на php версии 7. Ядро поддерживает работу на любой версии php от 5.4, а для модулей есть отдельный набор реализаций, поддерживающих 7. Старый набор реализаций модулей находится в директории /classes/modules, а новый в /classes/components. &lt;br /&gt;
&lt;br /&gt;
Для подключения нового набора реализаций на версиях PHP до PHP 7.*.* необходимо в файле config.ini включить опцию [http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_system/#sel=103:1,103:3 compatible-modules]&lt;br /&gt;
&lt;br /&gt;
Если вы используете новую реализацию модулей, то код метода repeatOrder необходимо добавить в файл&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/classes/components/emarket/customMacros.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function repeatOrder() {&lt;br /&gt;
&lt;br /&gt;
	$permissions = permissionsCollection::getInstance();&lt;br /&gt;
	$userId = $permissions-&amp;gt;getUserId();&lt;br /&gt;
	$objects = umiObjectsCollection::getInstance();&lt;br /&gt;
	$order_id = (int) getRequest(&amp;#039;param0&amp;#039;);&lt;br /&gt;
	$order = $objects-&amp;gt;getObject($order_id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if (!$order || $order-&amp;gt;customer_id != $userId) {&lt;br /&gt;
	    $referer = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
	    $this-&amp;gt;module-&amp;gt;redirect($referer);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$orderItems = $order-&amp;gt;order_items;&lt;br /&gt;
&lt;br /&gt;
	if (is_array($orderItems)) {&lt;br /&gt;
	    $_REQUEST[&amp;#039;no-redirect&amp;#039;] = 1;&lt;br /&gt;
	    $this-&amp;gt;module-&amp;gt;basket(&amp;#039;remove_all&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
	    foreach ($orderItems as $orderItemId) {&lt;br /&gt;
&lt;br /&gt;
	       $orderItem = orderItem::get($orderItemId);&lt;br /&gt;
&lt;br /&gt;
	       if ($orderItem) {&lt;br /&gt;
               $element = $orderItem-&amp;gt;getItemElement();&lt;br /&gt;
	            if ($element) {&lt;br /&gt;
&lt;br /&gt;
		        $element_id = $element-&amp;gt;getId();&lt;br /&gt;
		        $_REQUEST[&amp;#039;no-redirect&amp;#039;] = 1;&lt;br /&gt;
&lt;br /&gt;
		        $_REQUEST[&amp;#039;amount&amp;#039;] = $orderItem-&amp;gt;getAmount();&lt;br /&gt;
&lt;br /&gt;
		        $options_arr = array();&lt;br /&gt;
		        foreach ($orderItem-&amp;gt;options as $item) {&lt;br /&gt;
		            $index = $item[&amp;#039;varchar&amp;#039;];&lt;br /&gt;
		            $options_arr[$index] = $item[&amp;#039;rel&amp;#039;];&lt;br /&gt;
	                }&lt;br /&gt;
&lt;br /&gt;
		        if (count($options_arr)) {&lt;br /&gt;
		            $_REQUEST[&amp;#039;options&amp;#039;] = $options_arr;&lt;br /&gt;
                        }&lt;br /&gt;
	                $_REQUEST[&amp;#039;redirect-uri&amp;#039;] = &amp;#039;&amp;#039;;&lt;br /&gt;
		        $this-&amp;gt;module-&amp;gt;basket(&amp;#039;put&amp;#039;, &amp;#039;element&amp;#039;, $element_id);&lt;br /&gt;
		   }&lt;br /&gt;
		}&lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$referer = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
        $this-&amp;gt;module-&amp;gt;redirect($referer);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если вы используете старую реализацию модулей, то код метода repeatOrder необходимо добавить в файл&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/classes/modules/emarket/__custom.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function repeatOrder() {&lt;br /&gt;
	$permissions = permissionsCollection::getInstance();&lt;br /&gt;
	$userId = $permissions-&amp;gt;getUserId();&lt;br /&gt;
	$objects = umiObjectsCollection::getInstance();&lt;br /&gt;
	$order_id = (int) getRequest(&amp;#039;param0&amp;#039;);&lt;br /&gt;
	$order = $objects-&amp;gt;getObject($order_id);&lt;br /&gt;
&lt;br /&gt;
	if (!$order || $order-&amp;gt;customer_id != $userId) {&lt;br /&gt;
		$referer = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
		$this-&amp;gt;redirect($referer);&lt;br /&gt;
	}&lt;br /&gt;
	$orderItems = $order-&amp;gt;order_items;&lt;br /&gt;
	&lt;br /&gt;
	if (is_array($orderItems)) {&lt;br /&gt;
		$_REQUEST[&amp;#039;no-redirect&amp;#039;] = 1;&lt;br /&gt;
		$this-&amp;gt;basket(&amp;#039;remove_all&amp;#039;);&lt;br /&gt;
		&lt;br /&gt;
		foreach ($orderItems as $orderItemId) {&lt;br /&gt;
&lt;br /&gt;
			$orderItem = orderItem::get($orderItemId);&lt;br /&gt;
&lt;br /&gt;
			if ($orderItem) {&lt;br /&gt;
				$element = $orderItem-&amp;gt;getItemElement();&lt;br /&gt;
				if ($element) {&lt;br /&gt;
&lt;br /&gt;
					$element_id = $element-&amp;gt;getId();&lt;br /&gt;
					$_REQUEST[&amp;#039;no-redirect&amp;#039;] = 1;&lt;br /&gt;
					&lt;br /&gt;
					$_REQUEST[&amp;#039;amount&amp;#039;] = $orderItem-&amp;gt;getAmount();&lt;br /&gt;
&lt;br /&gt;
					$options_arr = array();&lt;br /&gt;
					foreach ($orderItem-&amp;gt;options as $item) {&lt;br /&gt;
						$index = $item[&amp;#039;varchar&amp;#039;];&lt;br /&gt;
						$options_arr[$index] = $item[&amp;#039;rel&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
					if (count($options_arr))&lt;br /&gt;
						$_REQUEST[&amp;#039;options&amp;#039;] = $options_arr;&lt;br /&gt;
					$_REQUEST[&amp;#039;redirect-uri&amp;#039;] = &amp;#039;&amp;#039;;&lt;br /&gt;
					$this-&amp;gt;basket(&amp;#039;put&amp;#039;, &amp;#039;element&amp;#039;, $element_id);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	$referer = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
        $this-&amp;gt;redirect($referer);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В той же папке необходимо добавить файл &amp;#039;&amp;#039;&amp;#039;permissions.custom.php&amp;#039;&amp;#039;&amp;#039; следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $permissions = array(&amp;#039;purchasing&amp;#039; =&amp;gt; array(&amp;#039;repeatOrder&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;TPL-шаблонизатор&amp;lt;/h2&amp;gt;&lt;br /&gt;
В шаблоне &amp;#039;&amp;#039;&amp;#039;tpls/emarket/default.tpl&amp;#039;&amp;#039;&amp;#039;, должны быть примерно следующие блоки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$FORMS[&amp;#039;personal&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
 %emarket ordersList()%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;orders_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;p&amp;gt;Список ваших заказов:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 %items%&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;orders_block_empty&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;p&amp;gt;Заказов нет&amp;lt;/p&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;orders_item&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;li&amp;gt;%name% &amp;lt;a href=&amp;quot;/emarket/repeatOrder/%id%/&amp;quot;&amp;gt;Повторить&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда пользователь зайдет в личный кабинет Интернет-магазина по ссылке: _http://sait.ru/emarket/personal/ , он увидит список заказов возле которых будет ссылка &amp;#039;&amp;#039;&amp;#039;Повторить&amp;#039;&amp;#039;&amp;#039;. Кликнув по ссылке Повторить, в текущею корзину товаров добавятся товары из ранее совершенного заказа, с сохранением количества товара и опционных свойств.&lt;br /&gt;
&amp;lt;h2&amp;gt;XSLT-шаблонизатор&amp;lt;/h2&amp;gt;&lt;br /&gt;
В демонстрационном дизайне &amp;quot;Современный интернет-магазин&amp;quot; (&amp;quot;demodizzy&amp;quot;) в файле \templates\demodizzy\xslt\modules\emarket\orders-list.xsl в шаблон &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;emarket&amp;#039;][@method = &amp;#039;order&amp;#039;]&amp;quot;&amp;gt; для вывода ссылки на повторения ранее совершенного заказа можно воспользоваться следующей конструкцией:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/emarket/repeatOrder/{@id}/&amp;quot;&amp;gt;Повторить&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8055</id>
		<title>Как выводить Last Modified</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8055"/>
		<updated>2018-01-10T14:16:31Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как выводить Last-Modified?&lt;br /&gt;
&lt;br /&gt;
Актуально для версии 2.17&lt;br /&gt;
&lt;br /&gt;
В актуальной версии системы для вывода Last-Modified используйте директиву [http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_seo/#sel=9:1,9:3 calculate-last-modified = 1] в файле config.ini&lt;br /&gt;
&lt;br /&gt;
Нижеуказанный пример можно использовать для старых версий системы.&lt;br /&gt;
&lt;br /&gt;
Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//TODO: Write your own macroses here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function lastMDF() {&lt;br /&gt;
    $LastModified_unix = 1294844676; // время последнего изменения страницы &lt;br /&gt;
    $LastModified = gmdate(&amp;quot;D, d M Y H:i:s \G\M\T&amp;quot;, $LastModified_unix); &lt;br /&gt;
    $IfModifiedSince = false; &lt;br /&gt;
    if (isset($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5));  &lt;br /&gt;
    if (isset($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5)); &lt;br /&gt;
    if ($IfModifiedSince &amp;amp;&amp;amp; $IfModifiedSince &amp;gt; $LastModified_unix) {     &lt;br /&gt;
        header($_SERVER[&amp;#039;SERVER_PROTOCOL&amp;#039;] . &amp;#039; 304 Not Modified&amp;#039;);  &lt;br /&gt;
        exit;   &lt;br /&gt;
    }&lt;br /&gt;
    header(&amp;#039;Last-Modified: &amp;#039;. $LastModified);&lt;br /&gt;
    $header = &amp;#039;&amp;lt;meta http-equiv=&amp;quot;Last-Modified&amp;quot; content=&amp;quot;&amp;#039;.gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;).&amp;#039; GMT&amp;quot; /&amp;gt;&amp;#039;;&lt;br /&gt;
    return $header; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Регистрировать его нигде не нужно.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
Вставляете следующий макрос в шаблоне .tpl в тэге &amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
%custom lastMDF()%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дата будет выводится текущая. Если хотите, можете поправить на любую другую.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8054</id>
		<title>Как выводить Last Modified</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8054"/>
		<updated>2018-01-10T14:15:59Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как выводить Last-Modified?&lt;br /&gt;
&lt;br /&gt;
Актуально для версии 2.17&lt;br /&gt;
&lt;br /&gt;
В актуальной версии системы для вывода Last-Modified используйте директиву [http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_seo/#sel=9:1,9:3 calculate-last-modified = 1] в файле config.ini&lt;br /&gt;
&lt;br /&gt;
Нижеуказанный пример можно использовать в старых версиях системы.&lt;br /&gt;
&lt;br /&gt;
Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//TODO: Write your own macroses here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function lastMDF() {&lt;br /&gt;
    $LastModified_unix = 1294844676; // время последнего изменения страницы &lt;br /&gt;
    $LastModified = gmdate(&amp;quot;D, d M Y H:i:s \G\M\T&amp;quot;, $LastModified_unix); &lt;br /&gt;
    $IfModifiedSince = false; &lt;br /&gt;
    if (isset($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5));  &lt;br /&gt;
    if (isset($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5)); &lt;br /&gt;
    if ($IfModifiedSince &amp;amp;&amp;amp; $IfModifiedSince &amp;gt; $LastModified_unix) {     &lt;br /&gt;
        header($_SERVER[&amp;#039;SERVER_PROTOCOL&amp;#039;] . &amp;#039; 304 Not Modified&amp;#039;);  &lt;br /&gt;
        exit;   &lt;br /&gt;
    }&lt;br /&gt;
    header(&amp;#039;Last-Modified: &amp;#039;. $LastModified);&lt;br /&gt;
    $header = &amp;#039;&amp;lt;meta http-equiv=&amp;quot;Last-Modified&amp;quot; content=&amp;quot;&amp;#039;.gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;).&amp;#039; GMT&amp;quot; /&amp;gt;&amp;#039;;&lt;br /&gt;
    return $header; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Регистрировать его нигде не нужно.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
Вставляете следующий макрос в шаблоне .tpl в тэге &amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
%custom lastMDF()%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дата будет выводится текущая. Если хотите, можете поправить на любую другую.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8053</id>
		<title>Как выводить Last Modified</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8053"/>
		<updated>2018-01-10T14:14:56Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как выводить Last-Modified?&lt;br /&gt;
&lt;br /&gt;
Актуально для версии 2.17&lt;br /&gt;
&lt;br /&gt;
Нижеуказанный код можно использовать в старых версиях системы.&lt;br /&gt;
В актуальной версии системы для вывода Last-Modified используйте директиву [http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_seo/#sel=9:1,9:3 calculate-last-modified = 1] в файле config.ini&lt;br /&gt;
&lt;br /&gt;
Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//TODO: Write your own macroses here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function lastMDF() {&lt;br /&gt;
    $LastModified_unix = 1294844676; // время последнего изменения страницы &lt;br /&gt;
    $LastModified = gmdate(&amp;quot;D, d M Y H:i:s \G\M\T&amp;quot;, $LastModified_unix); &lt;br /&gt;
    $IfModifiedSince = false; &lt;br /&gt;
    if (isset($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5));  &lt;br /&gt;
    if (isset($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5)); &lt;br /&gt;
    if ($IfModifiedSince &amp;amp;&amp;amp; $IfModifiedSince &amp;gt; $LastModified_unix) {     &lt;br /&gt;
        header($_SERVER[&amp;#039;SERVER_PROTOCOL&amp;#039;] . &amp;#039; 304 Not Modified&amp;#039;);  &lt;br /&gt;
        exit;   &lt;br /&gt;
    }&lt;br /&gt;
    header(&amp;#039;Last-Modified: &amp;#039;. $LastModified);&lt;br /&gt;
    $header = &amp;#039;&amp;lt;meta http-equiv=&amp;quot;Last-Modified&amp;quot; content=&amp;quot;&amp;#039;.gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;).&amp;#039; GMT&amp;quot; /&amp;gt;&amp;#039;;&lt;br /&gt;
    return $header; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Регистрировать его нигде не нужно.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
Вставляете следующий макрос в шаблоне .tpl в тэге &amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
%custom lastMDF()%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дата будет выводится текущая. Если хотите, можете поправить на любую другую.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8052</id>
		<title>Как выводить Last Modified</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D1%8C_Last_Modified&amp;diff=8052"/>
		<updated>2018-01-10T14:11:39Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как выводить Last-Modified?&lt;br /&gt;
&lt;br /&gt;
Актуально для версии 2.17&lt;br /&gt;
&lt;br /&gt;
Нижеуказанный код устарел и представлен только как пример реализации подобного функционала.&lt;br /&gt;
Для вывода Last-Modified используйте директиву [http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_seo/#sel=9:1,9:3 calculate-last-modified = 1] в файле config.ini&lt;br /&gt;
&lt;br /&gt;
Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//TODO: Write your own macroses here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function lastMDF() {&lt;br /&gt;
    $LastModified_unix = 1294844676; // время последнего изменения страницы &lt;br /&gt;
    $LastModified = gmdate(&amp;quot;D, d M Y H:i:s \G\M\T&amp;quot;, $LastModified_unix); &lt;br /&gt;
    $IfModifiedSince = false; &lt;br /&gt;
    if (isset($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_ENV[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5));  &lt;br /&gt;
    if (isset($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;]))&lt;br /&gt;
        $IfModifiedSince = strtotime(substr($_SERVER[&amp;#039;HTTP_IF_MODIFIED_SINCE&amp;#039;], 5)); &lt;br /&gt;
    if ($IfModifiedSince &amp;amp;&amp;amp; $IfModifiedSince &amp;gt; $LastModified_unix) {     &lt;br /&gt;
        header($_SERVER[&amp;#039;SERVER_PROTOCOL&amp;#039;] . &amp;#039; 304 Not Modified&amp;#039;);  &lt;br /&gt;
        exit;   &lt;br /&gt;
    }&lt;br /&gt;
    header(&amp;#039;Last-Modified: &amp;#039;. $LastModified);&lt;br /&gt;
    $header = &amp;#039;&amp;lt;meta http-equiv=&amp;quot;Last-Modified&amp;quot; content=&amp;quot;&amp;#039;.gmdate(&amp;quot;D, d M Y H:i:s&amp;quot;).&amp;#039; GMT&amp;quot; /&amp;gt;&amp;#039;;&lt;br /&gt;
    return $header; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Регистрировать его нигде не нужно.&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
&lt;br /&gt;
Вставляете следующий макрос в шаблоне .tpl в тэге &amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
%custom lastMDF()%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дата будет выводится текущая. Если хотите, можете поправить на любую другую.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_PHP-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8051</id>
		<title>Использование модуля GeoIP в PHP-шаблоне</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_PHP-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8051"/>
		<updated>2018-01-10T13:26:09Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.17&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Общая информация ==&lt;br /&gt;
:Модуль [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота.&lt;br /&gt;
&lt;br /&gt;
:Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка [[Изображение: geoip.png]] - это значит что данный модуль еще не установлен на Вашей системе. &lt;br /&gt;
&lt;br /&gt;
После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” &amp;gt; “Модули” &amp;gt; “Список модулей, доступных для установки” и установить данный модуль.&lt;br /&gt;
&lt;br /&gt;
== XML ==&lt;br /&gt;
:Если открыть исходный XML страницы, можно увидеть узел, добавленный модулем [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;geo&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Россия&amp;lt;/country&amp;gt;&lt;br /&gt;
    &amp;lt;region&amp;gt;Санкт-Петербург&amp;lt;/region&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;Санкт-Петербург&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;latitude&amp;gt;59.93863&amp;lt;/latitude&amp;gt;&lt;br /&gt;
    &amp;lt;longitude&amp;gt;30.31413&amp;lt;/longitude&amp;gt;&lt;br /&gt;
&amp;lt;/geo&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры использования ==&lt;br /&gt;
:Приведу простые для восприятия примеры использования [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] и PHP&lt;br /&gt;
&lt;br /&gt;
=== Вывод на странице страны, города, широты и долготы ===&lt;br /&gt;
:Если в начале страницы шаблона есть теги &amp;lt;?php ?&amp;gt;, то нижеследующий код необходимо добавить между данными тегами.&lt;br /&gt;
Если данных тегов нет, от необходимо добавить их в начале страницы. В итоге должно получиться примерно следующим образом&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $country = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;country&amp;#039;]; // Страна&lt;br /&gt;
    $region = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;region&amp;#039;]; // Регион&lt;br /&gt;
    $city = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;city&amp;#039;]; // Город&lt;br /&gt;
    $latitude = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;latitude&amp;#039;]; // Широта&lt;br /&gt;
    $longitude = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;longitude&amp;#039;]; // Долгота&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
затем добавим в файл шаблона вывод данных [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;nowiki /&amp;gt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $country?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $region?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $city?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $latitude?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $longitude?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Вывод текста в зависимости от страны ===&lt;br /&gt;
:Выведем сообщение, если IP не российский&lt;br /&gt;
Нижеуказанный код необходимо добавить на Вашу страницу в том месте, где Вы хотите отображать сообщение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if($country == &amp;quot;Россия&amp;quot;): ?&amp;gt;&lt;br /&gt;
    &amp;amp;lt;span&amp;gt;Приветствую вас на моём сайте!&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
    &amp;amp;lt;span&amp;gt;Sorry, available only  from Russia&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;?php endif ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]] ===&lt;br /&gt;
:Так же можно отобразить точку на карте [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]], используя широту и долготу.&lt;br /&gt;
&lt;br /&gt;
==== Статическая карта ====&lt;br /&gt;
Необходимо в начале файла, где мы ранее добавляли переменные, указать еще одну переменную:&lt;br /&gt;
&lt;br /&gt;
$googleMaps = &amp;quot;https://maps.googleapis.com/maps/api/staticmap?center={$latitude},{$longitude}&amp;amp;amp;markers={$latitude},{$longitude}&amp;amp;amp;zoom=9&amp;amp;amp;size=400x400&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Затем, добавить в место, где Вы хотите видеть вывод карты код:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;img alt=&amp;quot;GoogleMaps&amp;quot; src=&amp;lt;?= $googleMaps?&amp;gt; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Вот как будет выглядеть карта:&lt;br /&gt;
&lt;br /&gt;
[[Изображение: 59.950_30.316.gif]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль_GeoIP]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_PHP-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8043</id>
		<title>Использование модуля GeoIP в PHP-шаблоне</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_PHP-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8043"/>
		<updated>2018-01-10T12:44:15Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.17&amp;#039;&amp;#039;&amp;#039;  == Общая информация == :Модуль [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.17&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Общая информация ==&lt;br /&gt;
:Модуль [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота.&lt;br /&gt;
&lt;br /&gt;
:Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка [[Изображение: geoip.png]] - это значит что данный модуль еще не установлен на Вашей системе. &lt;br /&gt;
&lt;br /&gt;
После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” &amp;gt; “Модули” &amp;gt; “Список модулей, доступных для установки” и установить данный модуль.&lt;br /&gt;
&lt;br /&gt;
== XML ==&lt;br /&gt;
:Если открыть исходный XML страницы, можно увидеть узел, добавленный модулем [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;geo&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Россия&amp;lt;/country&amp;gt;&lt;br /&gt;
    &amp;lt;region&amp;gt;Санкт-Петербург&amp;lt;/region&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;Санкт-Петербург&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;latitude&amp;gt;59.93863&amp;lt;/latitude&amp;gt;&lt;br /&gt;
    &amp;lt;longitude&amp;gt;30.31413&amp;lt;/longitude&amp;gt;&lt;br /&gt;
&amp;lt;/geo&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры использования ==&lt;br /&gt;
:Приведу простые для восприятия примеры использования [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] и PHP&lt;br /&gt;
&lt;br /&gt;
=== Вывод на странице страны, города, широты и долготы ===&lt;br /&gt;
:Если в начале страницы шаблона есть теги &amp;lt;?php ?&amp;gt;, то нижеследующий код необходимо добавить между данными тегами.&lt;br /&gt;
Если данных тегов нет, от необходимо добавить их в начале страницы. В итоге должно получиться примерно следующим образом&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $country = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;country&amp;#039;]; // Страна&lt;br /&gt;
    $region = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;region&amp;#039;]; // Регион&lt;br /&gt;
    $city = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;city&amp;#039;]; // Город&lt;br /&gt;
    $latitude = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;latitude&amp;#039;]; // Широта&lt;br /&gt;
    $longitude = $variables[&amp;#039;user&amp;#039;][&amp;#039;geo&amp;#039;][&amp;#039;longitude&amp;#039;]; // Долгота&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
затем добавим в файл шаблона вывод данных [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;nowiki /&amp;gt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $country?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $region?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $city?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $latitude?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;&amp;lt;nowiki /&amp;gt;li&amp;gt;&amp;lt;?= $longitude?&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Вывод текста в зависимости от страны ===&lt;br /&gt;
:Выведем сообщение, если IP не российский&lt;br /&gt;
Нижеуказанный код необходимо добавить на Вашу страницу в том месте, где Вы хотите отображать сообщение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if($country == &amp;quot;Россия&amp;quot;): ?&amp;gt;&lt;br /&gt;
    &amp;amp;lt;span&amp;gt;Приветствую вас на моём сайте!&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
    &amp;amp;lt;span&amp;gt;Sorry, available only  from Russia&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;?php endif ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]] ===&lt;br /&gt;
:Так же можно отобразить точку на карте [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]], используя широту и долготу.&lt;br /&gt;
&lt;br /&gt;
==== Статическая карта ====&lt;br /&gt;
Необходимо в начале файла, где мы ранее добавляли переменные, указать еще одну переменную:&lt;br /&gt;
&lt;br /&gt;
$googleMaps = &amp;quot;https://maps.googleapis.com/maps/api/staticmap?center={$latitude},{$longitude}&amp;amp;amp;markers={$latitude},{$longitude}&amp;amp;amp;zoom=9&amp;amp;amp;size=400x400&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Затем, добавить в место, где Вы хотите видеть вывод карты код:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;img alt=&amp;quot;GoogleMaps&amp;quot; src=&amp;lt;?= $googleMaps?&amp;gt; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Вот как будет выглядеть карта:&lt;br /&gt;
&lt;br /&gt;
[[Изображение: 59.950_30.316.gif]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в PHP]][[Категория:Модуль_GeoIP]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8042</id>
		<title>Использование модуля GeoIP в XSLT-шаблоне</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_GeoIP_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5&amp;diff=8042"/>
		<updated>2018-01-10T12:25:50Z</updated>

		<summary type="html">&lt;p&gt;Ekaterina.ermohina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.17&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Общая информация ==&lt;br /&gt;
:Модуль [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] возвращает данные об IP-адресе посетителя, такие, как страна, область, город, широта и долгота.&lt;br /&gt;
&lt;br /&gt;
:Что бы воспользоваться данным функционалом необходимо проверить его наличие. Если, после авторизации на сайте под логином супервайзера, в модулях отсутствует иконка [[Изображение: geoip.png]] - это значит что данный модуль еще не установлен на Вашей системе. &lt;br /&gt;
&lt;br /&gt;
После приобретения, для его установки, необходимо зайти в модуль “Конфигурация” &amp;gt; “Модули” &amp;gt; “Список модулей, доступных для установки” и установить данный модуль.&lt;br /&gt;
&lt;br /&gt;
== XML ==&lt;br /&gt;
:Если открыть исходный XML страницы, можно увидеть узел, добавленный модулем [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;geo&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Россия&amp;lt;/country&amp;gt;&lt;br /&gt;
    &amp;lt;region&amp;gt;Санкт-Петербург&amp;lt;/region&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;Санкт-Петербург&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;latitude&amp;gt;59.93863&amp;lt;/latitude&amp;gt;&lt;br /&gt;
    &amp;lt;longitude&amp;gt;30.31413&amp;lt;/longitude&amp;gt;&lt;br /&gt;
&amp;lt;/geo&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры использования ==&lt;br /&gt;
:Приведу простые для восприятия примеры использования [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]] и XSLT&lt;br /&gt;
&lt;br /&gt;
=== Вывод на странице страны и города ===&lt;br /&gt;
:Выведем в отдельном блоке страну и город пользователя. В файле \templates\demodizzy\xslt\layouts\default.xsl добавим вызов шаблона:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;result/user/geo&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и после основного шаблона добавим шаблон вызова [[http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_geo_ip/ GeoIP]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;geo&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;infoblock&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;ul&amp;gt;&lt;br /&gt;
				&amp;lt;li&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;Страна: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;country&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/li&amp;gt;&lt;br /&gt;
				&amp;lt;li&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;Город: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;city&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Вывод текста в зависимости от страны ===&lt;br /&gt;
:Выведем сообщение, если IP не российский:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;geo&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:when test=&amp;quot;country = &amp;#039;Россия&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:text&amp;gt;Приветствую вас на моём сайте!&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;/&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:text&amp;gt;Sorry, available only  from Russia&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]] ===&lt;br /&gt;
:Так же можно отобразить точку на карте [[http://ru.wikipedia.org/wiki/Google_Maps GoogleMaps]], используя широту и долготу.&lt;br /&gt;
&lt;br /&gt;
==== Статическая карта ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;lat&amp;quot; select=&amp;quot;result/user/geo/latitude&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;long&amp;quot; select=&amp;quot;result/user/geo/longitude&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;link&amp;quot; select=&amp;quot;concat(&amp;#039;https://maps.googleapis.com/maps/api/staticmap?center=&lt;br /&gt;
        &amp;#039;, $lat, &amp;#039;,&amp;#039;, $long, &amp;#039;&amp;amp;amp;markers=&amp;#039;, $lat, &amp;#039;,&amp;#039;, $long, &amp;#039;&amp;amp;amp;zoom=9&amp;amp;amp;size=400x400&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Вот как будет выглядеть карта:&lt;br /&gt;
&lt;br /&gt;
[[Изображение: 59.950_30.316.gif]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]][[Категория:Модуль_GeoIP]]&lt;/div&gt;</summary>
		<author><name>Ekaterina.ermohina</name></author>
		
	</entry>
</feed>