<?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=Danil</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=Danil"/>
	<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/Danil"/>
	<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%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3012</id>
		<title>Как можно вывести строку поиска в XSLT-шаблоне?</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3012"/>
		<updated>2010-10-01T10:20:14Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как можно вывести строку поиска в XSLT-шаблоне?&lt;br /&gt;
В &amp;lt;body&amp;gt; нашего первого обработчика (&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;) по протоколу udata берем результат работы макроса поиска&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;document(&amp;#039;udata://search/search_do&amp;#039;)/udata&amp;quot; mode=&amp;quot;searchform&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее в шаблоне дизайна прописываем еще два шаблона: Первый получает данные работы макроса %search insert_form()%[http://help-dev.umi-cms.ru/search.insert_form.html] и выводит их списком:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;search_do&amp;#039;]&amp;quot; mode=&amp;quot;searchform&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://search/insert_form&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/ul&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;
Второй отвечает за вывод самой строки поиска, значением поля которого будет являться последний поисковый запрос:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;insert_form&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;get&amp;quot; action=&amp;quot;/search/search_do/&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search_string&amp;quot; value=&amp;quot;{last_search_string}&amp;quot;/&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Поиск&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;[[Категория:Модуль Поиск]]&lt;/div&gt;</summary>
		<author><name>Danil</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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1784</id>
		<title>Использование серверных переменных в 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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1784"/>
		<updated>2010-09-10T10:53:16Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования серверных переменных (массив $_SERVER) в XSLT-шаблонах. Для этого серверные переменные необходимо инициализировать как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Имя параметра должно начинаться с &amp;quot;_&amp;quot; (нижнее подчеркивание), например: &amp;#039;&amp;#039;&amp;#039;_http_user_agent&amp;#039;&amp;#039;&amp;#039;. После этого параметр можно использовать в шаблоне указав &amp;#039;&amp;#039;&amp;#039;$_http_user_agent&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_time&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_query_string&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_charset&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_encoding&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_language&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_referer&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_user_agent&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_addr&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_uri&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_time:         &amp;lt;xsl:value-of select=&amp;quot;$_request_time&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_query_string:         &amp;lt;xsl:value-of select=&amp;quot;$_query_string&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_accept&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_charset:  &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_charset&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_encoding: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_encoding&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_language: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_language&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_host:	    &amp;lt;xsl:value-of select=&amp;quot;$_http_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_referer: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_referer&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_user_agent: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_user_agent&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_addr: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_addr&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_host: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_uri: 	    &amp;lt;xsl:value-of select=&amp;quot;$_request_uri&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Firefox&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Firefox.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Chrome&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Chrome.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;MSIE&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using MSIE.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Opera&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Opera.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Safari&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Safari.&amp;lt;/xsl:text&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;Browser was not identified.&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;/p&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То страница, выведенная по этому шаблону в браузере Firefox, будет выглядеть примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $_request_time: 1283867773&lt;br /&gt;
    * $_query_string: path=about/&lt;br /&gt;
    * $_http_accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;
    * $_http_accept_charset: windows-1251,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
    * $_http_accept_encoding: gzip,deflate&lt;br /&gt;
    * $_http_accept_language: ru,en-us;q=0.7,en;q=0.3&lt;br /&gt;
    * $_http_host: localhost&lt;br /&gt;
    * $_http_referer:&lt;br /&gt;
    * $_http_user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8&lt;br /&gt;
    * $_remote_addr: 127.0.0.1&lt;br /&gt;
    * $_remote_host:&lt;br /&gt;
    * $_request_uri: /about/&lt;br /&gt;
&lt;br /&gt;
You are using Firefox.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_USel&amp;diff=1774</id>
		<title>Протокол USel</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_USel&amp;diff=1774"/>
		<updated>2010-09-07T13:53:53Z</updated>

		<summary type="html">&lt;p&gt;Danil: переименовал «Протокол usel» в «Протокол USel»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Протокол для работы с данными системы. Представляет собой интерфейс для доступа к [[API]]-классу [[umiSelection]]. Позволяет создавать шаблоны выборок из базы данных и в дальнейшем использовать их точно так же, как макросы.&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Протокол &amp;#039;&amp;#039;&amp;#039;usel&amp;#039;&amp;#039;&amp;#039; обеспечивает доступ к базе данных &amp;#039;&amp;#039;&amp;#039;UMI.CMS&amp;#039;&amp;#039;&amp;#039; используя [[API]] функции (классы [[umiSelection]] и [[umiSelectionParser]]).&lt;br /&gt;
Выборки из базы производятся по шаблонам, которые представляют собой [[XML]]-файлы в определенном формате. При запросе ресурса по протоколу &amp;#039;&amp;#039;&amp;#039;usel&amp;#039;&amp;#039;&amp;#039; производится следующим образом:&lt;br /&gt;
# По [[URI]] определяется название [[XML]]-файла, в котором описан запрос выборки&lt;br /&gt;
# В шаблон выборки подставляются параметры, переданные в [[URI]]&lt;br /&gt;
# Шаблон выборки трансформируется в объект выборки ([[umiSelection]])&lt;br /&gt;
# Выполняется выборка данных из [[База данных|БД]] ([[umiSelectionParser]])&lt;br /&gt;
# Результат выборки преобразуется в [[XML]]-документ и возвращается в качестве содержания ресурса&lt;br /&gt;
&lt;br /&gt;
Все [[XML]]-файлы, которые содержат шаблоны &amp;#039;&amp;#039;&amp;#039;usel&amp;#039;&amp;#039;&amp;#039; должны находится в папке &amp;#039;&amp;#039;&amp;#039;~/usels/&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Правила разбора [[URI]] ==&lt;br /&gt;
&lt;br /&gt;
=== Выборка без параметров ===&lt;br /&gt;
Пример [[URI]]:&lt;br /&gt;
 usel://&amp;#039;&amp;#039;&amp;#039;getSpecialNews&amp;#039;&amp;#039;&amp;#039;/&lt;br /&gt;
Вернет результаты выброки по шаблону, описанному в файле &amp;quot;~/usels/&amp;#039;&amp;#039;&amp;#039;getSpecialNews&amp;#039;&amp;#039;&amp;#039;.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Выборка по параметрам ===&lt;br /&gt;
Пример [[URI]]:&lt;br /&gt;
 usel://&amp;#039;&amp;#039;&amp;#039;getSomeCatalogItems&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;/&lt;br /&gt;
Вернет результаты выброки по шаблону, описанному в файле &amp;quot;~/usels/&amp;#039;&amp;#039;&amp;#039;getSomeCatalogItems&amp;#039;&amp;#039;&amp;#039;.xml&amp;quot; и подставит в шаблон вместо параметра &amp;#039;&amp;#039;&amp;#039;{1}&amp;#039;&amp;#039;&amp;#039; значение &amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Формат файла ==&lt;br /&gt;
&lt;br /&gt;
== Тег &amp;quot;selection&amp;quot; ==&lt;br /&gt;
Корневой тег, который может содержать следующие теги:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;property&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;sort&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;limit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Тег &amp;quot;target&amp;quot; ==&lt;br /&gt;
Тег &amp;#039;&amp;#039;&amp;#039;target&amp;#039;&amp;#039;&amp;#039; содержит теги, которые указывают, по какому [[тип данных|типу данных]] необходимо отфильтровать результат, а также характер выборки (иными словами, ожидаемый результат).&lt;br /&gt;
Ожидаемый результат выборки указывается атрибутом &amp;#039;&amp;#039;&amp;#039;expected-result&amp;#039;&amp;#039;&amp;#039; и может принимать 3 значения:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;objects&amp;#039;&amp;#039;&amp;#039; - выборка вернет результат, состоящий из набора тегов &amp;quot;object&amp;quot;, которые соответствуют объектам системы (класс [[umiObject]]: пользователи, заказы, баннеры и т.п.)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;objects count&amp;#039;&amp;#039;&amp;#039; - вернет тоже, что и &amp;#039;&amp;#039;&amp;#039;objects&amp;#039;&amp;#039;&amp;#039;, но в конец добавит тег &amp;#039;&amp;#039;&amp;#039;total&amp;#039;&amp;#039;&amp;#039; - общее количество результатов выборки без учета &amp;#039;&amp;#039;&amp;#039;limit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;pages&amp;#039;&amp;#039;&amp;#039; - выборка вернет результат, состоящий из набора тегов &amp;quot;page&amp;quot;, которые соответствуют страницам системы (класс [[umiHierarchyElement]]: страницы контента, новости, объекты каталога и т.п.)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;pages count&amp;#039;&amp;#039;&amp;#039; - вернет тоже, что и &amp;#039;&amp;#039;&amp;#039;pages&amp;#039;&amp;#039;&amp;#039;, но в конец добавит тег &amp;#039;&amp;#039;&amp;#039;total&amp;#039;&amp;#039;&amp;#039; - общее количество результатов выборки без учета &amp;#039;&amp;#039;&amp;#039;limit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;count&amp;#039;&amp;#039;&amp;#039; - вернет только число, которое соответствует количеству объектов в выборке, согласно результатам запроса&lt;br /&gt;
&lt;br /&gt;
Внутри тега &amp;#039;&amp;#039;&amp;#039;target&amp;#039;&amp;#039;&amp;#039; могут находится теги &amp;#039;&amp;#039;&amp;#039;type&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;target expected-result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;type module=&amp;quot;news&amp;quot; method=&amp;quot;item&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;category&amp;gt;/news/politicheskiy_novosti/&amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании &amp;#039;&amp;#039;&amp;#039;expected-result=&amp;quot;pages&amp;quot;&amp;#039;&amp;#039;&amp;#039; необходимо указать хоть один иерархический признак, по которому будет строиться запрос(&amp;#039;&amp;#039;&amp;#039;category&amp;#039;&amp;#039;&amp;#039;). Например:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;target expected-result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;type id=&amp;quot;802&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;category depth=&amp;quot;10&amp;quot;&amp;gt;/news/&amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При использовании &amp;#039;&amp;#039;&amp;#039;expecteed-result=&amp;quot;count&amp;quot;&amp;#039;&amp;#039;&amp;#039; по умолчанию считается количество объектов. Для того, чтобы явно задать необходимость считать количество страниц, нужно добавить атрибут &amp;#039;&amp;#039;&amp;#039;force-hierarchy&amp;#039;&amp;#039;&amp;#039; со значением &amp;#039;&amp;#039;&amp;#039;&amp;quot;1&amp;quot;&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;target expected-result=&amp;quot;count&amp;quot; force-hierarchy=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;type module=&amp;quot;news&amp;quot; method=&amp;quot;item&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Тег &amp;quot;type&amp;quot; ===&lt;br /&gt;
Указывает &amp;#039;&amp;#039;&amp;#039;тип данных&amp;#039;&amp;#039;&amp;#039;, по которому будут фильтроваться результаты выборки. Этот тег может встречаться несколько раз в рамках тега [[target]]. В таком случае они будут объединены логическим &amp;quot;ИЛИ&amp;quot;.&lt;br /&gt;
Есть 2 способа указать [[тип данных]] используя тег &amp;#039;&amp;#039;&amp;#039;type&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* Указать [[id типа данных]], используя атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;id&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;type id=&amp;quot;4&amp;quot; /&amp;gt; &amp;lt;!-- Соответствует типу &amp;quot;Пользователь&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Указать [[назначение типа данных]], используя аттрибуты &amp;#039;&amp;#039;&amp;#039;&amp;quot;module&amp;quot;&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;&amp;quot;method&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;type module=&amp;quot;news&amp;quot; method=&amp;quot;item&amp;quot; /&amp;gt; &amp;lt;!-- Соответствует всем новостям на сайте --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Тег &amp;quot;category&amp;quot; ===&lt;br /&gt;
Данный тег позволяет фильтровать результаты выборки по определенному разделу в дереве сайта. В качестве значения тега можно указать либо [[путь до страницы]], либо [[id страницы]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;category&amp;gt;/market/&amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;category&amp;gt;23771&amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Помимо раздела можно указать глубину поиска атрибутом &amp;#039;&amp;#039;&amp;#039;&amp;quot;depth&amp;quot;&amp;#039;&amp;#039;&amp;#039;. По умолчанию его значение равно &amp;#039;&amp;#039;&amp;#039;&amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;, что означает в данном случае поиск только в данном разделе без поиска по подразделам.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;category depth=&amp;quot;1&amp;quot;&amp;gt;/market/&amp;lt;/category&amp;gt; &amp;lt;!-- Искать в разделе &amp;quot;/market/&amp;quot; и в его подразделах на 1 уровень глубины --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В рамках тега &amp;#039;&amp;#039;&amp;#039;&amp;quot;target&amp;quot;&amp;#039;&amp;#039;&amp;#039;, данных тег можно использовать несколько раз.&lt;br /&gt;
&lt;br /&gt;
== Тег &amp;quot;property&amp;quot; ==&lt;br /&gt;
Позволяет фильтровать результаты выборки по значениям свойств. Сам тег &amp;#039;&amp;#039;&amp;#039;&amp;quot;property&amp;quot;&amp;#039;&amp;#039;&amp;#039; может иметь только 2 атрибута:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; - обязательный атрибут, который содержит [[название поля]], по которому необходимо производить фильтрацию. Название поля всегда соответствует своему идентификатору в шаблонах данных за исключением 3 случая, когда в качестве значения атрибута &amp;#039;&amp;#039;&amp;#039;&amp;quot;name&amp;quot;&amp;#039;&amp;#039;&amp;#039; указано &amp;#039;&amp;#039;&amp;#039;&amp;quot;name&amp;quot;&amp;#039;&amp;#039;&amp;#039;. В этом случае считается, что фильтрация происходит по [[Название объекта|названию объекта]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; - содержание, по которому необходимо проводить фильтрацию. Обязательность этого атрибута зависит от типа поля.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;mode&amp;#039;&amp;#039;&amp;#039; - необязательный атрибут который принимает значение &amp;#039;&amp;#039;&amp;#039;&amp;quot;not&amp;quot;&amp;#039;&amp;#039;&amp;#039;. В этом случае при фильтрации по этому полю будет использоваться логическое отрицание: т.е. будут выбраны все объекты или страницы, которые &amp;#039;&amp;#039;&amp;#039;не&amp;#039;&amp;#039;&amp;#039; содержат указанного значения.&lt;br /&gt;
Еще одно возможное значение появилось в 2.6: &amp;#039;&amp;#039;&amp;#039;like&amp;#039;&amp;#039;&amp;#039;, обозначает, что будет искаться неточное соответствие.&lt;br /&gt;
&lt;br /&gt;
Способ задания значения для фильтрации зависит от [[Тип поля|типа поля]].&lt;br /&gt;
* Для следующих строковых полей можно задавать значение внутри атрибута &amp;#039;&amp;#039;&amp;#039;&amp;quot;value&amp;quot;&amp;#039;&amp;#039;&amp;#039; (точное соответствие):&lt;br /&gt;
** [[Строка (Тип поля)|Строка]]&lt;br /&gt;
** [[Текст (Тип поля)|Текст]]&lt;br /&gt;
** [[HTML-текст (Тип поля)|HTML-текст]]&lt;br /&gt;
** [[Теги (Тип поля)|Теги]]&lt;br /&gt;
** [[Изображение (Тип поля)|Изображение]]&lt;br /&gt;
** [[Файл (Тип поля)|Файл]]&lt;br /&gt;
** [[Число (Тип поля)|Число]]&lt;br /&gt;
** [[Число с точкой (Тип поля)|Число с точкой]]&lt;br /&gt;
** [[Цена (Тип поля)|Цена]]&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;property name=&amp;quot;login&amp;quot; value=&amp;quot;lyxsus&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Для типа [[Кнопка-флажок (Тип поля)|&amp;quot;Кнопка-флажок&amp;quot;]] значение указывается в атрибуте &amp;#039;&amp;#039;&amp;#039;&amp;quot;value&amp;quot;&amp;#039;&amp;#039;&amp;#039; и может быть равно, либо не равно &amp;#039;&amp;#039;&amp;#039;&amp;quot;1&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Выбрать все объекты или страницы, у которых чекбокс chk_box включен. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;property name=&amp;quot;chk_box&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Выбрать все объекты или страницы, у которых чекбокс chk_box выключен. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;property name=&amp;quot;chk_box&amp;quot; mode=&amp;quot;not&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Для числовых полей и полей, содержащий даты можно указать значение атрибуте &amp;#039;&amp;#039;&amp;#039;&amp;quot;value&amp;quot;&amp;#039;&amp;#039;&amp;#039; (тогда будет искаться точное сообщение), либо можно использовать интервальный поиска (используя теги &amp;#039;&amp;#039;&amp;#039;&amp;quot;min-value&amp;quot;&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;&amp;quot;max-value&amp;quot;&amp;#039;&amp;#039;&amp;#039;. Это актуально для следующих [[Тип поля|типов]]:&lt;br /&gt;
** [[Число (Тип поля)|Число]]&lt;br /&gt;
** [[Число с точкой (Тип поля)|Число с точкой]]&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;!-- Выбрать все объекты или страницы, у которых значение поля &amp;quot;price&amp;quot; больше 100, но меньше 500. --&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;min-value&amp;gt;100&amp;lt;/min-value&amp;gt;&lt;br /&gt;
	&amp;lt;max-value&amp;gt;500&amp;lt;/max-value&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Для фильтрации по полям типов [[Ссылка на дерево (Тип поля)|&amp;quot;Ссылка на дерево&amp;quot;]], [[Выпадающий список (Тип поля)|&amp;quot;Выпадающий список&amp;quot;]] и [[Выпадающий список со множественным выбором (Тип поля)|&amp;quot;Выпадающий список со множественным выбором&amp;quot;]] необходимо указывать значения используя теги &amp;quot;page&amp;quot; (для типа &amp;quot;Ссылка на дерево&amp;quot;) или &amp;quot;object&amp;quot; (для типа [[Выпадающий список (Тип поля)|&amp;quot;Выпадающий список&amp;quot;]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Тег &amp;quot;object&amp;quot; ===&lt;br /&gt;
Используется для фильтрации по полям типа [[Выпадающий список (Тип поля)|&amp;quot;Выпадающий список&amp;quot;]] и [[Выпадающий список со множественным выбором (Тип поля)|&amp;quot;Выпадающий список со множественным выбором&amp;quot;]]. Находится внутри тега &amp;#039;&amp;#039;&amp;#039;&amp;quot;property&amp;quot;&amp;#039;&amp;#039;&amp;#039; и может указываться там несколько раз. В это случае значения будут объединены логическим &amp;quot;ИЛИ&amp;quot;. Внутри тега &amp;#039;&amp;#039;&amp;#039;&amp;quot;object&amp;quot;&amp;#039;&amp;#039;&amp;#039; указывается [[Id объекта|id объекта]].&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Найти все объекты или страницы, у которых свойство &amp;quot;delivery_address&amp;quot; равно &amp;quot;26564&amp;quot;. --&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;delivery_address&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;object&amp;gt;26564&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Тег &amp;quot;page&amp;quot; ===&lt;br /&gt;
Используется для фильтрации по полям типа [[Ссылка на дерево (Тип поля)|&amp;quot;Ссылка на дерево&amp;quot;]]. Находится внутри тега &amp;quot;property&amp;quot; и может указываться там несколько раз. В это случае значения будут объединены логическим &amp;quot;ИЛИ&amp;quot;. Внутри тега &amp;quot;page&amp;quot; указывается [[Id страницы|id страницы]], либо [[путь до страницы]].&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Найти все страницы, либо объекты, у которых свойство &amp;quot;recommend&amp;quot; равно странице с адресом &amp;quot;/market/akse.../&amp;quot;, либо &lt;br /&gt;
странице с id равным &amp;quot;23025&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;recommed&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;page&amp;gt;/market/aksessuary_dlya_homyachkov/povodki/povodok_leopardovyj/&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;page&amp;gt;23025&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Теги &amp;quot;min-value&amp;quot; и &amp;quot;max-value&amp;quot; ===&lt;br /&gt;
Теги &amp;#039;&amp;#039;&amp;#039;&amp;quot;min-value&amp;quot;&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;&amp;quot;max-value&amp;quot;&amp;#039;&amp;#039;&amp;#039; используются для фильтрации числовых полей по принципу &amp;quot;не меньше чем&amp;quot; и &amp;quot;не больше чем&amp;quot;:&lt;br /&gt;
* Атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;min-value&amp;quot;&amp;#039;&amp;#039;&amp;#039; указывает минимальное значение для фильтрации&lt;br /&gt;
* Атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;max-value&amp;quot;&amp;#039;&amp;#039;&amp;#039; указывает максимальное значение для фильтрации&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Найти все объекты или страницы, у которых значение поля &amp;quot;price&amp;quot; больше, чем &amp;quot;50&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;min-value&amp;gt;50&amp;lt;/min-value&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Найти все объекты или страницы, у которых значение поля &amp;quot;price&amp;quot; меньше, чем &amp;quot;150&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;max-value&amp;gt;150&amp;lt;/max-value&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для полей типа [[Дата (Тип поля)|&amp;quot;Дата&amp;quot;]] можно задать формат значения для поиска используя атрибут &amp;#039;&amp;#039;&amp;#039;format&amp;#039;&amp;#039;&amp;#039; (на данный момент &amp;quot;timestamp&amp;quot; либо &amp;quot;UTC&amp;quot;).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;property name=&amp;quot;last_request_time&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;min-value format=&amp;quot;timestamp&amp;quot;&amp;gt;3600&amp;lt;/min-value&amp;gt;&lt;br /&gt;
	&amp;lt;max-value format=&amp;quot;UTC&amp;quot;&amp;gt;2007-11-10 14:48:10&amp;lt;/max-value&amp;gt;&lt;br /&gt;
&amp;lt;/property&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Тег &amp;quot;sort&amp;quot; ==&lt;br /&gt;
Задает поле для сортировки результатов выборки. Атрибутом &amp;#039;&amp;#039;&amp;#039;&amp;quot;order&amp;quot;&amp;#039;&amp;#039;&amp;#039; задается направление сортировки:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;ascending&amp;quot;&amp;#039;&amp;#039;&amp;#039; - по возрастанию значения поля, указанного в теге &amp;#039;&amp;#039;&amp;#039;&amp;quot;order&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;descending&amp;quot;&amp;#039;&amp;#039;&amp;#039; - по убыванию значения поля, указанного в теге &amp;#039;&amp;#039;&amp;#039;&amp;quot;order&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
По умолчанию считается, что атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;order&amp;quot;&amp;#039;&amp;#039;&amp;#039; равен &amp;#039;&amp;#039;&amp;#039;&amp;quot;ascending&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Отсортировать результаты выборки в обратном порядке по полю &amp;quot;publish_time&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;sort order=&amp;quot;descending&amp;quot;&amp;gt;publish_time&amp;lt;/sort&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Помимо названия поля, данный тег может принимать следующие специальные значения:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;name&amp;quot;&amp;#039;&amp;#039;&amp;#039; - сортировать по имени объекта.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;ord&amp;quot;&amp;#039;&amp;#039;&amp;#039; - сортировать по [[Порядок страниц|порядку страниц]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;rand()&amp;quot;&amp;#039;&amp;#039;&amp;#039; - сортировать в случайном порядке. в этом случае атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;order&amp;quot;&amp;#039;&amp;#039;&amp;#039; использовать не надо.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Отсортировать результаты выборки в случайном порядке --&amp;gt;&lt;br /&gt;
&amp;lt;sort&amp;gt;rand()&amp;lt;/sort&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ожидаемый результат выборки &amp;#039;&amp;#039;&amp;#039;&amp;quot;count&amp;quot;&amp;#039;&amp;#039;&amp;#039;, то этот тег игнорируется.&lt;br /&gt;
&lt;br /&gt;
== Тег &amp;quot;limit&amp;quot; ==&lt;br /&gt;
Используется для ограничения размера выборки и организации постраничного вывода информации, полученной через протокол &amp;#039;&amp;#039;&amp;#039;&amp;quot;upage://&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
В качестве значения тега передается количество элементов, которые будут присутствовать в выборке. Атрибут &amp;#039;&amp;#039;&amp;#039;&amp;quot;page&amp;quot;&amp;#039;&amp;#039;&amp;#039; используется для того, чтобы указать, какую страницу данных вернуть в результате выборки.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Вывести только 10 первых объектов или страниц в результате выборки --&amp;gt;&lt;br /&gt;
&amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;10&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ожидаемый результат выборки &amp;#039;&amp;#039;&amp;#039;&amp;quot;count&amp;quot;&amp;#039;&amp;#039;&amp;#039;, то этот тег игнорируется.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Передача параметров в шаблон выборки ==&lt;br /&gt;
Для более гибкого использования шаблонов выборок в протоколе &amp;#039;&amp;#039;&amp;#039;usel://&amp;#039;&amp;#039;&amp;#039; можно использовать параметры.&lt;br /&gt;
Для этого в шаблоне выборки конкретные значения убираются и помечаются особым форматированием: &amp;#039;&amp;#039;&amp;#039;&amp;quot;{...}&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Есть 2 вида параметров в протоколе &amp;#039;&amp;#039;&amp;#039;upage://&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
# Индексированные параметры - передаются через &amp;quot;/&amp;quot;)&lt;br /&gt;
# Именованные параметры - передаются после знака &amp;quot;?&amp;quot; аналочино GET-параметрам в HTTP-запросе.&lt;br /&gt;
&lt;br /&gt;
=== Индексированные параметры ===&lt;br /&gt;
Индексированные параметры передаются в запросе также, как и параметры макросов в протоколе [[udata|udata://]]:&lt;br /&gt;
 usel://someSelection/&amp;#039;&amp;#039;&amp;#039;param1&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;param2&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;param3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
В шаблоне выборки для подстановки будут использоваться &amp;#039;&amp;#039;&amp;#039;{1}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{2}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{3}&amp;#039;&amp;#039;&amp;#039; соответственно.&lt;br /&gt;
&lt;br /&gt;
=== Именованные параметры ===&lt;br /&gt;
Именованные параметры передаются как параметры запроса наподобие GET параметров:&lt;br /&gt;
 usel://someSelection/?&amp;#039;&amp;#039;&amp;#039;limit&amp;#039;&amp;#039;&amp;#039;=10&amp;amp;&amp;#039;&amp;#039;&amp;#039;page&amp;#039;&amp;#039;&amp;#039;=3&lt;br /&gt;
Для подстановки их в шаблон выборки нужно писать &amp;#039;&amp;#039;&amp;#039;{limit}&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;{page}&amp;#039;&amp;#039;&amp;#039;. Например:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;limit page=&amp;quot;{page}&amp;quot;&amp;gt;{limit}&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_usel&amp;diff=1775</id>
		<title>Протокол usel</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_usel&amp;diff=1775"/>
		<updated>2010-09-07T13:53:53Z</updated>

		<summary type="html">&lt;p&gt;Danil: переименовал «Протокол usel» в «Протокол USel»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Протокол USel]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%B8%D0%BB%D0%B8_%D1%81%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BF%D1%80%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B8%D0%B7_1%D0%A1&amp;diff=1773</id>
		<title>Удаление элементов или снятие активности при импорте данных из 1С</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%B8%D0%BB%D0%B8_%D1%81%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BF%D1%80%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B8%D0%B7_1%D0%A1&amp;diff=1773"/>
		<updated>2010-09-07T13:43:17Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Интеграция с 1С]]&lt;br /&gt;
В XSL-Шаблоне импорта xsl/import/commerceML2.xsl, в шаблоне &amp;quot;Товары/Товар&amp;quot;, прописан следующий блок:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
данные строки добавляют в узел &amp;lt;page&amp;gt; атрибут is-deleted=&amp;quot;1&amp;quot; в том случае, если в системе 1С для какого либо элемента (раздел, номенклатура) была поставлена &amp;quot;Пометка удаления&amp;quot;. В итоге, при обработке данных, UMI.CMS помеченный элемент переместит в &amp;quot;Корзину&amp;quot;, но он по прежнему будет существовать в системе и при повторном импорте данных, помещенный элемент в корзину будет обновляться. Для полного удаления элемента его необходимо удалить из Корзины.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В некоторых случаях, требуется не удаления элемента в корзину, а изменение его активности, т.е. установления статуса &amp;quot;Не активен&amp;quot;. Для этого необходимо весь шаблон &amp;quot;Товары/Товар&amp;quot; скопировать в файл xsl/import/custom/commerceML2.xsl, в корневой узел &amp;lt;stylesheet&amp;gt;. И потом изменить строчку:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
на:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;xsl:attribute name=&amp;quot;is-active&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1772</id>
		<title>Таблицы в несколько колонок в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1772"/>
		<updated>2010-09-07T13:34:30Z</updated>

		<summary type="html">&lt;p&gt;Danil: /* Замечание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
==Замечание==&lt;br /&gt;
&lt;br /&gt;
Если вы столкнулись с этим вопросом и пытаетесь вывести не табличные данные, то следует обратить внимание на использование &amp;quot;плавающих&amp;quot; элементов (например, элементы div с css-свойствами float и min-height). Если этот вариант все-таки не устраивает, тогда можно воспользоваться описанными ниже решениями.&lt;br /&gt;
&lt;br /&gt;
Эти решения также демонстрируют использование [http://www.w3.org/TR/xpath/#axes осей XPath].&lt;br /&gt;
&lt;br /&gt;
==Исходные данные==&lt;br /&gt;
&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;udata module=&amp;quot;catalog&amp;quot; method=&amp;quot;getObjectsList&amp;quot; generation-time=&amp;quot;0.302167&amp;quot;&amp;gt;−&lt;br /&gt;
  &amp;lt;lines&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;42&amp;quot; alt_name=&amp;quot;sovet_tc1&amp;quot; link=&amp;quot;/shop/sovet_tc1/&amp;quot; xlink:href=&amp;quot;upage://42&amp;quot;&amp;gt;Sovet TC1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;47&amp;quot; alt_name=&amp;quot;elektronika_432&amp;quot; link=&amp;quot;/shop/elektronika_432/&amp;quot; xlink:href=&amp;quot;upage://47&amp;quot;&amp;gt;Elektronika 432&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;50&amp;quot; alt_name=&amp;quot;moskwich&amp;quot; link=&amp;quot;/shop/moskwich/&amp;quot; xlink:href=&amp;quot;upage://50&amp;quot;&amp;gt;Moskwich&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;33&amp;quot; alt_name=&amp;quot;televizor_horizont&amp;quot; link=&amp;quot;/shop/televizor_horizont/&amp;quot; xlink:href=&amp;quot;upage://33&amp;quot;&amp;gt;Телевизор «Horizont»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;48&amp;quot; alt_name=&amp;quot;oki_7&amp;quot; link=&amp;quot;/shop/oki_7/&amp;quot; xlink:href=&amp;quot;upage://48&amp;quot;&amp;gt;Oki 7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;43&amp;quot; alt_name=&amp;quot;sovet_tc2&amp;quot; link=&amp;quot;/shop/sovet_tc2/&amp;quot; xlink:href=&amp;quot;upage://43&amp;quot;&amp;gt;Sovet TC2&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;51&amp;quot; alt_name=&amp;quot;soviet_b1&amp;quot; link=&amp;quot;/shop/soviet_b1/&amp;quot; xlink:href=&amp;quot;upage://51&amp;quot;&amp;gt;Soviet B1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;37&amp;quot; alt_name=&amp;quot;televizor_horizont1&amp;quot; link=&amp;quot;/shop/televizor_horizont1/&amp;quot; xlink:href=&amp;quot;upage://37&amp;quot;&amp;gt;Телевизор «LG»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;45&amp;quot; alt_name=&amp;quot;sovet_tc3&amp;quot; link=&amp;quot;/shop/sovet_tc3/&amp;quot; xlink:href=&amp;quot;upage://45&amp;quot;&amp;gt;Sovet TC3&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;38&amp;quot; alt_name=&amp;quot;televizor_horizont2&amp;quot; link=&amp;quot;/shop/televizor_horizont2/&amp;quot; xlink:href=&amp;quot;upage://38&amp;quot;&amp;gt;Телевизор «Panasonic»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;52&amp;quot; alt_name=&amp;quot;soviet_ba&amp;quot; link=&amp;quot;/shop/soviet_ba/&amp;quot; xlink:href=&amp;quot;upage://52&amp;quot;&amp;gt;Soviet BA &amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;53&amp;quot; alt_name=&amp;quot;soviet_t7&amp;quot; link=&amp;quot;/shop/soviet_t7/&amp;quot; xlink:href=&amp;quot;upage://53&amp;quot;&amp;gt;Soviet T7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;39&amp;quot; alt_name=&amp;quot;televizor_horizont3&amp;quot; link=&amp;quot;/shop/televizor_horizont3/&amp;quot; xlink:href=&amp;quot;upage://39&amp;quot;&amp;gt;Телевизор «Philips»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;40&amp;quot; alt_name=&amp;quot;televizor_horizont4&amp;quot; link=&amp;quot;/shop/televizor_horizont4/&amp;quot; xlink:href=&amp;quot;upage://40&amp;quot;&amp;gt;Телевизор «Vityas»&amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;/lines&amp;gt;&lt;br /&gt;
  &amp;lt;total&amp;gt;14&amp;lt;/total&amp;gt;&lt;br /&gt;
  &amp;lt;per_page&amp;gt;25&amp;lt;/per_page&amp;gt;&lt;br /&gt;
  &amp;lt;category_id&amp;gt;31&amp;lt;/category_id&amp;gt;&lt;br /&gt;
  &amp;lt;type_id&amp;gt;9&amp;lt;/type_id&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Таблица в 3 колонки==&lt;br /&gt;
&lt;br /&gt;
Допустим, мы выводим список объектов каталога из раздела с id = 31. В месте вызова макроса укажем:&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;document(&amp;#039;udata://catalog/getObjectsList/notemplate/31&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod 3 = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
В первом шаблоне мы выбираем первый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; (условие position() = 1), а также каждый следующий 4-й (position() mod 3 = 1). &lt;br /&gt;
&lt;br /&gt;
Второй шаблон выводит элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, внутри которого мы создаем элементы &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039;. В первом элементе &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; мы выводим значение текущего элемента &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; при помощи &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;. Для того, чтобы вывести следующие 2 соседних элемента, мы используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039; и указываем, что по этой оси сначала нужно взять 1-й элемент, потом 2-й.&lt;br /&gt;
&lt;br /&gt;
В итоге мы получим следующийх HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы захотим выводить исходные данные в 4 колонки, необходимо будет изменить условие [position() mod 3 = 1] в первом шаблоне на [position() mod 4 = 1] и придется добавить во второй шаблон еще одну строку:&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;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[3]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
Воспользуемся глобальным параметром, который будет регулировать число колонок. Этот параметр необходимо определять на одном уровне с элементами &amp;lt;xsl:template&amp;gt; непосредственно после тега элемента &amp;lt;xsl:output&amp;gt; (использование глобальных параметров в UMI.CMS позволяет принимать значения из GET-параметров в URL - см. [[Использование GET и POST параметров в XSLT-шаблонах]]).&lt;br /&gt;
&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;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;colnum&amp;quot; select=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
     ... разметка страницы и вызов макроса как и в первом примере ...&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- шаблоны, обрабатывающие ответ макроса и выводящие таблицу--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod $colnum = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;.|following-sibling::item[position() &amp;amp;lt; $colnum]&amp;quot; mode=&amp;quot;td&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item[position() = last()]&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position() mod $colnum&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;{$colnum - (position() mod $colnum)}&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и в первом примере, сначала мы выбрали 1-й элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; и каждый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039;, позиция которого при делении на $colnum дает остаток 1 (то есть каждый элемент, который должен попасть на новую строку таблицы).&lt;br /&gt;
&lt;br /&gt;
Второй шаблон создает элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, и выбирает текущий элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; а также необходимое количество его следующих соседей. Здесь мы опять используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Два последних шаблона обрабатывают случаи для всех элементов и для последнего элемента списка. Для последнего элемента необходимо предусмотреть случай, когда число элементов не кратно $colnum - в этом случае мы добавим элемент &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; с соответствующим значением colspan.&lt;br /&gt;
&lt;br /&gt;
Символьная ссылка &amp;amp;amp;#160; используется вместо сущности, обозначающей неразрывный пробел (см. также [[Определение сущностей в XSLT-шаблонах]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь, если мы запросим страницу с параметром: &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://адрес_сайта/?colnum=4&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;, то получим следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1771</id>
		<title>Таблицы в несколько колонок в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1771"/>
		<updated>2010-09-07T13:31:30Z</updated>

		<summary type="html">&lt;p&gt;Danil: /* Таблица с произвольным числом колонок */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
==Замечание==&lt;br /&gt;
&lt;br /&gt;
Если вы столкнулись с этим вопросом и пытаетесь вывести не табличные данные, то следует обратить внимание на использование &amp;quot;плавающих&amp;quot; элементов (например, элементы div с css-свойствами float и min-height). Если этот вариант все-таки не устраивает, тогда можно воспользоваться описанными ниже решениями.&lt;br /&gt;
&lt;br /&gt;
Это решение также демонстрирует использование [http://www.w3.org/TR/xpath/#axes осей XPath].&lt;br /&gt;
&lt;br /&gt;
==Исходные данные==&lt;br /&gt;
&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;udata module=&amp;quot;catalog&amp;quot; method=&amp;quot;getObjectsList&amp;quot; generation-time=&amp;quot;0.302167&amp;quot;&amp;gt;−&lt;br /&gt;
  &amp;lt;lines&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;42&amp;quot; alt_name=&amp;quot;sovet_tc1&amp;quot; link=&amp;quot;/shop/sovet_tc1/&amp;quot; xlink:href=&amp;quot;upage://42&amp;quot;&amp;gt;Sovet TC1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;47&amp;quot; alt_name=&amp;quot;elektronika_432&amp;quot; link=&amp;quot;/shop/elektronika_432/&amp;quot; xlink:href=&amp;quot;upage://47&amp;quot;&amp;gt;Elektronika 432&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;50&amp;quot; alt_name=&amp;quot;moskwich&amp;quot; link=&amp;quot;/shop/moskwich/&amp;quot; xlink:href=&amp;quot;upage://50&amp;quot;&amp;gt;Moskwich&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;33&amp;quot; alt_name=&amp;quot;televizor_horizont&amp;quot; link=&amp;quot;/shop/televizor_horizont/&amp;quot; xlink:href=&amp;quot;upage://33&amp;quot;&amp;gt;Телевизор «Horizont»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;48&amp;quot; alt_name=&amp;quot;oki_7&amp;quot; link=&amp;quot;/shop/oki_7/&amp;quot; xlink:href=&amp;quot;upage://48&amp;quot;&amp;gt;Oki 7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;43&amp;quot; alt_name=&amp;quot;sovet_tc2&amp;quot; link=&amp;quot;/shop/sovet_tc2/&amp;quot; xlink:href=&amp;quot;upage://43&amp;quot;&amp;gt;Sovet TC2&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;51&amp;quot; alt_name=&amp;quot;soviet_b1&amp;quot; link=&amp;quot;/shop/soviet_b1/&amp;quot; xlink:href=&amp;quot;upage://51&amp;quot;&amp;gt;Soviet B1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;37&amp;quot; alt_name=&amp;quot;televizor_horizont1&amp;quot; link=&amp;quot;/shop/televizor_horizont1/&amp;quot; xlink:href=&amp;quot;upage://37&amp;quot;&amp;gt;Телевизор «LG»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;45&amp;quot; alt_name=&amp;quot;sovet_tc3&amp;quot; link=&amp;quot;/shop/sovet_tc3/&amp;quot; xlink:href=&amp;quot;upage://45&amp;quot;&amp;gt;Sovet TC3&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;38&amp;quot; alt_name=&amp;quot;televizor_horizont2&amp;quot; link=&amp;quot;/shop/televizor_horizont2/&amp;quot; xlink:href=&amp;quot;upage://38&amp;quot;&amp;gt;Телевизор «Panasonic»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;52&amp;quot; alt_name=&amp;quot;soviet_ba&amp;quot; link=&amp;quot;/shop/soviet_ba/&amp;quot; xlink:href=&amp;quot;upage://52&amp;quot;&amp;gt;Soviet BA &amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;53&amp;quot; alt_name=&amp;quot;soviet_t7&amp;quot; link=&amp;quot;/shop/soviet_t7/&amp;quot; xlink:href=&amp;quot;upage://53&amp;quot;&amp;gt;Soviet T7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;39&amp;quot; alt_name=&amp;quot;televizor_horizont3&amp;quot; link=&amp;quot;/shop/televizor_horizont3/&amp;quot; xlink:href=&amp;quot;upage://39&amp;quot;&amp;gt;Телевизор «Philips»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;40&amp;quot; alt_name=&amp;quot;televizor_horizont4&amp;quot; link=&amp;quot;/shop/televizor_horizont4/&amp;quot; xlink:href=&amp;quot;upage://40&amp;quot;&amp;gt;Телевизор «Vityas»&amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;/lines&amp;gt;&lt;br /&gt;
  &amp;lt;total&amp;gt;14&amp;lt;/total&amp;gt;&lt;br /&gt;
  &amp;lt;per_page&amp;gt;25&amp;lt;/per_page&amp;gt;&lt;br /&gt;
  &amp;lt;category_id&amp;gt;31&amp;lt;/category_id&amp;gt;&lt;br /&gt;
  &amp;lt;type_id&amp;gt;9&amp;lt;/type_id&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Таблица в 3 колонки==&lt;br /&gt;
&lt;br /&gt;
Допустим, мы выводим список объектов каталога из раздела с id = 31. В месте вызова макроса укажем:&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;document(&amp;#039;udata://catalog/getObjectsList/notemplate/31&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod 3 = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
В первом шаблоне мы выбираем первый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; (условие position() = 1), а также каждый следующий 4-й (position() mod 3 = 1). &lt;br /&gt;
&lt;br /&gt;
Второй шаблон выводит элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, внутри которого мы создаем элементы &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039;. В первом элементе &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; мы выводим значение текущего элемента &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; при помощи &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;. Для того, чтобы вывести следующие 2 соседних элемента, мы используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039; и указываем, что по этой оси сначала нужно взять 1-й элемент, потом 2-й.&lt;br /&gt;
&lt;br /&gt;
В итоге мы получим следующийх HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы захотим выводить исходные данные в 4 колонки, необходимо будет изменить условие [position() mod 3 = 1] в первом шаблоне на [position() mod 4 = 1] и придется добавить во второй шаблон еще одну строку:&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;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[3]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
Воспользуемся глобальным параметром, который будет регулировать число колонок. Этот параметр необходимо определять на одном уровне с элементами &amp;lt;xsl:template&amp;gt; непосредственно после тега элемента &amp;lt;xsl:output&amp;gt; (использование глобальных параметров в UMI.CMS позволяет принимать значения из GET-параметров в URL - см. [[Использование GET и POST параметров в XSLT-шаблонах]]).&lt;br /&gt;
&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;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;colnum&amp;quot; select=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
     ... разметка страницы и вызов макроса как и в первом примере ...&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- шаблоны, обрабатывающие ответ макроса и выводящие таблицу--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod $colnum = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;.|following-sibling::item[position() &amp;amp;lt; $colnum]&amp;quot; mode=&amp;quot;td&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item[position() = last()]&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position() mod $colnum&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;{$colnum - (position() mod $colnum)}&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и в первом примере, сначала мы выбрали 1-й элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; и каждый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039;, позиция которого при делении на $colnum дает остаток 1 (то есть каждый элемент, который должен попасть на новую строку таблицы).&lt;br /&gt;
&lt;br /&gt;
Второй шаблон создает элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, и выбирает текущий элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; а также необходимое количество его следующих соседей. Здесь мы опять используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Два последних шаблона обрабатывают случаи для всех элементов и для последнего элемента списка. Для последнего элемента необходимо предусмотреть случай, когда число элементов не кратно $colnum - в этом случае мы добавим элемент &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; с соответствующим значением colspan.&lt;br /&gt;
&lt;br /&gt;
Символьная ссылка &amp;amp;amp;#160; используется вместо сущности, обозначающей неразрывный пробел (см. также [[Определение сущностей в XSLT-шаблонах]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь, если мы запросим страницу с параметром: &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://адрес_сайта/?colnum=4&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;, то получим следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1770</id>
		<title>Таблицы в несколько колонок в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1770"/>
		<updated>2010-09-07T13:30:23Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
==Замечание==&lt;br /&gt;
&lt;br /&gt;
Если вы столкнулись с этим вопросом и пытаетесь вывести не табличные данные, то следует обратить внимание на использование &amp;quot;плавающих&amp;quot; элементов (например, элементы div с css-свойствами float и min-height). Если этот вариант все-таки не устраивает, тогда можно воспользоваться описанными ниже решениями.&lt;br /&gt;
&lt;br /&gt;
Это решение также демонстрирует использование [http://www.w3.org/TR/xpath/#axes осей XPath].&lt;br /&gt;
&lt;br /&gt;
==Исходные данные==&lt;br /&gt;
&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;udata module=&amp;quot;catalog&amp;quot; method=&amp;quot;getObjectsList&amp;quot; generation-time=&amp;quot;0.302167&amp;quot;&amp;gt;−&lt;br /&gt;
  &amp;lt;lines&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;42&amp;quot; alt_name=&amp;quot;sovet_tc1&amp;quot; link=&amp;quot;/shop/sovet_tc1/&amp;quot; xlink:href=&amp;quot;upage://42&amp;quot;&amp;gt;Sovet TC1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;47&amp;quot; alt_name=&amp;quot;elektronika_432&amp;quot; link=&amp;quot;/shop/elektronika_432/&amp;quot; xlink:href=&amp;quot;upage://47&amp;quot;&amp;gt;Elektronika 432&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;50&amp;quot; alt_name=&amp;quot;moskwich&amp;quot; link=&amp;quot;/shop/moskwich/&amp;quot; xlink:href=&amp;quot;upage://50&amp;quot;&amp;gt;Moskwich&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;33&amp;quot; alt_name=&amp;quot;televizor_horizont&amp;quot; link=&amp;quot;/shop/televizor_horizont/&amp;quot; xlink:href=&amp;quot;upage://33&amp;quot;&amp;gt;Телевизор «Horizont»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;48&amp;quot; alt_name=&amp;quot;oki_7&amp;quot; link=&amp;quot;/shop/oki_7/&amp;quot; xlink:href=&amp;quot;upage://48&amp;quot;&amp;gt;Oki 7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;43&amp;quot; alt_name=&amp;quot;sovet_tc2&amp;quot; link=&amp;quot;/shop/sovet_tc2/&amp;quot; xlink:href=&amp;quot;upage://43&amp;quot;&amp;gt;Sovet TC2&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;51&amp;quot; alt_name=&amp;quot;soviet_b1&amp;quot; link=&amp;quot;/shop/soviet_b1/&amp;quot; xlink:href=&amp;quot;upage://51&amp;quot;&amp;gt;Soviet B1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;37&amp;quot; alt_name=&amp;quot;televizor_horizont1&amp;quot; link=&amp;quot;/shop/televizor_horizont1/&amp;quot; xlink:href=&amp;quot;upage://37&amp;quot;&amp;gt;Телевизор «LG»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;45&amp;quot; alt_name=&amp;quot;sovet_tc3&amp;quot; link=&amp;quot;/shop/sovet_tc3/&amp;quot; xlink:href=&amp;quot;upage://45&amp;quot;&amp;gt;Sovet TC3&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;38&amp;quot; alt_name=&amp;quot;televizor_horizont2&amp;quot; link=&amp;quot;/shop/televizor_horizont2/&amp;quot; xlink:href=&amp;quot;upage://38&amp;quot;&amp;gt;Телевизор «Panasonic»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;52&amp;quot; alt_name=&amp;quot;soviet_ba&amp;quot; link=&amp;quot;/shop/soviet_ba/&amp;quot; xlink:href=&amp;quot;upage://52&amp;quot;&amp;gt;Soviet BA &amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;53&amp;quot; alt_name=&amp;quot;soviet_t7&amp;quot; link=&amp;quot;/shop/soviet_t7/&amp;quot; xlink:href=&amp;quot;upage://53&amp;quot;&amp;gt;Soviet T7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;39&amp;quot; alt_name=&amp;quot;televizor_horizont3&amp;quot; link=&amp;quot;/shop/televizor_horizont3/&amp;quot; xlink:href=&amp;quot;upage://39&amp;quot;&amp;gt;Телевизор «Philips»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;40&amp;quot; alt_name=&amp;quot;televizor_horizont4&amp;quot; link=&amp;quot;/shop/televizor_horizont4/&amp;quot; xlink:href=&amp;quot;upage://40&amp;quot;&amp;gt;Телевизор «Vityas»&amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;/lines&amp;gt;&lt;br /&gt;
  &amp;lt;total&amp;gt;14&amp;lt;/total&amp;gt;&lt;br /&gt;
  &amp;lt;per_page&amp;gt;25&amp;lt;/per_page&amp;gt;&lt;br /&gt;
  &amp;lt;category_id&amp;gt;31&amp;lt;/category_id&amp;gt;&lt;br /&gt;
  &amp;lt;type_id&amp;gt;9&amp;lt;/type_id&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Таблица в 3 колонки==&lt;br /&gt;
&lt;br /&gt;
Допустим, мы выводим список объектов каталога из раздела с id = 31. В месте вызова макроса укажем:&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;document(&amp;#039;udata://catalog/getObjectsList/notemplate/31&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod 3 = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
В первом шаблоне мы выбираем первый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; (условие position() = 1), а также каждый следующий 4-й (position() mod 3 = 1). &lt;br /&gt;
&lt;br /&gt;
Второй шаблон выводит элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, внутри которого мы создаем элементы &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039;. В первом элементе &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; мы выводим значение текущего элемента &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; при помощи &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;. Для того, чтобы вывести следующие 2 соседних элемента, мы используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039; и указываем, что по этой оси сначала нужно взять 1-й элемент, потом 2-й.&lt;br /&gt;
&lt;br /&gt;
В итоге мы получим следующийх HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы захотим выводить исходные данные в 4 колонки, необходимо будет изменить условие [position() mod 3 = 1] в первом шаблоне на [position() mod 4 = 1] и придется добавить во второй шаблон еще одну строку:&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;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[3]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
Воспользуемся глобальным параметром, который будет регулировать число колонок. Этот параметр необходимо определять на одном уровне с элементами &amp;lt;xsl:template&amp;gt; непосредственно после тега элемента &amp;lt;xsl:output&amp;gt; (использование глобальных параметров в UMI.CMS позволяет принимать значения из GET-параметров в URL).&lt;br /&gt;
&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;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;colnum&amp;quot; select=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
     ... разметка страницы и вызов макроса как и в первом примере ...&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- шаблоны, обрабатывающие ответ макроса и выводящие таблицу--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod $colnum = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;.|following-sibling::item[position() &amp;amp;lt; $colnum]&amp;quot; mode=&amp;quot;td&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item[position() = last()]&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position() mod $colnum&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;{$colnum - (position() mod $colnum)}&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и в первом примере, сначала мы выбрали 1-й элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; и каждый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039;, позиция которого при делении на $colnum дает остаток 1 (то есть каждый элемент, который должен попасть на новую строку таблицы).&lt;br /&gt;
&lt;br /&gt;
Второй шаблон создает элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, и выбирает текущий элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; а также необходимое количество его следующих соседей. Здесь мы опять используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Два последних шаблона обрабатывают случаи для всех элементов и для последнего элемента списка. Для последнего элемента необходимо предусмотреть случай, когда число элементов не кратно $colnum - в этом случае мы добавим элемент &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; с соответствующим значением colspan.&lt;br /&gt;
&lt;br /&gt;
Символьная ссылка &amp;amp;amp;#160; используется вместо сущности, обозначающей неразрывный пробел (см. также [[Определение сущностей в XSLT-шаблонах]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь, если мы запросим страницу с параметром: &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://адрес_сайта/?colnum=4&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;, то получим следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</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_GET_%D0%B8_POST_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1769</id>
		<title>Использование GET и POST параметров в 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_GET_%D0%B8_POST_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1769"/>
		<updated>2010-09-07T13:20:24Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: « category:Верстка в XSLT В UMI.CMS предусмотрена возможность использования GET и POST параметров в XSLT…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования GET и POST параметров в XSLT-шаблонах. Для этого их необходимо инициализировать как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
В отличие от серверных переменных (см. [[Использование серверных переменных в XSLT-шаблонах]]) они инициализируются тем же именем, за исключением многомерных массивов, в которых символы &amp;quot;[&amp;quot; и &amp;quot;]&amp;quot; должны быть заменены на &amp;quot;.&amp;quot; (точка).&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; version=&amp;quot;4.01&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param1&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param2&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param3&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param1&amp;quot; select=&amp;quot;10&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param2&amp;quot; select=&amp;quot;11&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param3&amp;quot; select=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;data.new.price&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param1: &amp;lt;xsl:value-of select=&amp;quot;$get_param1&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param2: &amp;lt;xsl:value-of select=&amp;quot;$get_param2&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param3: &amp;lt;xsl:value-of select=&amp;quot;$get_param3&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param1: &amp;lt;xsl:value-of select=&amp;quot;$post_param1&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param2: &amp;lt;xsl:value-of select=&amp;quot;$post_param2&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param3: &amp;lt;xsl:value-of select=&amp;quot;$post_param3&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;$data.new.price: &amp;lt;xsl:value-of select=&amp;quot;$data.new.price&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;/about/&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param1&amp;quot; value=&amp;quot;21&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param2&amp;quot; value=&amp;quot;22&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param3&amp;quot; value=&amp;quot;23&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;send&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И назначить его для страниц сайта, то при запросе вида &amp;lt;nowiki&amp;gt;http://адрес_сайта/?get_param1=10&amp;amp;get_param2=11&amp;amp;get_param3=12&amp;amp;data[new][price]=1200&amp;lt;/nowiki&amp;gt; мы увидим следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $get_param1: 10&lt;br /&gt;
    * $get_param2: 11&lt;br /&gt;
    * $get_param3: 12&lt;br /&gt;
    * $post_param1: 10&lt;br /&gt;
    * $post_param2: 11&lt;br /&gt;
    * $post_param3: 12&lt;br /&gt;
    * $data.new.price: 1200&lt;br /&gt;
&lt;br /&gt;
   ... здесь будет форма ...  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в шаблон не было передано POST параметров, однако мы указали им значение по умолчанию, которое и вывелось в итоге.&lt;br /&gt;
&lt;br /&gt;
Если теперь отправить форму, то произойдет переход на страницу &amp;lt;nowiki&amp;gt;http://адрес_сайта/about/&amp;lt;/nowiki&amp;gt; (допустим она тоже выводится по этому же шаблону), и в браузере мы увидим уже следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $get_param1:&lt;br /&gt;
    * $get_param2:&lt;br /&gt;
    * $get_param3:&lt;br /&gt;
    * $post_param1: 21&lt;br /&gt;
    * $post_param2: 22&lt;br /&gt;
    * $post_param3: 23&lt;br /&gt;
    * $data.new.price:&lt;br /&gt;
&lt;br /&gt;
   ... здесь будет форма ...  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно видеть в этом случае POST параметры получили переданные из формы значения, и они выводятся вместо значений по умолчанию. Остальные параметры не были приняты, поэтому получили пустое значение (определенное по умолчанию).&lt;/div&gt;</summary>
		<author><name>Danil</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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1768</id>
		<title>Использование серверных переменных в 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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1768"/>
		<updated>2010-09-07T13:01:25Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования серверных переменных (массив $_SERVER) в XSLT-шаблонах. Для этого серверные переменные необходимо инициализировать как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Имя параметра должно начинаться с &amp;quot;_&amp;quot; (нижнее подчеркивание), например: &amp;#039;&amp;#039;&amp;#039;_http_user_agent&amp;#039;&amp;#039;&amp;#039;. После этого параметр можно использовать в шаблоне указав &amp;#039;&amp;#039;&amp;#039;$_http_user_agent&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_time&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_query_string&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_charset&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_encoding&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_language&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_referer&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_user_agent&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_addr&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_uri&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_time:         &amp;lt;xsl:value-of select=&amp;quot;$_request_time&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_query_string:         &amp;lt;xsl:value-of select=&amp;quot;$_query_string&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_accept&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_charset:  &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_charset&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_encoding: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_encoding&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_language: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_language&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_host:	    &amp;lt;xsl:value-of select=&amp;quot;$_http_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_referer: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_referer&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_user_agent: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_user_agent&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_addr: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_addr&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_host: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_uri: 	    &amp;lt;xsl:value-of select=&amp;quot;$_request_uri&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Firefox&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Firefox.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Chrome&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Chrome.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;MSIE &amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using MSIE.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Opera&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Opera.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Safari&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Safari.&amp;lt;/xsl:text&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;Browser was not identified.&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;/p&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То страница, выведенная по этому шаблону в браузере Firefox, будет выглядеть примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $_request_time: 1283867773&lt;br /&gt;
    * $_query_string: path=about/&lt;br /&gt;
    * $_http_accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;
    * $_http_accept_charset: windows-1251,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
    * $_http_accept_encoding: gzip,deflate&lt;br /&gt;
    * $_http_accept_language: ru,en-us;q=0.7,en;q=0.3&lt;br /&gt;
    * $_http_host: localhost&lt;br /&gt;
    * $_http_referer:&lt;br /&gt;
    * $_http_user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8&lt;br /&gt;
    * $_remote_addr: 127.0.0.1&lt;br /&gt;
    * $_remote_host:&lt;br /&gt;
    * $_request_uri: /about/&lt;br /&gt;
&lt;br /&gt;
You are using Firefox.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1767</id>
		<title>Вставка кода GoogleAnalytics в XSLT-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1767"/>
		<updated>2010-09-07T12:03:03Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа:&lt;br /&gt;
* использовать макрос [http://help-dev.umi-cms.ru/system.googleAnalyticsCode.html %system googleAnalyticsCode()%]&lt;br /&gt;
* вставить код непосредственно в шаблон, используя запись [http://ru.wikipedia.org/wiki/CDATA &amp;lt;nowiki&amp;gt;&amp;lt;![CDATA[ ... ]]&amp;gt;&amp;lt;/nowiki&amp;gt;]. Этим же способом можно вставить код любого другого счетчика в шаблоны сайта.&lt;br /&gt;
&lt;br /&gt;
== Использование макроса ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией &amp;lt;xsl:value-of&amp;gt; и функцией document():&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://system/googleAnalyticsCode/&amp;#039;)/udata&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;body&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преимуществом этого способа является то, что сам идентификатор GoogleAnalytics можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле &amp;quot;Конфигурация&amp;quot; во вкладке &amp;quot;Домены&amp;quot; в свойствах каждого домена. &lt;br /&gt;
&lt;br /&gt;
== Код в шаблонах ==&lt;br /&gt;
Возьмём к примеру демо-сайт с интернет-магазином бытовой техники.&lt;br /&gt;
&lt;br /&gt;
В файле ~/xsltTpls/layouts/default.xsl, после строчки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot; mode=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
содержится сам код страницы.&lt;br /&gt;
Непосредственно внутри тегов &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; мы можем добавить код анализатора GoogleAnalytics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. устаревший вариант GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);&lt;br /&gt;
	 document.write(unescape(&amp;quot;%3Cscript src=&amp;#039;&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js&amp;#039; &lt;br /&gt;
         type=&amp;#039;text/javascript&amp;#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 try {&lt;br /&gt;
	 var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&lt;br /&gt;
	 pageTracker._trackPageview();&lt;br /&gt;
	 } catch(err) {}&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. асинхронный код GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var _gaq = _gaq || [];&lt;br /&gt;
    	 _gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&lt;br /&gt;
       	 _gaq.push([&amp;#039;_trackPageview&amp;#039;]);&lt;br /&gt;
    	 (function() {&lt;br /&gt;
	 var ga = document.createElement(&amp;#039;script&amp;#039;); ga.type = &amp;#039;text/javascript&amp;#039;; ga.async = true;&lt;br /&gt;
	 ga.src = (&amp;#039;https:&amp;#039; == document.location.protocol ? &amp;#039;https://ssl&amp;#039; : &amp;#039;http://www&amp;#039;) + &amp;#039;.google-analytics.com/ga.js&amp;#039;;&lt;br /&gt;
	 var s = document.getElementsByTagName(&amp;#039;script&amp;#039;)[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
       	 })();&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;_gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1765</id>
		<title>Вставка кода GoogleAnalytics в XSLT-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1765"/>
		<updated>2010-09-07T11:57:44Z</updated>

		<summary type="html">&lt;p&gt;Danil: переименовал «GoogleAnalytics в XSLT-шаблонах» в «Вставка кода GoogleAnalytics в XSLT-шаблоны»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа:&lt;br /&gt;
* использовать макрос [http://help-dev.umi-cms.ru/system.googleAnalyticsCode.html %system googleAnalyticsCode()%]&lt;br /&gt;
* вставить код непосредственно в шаблон, используя запись [http://ru.wikipedia.org/wiki/CDATA &amp;lt;nowiki&amp;gt;&amp;lt;![CDATA[ ... ]]&amp;gt;&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Использование макроса ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией &amp;lt;xsl:value-of&amp;gt; и функцией document():&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://system/googleAnalyticsCode/&amp;#039;)/udata&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;body&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преимуществом этого способа является то, что сам идентификатор GoogleAnalytics можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле &amp;quot;Конфигурация&amp;quot; во вкладке &amp;quot;Домены&amp;quot; в свойствах каждого домена. &lt;br /&gt;
&lt;br /&gt;
== Код в шаблонах ==&lt;br /&gt;
Возьмём к примеру демо-сайт с интернет-магазином бытовой техники.&lt;br /&gt;
&lt;br /&gt;
В файле ~/xsltTpls/layouts/default.xsl, после строчки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot; mode=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
содержится сам код страницы.&lt;br /&gt;
Непосредственно внутри тегов &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; мы можем добавить код анализатора GoogleAnalytics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. устаревший вариант GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);&lt;br /&gt;
	 document.write(unescape(&amp;quot;%3Cscript src=&amp;#039;&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js&amp;#039; &lt;br /&gt;
         type=&amp;#039;text/javascript&amp;#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 try {&lt;br /&gt;
	 var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&lt;br /&gt;
	 pageTracker._trackPageview();&lt;br /&gt;
	 } catch(err) {}&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. асинхронный код GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var _gaq = _gaq || [];&lt;br /&gt;
    	 _gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&lt;br /&gt;
       	 _gaq.push([&amp;#039;_trackPageview&amp;#039;]);&lt;br /&gt;
    	 (function() {&lt;br /&gt;
	 var ga = document.createElement(&amp;#039;script&amp;#039;); ga.type = &amp;#039;text/javascript&amp;#039;; ga.async = true;&lt;br /&gt;
	 ga.src = (&amp;#039;https:&amp;#039; == document.location.protocol ? &amp;#039;https://ssl&amp;#039; : &amp;#039;http://www&amp;#039;) + &amp;#039;.google-analytics.com/ga.js&amp;#039;;&lt;br /&gt;
	 var s = document.getElementsByTagName(&amp;#039;script&amp;#039;)[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
       	 })();&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;_gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1766</id>
		<title>GoogleAnalytics в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1766"/>
		<updated>2010-09-07T11:57:44Z</updated>

		<summary type="html">&lt;p&gt;Danil: переименовал «GoogleAnalytics в XSLT-шаблонах» в «Вставка кода GoogleAnalytics в XSLT-шаблоны»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Вставка кода GoogleAnalytics в XSLT-шаблоны]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1764</id>
		<title>Вставка кода GoogleAnalytics в XSLT-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1764"/>
		<updated>2010-09-07T11:57:13Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа:&lt;br /&gt;
* использовать макрос [http://help-dev.umi-cms.ru/system.googleAnalyticsCode.html %system googleAnalyticsCode()%]&lt;br /&gt;
* вставить код непосредственно в шаблон, используя запись [http://ru.wikipedia.org/wiki/CDATA &amp;lt;nowiki&amp;gt;&amp;lt;![CDATA[ ... ]]&amp;gt;&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Использование макроса ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией &amp;lt;xsl:value-of&amp;gt; и функцией document():&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://system/googleAnalyticsCode/&amp;#039;)/udata&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;body&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преимуществом этого способа является то, что сам идентификатор GoogleAnalytics можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле &amp;quot;Конфигурация&amp;quot; во вкладке &amp;quot;Домены&amp;quot; в свойствах каждого домена. &lt;br /&gt;
&lt;br /&gt;
== Код в шаблонах ==&lt;br /&gt;
Возьмём к примеру демо-сайт с интернет-магазином бытовой техники.&lt;br /&gt;
&lt;br /&gt;
В файле ~/xsltTpls/layouts/default.xsl, после строчки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot; mode=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
содержится сам код страницы.&lt;br /&gt;
Непосредственно внутри тегов &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; мы можем добавить код анализатора GoogleAnalytics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. устаревший вариант GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);&lt;br /&gt;
	 document.write(unescape(&amp;quot;%3Cscript src=&amp;#039;&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js&amp;#039; &lt;br /&gt;
         type=&amp;#039;text/javascript&amp;#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 try {&lt;br /&gt;
	 var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&lt;br /&gt;
	 pageTracker._trackPageview();&lt;br /&gt;
	 } catch(err) {}&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. асинхронный код GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var _gaq = _gaq || [];&lt;br /&gt;
    	 _gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&lt;br /&gt;
       	 _gaq.push([&amp;#039;_trackPageview&amp;#039;]);&lt;br /&gt;
    	 (function() {&lt;br /&gt;
	 var ga = document.createElement(&amp;#039;script&amp;#039;); ga.type = &amp;#039;text/javascript&amp;#039;; ga.async = true;&lt;br /&gt;
	 ga.src = (&amp;#039;https:&amp;#039; == document.location.protocol ? &amp;#039;https://ssl&amp;#039; : &amp;#039;http://www&amp;#039;) + &amp;#039;.google-analytics.com/ga.js&amp;#039;;&lt;br /&gt;
	 var s = document.getElementsByTagName(&amp;#039;script&amp;#039;)[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
       	 })();&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;_gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1763</id>
		<title>Вставка кода GoogleAnalytics в XSLT-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1763"/>
		<updated>2010-09-07T11:56:18Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если стоит задача добавить код GoogleAnalytics в XSTL-шаблон, то можно использовать 2 способа:&lt;br /&gt;
* использовать макрос [http://help-dev.umi-cms.ru/system.googleAnalyticsCode.html %system googleAnalyticsCode()%]&lt;br /&gt;
* вставить код непосредственно в шаблон, используя запись [http://ru.wikipedia.org/wiki/CDATA &amp;lt;nowiki&amp;gt;&amp;lt;![CDATA[ ... ]]&amp;gt;&amp;lt;/nowiki&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Использование макроса ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вставить код при помощи макроса, следует воспользоваться инструкцией &amp;lt;xsl:value-of&amp;gt; и функцией document():&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://system/googleAnalyticsCode/&amp;#039;)/udata&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;body&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        ...&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преимуществом этого способа является то, что сам идентификатор можно будет всегда поменять из административной панели, не редактируя код шаблонов в дальнейшем. Эта настройка находится в модуле &amp;quot;Конфигурация&amp;quot; во вкладке &amp;quot;Домены&amp;quot; в свойствах каждого домена. &lt;br /&gt;
&lt;br /&gt;
== Код в шаблонах ==&lt;br /&gt;
Возьмём к примеру демо-сайт с интернет-магазином бытовой техники.&lt;br /&gt;
&lt;br /&gt;
В файле ~/xsltTpls/layouts/default.xsl, после строчки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot; mode=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
содержится сам код страницы.&lt;br /&gt;
Непосредственно внутри тегов &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; мы можем добавить код анализатора GoogleAnalytics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. устаревший вариант GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);&lt;br /&gt;
	 document.write(unescape(&amp;quot;%3Cscript src=&amp;#039;&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js&amp;#039; &lt;br /&gt;
         type=&amp;#039;text/javascript&amp;#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 try {&lt;br /&gt;
	 var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&lt;br /&gt;
	 pageTracker._trackPageview();&lt;br /&gt;
	 } catch(err) {}&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. асинхронный код GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var _gaq = _gaq || [];&lt;br /&gt;
    	 _gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&lt;br /&gt;
       	 _gaq.push([&amp;#039;_trackPageview&amp;#039;]);&lt;br /&gt;
    	 (function() {&lt;br /&gt;
	 var ga = document.createElement(&amp;#039;script&amp;#039;); ga.type = &amp;#039;text/javascript&amp;#039;; ga.async = true;&lt;br /&gt;
	 ga.src = (&amp;#039;https:&amp;#039; == document.location.protocol ? &amp;#039;https://ssl&amp;#039; : &amp;#039;http://www&amp;#039;) + &amp;#039;.google-analytics.com/ga.js&amp;#039;;&lt;br /&gt;
	 var s = document.getElementsByTagName(&amp;#039;script&amp;#039;)[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
       	 })();&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;_gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Danil</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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1762</id>
		<title>Использование серверных переменных в 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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1762"/>
		<updated>2010-09-07T11:29:19Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования серверных переменных (массив $_SERVER) в XSLT-шаблонах. Все серверные переменные инициализируются как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Имя параметра должно начинаться с &amp;quot;_&amp;quot; (нижнее подчеркивание), например: &amp;#039;&amp;#039;&amp;#039;_http_user_agent&amp;#039;&amp;#039;&amp;#039;. После этого параметр можно использовать в шаблоне указав &amp;#039;&amp;#039;&amp;#039;$_http_user_agent&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_time&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_query_string&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_charset&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_encoding&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_language&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_referer&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_user_agent&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_addr&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_uri&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_time:         &amp;lt;xsl:value-of select=&amp;quot;$_request_time&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_query_string:         &amp;lt;xsl:value-of select=&amp;quot;$_query_string&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_accept&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_charset:  &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_charset&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_encoding: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_encoding&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_language: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_language&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_host:	    &amp;lt;xsl:value-of select=&amp;quot;$_http_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_referer: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_referer&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_user_agent: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_user_agent&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_addr: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_addr&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_host: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_uri: 	    &amp;lt;xsl:value-of select=&amp;quot;$_request_uri&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Firefox&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Firefox.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Chrome&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Chrome.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;MSIE &amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using MSIE.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Opera&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Opera.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Safari&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Safari.&amp;lt;/xsl:text&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;Browser was not identified.&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;/p&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То страница, выведенная по этому шаблону в браузере Firefox, будет выглядеть примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $_request_time: 1283867773&lt;br /&gt;
    * $_query_string: path=about/&lt;br /&gt;
    * $_http_accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;
    * $_http_accept_charset: windows-1251,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
    * $_http_accept_encoding: gzip,deflate&lt;br /&gt;
    * $_http_accept_language: ru,en-us;q=0.7,en;q=0.3&lt;br /&gt;
    * $_http_host: localhost&lt;br /&gt;
    * $_http_referer:&lt;br /&gt;
    * $_http_user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8&lt;br /&gt;
    * $_remote_addr: 127.0.0.1&lt;br /&gt;
    * $_remote_host:&lt;br /&gt;
    * $_request_uri: /about/&lt;br /&gt;
&lt;br /&gt;
You are using Firefox.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1761</id>
		<title>Использование серверных переменных в 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_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1761"/>
		<updated>2010-09-07T11:27:52Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: « category:Верстка в XSLT В UMI.CMS предусмотрена возможность использования серверных переменных …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования серверных переменных (массив $_SERVER) в XSLT-шаблонах. Все серверные переменные инициализируются как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Имя параметра должно начинаться с &amp;quot;_&amp;quot; (нижнее подчеркивание), например: &amp;#039;&amp;#039;&amp;#039;_http_user_agent&amp;#039;&amp;#039;&amp;#039;. После этого параметр можно использовать в шаблоне указав &amp;#039;&amp;#039;&amp;#039;$_http_user_agent&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_time&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_query_string&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_charset&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_encoding&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_accept_language&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_referer&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_http_user_agent&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_addr&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_remote_host&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;_request_uri&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_time:         &amp;lt;xsl:value-of select=&amp;quot;$_request_time&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_query_string:         &amp;lt;xsl:value-of select=&amp;quot;$_query_string&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_accept&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_charset:  &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_charset&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_encoding: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_encoding&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_accept_language: &amp;lt;xsl:value-of select=&amp;quot;$_http_accept_language&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_host:	    &amp;lt;xsl:value-of select=&amp;quot;$_http_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_referer: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_referer&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_http_user_agent: 	    &amp;lt;xsl:value-of select=&amp;quot;$_http_user_agent&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_addr: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_addr&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_remote_host: 	    &amp;lt;xsl:value-of select=&amp;quot;$_remote_host&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$_request_uri: 	    &amp;lt;xsl:value-of select=&amp;quot;$_request_uri&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Firefox&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Firefox.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Chrome&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Chrome.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;MSIE &amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using MSIE.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Opera&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Opera.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:when test=&amp;quot;contains($_http_user_agent, &amp;#039;Safari&amp;#039;)&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;You are using Safari.&amp;lt;/xsl:text&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;Browser was not identified.&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;/p&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Страница, выведенная по этому шаблону в браузере Firefox, будет выглядеть примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $_request_time: 1283867773&lt;br /&gt;
    * $_query_string: path=about/&lt;br /&gt;
    * $_http_accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;
    * $_http_accept_charset: windows-1251,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
    * $_http_accept_encoding: gzip,deflate&lt;br /&gt;
    * $_http_accept_language: ru,en-us;q=0.7,en;q=0.3&lt;br /&gt;
    * $_http_host: localhost&lt;br /&gt;
    * $_http_referer:&lt;br /&gt;
    * $_http_user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8&lt;br /&gt;
    * $_remote_addr: 127.0.0.1&lt;br /&gt;
    * $_remote_host:&lt;br /&gt;
    * $_request_uri: /about/&lt;br /&gt;
&lt;br /&gt;
You are using Firefox.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1749</id>
		<title>Таблицы в несколько колонок в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1749"/>
		<updated>2010-09-02T15:35:04Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
==Замечание==&lt;br /&gt;
&lt;br /&gt;
Если вы столкнулись с этим вопросом и пытаетесь вывести не табличные данные, то следует обратить внимание на использование &amp;quot;плавающих&amp;quot; элементов (например, элементы div с css-свойствами float и min-height). Если этот вариант все-таки не устраивает, тогда можно воспользоваться описанными ниже решениями.&lt;br /&gt;
&lt;br /&gt;
Это решение также демонстрирует использование [http://www.w3.org/TR/xpath/#axes осей XPath].&lt;br /&gt;
&lt;br /&gt;
==Исходные данные==&lt;br /&gt;
&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;udata module=&amp;quot;catalog&amp;quot; method=&amp;quot;getObjectsList&amp;quot; generation-time=&amp;quot;0.302167&amp;quot;&amp;gt;−&lt;br /&gt;
  &amp;lt;lines&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;42&amp;quot; alt_name=&amp;quot;sovet_tc1&amp;quot; link=&amp;quot;/shop/sovet_tc1/&amp;quot; xlink:href=&amp;quot;upage://42&amp;quot;&amp;gt;Sovet TC1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;47&amp;quot; alt_name=&amp;quot;elektronika_432&amp;quot; link=&amp;quot;/shop/elektronika_432/&amp;quot; xlink:href=&amp;quot;upage://47&amp;quot;&amp;gt;Elektronika 432&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;50&amp;quot; alt_name=&amp;quot;moskwich&amp;quot; link=&amp;quot;/shop/moskwich/&amp;quot; xlink:href=&amp;quot;upage://50&amp;quot;&amp;gt;Moskwich&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;33&amp;quot; alt_name=&amp;quot;televizor_horizont&amp;quot; link=&amp;quot;/shop/televizor_horizont/&amp;quot; xlink:href=&amp;quot;upage://33&amp;quot;&amp;gt;Телевизор «Horizont»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;48&amp;quot; alt_name=&amp;quot;oki_7&amp;quot; link=&amp;quot;/shop/oki_7/&amp;quot; xlink:href=&amp;quot;upage://48&amp;quot;&amp;gt;Oki 7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;43&amp;quot; alt_name=&amp;quot;sovet_tc2&amp;quot; link=&amp;quot;/shop/sovet_tc2/&amp;quot; xlink:href=&amp;quot;upage://43&amp;quot;&amp;gt;Sovet TC2&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;51&amp;quot; alt_name=&amp;quot;soviet_b1&amp;quot; link=&amp;quot;/shop/soviet_b1/&amp;quot; xlink:href=&amp;quot;upage://51&amp;quot;&amp;gt;Soviet B1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;37&amp;quot; alt_name=&amp;quot;televizor_horizont1&amp;quot; link=&amp;quot;/shop/televizor_horizont1/&amp;quot; xlink:href=&amp;quot;upage://37&amp;quot;&amp;gt;Телевизор «LG»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;45&amp;quot; alt_name=&amp;quot;sovet_tc3&amp;quot; link=&amp;quot;/shop/sovet_tc3/&amp;quot; xlink:href=&amp;quot;upage://45&amp;quot;&amp;gt;Sovet TC3&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;38&amp;quot; alt_name=&amp;quot;televizor_horizont2&amp;quot; link=&amp;quot;/shop/televizor_horizont2/&amp;quot; xlink:href=&amp;quot;upage://38&amp;quot;&amp;gt;Телевизор «Panasonic»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;52&amp;quot; alt_name=&amp;quot;soviet_ba&amp;quot; link=&amp;quot;/shop/soviet_ba/&amp;quot; xlink:href=&amp;quot;upage://52&amp;quot;&amp;gt;Soviet BA &amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;53&amp;quot; alt_name=&amp;quot;soviet_t7&amp;quot; link=&amp;quot;/shop/soviet_t7/&amp;quot; xlink:href=&amp;quot;upage://53&amp;quot;&amp;gt;Soviet T7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;39&amp;quot; alt_name=&amp;quot;televizor_horizont3&amp;quot; link=&amp;quot;/shop/televizor_horizont3/&amp;quot; xlink:href=&amp;quot;upage://39&amp;quot;&amp;gt;Телевизор «Philips»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;40&amp;quot; alt_name=&amp;quot;televizor_horizont4&amp;quot; link=&amp;quot;/shop/televizor_horizont4/&amp;quot; xlink:href=&amp;quot;upage://40&amp;quot;&amp;gt;Телевизор «Vityas»&amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;/lines&amp;gt;&lt;br /&gt;
  &amp;lt;total&amp;gt;14&amp;lt;/total&amp;gt;&lt;br /&gt;
  &amp;lt;per_page&amp;gt;25&amp;lt;/per_page&amp;gt;&lt;br /&gt;
  &amp;lt;category_id&amp;gt;31&amp;lt;/category_id&amp;gt;&lt;br /&gt;
  &amp;lt;type_id&amp;gt;9&amp;lt;/type_id&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Таблица в 3 колонки==&lt;br /&gt;
&lt;br /&gt;
Допустим, мы выводим список объектов каталога из раздела с id = 31. В месте вызова макроса укажем:&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;document(&amp;#039;udata://catalog/getObjectsList/notemplate/31&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod 3 = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
В первом шаблоне мы выбираем первый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; (условие position() = 1), а также каждый следующий 4-й (position() mod 3 = 1). &lt;br /&gt;
&lt;br /&gt;
Второй шаблон выводит элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, внутри которого мы создаем элементы &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039;. В первом элементе &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; мы выводим значение текущего элемента &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; при помощи &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;. Для того, чтобы вывести следующие 2 соседних элемента, мы используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039; и указываем, что по этой оси сначала нужно взять 1-й элемент, потом 2-й.&lt;br /&gt;
&lt;br /&gt;
В итоге мы получим следующийх HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы захотим выводить исходные данные в 4 колонки, необходимо будет изменить условие [position() mod 3 = 1] в первом шаблоне на [position() mod 4 = 1] и придется добавить во второй шаблон еще одну строку:&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;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[3]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
Воспользуемся глобальным параметром, который будет регулировать число столбцов. Этот параметр необходимо определять на одном уровне с элементами &amp;lt;xsl:template&amp;gt; непосредственно после тега элемента &amp;lt;xsl:output&amp;gt; (использование глобальных параметров в UMI.CMS позволяет принимать значения из GET-параметров в URL).&lt;br /&gt;
&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;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;colnum&amp;quot; select=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
     ... разметка страницы и вызов макроса как и в первом примере ...&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- шаблоны, обрабатывающие ответ макроса и выводящие таблицу--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod $colnum = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;.|following-sibling::item[position() &amp;amp;lt; $colnum]&amp;quot; mode=&amp;quot;td&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item[position() = last()]&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position() mod $colnum&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;{$colnum - (position() mod $colnum)}&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и в первом примере, сначала мы выбрали 1-й элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; и каждый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039;, позиция которого при делении на $colnum дает остаток 1 (то есть каждый элемент, который должен попасть на новую строку таблицы).&lt;br /&gt;
&lt;br /&gt;
Второй шаблон создает элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, и выбирает текущий элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; а также необходимое количество его следующих соседей. Здесь мы опять используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Два последних шаблона обрабатывают случаи для всех элементов и для последнего элемента списка. Для последнего элемента необходимо предусмотреть случай, когда число элементов не кратно $colnum - в этом случае мы добавим элемент &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; с соответствующим значением colspan.&lt;br /&gt;
&lt;br /&gt;
Символьная ссылка &amp;amp;amp;#160; используется вместо сущности, обозначающей неразрывный пробел (см. также [[Определение сущностей в XSLT-шаблонах]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь, если мы запросим страницу с параметром: &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://адрес_сайта/?colnum=4&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;, то получим следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1748</id>
		<title>Таблицы в несколько колонок в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%B2_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1748"/>
		<updated>2010-09-02T15:31:03Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: « category:Верстка в XSLT  ==Замечание==  Если вы столкнулись с этим вопросом и пытаетесь вывести …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
==Замечание==&lt;br /&gt;
&lt;br /&gt;
Если вы столкнулись с этим вопросом и пытаетесь вывести не табличные данные, то следует обратить внимание на использование &amp;quot;плавающих&amp;quot; элементов (например, элементы div с css-свойствами float и min-height). Если этот вариант все-таки не устраивает, тогда можно воспользоваться описанными ниже решениями.&lt;br /&gt;
&lt;br /&gt;
Это решение также демонстрирует использование [http://www.w3.org/TR/xpath/#axes осей XPath].&lt;br /&gt;
&lt;br /&gt;
==Исходные данные==&lt;br /&gt;
&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;udata module=&amp;quot;catalog&amp;quot; method=&amp;quot;getObjectsList&amp;quot; generation-time=&amp;quot;0.302167&amp;quot;&amp;gt;−&lt;br /&gt;
  &amp;lt;lines&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;42&amp;quot; alt_name=&amp;quot;sovet_tc1&amp;quot; link=&amp;quot;/shop/sovet_tc1/&amp;quot; xlink:href=&amp;quot;upage://42&amp;quot;&amp;gt;Sovet TC1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;47&amp;quot; alt_name=&amp;quot;elektronika_432&amp;quot; link=&amp;quot;/shop/elektronika_432/&amp;quot; xlink:href=&amp;quot;upage://47&amp;quot;&amp;gt;Elektronika 432&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;50&amp;quot; alt_name=&amp;quot;moskwich&amp;quot; link=&amp;quot;/shop/moskwich/&amp;quot; xlink:href=&amp;quot;upage://50&amp;quot;&amp;gt;Moskwich&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;33&amp;quot; alt_name=&amp;quot;televizor_horizont&amp;quot; link=&amp;quot;/shop/televizor_horizont/&amp;quot; xlink:href=&amp;quot;upage://33&amp;quot;&amp;gt;Телевизор «Horizont»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;48&amp;quot; alt_name=&amp;quot;oki_7&amp;quot; link=&amp;quot;/shop/oki_7/&amp;quot; xlink:href=&amp;quot;upage://48&amp;quot;&amp;gt;Oki 7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;43&amp;quot; alt_name=&amp;quot;sovet_tc2&amp;quot; link=&amp;quot;/shop/sovet_tc2/&amp;quot; xlink:href=&amp;quot;upage://43&amp;quot;&amp;gt;Sovet TC2&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;51&amp;quot; alt_name=&amp;quot;soviet_b1&amp;quot; link=&amp;quot;/shop/soviet_b1/&amp;quot; xlink:href=&amp;quot;upage://51&amp;quot;&amp;gt;Soviet B1&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;37&amp;quot; alt_name=&amp;quot;televizor_horizont1&amp;quot; link=&amp;quot;/shop/televizor_horizont1/&amp;quot; xlink:href=&amp;quot;upage://37&amp;quot;&amp;gt;Телевизор «LG»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;45&amp;quot; alt_name=&amp;quot;sovet_tc3&amp;quot; link=&amp;quot;/shop/sovet_tc3/&amp;quot; xlink:href=&amp;quot;upage://45&amp;quot;&amp;gt;Sovet TC3&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;38&amp;quot; alt_name=&amp;quot;televizor_horizont2&amp;quot; link=&amp;quot;/shop/televizor_horizont2/&amp;quot; xlink:href=&amp;quot;upage://38&amp;quot;&amp;gt;Телевизор «Panasonic»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;52&amp;quot; alt_name=&amp;quot;soviet_ba&amp;quot; link=&amp;quot;/shop/soviet_ba/&amp;quot; xlink:href=&amp;quot;upage://52&amp;quot;&amp;gt;Soviet BA &amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;53&amp;quot; alt_name=&amp;quot;soviet_t7&amp;quot; link=&amp;quot;/shop/soviet_t7/&amp;quot; xlink:href=&amp;quot;upage://53&amp;quot;&amp;gt;Soviet T7&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;39&amp;quot; alt_name=&amp;quot;televizor_horizont3&amp;quot; link=&amp;quot;/shop/televizor_horizont3/&amp;quot; xlink:href=&amp;quot;upage://39&amp;quot;&amp;gt;Телевизор «Philips»&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;item id=&amp;quot;40&amp;quot; alt_name=&amp;quot;televizor_horizont4&amp;quot; link=&amp;quot;/shop/televizor_horizont4/&amp;quot; xlink:href=&amp;quot;upage://40&amp;quot;&amp;gt;Телевизор «Vityas»&amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;/lines&amp;gt;&lt;br /&gt;
  &amp;lt;total&amp;gt;14&amp;lt;/total&amp;gt;&lt;br /&gt;
  &amp;lt;per_page&amp;gt;25&amp;lt;/per_page&amp;gt;&lt;br /&gt;
  &amp;lt;category_id&amp;gt;31&amp;lt;/category_id&amp;gt;&lt;br /&gt;
  &amp;lt;type_id&amp;gt;9&amp;lt;/type_id&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Таблица в 3 колонки==&lt;br /&gt;
&lt;br /&gt;
Допустим, мы выводим список объектов каталога из раздела с id = 31. В месте вызова макроса укажем:&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;document(&amp;#039;udata://catalog/getObjectsList/notemplate/31&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod 3 = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
В первом шаблоне мы выбираем первый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; (условие position() = 1), а также каждый следующий 4-й (position() mod 3 = 1). &lt;br /&gt;
&lt;br /&gt;
Второй шаблон выводит элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, внутри которого мы создаем элементы &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039;. В первом элементе &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; мы выводим значение текущего элемента &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; при помощи &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;. Для того, чтобы вывести следующие 2 соседних элемента, мы используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039; и указываем, что по этой оси сначала нужно взять 1-й элемент, потом 2-й.&lt;br /&gt;
&lt;br /&gt;
В итоге мы получим следующийх HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если мы захотим выводить исходные данные в 4 колонки, необходимо будет изменить условие [position() mod 3 = 1] в первом шаблоне на [position() mod 4 = 1] и придется добавить во второй шаблон еще одну строку:&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;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[1]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[2]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;following-sibling::item[3]&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&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;
Воспользуемся глобальным параметром, который будет регулировать число столбцов. Этот параметр необходимо определять на одном уровне с элементами &amp;lt;xsl:template&amp;gt; непосредственно после тега элемента &amp;lt;xsl:output&amp;gt; (использование глобальных параметров в UMI.CMS позволяет принимать значения из GET-параметров в URL).&lt;br /&gt;
&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;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;colnum&amp;quot; select=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
     ... разметка страницы и вызов макроса как и в первом примере ...&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- шаблоны, обрабатывающие ответ макроса и выводящие таблицу--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;catalog&amp;#039;][@method = &amp;#039;getObjectsList&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
        	&amp;lt;xsl:apply-templates select=&amp;quot;lines/item[position() = 1]|lines/item[position() mod $colnum = 1]&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;.|following-sibling::item[position() &amp;amp;lt; $colnum]&amp;quot; mode=&amp;quot;td&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;item[position() = last()]&amp;quot; mode=&amp;quot;td&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:if test=&amp;quot;position() mod $colnum&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;{$colnum - (position() mod $colnum)}&amp;quot;&amp;gt;&amp;amp;#160;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как и в первом примере, сначала мы выбрали 1-й элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; и каждый элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039;, позиция которого при делении на $colnum дает остаток 1 (то есть каждый элемент, который должен попасть на новую строку таблицы).&lt;br /&gt;
&lt;br /&gt;
Второй шаблон создает элемент &amp;#039;&amp;#039;&amp;#039;tr&amp;#039;&amp;#039;&amp;#039;, и выбирает текущий элемент &amp;#039;&amp;#039;&amp;#039;item&amp;#039;&amp;#039;&amp;#039; а также необходимое количество его следующих соседей. Здесь мы опять используем ось &amp;#039;&amp;#039;&amp;#039;following-sibling&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Два последних шаблона обрабатывают случаи для всех элементов и для последнего элемента списка. С последним элементом предполагаются некоторые трудности: необходимо предусмотреть случай, когда число элементов не кратно $colnum - в этом случае мы добавим элемент &amp;#039;&amp;#039;&amp;#039;td&amp;#039;&amp;#039;&amp;#039; с соответствующим значением colspan.&lt;br /&gt;
&lt;br /&gt;
Символьная ссылка &amp;amp;amp;#160; используется вместо сущности, обозначающей неразрывный пробел (см. также [[Определение сущностей в XSLT-шаблонах]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь, если мы запросим страницу с параметром: &amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://адрес_сайта/?colnum=4&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;#039;, то получим следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Elektronika 432&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Moskwich&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Horizont»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Oki 7&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet B1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «LG»&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Sovet TC3&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Panasonic»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet BA&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Soviet T7&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Philips»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Телевизор «Vityas»&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1746</id>
		<title>Определение сущностей в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1746"/>
		<updated>2010-09-02T13:37:55Z</updated>

		<summary type="html">&lt;p&gt;Danil: /* Определение сущностей в отдельном файле: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
Как известно, изначально в XML определены лишь [http://www.w3.org/TR/xml/#sec-predefined-ent следующие сущности]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt; -- &amp;amp;lt; &lt;br /&gt;
 &amp;gt; -- &amp;amp;gt; &lt;br /&gt;
 &amp;amp; -- &amp;amp;amp; &lt;br /&gt;
 &amp;#039; -- &amp;amp;apos; &lt;br /&gt;
 &amp;quot; -- &amp;amp;quot; &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;
&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;
&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet [&lt;br /&gt;
&amp;lt;!ENTITY nbsp &amp;quot;&amp;amp;#160;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;!ENTITY middot &amp;quot;&amp;amp;#183;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY reg &amp;quot;&amp;amp;#174;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY copy &amp;quot;&amp;amp;#169;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY raquo &amp;quot;&amp;amp;#187;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY laquo &amp;quot;&amp;amp;#171;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY myentity &amp;quot;this is my entity&amp;quot;&amp;gt;&lt;br /&gt;
]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt;   &lt;br /&gt;
		&amp;lt;p&amp;gt;nbsp: &amp;amp;nbsp; = &amp;amp;#160;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;middot: &amp;amp;middot; = &amp;amp;#183;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;reg: &amp;amp;reg; = &amp;amp;#174;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;copy: &amp;amp;copy; = &amp;amp;#169;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;raquo: &amp;amp;raquo; = &amp;amp;#187;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;laquo: &amp;amp;laquo; = &amp;amp;#171;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;myentity: &amp;amp;myentity; = this is my entity&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что для сущности &amp;#039;&amp;#039;&amp;#039;myentity&amp;#039;&amp;#039;&amp;#039; мы определили в качестве значения строку &amp;quot;this is my entity&amp;quot;, и теперь можем так же как и с остальными символами использовать ссылку &amp;#039;&amp;#039;&amp;#039;&amp;amp;myentity;&amp;#039;&amp;#039;&amp;#039; внутри кода шаблонов. В браузер будет выведен следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;nbsp:   =  &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;middot: · = ·&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;reg: ® = ®&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;copy: © = ©&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;raquo: » = »&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;laquo: « = «&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;myentity: this is my entity = this is my entity&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.018381 secs --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение сущностей в отдельном файле: ==&lt;br /&gt;
&lt;br /&gt;
Можно вынести все определения сущностей в отдельный файл, например entities.dtd:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY yes &amp;quot;Да&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY no &amp;quot;Нет&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY welcome &amp;quot;Добро пожаловать,&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY errors &amp;quot;Ошибки&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY enter-captcha &amp;quot;Введите код с картинки&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet SYSTEM	&amp;quot;i18n/entities.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   ...  &lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом примере показано, как при помощи сущностей можно реализовать интернационализацию шаблонов. Для использования этой возможности наиболее эффективно в UMI.CMS существует протокол [[ULang]].&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%D0%B4%D0%BB%D1%8F_IE_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1745</id>
		<title>Условные комментарии для IE в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%D0%B4%D0%BB%D1%8F_IE_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1745"/>
		<updated>2010-09-01T12:53:13Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вывести в итоговый HTML-код условный комментарий для IE, можно воспользоваться элементом &amp;lt;xsl:comment&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Кроме того, следует иметь в виду, что вместо символов &amp;quot;&amp;lt;&amp;quot; и &amp;quot;&amp;gt;&amp;quot; следует использовать соотвествующие сущности: &amp;#039;&amp;#039;&amp;#039;gt&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;lt&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;head&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:comment&amp;gt;[if lt IE 8]&amp;amp;gt;&amp;amp;lt;link rel=stylesheet href=&amp;quot;/css/style-ie.css&amp;quot;&amp;amp;gt;&amp;amp;lt;![endif]&amp;lt;/xsl:comment&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:comment&amp;gt;это просто комментарий&amp;lt;/xsl:comment&amp;gt;&lt;br /&gt;
	&amp;lt;/head&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt; &lt;br /&gt;
		... контент страницы ...  &lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В итоге в браузер будет выведен следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;!--[if lt IE 8]&amp;gt;&amp;lt;link rel=stylesheet href=&amp;quot;/css/style-ie.css&amp;quot;&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
     &amp;lt;!--это просто комментарий--&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt; &lt;br /&gt;
          ... контент страницы ...  &lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.083747 secs --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1744</id>
		<title>Определение сущностей в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1744"/>
		<updated>2010-09-01T12:50:38Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: « category:Верстка в XSLT  Как известно, изначально в XML определены лишь [http://www.w3.org/TR/xml/#sec-predefined-en…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
Как известно, изначально в XML определены лишь [http://www.w3.org/TR/xml/#sec-predefined-ent следующие сущности]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt; -- &amp;amp;lt; &lt;br /&gt;
 &amp;gt; -- &amp;amp;gt; &lt;br /&gt;
 &amp;amp; -- &amp;amp;amp; &lt;br /&gt;
 &amp;#039; -- &amp;amp;apos; &lt;br /&gt;
 &amp;quot; -- &amp;amp;quot; &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;
&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;
&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet [&lt;br /&gt;
&amp;lt;!ENTITY nbsp &amp;quot;&amp;amp;#160;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;!ENTITY middot &amp;quot;&amp;amp;#183;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY reg &amp;quot;&amp;amp;#174;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY copy &amp;quot;&amp;amp;#169;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY raquo &amp;quot;&amp;amp;#187;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY laquo &amp;quot;&amp;amp;#171;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY myentity &amp;quot;this is my entity&amp;quot;&amp;gt;&lt;br /&gt;
]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt;   &lt;br /&gt;
		&amp;lt;p&amp;gt;nbsp: &amp;amp;nbsp; = &amp;amp;#160;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;middot: &amp;amp;middot; = &amp;amp;#183;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;reg: &amp;amp;reg; = &amp;amp;#174;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;copy: &amp;amp;copy; = &amp;amp;#169;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;raquo: &amp;amp;raquo; = &amp;amp;#187;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;laquo: &amp;amp;laquo; = &amp;amp;#171;&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;myentity: &amp;amp;myentity; = this is my entity&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что для сущности &amp;#039;&amp;#039;&amp;#039;myentity&amp;#039;&amp;#039;&amp;#039; мы определили в качестве значения строку &amp;quot;this is my entity&amp;quot;, и теперь можем так же как и с остальными символами использовать ссылку &amp;#039;&amp;#039;&amp;#039;&amp;amp;myentity;&amp;#039;&amp;#039;&amp;#039; внутри кода шаблонов. В браузер будет выведен следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;nbsp:   =  &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;middot: · = ·&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;reg: ® = ®&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;copy: © = ©&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;raquo: » = »&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;laquo: « = «&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;myentity: this is my entity = this is my entity&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.018381 secs --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Определение сущностей в отдельном файле: ==&lt;br /&gt;
&lt;br /&gt;
Можно вынести все определения сущностей в отдельный файл, например entities.dtd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY yes &amp;quot;Да&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY no &amp;quot;Нет&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY welcome &amp;quot;Добро пожаловать,&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY errors &amp;quot;Ошибки&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!ENTITY enter-captcha &amp;quot;Введите код с картинки&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet SYSTEM	&amp;quot;i18n/entities.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
   ...  &lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом примере показано, как при помощи сущностей можно реализовать интернационализацию шаблонов. Для использования этой возможности наиболее эффективно в UMI.CMS существует протокол [[ULang]].&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=1740</id>
		<title>Как можно вывести строку поиска в XSLT-шаблоне?</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=1740"/>
		<updated>2010-09-01T10:20:14Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как можно вывести строку поиска в XSLT-шаблоне?&lt;br /&gt;
В &amp;lt;body&amp;gt; нашего первого обработчика (&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;) по протоколу udata берем результат работы макроса поиска&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;document(&amp;#039;udata://search/search_do&amp;#039;)/udata&amp;quot; mode=&amp;quot;searchform&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее в шаблоне дизайна прописываем еще два шаблона: Первый получает данные работы макроса %search insert_form()%[http://help-dev.umi-cms.ru/search.insert_form.html] и выводит их списком:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;search_do&amp;#039;]&amp;quot; mode=&amp;quot;searchform&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://search/insert_form&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/ul&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;
Второй отвечает за вывод самой строки поиска, значением поля которого будет являться последний поисковый запрос:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;insert_form&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;get&amp;quot; action=&amp;quot;/search/search_do/&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search_string&amp;quot; value=&amp;quot;{last_search_string}&amp;quot;/&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Поиск&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%D0%B4%D0%BB%D1%8F_IE_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1739</id>
		<title>Условные комментарии для IE в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%D0%B4%D0%BB%D1%8F_IE_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=1739"/>
		<updated>2010-09-01T10:06:47Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: « category:Верстка в XSLT  Для того, чтобы вывести в итоговый HTML-код условный комментарий для IE, …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы вывести в итоговый HTML-код условный комментарий для IE, можно воспользоваться элементом &amp;lt;xsl:comment&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Кроме того, следует иметь в виду, что вместо символов &amp;quot;&amp;lt;&amp;quot; и &amp;quot;&amp;gt;&amp;quot; следует использовать соотвествующие сущности.&lt;br /&gt;
&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;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; encoding=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
	&amp;lt;head&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:comment&amp;gt;[if lt IE 8]&amp;amp;gt;&amp;amp;lt;link rel=stylesheet href=&amp;quot;/css/style-ie.css&amp;quot;&amp;amp;gt;&amp;amp;lt;![endif]&amp;lt;/xsl:comment&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:comment&amp;gt;это просто комментарий&amp;lt;/xsl:comment&amp;gt;&lt;br /&gt;
	&amp;lt;/head&amp;gt;&lt;br /&gt;
	&amp;lt;body&amp;gt; &lt;br /&gt;
		... контент страницы ...  &lt;br /&gt;
	&amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В итоге в браузер будет выведен следующий HTML-код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;!--[if lt IE 8]&amp;gt;&amp;lt;link rel=stylesheet href=&amp;quot;/css/style-ie.css&amp;quot;&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;
     &amp;lt;!--это просто комментарий--&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt; &lt;br /&gt;
          ... контент страницы ...  &lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.083747 secs --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=1738</id>
		<title>Категория:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=1738"/>
		<updated>2010-09-01T09:51:25Z</updated>

		<summary type="html">&lt;p&gt;Danil: Удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=1737</id>
		<title>Категория:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=1737"/>
		<updated>2010-09-01T09:51:04Z</updated>

		<summary type="html">&lt;p&gt;Danil: Новая страница: «Условные комментарии для IE в XSLT-шаблонах»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Условные комментарии для IE в XSLT-шаблонах&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1726</id>
		<title>Вставка кода GoogleAnalytics в XSLT-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0_GoogleAnalytics_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=1726"/>
		<updated>2010-08-31T13:51:05Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
Необходимо добавить код GoogleAnalytics в XSTL-шаблон.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Возьмём к примеру демо-сайт &amp;#039;&amp;#039;&amp;#039;demodizzy&amp;#039;&amp;#039;&amp;#039; (интернет-магазин бытовой техники).&lt;br /&gt;
В файле /xsltTpls/layouts/default.xsl, после строчки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;/&amp;quot; mode=&amp;quot;layout&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
содержится сам код страницы.&lt;br /&gt;
Непосредственно внутри тегов &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; добавим код анализатора GoogleAnalytics:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. устаревший вариант GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var gaJsHost = ((&amp;quot;https:&amp;quot; == document.location.protocol) ? &amp;quot;https://ssl.&amp;quot; : &amp;quot;http://www.&amp;quot;);&lt;br /&gt;
	 document.write(unescape(&amp;quot;%3Cscript src=&amp;#039;&amp;quot; + gaJsHost + &amp;quot;google-analytics.com/ga.js&amp;#039; &lt;br /&gt;
         type=&amp;#039;text/javascript&amp;#039;%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 try {&lt;br /&gt;
	 var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&lt;br /&gt;
	 pageTracker._trackPageview();&lt;br /&gt;
	 } catch(err) {}&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;var pageTracker = _gat._getTracker(&amp;quot;ID-00000000-0&amp;quot;);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. асинхронный код GA:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&lt;br /&gt;
	 var _gaq = _gaq || [];&lt;br /&gt;
    	 _gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&lt;br /&gt;
       	 _gaq.push([&amp;#039;_trackPageview&amp;#039;]);&lt;br /&gt;
    	 (function() {&lt;br /&gt;
	 var ga = document.createElement(&amp;#039;script&amp;#039;); ga.type = &amp;#039;text/javascript&amp;#039;; ga.async = true;&lt;br /&gt;
	 ga.src = (&amp;#039;https:&amp;#039; == document.location.protocol ? &amp;#039;https://ssl&amp;#039; : &amp;#039;http://www&amp;#039;) + &amp;#039;.google-analytics.com/ga.js&amp;#039;;&lt;br /&gt;
	 var s = document.getElementsByTagName(&amp;#039;script&amp;#039;)[0]; s.parentNode.insertBefore(ga, s);&lt;br /&gt;
       	 })();&lt;br /&gt;
	]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В строчке &amp;#039;&amp;#039;&amp;#039;_gaq.push([&amp;#039;_setAccount&amp;#039;, &amp;#039;ID-00000000-0&amp;#039;]);&amp;#039;&amp;#039;&amp;#039; вместо ID-00000000-0 укажите ваш код GoogleAnalytics.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Google_sitemap&amp;diff=1652</id>
		<title>Google sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Google_sitemap&amp;diff=1652"/>
		<updated>2010-08-09T12:16:05Z</updated>

		<summary type="html">&lt;p&gt;Danil: /* В UMI.CMS реализован протокол Google sitemap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== В UMI.CMS реализован протокол Google sitemap ==&lt;br /&gt;
 	&lt;br /&gt;
Использование файлов Sitemap инструкция для веб-мастеров http://www.google.com/support/webmasters/bin/topic.py?topic=8476&amp;lt;br/&amp;gt;&lt;br /&gt;
Подробнее о протоколе https://www.google.com/webmasters/tools/docs/ru/protocol.html#sitemapXMLExample&lt;br /&gt;
&lt;br /&gt;
Поддержка протокола может быть добавлена в UMI.CMS начиная с версии 2.5.3 &lt;br /&gt;
Протокол sitemap реализован на основе протокола [[UMap]]&lt;br /&gt;
&lt;br /&gt;
Необходимо отредактировать единственный для версии 2.5.3 файл &amp;#039;&amp;#039;&amp;#039;./umaps/sitemap.xml&amp;#039;&amp;#039;&amp;#039; (совпадает с названием протокола по чистой случайности).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Протокол umap имеет более высокий приоритет чем шаблонизатор. &lt;br /&gt;
Это значит, что если в структуре сайта есть страница с именем &amp;#039;&amp;#039;&amp;#039;google-sitemap&amp;#039;&amp;#039;&amp;#039;, то она будет проигнорирована, т.к. в первую очередь обрабатываются правила протокола &amp;#039;&amp;#039;&amp;#039;UMap&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
сгенерируется xml в результате вызова &amp;#039;&amp;#039;&amp;#039;udata://content/sitemap/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
она будет обработана в соответствии с правилами файла &amp;#039;&amp;#039;&amp;#039;./xsltTpls/google-sitemap.xsl&amp;#039;&amp;#039;&amp;#039; и результат будет отдан системой с заголовком xml в сответствии с инструкцией &amp;#039;&amp;#039;&amp;#039;serialize type=&amp;quot;xml&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&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;sitemap&amp;gt;&lt;br /&gt;
	&amp;lt;match pattern=&amp;quot;^google-sitemap$&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;cache&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;generate src=&amp;quot;udata://content/sitemap/&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;transform src=&amp;quot;./xsltTpls/sys-tpls/google-sitemap.xsl&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;param name=&amp;quot;domain&amp;quot; value=&amp;quot;{_http_host}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/transform&amp;gt;&lt;br /&gt;
		&amp;lt;serialize type=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/match&amp;gt;&lt;br /&gt;
 &amp;lt;/sitemap&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это правило использует файл находящийся в папке относительно корня сайта &amp;#039;&amp;#039;&amp;#039;./xsltTpls/sys-tpls/google-sitemap.xsl&amp;#039;&amp;#039;&amp;#039;&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;
&lt;br /&gt;
&amp;lt;xsl:stylesheet	version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
		xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
		xmlns:php=&amp;quot;http://php.net/xsl&amp;quot;&lt;br /&gt;
		xsl:extension-element-prefixes=&amp;quot;php&amp;quot;&lt;br /&gt;
		exclude-result-prefixes=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:output encoding=&amp;quot;utf-8&amp;quot; method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;domain&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;urlset xmlns=&amp;quot;http://www.google.com/schemas/sitemap/0.84&amp;quot;&lt;br /&gt;
			xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
			xsi:schemaLocation=&amp;quot;http://www.google.com/schemas/sitemap/0.84&lt;br /&gt;
			http://www.google.com/schemas/sitemap/0.84/sitemap.xsd&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;//items&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/urlset&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;items&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;item&amp;quot;/&amp;gt;	&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;url&amp;gt;&lt;br /&gt;
			&amp;lt;loc&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;concat(&amp;#039;http://&amp;#039;, $domain, @link)&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/loc&amp;gt;&lt;br /&gt;
		&amp;lt;/url&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить поддержку Google sitemap в уже установленную UMI.CMS необходимо скопировать&lt;br /&gt;
файлы из архива http://www.umi-cms.ru/files/googlesitemap.zip, соблюдая структуру папок в архиве (распаковать архив в корень сайта).&lt;br /&gt;
&lt;br /&gt;
проверка работоспособности &lt;br /&gt;
http://адрес_сайта/google-sitemap&lt;br /&gt;
&lt;br /&gt;
XSD схема стандарта Google sitemap лежит в папке &amp;#039;&amp;#039;&amp;#039;./xsl/xsd/sitemap.xsd&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Сторонние сервисы и программы]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Google_sitemap&amp;diff=1651</id>
		<title>Google sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Google_sitemap&amp;diff=1651"/>
		<updated>2010-08-09T12:15:07Z</updated>

		<summary type="html">&lt;p&gt;Danil: /* В UMI.CMS реализован протокол Google sitemap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== В UMI.CMS реализован протокол Google sitemap ==&lt;br /&gt;
 	&lt;br /&gt;
Использование файлов Sitemap инструкция для веб-мастеров http://www.google.com/support/webmasters/bin/topic.py?topic=8476&amp;lt;br/&amp;gt;&lt;br /&gt;
Подробнее о протоколе https://www.google.com/webmasters/tools/docs/ru/protocol.html#sitemapXMLExample&lt;br /&gt;
&lt;br /&gt;
Поддержка протокола может быть добавлена в UMI.CMS начиная с версии 2.5.3 &lt;br /&gt;
Протокол sitemap реализован на основе протокола [[UMap]]&lt;br /&gt;
&lt;br /&gt;
Необходимо отредактировать единственный для версии 2.5.3 файл &amp;#039;&amp;#039;&amp;#039;./umaps/sitemap.xml&amp;#039;&amp;#039;&amp;#039; (совпадает с названием протокола по чистой случайности).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Протокол umap имеет более высокий приоритет чем шаблонизатор. &lt;br /&gt;
Это значит, что если в структуре сайта есть страница с именем &amp;#039;&amp;#039;&amp;#039;google-sitemap&amp;#039;&amp;#039;&amp;#039;, то она будет проигнорирована, т.к. в первую очередь обрабатываются правила протокола &amp;#039;&amp;#039;&amp;#039;UMap&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
сгенерируется xml в результате вызова &amp;#039;&amp;#039;&amp;#039;udata://content/sitemap/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
она будет обработана в соответствии с правилами файла &amp;#039;&amp;#039;&amp;#039;./xsltTpls/google-sitemap.xsl&amp;#039;&amp;#039;&amp;#039; и результат будет отдан системой с заголовком xml в сответствии с инструкцией &amp;#039;&amp;#039;&amp;#039;serialize type=&amp;quot;xml&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&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;sitemap&amp;gt;&lt;br /&gt;
	&amp;lt;match pattern=&amp;quot;^google-sitemap$&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;cache&amp;quot; value=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;generate src=&amp;quot;udata://content/sitemap/&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;transform src=&amp;quot;./xsltTpls/sys-tpls/google-sitemap.xsl&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;param name=&amp;quot;domain&amp;quot; value=&amp;quot;{_http_host}&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/transform&amp;gt;&lt;br /&gt;
		&amp;lt;serialize type=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/match&amp;gt;&lt;br /&gt;
 &amp;lt;/sitemap&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это правило использует файл находящийся в папке относительно корня сайта &amp;#039;&amp;#039;&amp;#039;./xsltTpls/sys-tpls/google-sitemap.xsl&amp;#039;&amp;#039;&amp;#039;&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;
&lt;br /&gt;
&amp;lt;xsl:stylesheet	version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
		xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
		xmlns:php=&amp;quot;http://php.net/xsl&amp;quot;&lt;br /&gt;
		xsl:extension-element-prefixes=&amp;quot;php&amp;quot;&lt;br /&gt;
		exclude-result-prefixes=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:output encoding=&amp;quot;utf-8&amp;quot; method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;domain&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;urlset xmlns=&amp;quot;http://www.google.com/schemas/sitemap/0.84&amp;quot;&lt;br /&gt;
			xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
			xsi:schemaLocation=&amp;quot;http://www.google.com/schemas/sitemap/0.84&lt;br /&gt;
			http://www.google.com/schemas/sitemap/0.84/sitemap.xsd&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;//items&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/urlset&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;items&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:apply-templates select=&amp;quot;item&amp;quot;/&amp;gt;	&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;url&amp;gt;&lt;br /&gt;
			&amp;lt;loc&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;concat(&amp;#039;http://&amp;#039;, $domain, @link)&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/loc&amp;gt;&lt;br /&gt;
		&amp;lt;/url&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить поддержку Google sitemap в уже установленную UMI.CMS необходимо скопировать&lt;br /&gt;
файлы из архива http://www.umi-cms.ru/files/googlesitemap.zip, соблюдая структуру папок в архиве.&lt;br /&gt;
&lt;br /&gt;
проверка работоспособности &lt;br /&gt;
http://адрес_сайта/google-sitemap&lt;br /&gt;
&lt;br /&gt;
XSD схема стандарта Google sitemap лежит в папке &amp;#039;&amp;#039;&amp;#039;./xsl/xsd/sitemap.xsd&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Сторонние сервисы и программы]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3026</id>
		<title>Как можно вывести строку поиска в XSLT-шаблоне?</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3026"/>
		<updated>2007-09-01T10:20:14Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как можно вывести строку поиска в XSLT-шаблоне?&lt;br /&gt;
В &amp;lt;body&amp;gt; нашего первого обработчика (&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;) по протоколу udata берем результат работы макроса поиска&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;document(&amp;#039;udata://search/search_do&amp;#039;)/udata&amp;quot; mode=&amp;quot;searchform&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее в шаблоне дизайна прописываем еще два шаблона: Первый получает данные работы макроса %search insert_form()%[http://help-dev.umi-cms.ru/search.insert_form.html] и выводит их списком:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;search_do&amp;#039;]&amp;quot; mode=&amp;quot;searchform&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://search/insert_form&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/ul&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;
Второй отвечает за вывод самой строки поиска, значением поля которого будет являться последний поисковый запрос:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;insert_form&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;get&amp;quot; action=&amp;quot;/search/search_do/&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search_string&amp;quot; value=&amp;quot;{last_search_string}&amp;quot;/&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Поиск&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;[[Категория:Модуль Поиск]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3014</id>
		<title>Как можно вывести строку поиска в XSLT-шаблоне?</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%3F&amp;diff=3014"/>
		<updated>1970-01-01T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Danil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как можно вывести строку поиска в XSLT-шаблоне?&lt;br /&gt;
В &amp;lt;body&amp;gt; нашего первого обработчика (&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;) по протоколу udata берем результат работы макроса поиска&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;document(&amp;#039;udata://search/search_do&amp;#039;)/udata&amp;quot; mode=&amp;quot;searchform&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее в шаблоне дизайна прописываем еще два шаблона: Первый получает данные работы макроса %search insert_form()%[http://help-dev.umi-cms.ru/search.insert_form.html] и выводит их списком:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;search_do&amp;#039;]&amp;quot; mode=&amp;quot;searchform&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://search/insert_form&amp;#039;)/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/ul&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;
Второй отвечает за вывод самой строки поиска, значением поля которого будет являться последний поисковый запрос:&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;udata[@module = &amp;#039;search&amp;#039; and @method = &amp;#039;insert_form&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;get&amp;quot; action=&amp;quot;/search/search_do/&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search_string&amp;quot; value=&amp;quot;{last_search_string}&amp;quot;/&amp;gt;&lt;br /&gt;
           &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Поиск&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;[[Категория:Модуль Поиск]]&lt;/div&gt;</summary>
		<author><name>Danil</name></author>
		
	</entry>
</feed>