<?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=Romario</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=Romario"/>
	<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/Romario"/>
	<updated>2026-05-30T17:14:52Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3494</id>
		<title>Сгруппировать товары по категориям (xslt / demodizi)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3494"/>
		<updated>2012-04-12T14:09:02Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Описание:&lt;br /&gt;
&lt;br /&gt;
На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором уровне каталога (например DVD Техника) отображаются все вместе. &lt;br /&gt;
&lt;br /&gt;
Задача:&lt;br /&gt;
&lt;br /&gt;
Разбить товары на категории в зависимости от поткатегорий этого каталога. &lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
Шаблон отвечающий за отображение товаров на втором уровне каталога, по умолчанию, находится в файле ~\xsltTpls\modules\catalog\category-view.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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////2/&amp;#039;))/udata&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/xsl:template&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
В данной конструкции вызываются все объекты каталога из 2х подуровней каталога.&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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))//item&amp;quot; mode=&amp;quot;main_cat&amp;quot; /&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;
Теперь нам необходимо написать шаблон для категорий каталога, таким образом, чтобы из каждой категории вызывались только &amp;quot;свои: объекты:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;main_cat&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2&amp;gt;&lt;br /&gt;
		&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/a&amp;gt;&lt;br /&gt;
	&amp;lt;/h2&amp;gt;&lt;br /&gt;
	&amp;lt;hr/&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList//&amp;#039;,@id))/udata&amp;quot; /&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;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3473</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3473"/>
		<updated>2012-04-03T07:44:25Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Правильное название статуса заказа в письмах пользователю]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Февраль: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (TPL)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== март: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сгруппировать товары по категориям (xslt / demodizi)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение директорий по умолчанию в файловых менеджерах UMI.CMS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3471</id>
		<title>Сгруппировать товары по категориям (xslt / demodizi)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3471"/>
		<updated>2012-03-30T08:43:59Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Описание:&lt;br /&gt;
&lt;br /&gt;
На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором уровне каталога (например DVD Техника) отображаются все вместе. &lt;br /&gt;
&lt;br /&gt;
Задача:&lt;br /&gt;
&lt;br /&gt;
Разбить товары на категории в зависимости от поткатегорий этого каталога. &lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
Шаблон отвечающий за отображение товаров на втором уровне каталога, по умолчанию, находится в файле ~\xsltTpls\modules\catalog\category-view.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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////2/&amp;#039;))/udata&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/xsl:template&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
В данной конструкции вызываются все объекты каталога из 2х подуровней каталога.&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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; mode=&amp;quot;main_cat&amp;quot; /&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;
Теперь нам необходимо написать шаблон для категорий каталога, таким образом, чтобы из каждой категории вызывались только &amp;quot;свои: объекты:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;main_cat&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2&amp;gt;&lt;br /&gt;
		&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/a&amp;gt;&lt;br /&gt;
	&amp;lt;/h2&amp;gt;&lt;br /&gt;
	&amp;lt;hr/&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList//&amp;#039;,@id))/udata&amp;quot; /&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;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3470</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3470"/>
		<updated>2012-03-30T08:38:18Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Правильное название статуса заказа в письмах пользователю]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Февраль: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (TPL)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== март: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сгруппировать товары по категориям (xslt / demodizi)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3469</id>
		<title>Сгруппировать товары по категориям (xslt / demodizi)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&amp;diff=3469"/>
		<updated>2012-03-30T08:35:33Z</updated>

		<summary type="html">&lt;p&gt;Romario: Новая страница: «Описание:  На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Описание:&lt;br /&gt;
&lt;br /&gt;
На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором уровне каталога (например DVD Техника) отображаются все вместе. &lt;br /&gt;
&lt;br /&gt;
Задача:&lt;br /&gt;
&lt;br /&gt;
Разбить товары на категории в зависимости от поткатегорий этого каталога. &lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
Шаблон отвечающий за отображение товаров на втором уровне каталога, по умолчанию, находится в файле ~\xsltTpls\modules\catalog\category-view.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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////2/&amp;#039;))/udata&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/xsl:template&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
В данной конструкции вызываются все объекты каталога из 2х подуровней каталога.&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;/result[@method = &amp;#039;category&amp;#039;][count(/result/parents/page) = 1]&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; mode=&amp;quot;main_cat&amp;quot; /&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;
Теперь нам необходимо написать шаблон для категорий каталога, таким образом, чтобы из каждой категории вызывались только &amp;quot;свои: объекты:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;main_cat&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2&amp;gt;&lt;br /&gt;
		&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/a&amp;gt;&lt;br /&gt;
	&amp;lt;/h2&amp;gt;&lt;br /&gt;
	&amp;lt;hr/&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList//&amp;#039;,@id))/udata&amp;quot; /&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;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3410</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3410"/>
		<updated>2012-02-29T20:14:26Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Правильное название статуса заказа в письмах пользователю]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Февраль: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (TPL)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(XSLT)&amp;diff=3409</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%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(XSLT)&amp;diff=3409"/>
		<updated>2012-02-29T20:13:31Z</updated>

		<summary type="html">&lt;p&gt;Romario: Новая страница: «Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при эт…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при этом оставить все другие возможности интернет магазина.&lt;br /&gt;
Гость может смотреть каталог, добавлять товары в корзину, но не может оформить заказ, пока не пройдет авторизацию&lt;br /&gt;
&lt;br /&gt;
Решение: В отличие от TPL шаблонизатора в XSLT подобную задачу можно решать на уровне формирования шаблона, исключительно средствами XSLT.&lt;br /&gt;
&lt;br /&gt;
Для решения задачи нужно следующим образом модифицировать шаблон отвечающий за корзину товаров:&lt;br /&gt;
&lt;br /&gt;
По возвращаемому xml коду (тег &amp;lt;user id=&amp;quot;298&amp;quot; type=&amp;quot;guest&amp;quot;/&amp;gt;) можно построить следующую логическую конструкцию.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:if test=&amp;quot;$user-type != &amp;#039;guest&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
       вывести кнопку оформить заказ.&lt;br /&gt;
 &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:if test=&amp;quot;$user-type = &amp;#039;guest&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
       Написать, что требуется регистрация.&lt;br /&gt;
 &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
таким образом, пользователь со статусом &amp;quot;гость&amp;quot;, вместо кнопки оформить заказ будет видеть сообщение о необходимости регистрации для продолжения оформления заказа.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3397</id>
		<title>Размещение фотографии любого размера</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3397"/>
		<updated>2012-02-27T14:22:22Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;задача: выводить фотографии объектов каталога без обрезания на демонстрационном сайте demodizi (шаблон современный).&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
За вывод обьектов каталога отвечает шаблон ~\xsltTpls\modules\catalog\common.xsl&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;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
        /xsl:call-template&amp;gt;&lt;br /&gt;
&amp;lt;/a&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;
&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;image_w&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@width&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;image_h&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@height&amp;quot;/&amp;gt; 	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;lt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;					&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;gt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&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;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;							&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3396</id>
		<title>Размещение фотографии любого размера</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3396"/>
		<updated>2012-02-27T14:19:54Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;задача: выводить фотографии объектов каталога без обрезания на демонстрационном сайте demodizi (шаблон современный).&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
За вывод обьектов каталога отвечает шаблон ~\xsltTpls\modules\catalog\common.xsl&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;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
        /xsl:call-template&amp;gt;&lt;br /&gt;
&amp;lt;/a&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;
&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;image_w&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@width&amp;quot;/&amp;gt; &amp;lt;xsl:variable name=&amp;quot;image_h&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@height&amp;quot;/&amp;gt; 	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;lt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;					&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;gt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&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;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;							&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3395</id>
		<title>Размещение фотографии любого размера</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8_%D0%BB%D1%8E%D0%B1%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0&amp;diff=3395"/>
		<updated>2012-02-27T14:18:56Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;задача: выводить фотографии объектов каталога без обрезания на демонстрационном сайте demodizi (шаблон современный).&lt;br /&gt;
Решение:&lt;br /&gt;
&lt;br /&gt;
За вывод обьектов каталога отвечает шаблон ~\xsltTpls\modules\catalog\common.xsl&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;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
        /xsl:call-template&amp;gt;&lt;br /&gt;
&amp;lt;/a&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;
&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;image_w&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@width&amp;quot;/&amp;gt; &amp;lt;xsl:variable name=&amp;quot;image_h&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, @id))/udata/page/properties/group[@name=&amp;#039;opisanie_tovara&amp;#039;]/property/value/@height&amp;quot;/&amp;gt; 	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;lt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;					&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;$image_h &amp;amp;gt; $image_w&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&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;td&amp;gt;&lt;br /&gt;
							&amp;lt;a href=&amp;quot;{@link}&amp;quot; class=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:call-template name=&amp;quot;catalog-thumbnail&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;element-id&amp;quot; select=&amp;quot;@id&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;field-name&amp;quot;&amp;gt;photo&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;empty&amp;quot;&amp;gt;&amp;amp;empty-photo;&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;160&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;auto&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:call-template&amp;gt;				&lt;br /&gt;
							&amp;lt;/a&amp;gt;&lt;br /&gt;
						&amp;lt;/td&amp;gt;							&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB-%D0%B2%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5_(tpl_2.8.0)&amp;diff=3394</id>
		<title>Изменение кол-ва товаров в корзине (tpl 2.8.0)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB-%D0%B2%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5_(tpl_2.8.0)&amp;diff=3394"/>
		<updated>2012-02-27T06:38:54Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
&lt;br /&gt;
Добавить в &amp;#039;&amp;#039;&amp;#039;Корзину товаров&amp;#039;&amp;#039;&amp;#039; возможность изменения количества выбранных товаров.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
Сначала необходимо подключить jQuery для этого прописать в шаблоне:&lt;br /&gt;
 %system includeQuickEditJs()%&lt;br /&gt;
 %system includeEditInPlaceJs()%&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи нам понадобится js-скрипт [[:Файл:FrontEndBasket.zip|frontEndBasket.js]], который не входит в стандартную поставку demo-tpl шаблона. Его следует поместить в папкe &amp;#039;&amp;#039;&amp;#039;/js/&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Начнем с подключения необходимых скриптов в шаблон страницы. Необходимо подключить 3 скрипта, между тегами &amp;#039;&amp;#039;&amp;#039;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&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;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/js/frontEndBasket.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/js/client/basket.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/js/client/utilities.js&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;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;Основным&amp;#039;&amp;#039;&amp;#039; в админ-панели, например, &amp;#039;&amp;#039;&amp;#039;inner.tpl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В шаблоне вывода корзины(например, &amp;#039;&amp;#039;&amp;#039;tpls/emarket/default.tpl&amp;#039;&amp;#039;&amp;#039;) в блоке вывода элементов, находящихся в корзине(блок &amp;#039;&amp;#039;&amp;#039;order_item&amp;#039;&amp;#039;&amp;#039;) в нужное вам место(например, в ячейку таблицы, вместо &amp;#039;&amp;#039;&amp;#039;%amount%&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;input type=&amp;quot;text&amp;quot; value=&amp;quot;%amount%&amp;quot; onkeyup=&amp;quot;&lt;br /&gt;
var e = jQuery(this).next(&amp;#039;input&amp;#039;), old = e.val(); &lt;br /&gt;
e.val(this.value);&lt;br /&gt;
frontEndBasket.modify(%id%, this.value, old);&lt;br /&gt;
window.setTimeout(function() { javascript:window.location.reload(); }, 1000);&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, перейдя в корзину(&amp;#039;&amp;#039;&amp;#039;emarket/cart&amp;#039;&amp;#039;&amp;#039;) пользователь будет видеть поля для ввода необходимого кол-ва товаров.&lt;br /&gt;
При отсутствии необходимости перезагрузки страницы корзины, после изменения количества, необходимо удалить строку &amp;#039;&amp;#039;&amp;#039;javascript:window.location.reload();&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[category:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3390</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3390"/>
		<updated>2012-02-17T07:31:44Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Правильное название статуса заказа в письмах пользователю]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Февраль: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Как запретить гостям оформлять заказы (TPL)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3389</id>
		<title>Как запретить гостям оформлять заказы (TPL)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3389"/>
		<updated>2012-02-17T07:30:42Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при этом оставить все другие возможности интернет магазина.&lt;br /&gt;
Гость может смотреть каталог, добавлять товары в корзину, но не может оформить заказ, пока не пройдет авторизацию&lt;br /&gt;
&lt;br /&gt;
Решение: В TPL шаблонезаторе данная задача решается не очевидным на первый взгляд способом.&lt;br /&gt;
&lt;br /&gt;
Мы будем строить описанную в задаче логику на основе макроса %users auth()%. Данный макрос выводит форму авторизации для пользователя либо информацию об авторизованном пользователе. Для наших целей, мы создадим еще один шаблон для данного макроса. Шаблоны для макроса хранятся в папке ~\tpls\users\. Для примера назовем этот шаблон basket.tpl.&lt;br /&gt;
&lt;br /&gt;
Суть данного шаблона заключается в том, что он будет отвечать за внешний вид кнопки &amp;quot;Оформить заказ&amp;quot;. Если пользователь авторизован, он будет выводить кнопку, для оформления заказа, если же пользователь - гость, то в шаблоне можно написать информационное сообщение или дать ссылку на страницу авторизации.&lt;br /&gt;
&lt;br /&gt;
Для примера наш шаблон будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;login&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;ДЛЯ ОФОРМЛЕНИЯ ЗАКАЗА ТРЕБУЕТСЯ АВТОРИЗОВАТЬСЯ&amp;quot; /&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;logged&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Теперь нам нужно вставить вызов данного шаблона вместо кнопки оформить заказ в шаблоне карзины.&lt;br /&gt;
Для этого перейдем в шаблон корзины в файле ~\tpls\emarket\default.tpl, и заменим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
на вызов нашего шаблона&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь блок $FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END должен выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
$FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;h3&amp;gt;Информация о покупателе&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;%emarket getCustomerInfo()%&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Список покупок&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot; rules=&amp;quot;rows&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; id=&amp;quot;order_block&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;thead&amp;gt;&lt;br /&gt;
		&amp;lt;tr class=&amp;quot;orow_hat&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Наименования&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Опции&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Q&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Цена&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Сумма&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Скидки&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;&amp;amp;nbsp;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/thead&amp;gt;&lt;br /&gt;
	&amp;lt;tbody&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;basket_remove_all&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/emarket/basket/remove_all/&amp;quot;&amp;gt;Очистить корзину&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Скидка на заказ&amp;lt;/h3&amp;gt;&lt;br /&gt;
%emarket discountInfo(%discount_id%)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Доставка&amp;lt;/h3&amp;gt;&lt;br /&gt;
%delivery-price%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Сумма&amp;lt;/h3&amp;gt;&lt;br /&gt;
%total-price%&lt;br /&gt;
&amp;lt;p&amp;gt;Товаров в корзине: %total-amount%&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После этих действий все незарегистрированные пользователи уже не смогут оформлять заказы, но при этом смогут просматривать каталоги и пользоваться корзиной.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3388</id>
		<title>Как запретить гостям оформлять заказы (TPL)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3388"/>
		<updated>2012-02-17T07:25:41Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при этом оставить все другие возможности интернет магазина.&lt;br /&gt;
Гость может смотреть каталог, добавлять товары в корзину, но не может оформить заказ, пока не пройдет авторизацию&lt;br /&gt;
&lt;br /&gt;
Решение: В TPL шаблонезаторе данная задача решается не очевидным на первый взгляд способом.&lt;br /&gt;
&lt;br /&gt;
Мы будем строить описанную в задаче логику на основе макроса %users auth()%. Данный макрос выводит форму авторизации для пользователя либо информацию об авторизованном пользователе. Для наших целей, мы создадим еще один шаблон для данного макроса. Шаблоны для макроса хранятся в папке ~\tpls\users\. Для примера назовем этот шаблон basket.tpl.&lt;br /&gt;
&lt;br /&gt;
Суть данного шаблона заключается в том, что он будет отвечать за внешний вид кнопки &amp;quot;Оформить заказ&amp;quot;. Если пользователь авторизован, он будет выводить кнопку, для оформления заказа, если же пользователь - гость, то в шаблоне можно написать информационное сообщение или дать ссылку на страницу авторизации.&lt;br /&gt;
&lt;br /&gt;
Для примера наш шаблон будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;login&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;ДЛЯ ОФОРМЛЕНИЯ ЗАКАЗА ТРЕБУЕТСЯ АВТОРИЗОВАТЬСЯ&amp;quot; /&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;logged&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Теперь нам нужно вставить вызов данного шаблона вместо кнопки оформить заказ в шаблоне карзины.&lt;br /&gt;
Для этого перейдем в шаблон корзины в файле ~\tpls\emarket\default.tpl, и заменим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
на вызов нашего шаблона&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь блок $FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END должен выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
$FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;h3&amp;gt;Информация о покупателе&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;%emarket getCustomerInfo()%&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Список покупок&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot; rules=&amp;quot;rows&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; id=&amp;quot;order_block&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;thead&amp;gt;&lt;br /&gt;
		&amp;lt;tr class=&amp;quot;orow_hat&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Наименования&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Опции&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Q&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Цена&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Сумма&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Скидки&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;&amp;amp;nbsp;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/thead&amp;gt;&lt;br /&gt;
	&amp;lt;tbody&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;basket_remove_all&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/emarket/basket/remove_all/&amp;quot;&amp;gt;Очистить корзину&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Скидка на заказ&amp;lt;/h3&amp;gt;&lt;br /&gt;
%emarket discountInfo(%discount_id%)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Доставка&amp;lt;/h3&amp;gt;&lt;br /&gt;
%delivery-price%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Сумма&amp;lt;/h3&amp;gt;&lt;br /&gt;
%total-price%&lt;br /&gt;
&amp;lt;p&amp;gt;Товаров в корзине: %total-amount%&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После этих действий все незарегистрированные пользователи уже не смогут оформлять заказы, но при этом смогут просматривать каталоги и пользоваться корзиной.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3387</id>
		<title>Как запретить гостям оформлять заказы (TPL)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3387"/>
		<updated>2012-02-17T07:25:06Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при этом оставить все другие возможности интернет магазина.&lt;br /&gt;
Гость может смотреть каталог, добавлять товары в корзину, но не может оформить заказ, пока не пройдет авторизацию&lt;br /&gt;
&lt;br /&gt;
Решение: В TPL шаблонезаторе данная задача решается не очевидным на первый взгляд способом.&lt;br /&gt;
&lt;br /&gt;
Мы будем строить описанную в задаче логику на основе макроса %users auth()%. Данный макрос выводит форму авторизации для пользователя либо информацию об авторизованном пользователе. Для наших целей, мы создадим еще один шаблон для данного макроса. Шаблоны для макроса хранятся в папке ~\tpls\users\. Для примера назовем этот шаблон basket.tpl.&lt;br /&gt;
&lt;br /&gt;
Суть данного шаблона заключается в том, что он будет отвечать за внешний вид кнопки &amp;quot;Оформить заказ&amp;quot;. Если пользователь авторизован, он будет выводить кнопку, для оформления заказа, если же пользователь - гость, то в шаблоне можно написать информационное сообщение или дать ссылку на страницу авторизации.&lt;br /&gt;
&lt;br /&gt;
Для примера наш шаблон будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;login&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;ДЛЯ ОФОРМЛЕНИЯ ЗАКАЗА ТРЕБУЕТСЯ АВТОРИЗОВАТЬСЯ&amp;quot; /&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;logged&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Теперь нам нужно вставить вызов данного шаблона вместо кнопки оформить заказ в шаблоне карзины.&lt;br /&gt;
Для этого перейдем в шаблон корзины в файле ~\tpls\emarket\default.tpl, и заменим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
на вызов нашего шаблона&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь блок $FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END должен выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt; &lt;br /&gt;
$FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;h3&amp;gt;Информация о покупателе&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;%emarket getCustomerInfo()%&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Список покупок&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot; rules=&amp;quot;rows&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; id=&amp;quot;order_block&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;thead&amp;gt;&lt;br /&gt;
		&amp;lt;tr class=&amp;quot;orow_hat&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Наименования&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Опции&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Q&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Цена&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Сумма&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Скидки&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;&amp;amp;nbsp;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/thead&amp;gt;&lt;br /&gt;
	&amp;lt;tbody&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;basket_remove_all&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/emarket/basket/remove_all/&amp;quot;&amp;gt;Очистить корзину&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Скидка на заказ&amp;lt;/h3&amp;gt;&lt;br /&gt;
%emarket discountInfo(%discount_id%)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Доставка&amp;lt;/h3&amp;gt;&lt;br /&gt;
%delivery-price%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Сумма&amp;lt;/h3&amp;gt;&lt;br /&gt;
%total-price%&lt;br /&gt;
&amp;lt;p&amp;gt;Товаров в корзине: %total-amount%&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После этих действий все незарегистрированные пользователи уже не смогут оформлять заказы, но при этом смогут просматривать каталоги и пользоваться корзиной.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3386</id>
		<title>Как запретить гостям оформлять заказы (TPL)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C_%D0%B3%D0%BE%D1%81%D1%82%D1%8F%D0%BC_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D1%8F%D1%82%D1%8C_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B_(TPL)&amp;diff=3386"/>
		<updated>2012-02-17T07:23:10Z</updated>

		<summary type="html">&lt;p&gt;Romario: Новая страница: «Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при эт…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Сделать невозможным оформить заказ незарегистрированным пользователям, но при этом оставить все другие возможности интернет магазина.&lt;br /&gt;
Гость может смотреть каталог, добавлять товары в корзину, но не может оформить заказ, пока не пройдет авторизацию&lt;br /&gt;
&lt;br /&gt;
Решение: В TPL шаблонезаторе данная задача решается не очевидным на первый взгляд способом.&lt;br /&gt;
&lt;br /&gt;
Мы будем строить описанную в задаче логику на основе макроса %users auth()%. Данный макрос выводит форму авторизации для пользователя либо информацию об авторизованном пользователе. Для наших целей, мы создадим еще один шаблон для данного макроса. Шаблоны для макроса хранятся в папке ~\tpls\users\. Для примера назовем этот шаблон basket.tpl.&lt;br /&gt;
&lt;br /&gt;
Суть данного шаблона заключается в том, что он будет отвечать за внешний вид кнопки &amp;quot;Оформить заказ&amp;quot;. Если пользователь авторизован, он будет выводить кнопку, для оформления заказа, если же пользователь - гость, то в шаблоне можно написать информационное сообщение или дать ссылку на страницу авторизации.&lt;br /&gt;
&lt;br /&gt;
Для примера наш шаблон будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;login&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;ДЛЯ ОФОРМЛЕНИЯ ЗАКАЗА ТРЕБУЕТСЯ АВТОРИЗОВАТЬСЯ&amp;quot; /&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;logged&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно вставить вызов данного шаблона вместо кнопки оформить заказ в шаблоне карзины.&lt;br /&gt;
Для этого перейдем в шаблон корзины в файле ~\tpls\emarket\default.tpl, и заменим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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;
на вызов нашего шаблона&lt;br /&gt;
&lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&lt;br /&gt;
Теперь блок $FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END должен выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;order_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;h3&amp;gt;Информация о покупателе&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;%emarket getCustomerInfo()%&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Список покупок&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table width=&amp;quot;100%&amp;quot; rules=&amp;quot;rows&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; id=&amp;quot;order_block&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;thead&amp;gt;&lt;br /&gt;
		&amp;lt;tr class=&amp;quot;orow_hat&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;#&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Наименования&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Опции&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Q&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Цена&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Сумма&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;Скидки&amp;lt;/th&amp;gt;&lt;br /&gt;
			&amp;lt;th&amp;gt;&amp;amp;nbsp;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/thead&amp;gt;&lt;br /&gt;
	&amp;lt;tbody&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;basket_remove_all&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;/emarket/basket/remove_all/&amp;quot;&amp;gt;Очистить корзину&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Скидка на заказ&amp;lt;/h3&amp;gt;&lt;br /&gt;
%emarket discountInfo(%discount_id%)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Доставка&amp;lt;/h3&amp;gt;&lt;br /&gt;
%delivery-price%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Сумма&amp;lt;/h3&amp;gt;&lt;br /&gt;
%total-price%&lt;br /&gt;
&amp;lt;p&amp;gt;Товаров в корзине: %total-amount%&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
%users auth(&amp;#039;basket&amp;#039;)%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;form action=&amp;quot;%pre_lang%/emarket/purchase/&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; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
После этих действий все незарегистрированные пользователи уже не смогут оформлять заказы, но при этом смогут просматривать каталоги и пользоваться корзиной.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3380</id>
		<title>Изменение числа объектов каталога в строке Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3380"/>
		<updated>2012-01-31T19:01:15Z</updated>

		<summary type="html">&lt;p&gt;Romario: переименовал «Изменение числа объектов каталога в строке сайт demodizi (шаблон современный)» в «[[Изменение числа объектов каталога в строке&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье мы видоизменим внешний вид каталога товаров веб сайта demodizi&lt;br /&gt;
&lt;br /&gt;
[[Файл:catalog1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Цель: Выводить в ряд вместо 3 товаров - 4.&lt;br /&gt;
&lt;br /&gt;
Решение: На сайте demodizi, перенос на следующую строку осуществляется с помощью функции position() с функцией mod(). Mod() - выдает значение равное остатку от деления. Таким образом, чтобы выводить 4 элемента на строку нам нужно делать перенос после каждого 4 элемента. То есть делать перенос поле каждого деления без остатка.&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:if test=&amp;quot;position() mod 4 = 0&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Изменим данную функцию нужно в файле ~\xsltTpls\modules\catalog\common.xsl&lt;br /&gt;
Строка 69 (по умолчанию) &lt;br /&gt;
&lt;br /&gt;
Далее нам надо переделать css стиль под новые условия. Для этого в файле V:\home\umi285.my\www\css\design\modules.css изменим в блоке&lt;br /&gt;
&lt;br /&gt;
#main #page div.center div.content div.catalog div.object, параметр  width:  на 25%;&lt;br /&gt;
&lt;br /&gt;
Теперь нужно уменьшить размер картинок товаров, так как они стали выходить за рамки.&lt;br /&gt;
Это можно сделать в файле ~\xsltTpls\modules\catalog\common.xsl, строки 40, 41.&lt;br /&gt;
Поставим значения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Таким образом, мы получили 4 объекта каталога в одном ряду. Подобными манипуляциями можно добиться любого количества объектов в зависимости от запланированного дизайна.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_%D1%81%D0%B0%D0%B9%D1%82_demodizi_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9)&amp;diff=3381</id>
		<title>Изменение числа объектов каталога в строке сайт demodizi (шаблон современный)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_%D1%81%D0%B0%D0%B9%D1%82_demodizi_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9)&amp;diff=3381"/>
		<updated>2012-01-31T19:01:15Z</updated>

		<summary type="html">&lt;p&gt;Romario: переименовал «Изменение числа объектов каталога в строке сайт demodizi (шаблон современный)» в «[[Изменение числа объектов каталога в строке&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3379</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3379"/>
		<updated>2012-01-31T19:00:03Z</updated>

		<summary type="html">&lt;p&gt;Romario: /* Январь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт Demo-dizzy (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Правильное название статуса заказа в письмах пользователю]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3368</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3368"/>
		<updated>2012-01-30T09:57:07Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Январь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Изменение числа объектов каталога в строке сайт demodizi (шаблон современный)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Шаблон для оформления заказа в один шаг]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3367</id>
		<title>Изменение числа объектов каталога в строке Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3367"/>
		<updated>2012-01-30T09:54:21Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье мы видоизменим внешний вид каталога товаров веб сайта demodizi&lt;br /&gt;
&lt;br /&gt;
[[Файл:catalog1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Цель: Выводить в ряд вместо 3 товаров - 4.&lt;br /&gt;
&lt;br /&gt;
Решение: На сайте demodizi, перенос на следующую строку осуществляется с помощью функции position() с функцией mod(). Mod() - выдает значение равное остатку от деления. Таким образом, чтобы выводить 4 элемента на строку нам нужно делать перенос после каждого 4 элемента. То есть делать перенос поле каждого деления без остатка.&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:if test=&amp;quot;position() mod 4 = 0&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Изменим данную функцию нужно в файле ~\xsltTpls\modules\catalog\common.xsl&lt;br /&gt;
Строка 69 (по умолчанию) &lt;br /&gt;
&lt;br /&gt;
Далее нам надо переделать css стиль под новые условия. Для этого в файле V:\home\umi285.my\www\css\design\modules.css изменим в блоке&lt;br /&gt;
&lt;br /&gt;
#main #page div.center div.content div.catalog div.object, параметр  width:  на 25%;&lt;br /&gt;
&lt;br /&gt;
Теперь нужно уменьшить размер картинок товаров, так как они стали выходить за рамки.&lt;br /&gt;
Это можно сделать в файле ~\xsltTpls\modules\catalog\common.xsl, строки 40, 41.&lt;br /&gt;
Поставим значения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Таким образом, мы получили 4 объекта каталога в одном ряду. Подобными манипуляциями можно добиться любого количества объектов в зависимости от запланированного дизайна.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Catalog1.jpg&amp;diff=3366</id>
		<title>Файл:Catalog1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Catalog1.jpg&amp;diff=3366"/>
		<updated>2012-01-30T09:53:55Z</updated>

		<summary type="html">&lt;p&gt;Romario: для статьи Изменение числа объектов каталога&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;для статьи Изменение числа объектов каталога&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3365</id>
		<title>Изменение числа объектов каталога в строке Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3365"/>
		<updated>2012-01-30T09:51:11Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье мы видоизменим внешний вид каталога товаров веб сайта demodizi&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Цель: Выводить в ряд вместо 3 товаров - 4.&lt;br /&gt;
&lt;br /&gt;
Решение: На сайте demodizi, перенос на следующую строку осуществляется с помощью функции position() с функцией mod(). Mod() - выдает значение равное остатку от деления. Таким образом, чтобы выводить 4 элемента на строку нам нужно делать перенос после каждого 4 элемента. То есть делать перенос поле каждого деления без остатка.&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:if test=&amp;quot;position() mod 4 = 0&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Изменим данную функцию нужно в файле ~\xsltTpls\modules\catalog\common.xsl&lt;br /&gt;
Строка 69 (по умолчанию) &lt;br /&gt;
&lt;br /&gt;
Далее нам надо переделать css стиль под новые условия. Для этого в файле V:\home\umi285.my\www\css\design\modules.css изменим в блоке&lt;br /&gt;
&lt;br /&gt;
#main #page div.center div.content div.catalog div.object, параметр  width:  на 25%;&lt;br /&gt;
&lt;br /&gt;
Теперь нужно уменьшить размер картинок товаров, так как они стали выходить за рамки.&lt;br /&gt;
Это можно сделать в файле ~\xsltTpls\modules\catalog\common.xsl, строки 40, 41.&lt;br /&gt;
Поставим значения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Таким образом, мы получили 4 объекта каталога в одном ряду. Подобными манипуляциями можно добиться любого количества объектов в зависимости от запланированного дизайна.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3364</id>
		<title>Изменение числа объектов каталога в строке Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D0%B2_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5_Demodizzy&amp;diff=3364"/>
		<updated>2012-01-30T09:49:14Z</updated>

		<summary type="html">&lt;p&gt;Romario: Новая страница: «В данной статье мы видоизменим внешний вид каталога товаров веб сайта demodizi  Цель: Выводить…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье мы видоизменим внешний вид каталога товаров веб сайта demodizi&lt;br /&gt;
&lt;br /&gt;
Цель: Выводить в ряд вместо 3 товаров - 4.&lt;br /&gt;
&lt;br /&gt;
Решение: На сайте demodizi, перенос на следующую строку осуществляется с помощью функции position() с функцией mod(). Mod() - выдает значение равное остатку от деления. Таким образом, чтобы выводить 4 элемента на строку нам нужно делать перенос после каждого 4 элемента. То есть делать перенос поле каждого деления без остатка.&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:if test=&amp;quot;position() mod 4 = 0&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Изменим данную функцию нужно в файле ~\xsltTpls\modules\catalog\common.xsl&lt;br /&gt;
Строка 69 (по умолчанию) &lt;br /&gt;
&lt;br /&gt;
Далее нам надо переделать css стиль под новые условия. Для этого в файле V:\home\umi285.my\www\css\design\modules.css изменим в блоке&lt;br /&gt;
&lt;br /&gt;
#main #page div.center div.content div.catalog div.object, параметр  width:  на 25%;&lt;br /&gt;
&lt;br /&gt;
Теперь нужно уменьшить размер картинок товаров, так как они стали выходить за рамки.&lt;br /&gt;
Это можно сделать в файле ~\xsltTpls\modules\catalog\common.xsl, строки 40, 41.&lt;br /&gt;
Поставим значения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt; &lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;width&amp;quot;&amp;gt;114&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:with-param name=&amp;quot;height&amp;quot;&amp;gt;120&amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Таким образом, мы получили 4 объекта каталога в одном ряду. Подобными манипуляциями можно добиться любого количества объектов в зависимости от запланированного дизайна.&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3337</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3337"/>
		<updated>2011-12-29T09:12:37Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;~&amp;quot; отвечает за настройки стиля&lt;br /&gt;
&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;br /&gt;
 elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3336</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3336"/>
		<updated>2011-12-29T09:12:25Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;~&amp;quot; отвечает за настройки стиля&lt;br /&gt;
&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3335</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3335"/>
		<updated>2011-12-29T09:11:38Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;~&amp;quot; отвечает за настройки стиля&lt;br /&gt;
&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;br /&gt;
 elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3334</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3334"/>
		<updated>2011-12-29T09:09:17Z</updated>

		<summary type="html">&lt;p&gt;Romario: /* Октябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Ноябрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Декабрь: ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3333</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3333"/>
		<updated>2011-12-29T08:06:51Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;~&amp;quot; отвечает за настройки стиля&lt;br /&gt;
&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3332</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3332"/>
		<updated>2011-12-29T08:03:38Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;~&amp;quot; отвечает за настройки стиля&lt;br /&gt;
&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3331</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3331"/>
		<updated>2011-12-29T08:01:57Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3330</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3330"/>
		<updated>2011-12-29T08:01:44Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3329</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3329"/>
		<updated>2011-12-29T08:01:01Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3326</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3326"/>
		<updated>2011-12-29T07:54:27Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили. Вызов отвечающий за вывод подменю мы окружили тегом &lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3325</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3325"/>
		<updated>2011-12-29T07:53:31Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3324</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3324"/>
		<updated>2011-12-29T07:53:00Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Добавим дополнительные теги, для javascript:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3323</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3323"/>
		<updated>2011-12-29T07:52:41Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3322</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3322"/>
		<updated>2011-12-29T07:52:14Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3321</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3321"/>
		<updated>2011-12-29T07:52:01Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3320</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3320"/>
		<updated>2011-12-29T07:51:32Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3319</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3319"/>
		<updated>2011-12-29T07:51:02Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3318</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3318"/>
		<updated>2011-12-29T07:50:29Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3317</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3317"/>
		<updated>2011-12-29T07:49:56Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
Для этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3315</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3315"/>
		<updated>2011-12-29T07:48:29Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
ДЛя этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3314</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3314"/>
		<updated>2011-12-29T07:46:36Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню каталога товаров в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3312</id>
		<title>Динамическое меню каталога товаров в Demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%B2_Demodizzy&amp;diff=3312"/>
		<updated>2011-12-29T07:46:24Z</updated>

		<summary type="html">&lt;p&gt;Romario: переименовал «Динамическое меню в demodizi» в «Динамическое меню каталога товаров в demodizi»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье речь пойдет о том как немного украсить ваш сайт и сделать его более интерактивным. И так, ниже будет описан простой способ сделать анимированное меню каталога с помощью методов jquery ui. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Задача: Сделать двухуровневое меню, второй уровень которого по умолчанию скрыт. При наведении мыши на какой либо раздел меню, снизу от него должны плавно выезжать подразделы. При наведении курсора на другой пункт меню, старые подразделы должны исчезать, и появятся новые, в соответствии с выбранным пунктом меню.&lt;br /&gt;
&lt;br /&gt;
И так, для начала нам потребуется в шаблоне нашего сайта подключить все необходимые библиотеки jquery. Так как в UMI уже, по умолчанию, подключена основная библиотека jquery, нам потребуется лишь подключить скрипты эффектов и файл с нашим будущим кастомным скриптом. Так как в нашем примере мы рассматриваем верстку на основе XSLT то соответственно скрипты должны быть вставлены в файл, где прописана верстка тегов &amp;lt;head&amp;gt; (по умолчанию - ~\xsltTpls\layouts\default.xsl)&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;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/jquery/jquery.effects.core.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Соответственно файл jquery.effects.core.js нужно скачать с официального сайта Jquery.&lt;br /&gt;
&lt;br /&gt;
И теперь подключим непосредственно наш будущий скрипт. Для данного примера назовем его My.js и положим в папку ~/js/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script charset=&amp;quot;utf-8&amp;quot; src=&amp;quot;/js/My.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующим нашим действием будет добавление дополнительных тегов в верстку сайта, необходимых для работы скрипта.&lt;br /&gt;
&lt;br /&gt;
Файл отвечающий за левое меню находится: ~\xsltTpls\modules\catalog\left-column-category-list.xsl&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[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;span&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/a&amp;gt;&lt;br /&gt;
			&amp;lt;/span&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/li&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;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;getCategoryList&amp;#039;]//item&amp;quot; mode=&amp;quot;left-column&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;cat1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li umi:element-id=&amp;quot;{@id}&amp;quot; umi:region=&amp;quot;row&amp;quot; &amp;gt;&lt;br /&gt;
				&amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
					&amp;lt;a href=&amp;quot;{@link}&amp;quot; umi:field-name=&amp;quot;name&amp;quot; umi:delete=&amp;quot;delete&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-section-name;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;/span&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;	&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/getCategoryList/void/&amp;#039;, @id, &amp;#039;//1/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторое пояснение к тому что именно мы добавили: &lt;br /&gt;
Вызов отвечающий за вывод подменю мы окружили тегом &amp;lt;div class=&amp;quot;cat2&amp;quot; style=&amp;quot;display: none;  height:1&amp;quot;&amp;gt;&lt;br /&gt;
Параметр style=&amp;quot;&amp;quot; отвечает за настройки стиля&lt;br /&gt;
display: none     настройка стиля, согласно которой объект не отображается на странице&lt;br /&gt;
height:1          настройка стиля, согласно которой высота объекта = 1&lt;br /&gt;
Тег отвечающий за вызов названий разделов имеет следующий вид &amp;lt;span onMouseOver=&amp;quot;open_menu(this)&amp;quot; &amp;gt;&lt;br /&gt;
параметр onMouseOver=&amp;quot;open_menu(this)&amp;quot; обозначает что при наведении мыши на данный объект будет вызываться javascript функция open_menu(), в которую будет передаваться значение объекта вызвавшего ее.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно написать сам скрипт, а точнее функцию, которая вызывается при наведении мыши на объект (название)&lt;br /&gt;
ДЛя этого откроем, пока еще пустой файл My.js, который мы подключили выше и напишем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var elems_old = &amp;quot;&amp;quot;;&lt;br /&gt;
var block = 0;&lt;br /&gt;
var menu_speed = 500; //переменная отвечающая за скорость выпадающего меню&lt;br /&gt;
var menu_height=100;  //переменная отвечающая за высоту блока (данный скрипт не будет вычислять ее автоматически)&lt;br /&gt;
&lt;br /&gt;
// функция которая вызывается при наведении мыши&lt;br /&gt;
function open_menu(elems){&lt;br /&gt;
&lt;br /&gt;
        //условие - если тригер блокировки стоит в 1, то функция не выполнится&lt;br /&gt;
        // функция выполнися если переданное значенеие объекта отличается от старого (сработает только если мы выбрали новый пункт меню)&lt;br /&gt;
	if(block == 0 &amp;amp;&amp;amp; elems_old != elems){&lt;br /&gt;
                 //сразу блокируется, чтобы не выполнять алгоритм повторно&lt;br /&gt;
                  block = 1; &lt;br /&gt;
                  action_menu(elems);}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
function action_menu(elems){&lt;br /&gt;
		&lt;br /&gt;
		if ( elems_old != 0 ){&lt;br /&gt;
			&lt;br /&gt;
			//выбираем потомка нашего элемента (в данном случае это будет подменю, соответствующее пункту меню.)&lt;br /&gt;
                        elems_a =  elems_old.parentNode.childNodes[2];&lt;br /&gt;
			//анемированно сворачиваем его &lt;br /&gt;
                        $( elems_a ).animate({height: 1,  queue:true}, menu_speed, callback(elems_a) );&lt;br /&gt;
		}&lt;br /&gt;
			elems_c = elems.parentNode.childNodes[2];&lt;br /&gt;
			//разворачиваем с анимацией выбранный пункт меню&lt;br /&gt;
                        $( elems_c ).animate({height: menu_height, queue:true}, menu_speed);&lt;br /&gt;
			// Делаем элемент видимым&lt;br /&gt;
                        elems_c.style.display=&amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	elems_old = elems;&lt;br /&gt;
	// снимаем блокировку&lt;br /&gt;
        setTimeout(function() { block = 0; }, 100)&lt;br /&gt;
	&lt;br /&gt;
	}&lt;br /&gt;
function callback(elems_a) {&lt;br /&gt;
	//делаем исчезающий элемент невидимым&lt;br /&gt;
        setTimeout(function() { elems_a.style.display=&amp;quot;none&amp;quot;; }, menu_speed)&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Все. Теперь на вашем сайте должно получится красивое анемированное меню каталога. Для того чтобы сделать его более удобным, также, следует увеличить размер пунктов меню в таблице CSS стилей.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B2_demodizi&amp;diff=3313</id>
		<title>Динамическое меню в demodizi</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B2_demodizi&amp;diff=3313"/>
		<updated>2011-12-29T07:46:24Z</updated>

		<summary type="html">&lt;p&gt;Romario: переименовал «Динамическое меню в demodizi» в «Динамическое меню каталога товаров в demodizi»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Динамическое меню каталога товаров в demodizi]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3311</id>
		<title>Участник:Romario</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Romario&amp;diff=3311"/>
		<updated>2011-12-29T07:45:22Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Поиск последнего заказа, который оформил покупатель.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Работа с корзиной без перезагрузки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Динамическое меню в demodizi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Размещение фотографии любого размера ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Подключение скрипта для записи значения формы в куки]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод страницы контента, вместо страницы &amp;quot;Лучшие предложения&amp;quot; на главной странице сайта с шаблоном &amp;quot;современный&amp;quot;]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%22%D0%9B%D1%83%D1%87%D1%88%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%22_%D0%BD%D0%B0_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%BC_%22%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%22&amp;diff=3310</id>
		<title>Вывод страницы контента вместо страницы &quot;Лучшие предложения&quot; на главной странице сайта с шаблоном &quot;современный&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%22%D0%9B%D1%83%D1%87%D1%88%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%22_%D0%BD%D0%B0_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%BC_%22%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%22&amp;diff=3310"/>
		<updated>2011-12-29T07:44:40Z</updated>

		<summary type="html">&lt;p&gt;Romario: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: На сайте с шаблоном &amp;quot;Современный&amp;quot; (demodizi) на главной странице нужно сделать вывод страницы контента вместо страницы &amp;quot;Лучшие предложения&amp;quot; &lt;br /&gt;
&lt;br /&gt;
В XSLT шаблонизаторе для страницы могут быть написано несколько шаблонов. Логика по которой примерится тот или иной шаблон такова:&lt;br /&gt;
&lt;br /&gt;
- Подключится тот шаблон у которого больше условий.&lt;br /&gt;
- Если условий одинаковое количество - подключится тот шаблон, который в последовательности кода будет последним&lt;br /&gt;
- если в шаблоне указан параметр  priority=&amp;quot;*&amp;quot; -  выполнится тот шаблон у которого имеется данный параметр, либо у которого выше значение данного параметра относительно другого.&lt;br /&gt;
&lt;br /&gt;
На примере нашего демо сайта:&lt;br /&gt;
Обычная страница контента подключаются в шаблоне в файле ~\xsltTpls\modules\content\common.xsl в строке: &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;result[@module = &amp;#039;content&amp;#039;]&amp;quot; priority=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div umi:element-id=&amp;quot;{$document-page-id}&amp;quot; umi:field-name=&amp;quot;content&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-page-content;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;.//property[@name = &amp;#039;content&amp;#039;]/value&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То есть, если modul = сnontent - подключаем шаблон описанный внутри тега.&lt;br /&gt;
&lt;br /&gt;
Главная же страница подхватывается шаблоном в ~\xsltTpls\modules\catalog\special-offers.xsl, так как в нем кроме условия стоит параметр priority=&amp;quot;1&amp;quot; &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;result[page/@is-default = &amp;#039;1&amp;#039;]&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;usel://special-offers/?limit=&amp;amp;specials-limit;&amp;#039;)&amp;quot; mode=&amp;quot;special-offers&amp;quot; /&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;
То есть, шаблон подключается если в полученном коде страницы будет параметр  is-default = &amp;#039;1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
is-default = &amp;#039;1&amp;#039; - говорит о том что страница является главной (в модуле структура указанно xто путь к ней следующий &amp;quot;/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Внутри уже тег расположен вызов USEL выборки, которая и выбирает товары из каталога.&lt;br /&gt;
&lt;br /&gt;
Если нам нужно чтобы вместо товаров выводился обычный контент - нужно поставьте у первого шаблона параметр priority=&amp;quot;2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%22%D0%9B%D1%83%D1%87%D1%88%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%22_%D0%BD%D0%B0_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%BC_%22%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%22&amp;diff=3309</id>
		<title>Вывод страницы контента вместо страницы &quot;Лучшие предложения&quot; на главной странице сайта с шаблоном &quot;современный&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%22%D0%9B%D1%83%D1%87%D1%88%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%22_%D0%BD%D0%B0_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%BC_%22%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%22&amp;diff=3309"/>
		<updated>2011-12-29T07:44:16Z</updated>

		<summary type="html">&lt;p&gt;Romario: Новая страница: «Задача: На сайте с шаблоном &amp;quot;Современный&amp;quot; (demodizi) на главной странице нужно сделать вывод ст…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: На сайте с шаблоном &amp;quot;Современный&amp;quot; (demodizi) на главной странице нужно сделать вывод страницы контента вместо страницы &amp;quot;Лучшие предложения&amp;quot; &lt;br /&gt;
&lt;br /&gt;
В XSLT шаблонизаторе для страницы могут быть написано несколько шаблонов. Логика по которой примерится тот или иной шаблон такова:&lt;br /&gt;
&lt;br /&gt;
- Подключится тот шаблон у которого больше условий.&lt;br /&gt;
- Если условий одинаковое количество - подключится тот шаблон, который в последовательности кода будет последним&lt;br /&gt;
- если в шаблоне указан параметр  priority=&amp;quot;*&amp;quot; -  выполнится тот шаблон у которого имеется данный параметр, либо у которого выше значение данного параметра относительно другого.&lt;br /&gt;
&lt;br /&gt;
На примере нашего демо сайта:&lt;br /&gt;
Обычная страница контента подключаются в шаблоне в файле ~\xsltTpls\modules\content\common.xsl в строке: &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;result[@module = &amp;#039;content&amp;#039;]&amp;quot; priority=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div umi:element-id=&amp;quot;{$document-page-id}&amp;quot; umi:field-name=&amp;quot;content&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-page-content;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:value-of select=&amp;quot;.//property[@name = &amp;#039;content&amp;#039;]/value&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То есть, если modul = сnontent - подключаем шаблон описанный внутри тега.&lt;br /&gt;
&lt;br /&gt;
Главная же страница подхватывается шаблоном в ~\xsltTpls\modules\catalog\special-offers.xsl, так как в нем кроме условия стоит параметр priority=&amp;quot;1&amp;quot; &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;result[page/@is-default = &amp;#039;1&amp;#039;]&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;usel://special-offers/?limit=&amp;amp;specials-limit;&amp;#039;)&amp;quot; mode=&amp;quot;special-offers&amp;quot; /&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;
То есть, шаблон подключается если в полученном коде страницы будет параметр  is-default = &amp;#039;1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 is-default = &amp;#039;1&amp;#039; - говорит о том что страница является главной (в модуле структура указанно xто путь к ней следующий &amp;quot;/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Внутри уже тег расположен вызов USEL выборки, которая и выбирает товары из каталога.&lt;br /&gt;
&lt;br /&gt;
Если нам нужно чтобы вместо товаров выводился обычный контент - нужно поставьте у первого шаблона параметр priority=&amp;quot;2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Romario</name></author>
		
	</entry>
</feed>