<?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=Sdarks</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=Sdarks"/>
	<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/Sdarks"/>
	<updated>2026-05-13T22:09:48Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8326</id>
		<title>Отображать в меню развернутым только активный пункт меню</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8326"/>
		<updated>2018-05-29T12:51:58Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Необходимо отображать в меню развернутым только активный раздел &lt;br /&gt;
&lt;br /&gt;
[[Файл:Demo-dizzy-left-menu.jpg]]&lt;br /&gt;
[[Файл:menuHide.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи необходимо добавить в файл classes/modules/custom.php или classes/components/custom.php (в зависимости от реализации модулей) следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function activmenu($categ_id, $id) {&lt;br /&gt;
			$hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$element = $hierarchy-&amp;gt;getAllParents($id, true);&lt;br /&gt;
			$value = (in_array($categ_id, $element)) ? 1: 0;&lt;br /&gt;
			return $value;&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;#039;&amp;#039;&amp;#039;\xslt\modules\catalog\left-column-category-list.xsl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;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;
	&lt;br /&gt;
&amp;lt;!-- вызов кастомного скрипта --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;actmenu&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://custom/activmenu/&amp;#039;,@id,&amp;#039;/&amp;#039;,$document-page-id))/udata&amp;quot; /&amp;gt;&lt;br /&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;
&lt;br /&gt;
&amp;lt;!-- условие - отображать только тот раздел в котором мы находимся --&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$actmenu = 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;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&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;
[[Категория:Написание кастомных макросов]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8325</id>
		<title>Отображать в меню развернутым только активный пункт меню</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8325"/>
		<updated>2018-05-29T12:51:10Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Необходимо отображать в меню развернутым только активный раздел &lt;br /&gt;
&lt;br /&gt;
[[Файл:Demo-dizzy-left-menu.jpg]]&lt;br /&gt;
[[Файл:Selection_042.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи необходимо добавить в файл classes/modules/custom.php или classes/components/custom.php (в зависимости от реализации модулей) следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function activmenu($categ_id, $id) {&lt;br /&gt;
			$hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$element = $hierarchy-&amp;gt;getAllParents($id, true);&lt;br /&gt;
			$value = (in_array($categ_id, $element)) ? 1: 0;&lt;br /&gt;
			return $value;&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;#039;&amp;#039;&amp;#039;\xslt\modules\catalog\left-column-category-list.xsl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;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;
	&lt;br /&gt;
&amp;lt;!-- вызов кастомного скрипта --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;actmenu&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://custom/activmenu/&amp;#039;,@id,&amp;#039;/&amp;#039;,$document-page-id))/udata&amp;quot; /&amp;gt;&lt;br /&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;
&lt;br /&gt;
&amp;lt;!-- условие - отображать только тот раздел в котором мы находимся --&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$actmenu = 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;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&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;
[[Категория:Написание кастомных макросов]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8324</id>
		<title>Отображать в меню развернутым только активный пункт меню</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8324"/>
		<updated>2018-05-29T12:50:45Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Необходимо отображать в меню развернутым только активный раздел &lt;br /&gt;
&lt;br /&gt;
[[Файл:Demo-dizzy-left-menu.jpg]]&lt;br /&gt;
[[Файл:menuHide.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи необходимо добавить в файл classes/modules/custom.php или classes/components/custom.php (в зависимости от реализации модулей) следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function activmenu($categ_id, $id) {&lt;br /&gt;
			$hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$element = $hierarchy-&amp;gt;getAllParents($id, true);&lt;br /&gt;
			$value = (in_array($categ_id, $element)) ? 1: 0;&lt;br /&gt;
			return $value;&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;#039;&amp;#039;&amp;#039;\xslt\modules\catalog\left-column-category-list.xsl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;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;
	&lt;br /&gt;
&amp;lt;!-- вызов кастомного скрипта --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;actmenu&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://custom/activmenu/&amp;#039;,@id,&amp;#039;/&amp;#039;,$document-page-id))/udata&amp;quot; /&amp;gt;&lt;br /&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;
&lt;br /&gt;
&amp;lt;!-- условие - отображать только тот раздел в котором мы находимся --&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$actmenu = 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;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&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;
[[Категория:Написание кастомных макросов]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:MenuHide.png&amp;diff=8323</id>
		<title>Файл:MenuHide.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:MenuHide.png&amp;diff=8323"/>
		<updated>2018-05-29T12:50:24Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8322</id>
		<title>Отображать в меню развернутым только активный пункт меню</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8322"/>
		<updated>2018-05-29T12:49:19Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Необходимо отображать в меню развернутым только активный раздел &lt;br /&gt;
&lt;br /&gt;
[[Файл:Demo-dizzy-left-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи необходимо добавить в файл classes/modules/custom.php или classes/components/custom.php (в зависимости от реализации модулей) следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function activmenu($categ_id, $id) {&lt;br /&gt;
			$hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$element = $hierarchy-&amp;gt;getAllParents($id, true);&lt;br /&gt;
			$value = (in_array($categ_id, $element)) ? 1: 0;&lt;br /&gt;
			return $value;&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;#039;&amp;#039;&amp;#039;\xslt\modules\catalog\left-column-category-list.xsl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;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;
	&lt;br /&gt;
&amp;lt;!-- вызов кастомного скрипта --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;actmenu&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://custom/activmenu/&amp;#039;,@id,&amp;#039;/&amp;#039;,$document-page-id))/udata&amp;quot; /&amp;gt;&lt;br /&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;
&lt;br /&gt;
&amp;lt;!-- условие - отображать только тот раздел в котором мы находимся --&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$actmenu = 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;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&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;
[[Категория:Написание кастомных макросов]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8321</id>
		<title>Отображать в меню развернутым только активный пункт меню</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E&amp;diff=8321"/>
		<updated>2018-05-29T12:47:38Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Необходимо отображать в меню развернутым только активный раздел &lt;br /&gt;
&lt;br /&gt;
[[Файл:Demo-dizzy-left-menu.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для решения данной задачи необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;custom.php&amp;#039;&amp;#039;&amp;#039; следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function activmenu($categ_id, $id) {&lt;br /&gt;
			$hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$element = $hierarchy-&amp;gt;getAllParents($id, true);&lt;br /&gt;
			$value = (in_array($categ_id, $element)) ? 1: 0;&lt;br /&gt;
			return $value;&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;#039;&amp;#039;&amp;#039;\xsltTpls\modules\catalog\left-column-category-list.xsl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;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;
	&lt;br /&gt;
&amp;lt;!-- вызов кастомного скрипта --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;actmenu&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://custom/activmenu/&amp;#039;,@id,&amp;#039;/&amp;#039;,$document-page-id))/udata&amp;quot; /&amp;gt;&lt;br /&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;
&lt;br /&gt;
&amp;lt;!-- условие - отображать только тот раздел в котором мы находимся --&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$actmenu = 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;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&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;
[[Категория:Написание кастомных макросов]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0_%D0%B2_demodizzy&amp;diff=8320</id>
		<title>Отключение функционала в demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0_%D0%B2_demodizzy&amp;diff=8320"/>
		<updated>2018-05-29T12:34:32Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача 1:&amp;#039;&amp;#039;&amp;#039; Иногда пользователи используют при разработке своего интернет магазина демо-сайт по продаже электронной техники, и возникает потребность в отключении некоторого функционала. Например, нужно отключить &amp;quot;добавление к сравнению&amp;quot;, и &amp;quot;Без комментариев&amp;quot; у товаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Указанные  ссылки, выводятся с помощью строк&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/getCompareLink/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://comments/countComments/&amp;#039;, @id))/udata&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:with-param name=&amp;quot;link&amp;quot; select=&amp;quot;@link&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/xsl:apply-templates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
эти строки можете за комментировать в файле common.xsl по пути ~xslt/modules/catalog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача 2:&amp;#039;&amp;#039;&amp;#039; Отключение вывода &amp;quot;опроса&amp;quot; и &amp;quot;рассылок&amp;quot; на сайте.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Необходимо открыть файл, находящийся по пути ~xslt/layouts и закомментировать строки&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://vote/insertlast/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://dispatches/subscribe/&amp;#039;)/udata&amp;quot; mode=&amp;quot;right&amp;quot; /&amp;gt; .&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы убрать блок &amp;quot;Сравнение товаров&amp;quot;, необходимо открыть файл ~xslt/modules/emarket/compare.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;udata[@method = &amp;#039;getCompareList&amp;#039;][count(items/item) &amp;amp;gt; 0]&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;infoblock&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;h2&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;&amp;amp;compare-title;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;/h2&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;body&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;in&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;ul class=&amp;quot;compare&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; /&amp;gt;&lt;br /&gt;
					&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
					&amp;lt;xsl:if test=&amp;quot;count(items/item) &amp;amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;a href=&amp;quot;{$lang-prefix}/emarket/compare/&amp;quot; class=&amp;quot;button&amp;quot;&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:text&amp;gt;&amp;amp;compare-submit;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
						&amp;lt;/a&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/div&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;#039;&amp;#039;&amp;#039;Задача 3:&amp;#039;&amp;#039;&amp;#039; Отключение блоков социальных сетей на сайте.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Необходимо открыть файл, находящийся по пути ~xslt/layouts и закомментировать строки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FUMI.CMS &amp;amp;amp;width=188&amp;amp;amp;&lt;br /&gt;
colorscheme=light&amp;amp;amp;show_faces=true&amp;amp;amp;border_color&amp;amp;amp; stream=false&amp;amp;amp;header=false&amp;amp;amp;height=293&amp;quot; scrolling=&amp;quot;no&amp;quot;&lt;br /&gt;
 frameborder=&amp;quot;0&amp;quot; style=&amp;quot;border:none; overflow:hidden; width:188px; height:293px; margin: 50px 0 10px;&amp;quot;&lt;br /&gt;
 allowTransparency=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/iframe&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;div id=&amp;quot;vk_groups&amp;quot; style=&amp;quot;margin-bottom: 10px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
VK.Widgets.Group(&amp;quot;vk_groups&amp;quot;, {mode: 0, width: &amp;quot;188&amp;quot;, height: &amp;quot;293&amp;quot;}, 23325076);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0_%D0%B2_demodizzy&amp;diff=8319</id>
		<title>Отключение функционала в demodizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0_%D0%B2_demodizzy&amp;diff=8319"/>
		<updated>2018-05-29T12:31:43Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Задача 1:&amp;#039;&amp;#039;&amp;#039; Иногда пользователи используют при разработке своего интернет магазина демо-сайт по продаже электронной техники, и возникает потребность в отключении некоторого функционала. Например, нужно отключить &amp;quot;добавление к сравнению&amp;quot;, и &amp;quot;Без комментариев&amp;quot; у товаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Указанные  ссылки, выводятся с помощью строк&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/getCompareLink/&amp;#039;, @id))&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://comments/countComments/&amp;#039;, @id))/udata&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:with-param name=&amp;quot;link&amp;quot; select=&amp;quot;@link&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;/xsl:apply-templates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
эти строки можете за комментировать в файле common.xsl по пути ~xsltTpls/modules/catalog.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача 2:&amp;#039;&amp;#039;&amp;#039; Отключение вывода &amp;quot;опроса&amp;quot; и &amp;quot;рассылок&amp;quot; на сайте.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Необходимо открыть файл, находящийся по пути ~xsltTpls/layouts и закомментировать строки&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://vote/insertlast/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://dispatches/subscribe/&amp;#039;)/udata&amp;quot; mode=&amp;quot;right&amp;quot; /&amp;gt; .&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача 3:&amp;#039;&amp;#039;&amp;#039; Отключение блоков социальных сетей на сайте.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Необходимо открыть файл, находящийся по пути ~xsltTpls/layouts и закомментировать строки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FUMI.CMS &amp;amp;amp;width=188&amp;amp;amp;&lt;br /&gt;
colorscheme=light&amp;amp;amp;show_faces=true&amp;amp;amp;border_color&amp;amp;amp; stream=false&amp;amp;amp;header=false&amp;amp;amp;height=293&amp;quot; scrolling=&amp;quot;no&amp;quot;&lt;br /&gt;
 frameborder=&amp;quot;0&amp;quot; style=&amp;quot;border:none; overflow:hidden; width:188px; height:293px; margin: 50px 0 10px;&amp;quot;&lt;br /&gt;
 allowTransparency=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/iframe&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;div id=&amp;quot;vk_groups&amp;quot; style=&amp;quot;margin-bottom: 10px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
VK.Widgets.Group(&amp;quot;vk_groups&amp;quot;, {mode: 0, width: &amp;quot;188&amp;quot;, height: &amp;quot;293&amp;quot;}, 23325076);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B_title_%D0%B8_alt_%D0%BA_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_(xslt)&amp;diff=8318</id>
		<title>Добавляем атрибуты title и alt к изображению товара (xslt)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B_title_%D0%B8_alt_%D0%BA_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_(xslt)&amp;diff=8318"/>
		<updated>2018-05-29T11:06:11Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; улучшить SEO-показатели сайта, добавив атрибуты alt и title к изображению товара &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение&amp;#039;&amp;#039;&amp;#039; на примере демо-сайта Интернет-магазин Современный.&lt;br /&gt;
&lt;br /&gt;
1) Откроем на редактирование шаблон данных, например &amp;quot;dvd техника&amp;quot;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Alttitle01.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2) К группе свойств &amp;quot;&amp;#039;&amp;#039;&amp;#039;Описание товара&amp;#039;&amp;#039;&amp;#039;&amp;quot;, добавим два поля &amp;#039;&amp;#039;&amp;#039;title&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;alt&amp;#039;&amp;#039;&amp;#039; с типом &amp;quot;&amp;#039;&amp;#039;&amp;#039;Строка&amp;#039;&amp;#039;&amp;#039;&amp;quot;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Alttitle02.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
3) Откроем какой-нибудь товар с типом данных &amp;quot;dvd техника&amp;quot; и заполним появившиеся поля.&amp;lt;br/&amp;gt;&lt;br /&gt;
4) Откроем шаблон данных &amp;#039;&amp;#039;&amp;#039;/templates/demodizzy/xslt/library/thumbnails.xsl&amp;#039;&amp;#039;&amp;#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
5) В темплейте &amp;#039;&amp;#039;&amp;lt;xsl:template match=&amp;quot;udata[@module = &amp;#039;system&amp;#039; and (@method = &amp;#039;makeThumbnail&amp;#039; or @method = &amp;#039;makeThumbnailFull&amp;#039;)]&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Добавим переменные, в которые разместим данные из добавленных нами полей:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;altimg&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $element-id, &amp;#039;.&amp;#039;, &amp;#039;altimg&amp;#039;))/udata/property/value&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;titleimg&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $element-id, &amp;#039;.&amp;#039;, &amp;#039;titleimg&amp;#039;))/udata/property/value&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
6) К изображению &amp;lt;img src=&amp;quot;{src}&amp;quot; width=&amp;quot;{width}&amp;quot; height=&amp;quot;{height}&amp;quot;&amp;gt; добавим нужные нам атрибуты. Воспользуемся конструкцией &amp;lt;xsl:if test=&amp;quot;$altimg and $titleimg&amp;quot;&amp;gt;, чтобы добавить атрибуты, только в том случае, если они заполнены:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;{src}&amp;quot; width=&amp;quot;{width}&amp;quot; height=&amp;quot;{height}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;$altimg and $titleimg&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;alt&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;$altimg&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
				&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;$titleimg&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/img&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Можно поступить проще и не создавать дополнительные поля для изображения в шаблонах данных, а использовать уже готовые поля &amp;#039;&amp;#039;&amp;#039;Title&amp;#039;&amp;#039;&amp;#039; для атрибута Alt изображения и &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; для Title атрибута изображения:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;altimg&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $element-id, &amp;#039;.&amp;#039;, &amp;#039;title&amp;#039;))/udata/property/value&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:variable name=&amp;quot;titleimg&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $element-id, &amp;#039;.&amp;#039;, &amp;#039;meta_descriptions&amp;#039;))/udata/property/value&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Остальной код остаётся прежним.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Каталог]][[Категория:Модуль SEO]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8317</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8317"/>
		<updated>2018-05-29T10:41:29Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание:&amp;#039;&amp;#039;&amp;#039; Данная реализация списывает количество товаров со склада только в условии, если &amp;quot;Статус заказа&amp;quot; изменяется в самом &amp;quot;Свойстве заказа&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Добавим в директорию classes\modules\emarket файл с названием custom_events.php или если у Вас новая реализация модулей то в директорию classes\components\emarket\customAdmin файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8316</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8316"/>
		<updated>2018-05-29T10:39:58Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание:&amp;#039;&amp;#039;&amp;#039; Данная реализация списывает количество товаров со склада только в условии, если &amp;quot;Статус заказа&amp;quot; изменяется в самом &amp;quot;Свойстве заказа&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В директорию classes\modules\emarket добавим файл с названием custom_events.php, если у Вас новая реализация модулей то в директорию classes\components\emarket\customAdmin в файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8315</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8315"/>
		<updated>2018-05-29T10:39:26Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание:&amp;#039;&amp;#039;&amp;#039; Данная реализация списывает количество товаров со склада только в условии, если &amp;quot;Статус заказа&amp;quot; изменяется в самом &amp;quot;Свойства заказа&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В директорию classes\modules\emarket добавим файл с названием custom_events.php, если у Вас новая реализация модулей то в директорию classes\components\emarket\customAdmin в файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8314</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=8314"/>
		<updated>2018-05-29T10:37:15Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В директорию classes\modules\emarket добавим файл с названием custom_events.php, если у Вас новая реализация модулей то в директорию classes\components\emarket\customAdmin в файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8313</id>
		<title>Вывод вопросов в FAQ в нужной последовательности</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_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8313"/>
		<updated>2018-05-29T10:20:55Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Макрос %faq category()% выводит последний заданный вопрос внизу страницы. Иногда возникает ситуация, когда требуется вывести вопросы в обратном порядке, то есть последний вопрос вверху страницы. Для этого можно написать кастомный макрос, в котором будет другая последовательность вывода.&lt;br /&gt;
В файл ~/classes/modules/faq/_custom.php или ~/classes/components/faq/customMacros.php в зависимости от используемой Вами реализации модулей после строки //TODO: Write here your own macroses нужно добавить код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	public function category_custom($template = &amp;quot;default&amp;quot;, $element_path = false, $limit = false, $ignore_paging = false, $order = false) {		&lt;br /&gt;
	if(def_module::breakMe()) return;&lt;br /&gt;
	if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
	list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates(&amp;quot;faq/&amp;quot;.$template, &amp;quot;questions_block&amp;quot;, &amp;quot;questions_block_empty&amp;quot;, &amp;quot;questions_block_line&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
	$category_id = def_module::analyzeRequiredPath($path);&lt;br /&gt;
&lt;br /&gt;
	$hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
	$per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
	$curr_page = (int) getRequest(&amp;#039;p&amp;#039;);&lt;br /&gt;
	if($ignore_paging) $curr_page = 0;&lt;br /&gt;
		&lt;br /&gt;
	$sel = new umiSelection;&lt;br /&gt;
	$sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
	$sel-&amp;gt;addHierarchyFilter($category_id);&lt;br /&gt;
	$sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
	$sel-&amp;gt;addPermissions();&lt;br /&gt;
	$result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
	$total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
	if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
		$block_arr = Array();&lt;br /&gt;
		$block_arr[&amp;#039;total&amp;#039;] = $total;&lt;br /&gt;
		$block_arr[&amp;#039;per_page&amp;#039;] = $per_page;&lt;br /&gt;
		$lines = Array();&lt;br /&gt;
		for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
			&lt;br /&gt;
			if ($order==false){&lt;br /&gt;
				$ii=$sz-$i-1;&lt;br /&gt;
			}else{&lt;br /&gt;
				$ii=$i;&lt;br /&gt;
			}&lt;br /&gt;
			if ($ii &amp;lt; $limit || $limit === false) {&lt;br /&gt;
				$element_id = $result[$ii];&lt;br /&gt;
				$element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
				if(!$element) continue;&lt;br /&gt;
&lt;br /&gt;
					$line_arr = Array();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:id&amp;#039;] = $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;attribute:name&amp;#039;] = $line_arr[&amp;#039;void:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
					$line_arr[&amp;#039;void:alt_name&amp;#039;] = $element-&amp;gt;getAltName();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:link&amp;#039;] = umiHierarchy::getInstance()-&amp;gt;getPathById($element_id);&lt;br /&gt;
					$line_arr[&amp;#039;xlink:href&amp;#039;] = &amp;quot;upage://&amp;quot; . $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;question&amp;#039;] = nl2br($element-&amp;gt;getValue(&amp;quot;question&amp;quot;));&lt;br /&gt;
					$line_arr[&amp;#039;answer&amp;#039;] = ($answer = $element-&amp;gt;getValue(&amp;quot;answer&amp;quot;)) ? nl2br($answer) : nl2br($element-&amp;gt;getValue(&amp;quot;content&amp;quot;));&lt;br /&gt;
					&lt;br /&gt;
					templater::pushEditable(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;, $element_id);&lt;br /&gt;
&lt;br /&gt;
					$lines []= def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$block_arr[&amp;#039;subnodes:items&amp;#039;] = $block_arr[&amp;#039;void:lines&amp;#039;] = $lines;&lt;br /&gt;
			&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
			} else {&lt;br /&gt;
				return $template_block_empty;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, нужно добавить разрешение на использование этого макроса в файле ~/classes/modules/faq/permissions.custom.php или ~/classes/components/faq/permissions.custom.php в зависимости от используемой реализации модулей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$permissions = Array(&lt;br /&gt;
		&amp;#039;projects&amp;#039; =&amp;gt; Array(&amp;#039;category_custom&amp;#039;)&lt;br /&gt;
	);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Макрос вызывается аналогично макросу %faq category()% (%faq category_custom()%).&lt;br /&gt;
В качестве пятого параметра макрос принимает направление вывода, по умолчанию false, в этом случае первым выведется последний добавленный вопрос, передав пятым параметром значение &amp;quot;1&amp;quot; (true), последний вопрос будет внизу страницы. остальные параметры полностью соответствуют макросу %faq category()%.&lt;br /&gt;
[[Категория:Написание кастомных макросов]][[Категория:Модуль FAQ]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8312</id>
		<title>Вывод вопросов в FAQ в нужной последовательности</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_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8312"/>
		<updated>2018-05-29T10:15:16Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Макрос %faq category()% выводит последний заданный вопрос внизу страницы. Иногда возникает ситуация, когда требуется вывести вопросы в обратном порядке, то есть последний вопрос вверху страницы. Для этого можно написать кастомный макрос, в котором будет другая последовательность вывода.&lt;br /&gt;
В файл ~/classes/modules/faq/_custom.php или ~/classes/components/faq/customMacros.php в зависимости от используемой Вами реализации модулей после строки //TODO: Write here your own macroses нужно добавить код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	public function category_custom($template = &amp;quot;default&amp;quot;, $element_path = false, $limit = false, $ignore_paging = false, $order = false) {		&lt;br /&gt;
	if($this-&amp;gt;breakMe()) return;&lt;br /&gt;
	if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
	list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates(&amp;quot;faq/&amp;quot;.$template, &amp;quot;questions_block&amp;quot;, &amp;quot;questions_block_empty&amp;quot;, &amp;quot;questions_block_line&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
	$category_id = $this-&amp;gt;analyzeRequiredPath($element_path);&lt;br /&gt;
&lt;br /&gt;
	$hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
	$per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
	$curr_page = (int) getRequest(&amp;#039;p&amp;#039;);&lt;br /&gt;
	if($ignore_paging) $curr_page = 0;&lt;br /&gt;
		&lt;br /&gt;
	$sel = new umiSelection;&lt;br /&gt;
	$sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
	$sel-&amp;gt;addHierarchyFilter($category_id);&lt;br /&gt;
	$sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
	$sel-&amp;gt;addPermissions();&lt;br /&gt;
	$result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
	$total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
	if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
		$block_arr = Array();&lt;br /&gt;
		$block_arr[&amp;#039;total&amp;#039;] = $total;&lt;br /&gt;
		$block_arr[&amp;#039;per_page&amp;#039;] = $per_page;&lt;br /&gt;
		$lines = Array();&lt;br /&gt;
		for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
			&lt;br /&gt;
			if ($order==false){&lt;br /&gt;
				$ii=$sz-$i-1;&lt;br /&gt;
			}else{&lt;br /&gt;
				$ii=$i;&lt;br /&gt;
			}&lt;br /&gt;
			if ($ii &amp;lt; $limit || $limit === false) {&lt;br /&gt;
				$element_id = $result[$ii];&lt;br /&gt;
				$element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
				if(!$element) continue;&lt;br /&gt;
&lt;br /&gt;
					$line_arr = Array();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:id&amp;#039;] = $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;attribute:name&amp;#039;] = $line_arr[&amp;#039;void:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
					$line_arr[&amp;#039;void:alt_name&amp;#039;] = $element-&amp;gt;getAltName();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:link&amp;#039;] = umiHierarchy::getInstance()-&amp;gt;getPathById($element_id);&lt;br /&gt;
					$line_arr[&amp;#039;xlink:href&amp;#039;] = &amp;quot;upage://&amp;quot; . $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;question&amp;#039;] = nl2br($element-&amp;gt;getValue(&amp;quot;question&amp;quot;));&lt;br /&gt;
					$line_arr[&amp;#039;answer&amp;#039;] = ($answer = $element-&amp;gt;getValue(&amp;quot;answer&amp;quot;)) ? nl2br($answer) : nl2br($element-&amp;gt;getValue(&amp;quot;content&amp;quot;));&lt;br /&gt;
					&lt;br /&gt;
					templater::pushEditable(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;, $element_id);&lt;br /&gt;
&lt;br /&gt;
					$lines []= def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$block_arr[&amp;#039;subnodes:items&amp;#039;] = $block_arr[&amp;#039;void:lines&amp;#039;] = $lines;&lt;br /&gt;
			&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
			} else {&lt;br /&gt;
				return $template_block_empty;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, нужно добавить разрешение на использование этого макроса в файле ~/classes/modules/faq/permissions.custom.php или ~/classes/components/faq/permissions.custom.php в зависимости от используемой реализации модулей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$permissions = Array(&lt;br /&gt;
		&amp;#039;projects&amp;#039; =&amp;gt; Array(&amp;#039;category_custom&amp;#039;)&lt;br /&gt;
	);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Макрос вызывается аналогично макросу %faq category()% (%faq category_custom()%).&lt;br /&gt;
В качестве пятого параметра макрос принимает направление вывода, по умолчанию false, в этом случае первым выведется последний добавленный вопрос, передав пятым параметром значение &amp;quot;1&amp;quot; (true), последний вопрос будет внизу страницы. остальные параметры полностью соответствуют макросу %faq category()%.&lt;br /&gt;
[[Категория:Написание кастомных макросов]][[Категория:Модуль FAQ]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8311</id>
		<title>Вывод вопросов в FAQ в нужной последовательности</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_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%B2_FAQ_%D0%B2_%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8311"/>
		<updated>2018-05-29T10:13:05Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Макрос %faq category()% выводит последний заданный вопрос внизу страницы. Иногда возникает ситуация, когда требуется вывести вопросы в обратном порядке, то есть последний вопрос вверху страницы. Для этого можно написать кастомный макрос, в котором будет другая последовательность вывода.&lt;br /&gt;
В файл ~/classes/modules/faq/_custom.php или ~/classes/components/faq/customMacros.php в зависимости от используемой Вами реализации модулей после строки //TODO: Write here your own macroses нужно добавить код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	public function category_custom($template = &amp;quot;default&amp;quot;, $element_path = false, $limit = false, $ignore_paging = false, $order = false) {		&lt;br /&gt;
	if($this-&amp;gt;breakMe()) return;&lt;br /&gt;
	if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
	list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates(&amp;quot;faq/&amp;quot;.$template, &amp;quot;questions_block&amp;quot;, &amp;quot;questions_block_empty&amp;quot;, &amp;quot;questions_block_line&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
	$category_id = $this-&amp;gt;analyzeRequiredPath($element_path);&lt;br /&gt;
&lt;br /&gt;
	$hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
	$per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
	$curr_page = (int) getRequest(&amp;#039;p&amp;#039;);&lt;br /&gt;
	if($ignore_paging) $curr_page = 0;&lt;br /&gt;
		&lt;br /&gt;
	$sel = new umiSelection;&lt;br /&gt;
	$sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
	$sel-&amp;gt;addHierarchyFilter($category_id);&lt;br /&gt;
	$sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
	$sel-&amp;gt;addPermissions();&lt;br /&gt;
	$result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
	$total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
	if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
		$block_arr = Array();&lt;br /&gt;
		$block_arr[&amp;#039;total&amp;#039;] = $total;&lt;br /&gt;
		$block_arr[&amp;#039;per_page&amp;#039;] = $per_page;&lt;br /&gt;
		$lines = Array();&lt;br /&gt;
		for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
			&lt;br /&gt;
			if ($order==false){&lt;br /&gt;
				$ii=$sz-$i-1;&lt;br /&gt;
			}else{&lt;br /&gt;
				$ii=$i;&lt;br /&gt;
			}&lt;br /&gt;
			if ($ii &amp;lt; $limit || $limit === false) {&lt;br /&gt;
				$element_id = $result[$ii];&lt;br /&gt;
				$element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
				if(!$element) continue;&lt;br /&gt;
&lt;br /&gt;
					$line_arr = Array();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:id&amp;#039;] = $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;attribute:name&amp;#039;] = $line_arr[&amp;#039;void:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
					$line_arr[&amp;#039;void:alt_name&amp;#039;] = $element-&amp;gt;getAltName();&lt;br /&gt;
					$line_arr[&amp;#039;attribute:link&amp;#039;] = umiHierarchy::getInstance()-&amp;gt;getPathById($element_id);&lt;br /&gt;
					$line_arr[&amp;#039;xlink:href&amp;#039;] = &amp;quot;upage://&amp;quot; . $element_id;&lt;br /&gt;
					$line_arr[&amp;#039;question&amp;#039;] = nl2br($element-&amp;gt;getValue(&amp;quot;question&amp;quot;));&lt;br /&gt;
					$line_arr[&amp;#039;answer&amp;#039;] = ($answer = $element-&amp;gt;getValue(&amp;quot;answer&amp;quot;)) ? nl2br($answer) : nl2br($element-&amp;gt;getValue(&amp;quot;content&amp;quot;));&lt;br /&gt;
					&lt;br /&gt;
					templater::pushEditable(&amp;quot;faq&amp;quot;, &amp;quot;question&amp;quot;, $element_id);&lt;br /&gt;
&lt;br /&gt;
					$lines []= def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$block_arr[&amp;#039;subnodes:items&amp;#039;] = $block_arr[&amp;#039;void:lines&amp;#039;] = $lines;&lt;br /&gt;
			&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
			} else {&lt;br /&gt;
				return $template_block_empty;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, нужно добавить разрешение на использование этого макроса в файле ~/classes/modules/faq/permissions.custom.php:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$permissions = Array(&lt;br /&gt;
		&amp;#039;projects&amp;#039; =&amp;gt; Array(&amp;#039;category_custom&amp;#039;)&lt;br /&gt;
	);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Макрос вызывается аналогично макросу %faq category()% (%faq category_custom()%).&lt;br /&gt;
В качестве пятого параметра макрос принимает направление вывода, по умолчанию false, в этом случае первым выведется последний добавленный вопрос, передав пятым параметром значение &amp;quot;1&amp;quot; (true), последний вопрос будет внизу страницы. остальные параметры полностью соответствуют макросу %faq category()%.&lt;br /&gt;
С версии 2.8.5.2 данный функционал присутствует в коробочной версии.&lt;br /&gt;
[[Категория:Написание кастомных макросов]][[Категория:Модуль FAQ]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B_%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8310</id>
		<title>Меняем отображение даты новости</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B_%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8310"/>
		<updated>2018-05-29T09:25:11Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]][[Категория:Модуль Новости]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Если вы хотите изменить стиль вывода даты публикации новостей в XSLT демо-шаблоне «современный», то вам необходимо внести изменения в  таблицу стилей модуля новостной ленты по адресу &amp;quot;\xslt\modules\news\news-list.xsl&amp;quot;. Изначально она выводит ленту примерно следующего вида:&lt;br /&gt;
&lt;br /&gt;
[[Файл:NewsDataOld.png]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы в этой таблице изменить только дату публикации в конце шаблона необходимо добавить следующую конструкцию: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;property[@name = &amp;#039;publish_time&amp;#039;]&amp;quot;&amp;gt;&amp;lt;/xsl:template&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Вызов даты публикации происходит с помощью инструкции «value-of» вида:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(d.m.Y/)&amp;#039;))/udata&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Причем, чтобы в $pdate была нужная нам отформатированная информация о дате, необходимо обратиться к макросу %system convertDate()%.&lt;br /&gt;
Сделать это можно так &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:variable name=&amp;quot;pdate&amp;quot; select=&amp;quot;value/@unix-timestamp&amp;quot; /&amp;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;property[@name = &amp;#039;publish_time&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;pdate&amp;quot; select=&amp;quot;value/@unix-timestamp&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;font-size: 200%;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(d/)&amp;#039;))/udata&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(m.Y)&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;
&lt;br /&gt;
А результат так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Newsdata.png]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0_%D1%87%D0%B8%D1%81%D0%BB%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B5%D0%B9_%D0%B4%D0%B0%D1%82%D1%8B_%D1%81%D0%BB%D0%BE%D0%B2%D0%BE%D0%BC&amp;diff=8309</id>
		<title>Замена числовой составляющей даты словом</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0_%D1%87%D0%B8%D1%81%D0%BB%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B5%D0%B9_%D0%B4%D0%B0%D1%82%D1%8B_%D1%81%D0%BB%D0%BE%D0%B2%D0%BE%D0%BC&amp;diff=8309"/>
		<updated>2018-05-29T09:24:28Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Задание: нам требуется чтобы дата публикации новости отражалась не в формате 21.12.2012, а, например, в формате&lt;br /&gt;
&amp;quot;21 декабря&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Решение рассматривается для шаблона современный интернет магазин (demodizzy).&lt;br /&gt;
&lt;br /&gt;
Для начала, поместим следующий код в файл classes/modules/custom.php или classes/components/custom.php, в зависимости от используемой реализации модулей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
                public function getDay($timestamp) {&lt;br /&gt;
	        $pre_lang = cmsController::getInstance()-&amp;gt;getModule(&amp;quot;content&amp;quot;)-&amp;gt;pre_lang;&lt;br /&gt;
		if ($pre_lang != &amp;quot;&amp;quot; &amp;amp;&amp;amp; $pre_lang != &amp;quot;/ru&amp;quot;) {&lt;br /&gt;
			return date(&amp;quot;F&amp;quot;, $timestamp);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$d = date(&amp;quot;d&amp;quot;, $timestamp);&lt;br /&gt;
		&lt;br /&gt;
		return &amp;quot;$d &amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
		public function getMonth($timestamp) {&lt;br /&gt;
		$pre_lang = cmsController::getInstance()-&amp;gt;getModule(&amp;quot;content&amp;quot;)-&amp;gt;pre_lang;&lt;br /&gt;
		if ($pre_lang != &amp;quot;&amp;quot; &amp;amp;&amp;amp; $pre_lang != &amp;quot;/ru&amp;quot;) {&lt;br /&gt;
			return date(&amp;quot;F&amp;quot;, $timestamp);&lt;br /&gt;
		}&lt;br /&gt;
		$m = date(&amp;quot;m&amp;quot;, $timestamp);&lt;br /&gt;
		&lt;br /&gt;
		switch ($m) {&lt;br /&gt;
			case &amp;quot;01&amp;quot;: return &amp;quot;января&amp;quot;;&lt;br /&gt;
			case &amp;quot;02&amp;quot;: return &amp;quot;февраля&amp;quot;;&lt;br /&gt;
			case &amp;quot;03&amp;quot;: return &amp;quot;марта&amp;quot;;&lt;br /&gt;
			case &amp;quot;04&amp;quot;: return &amp;quot;апреля&amp;quot;;&lt;br /&gt;
			case &amp;quot;05&amp;quot;: return &amp;quot;мая&amp;quot;;&lt;br /&gt;
			case &amp;quot;06&amp;quot;: return &amp;quot;июня&amp;quot;;&lt;br /&gt;
			case &amp;quot;07&amp;quot;: return &amp;quot;июля&amp;quot;;&lt;br /&gt;
			case &amp;quot;08&amp;quot;: return &amp;quot;августа&amp;quot;;&lt;br /&gt;
			case &amp;quot;09&amp;quot;: return &amp;quot;сентября&amp;quot;;&lt;br /&gt;
			case &amp;quot;10&amp;quot;: return &amp;quot;октября&amp;quot;;&lt;br /&gt;
			case &amp;quot;11&amp;quot;: return &amp;quot;ноября&amp;quot;;&lt;br /&gt;
			case &amp;quot;12&amp;quot;: return &amp;quot;декабря&amp;quot;;&lt;br /&gt;
		}		&lt;br /&gt;
		return &amp;quot;&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь отредактируем шаблон /xslt/modules/news/news-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;div class=&amp;quot;date&amp;quot; umi:field-name=&amp;quot;publish_time&amp;quot; umi:empty=&amp;quot;&amp;amp;empty-page-date;&amp;quot;&amp;gt;&amp;lt;/div&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;
&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://custom/getDay/&amp;#039;, @publish_time, &amp;#039;/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://custom/getMonth/&amp;#039;, @publish_time, &amp;#039;/&amp;#039;))&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Написание кастомных макросов]][[Категория:Модуль Новости]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B_%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8308</id>
		<title>Меняем отображение даты новости</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B_%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&amp;diff=8308"/>
		<updated>2018-05-29T09:11:06Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]][[Категория:Модуль Новости]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Если вы хотите изменить стиль вывода даты публикации новостей в XSLT демо-шаблоне «современный», то вам необходимо внести изменения в  таблицу стилей модуля новостной ленты по адресу &amp;quot;\xsltTpls\modules\news\news-list.xsl&amp;quot;. Изначально она выводит ленту примерно следующего вида:&lt;br /&gt;
&lt;br /&gt;
[[Файл:NewsDataOld.png]]&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы в этой таблице изменить только дату публикации в конце шаблона необходимо добавить следующую конструкцию: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;property[@name = &amp;#039;publish_time&amp;#039;]&amp;quot;&amp;gt;&amp;lt;/xsl:template&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Вызов даты публикации происходит с помощью инструкции «value-of» вида:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(d.m.Y/)&amp;#039;))/udata&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Причем, чтобы в $pdate была нужная нам отформатированная информация о дате, необходимо обратиться к макросу %system convertDate()%.&lt;br /&gt;
Сделать это можно так &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:variable name=&amp;quot;pdate&amp;quot; select=&amp;quot;value/@unix-timestamp&amp;quot; /&amp;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;property[@name = &amp;#039;publish_time&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;pdate&amp;quot; select=&amp;quot;value/@unix-timestamp&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;font-size: 200%;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(d/)&amp;#039;))/udata&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/span&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;document(concat(&amp;#039;udata://system/convertDate/&amp;#039;, $pdate, &amp;#039;/(m.Y)&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;
&lt;br /&gt;
А результат так:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Newsdata.png]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_GET_%D0%B8_POST_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=8307</id>
		<title>Использование GET и POST параметров в XSLT-шаблонах</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_GET_%D0%B8_POST_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D0%B2_XSLT-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85&amp;diff=8307"/>
		<updated>2018-05-29T08:58:47Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Верстка в XSLT]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В UMI.CMS предусмотрена возможность использования GET и POST параметров в XSLT-шаблонах. Для этого их необходимо инициализировать как глобальные параметры в шаблоне при помощи инструкции &amp;lt;xsl:param&amp;gt; (после инструкции &amp;lt;xsl:output&amp;gt;, на одном уровне c &amp;lt;xsl:template&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
В отличие от серверных переменных (см. [[Использование серверных переменных в XSLT-шаблонах]]) они инициализируются тем же именем, за исключением многомерных массивов, в которых символы &amp;quot;[&amp;quot; и &amp;quot;]&amp;quot; должны быть заменены на &amp;quot;.&amp;quot; (точка).&lt;br /&gt;
&lt;br /&gt;
Например, если создать следующий шаблон: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:output method=&amp;quot;html&amp;quot; version=&amp;quot;4.01&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param1&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param2&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;get_param3&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param1&amp;quot; select=&amp;quot;10&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param2&amp;quot; select=&amp;quot;11&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;post_param3&amp;quot; select=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:param name=&amp;quot;data.new.price&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- main template --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param1: &amp;lt;xsl:value-of select=&amp;quot;$get_param1&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param2: &amp;lt;xsl:value-of select=&amp;quot;$get_param2&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$get_param3: &amp;lt;xsl:value-of select=&amp;quot;$get_param3&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param1: &amp;lt;xsl:value-of select=&amp;quot;$post_param1&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param2: &amp;lt;xsl:value-of select=&amp;quot;$post_param2&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;$post_param3: &amp;lt;xsl:value-of select=&amp;quot;$post_param3&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;$data.new.price: &amp;lt;xsl:value-of select=&amp;quot;$data.new.price&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;/about/&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param1&amp;quot; value=&amp;quot;21&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param2&amp;quot; value=&amp;quot;22&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;post_param3&amp;quot; value=&amp;quot;23&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;send&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И назначить его для страниц сайта, то при запросе вида &amp;lt;nowiki&amp;gt;http://адрес_сайта/?get_param1=10&amp;amp;get_param2=11&amp;amp;get_param3=12&amp;amp;data[new][price]=1200&amp;lt;/nowiki&amp;gt; мы увидим следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $get_param1: 10&lt;br /&gt;
    * $get_param2: 11&lt;br /&gt;
    * $get_param3: 12&lt;br /&gt;
    * $post_param1: 10&lt;br /&gt;
    * $post_param2: 11&lt;br /&gt;
    * $post_param3: 12&lt;br /&gt;
    * $data.new.price: 1200&lt;br /&gt;
&lt;br /&gt;
   ... здесь будет форма ...  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что в шаблон не было передано POST параметров, однако мы указали им значение по умолчанию, которое и вывелось в итоге.&lt;br /&gt;
&lt;br /&gt;
Если теперь отправить форму, то произойдет переход на страницу &amp;lt;nowiki&amp;gt;http://адрес_сайта/about/&amp;lt;/nowiki&amp;gt; (допустим она тоже выводится по этому же шаблону), и в браузере мы увидим уже следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    * $get_param1:&lt;br /&gt;
    * $get_param2:&lt;br /&gt;
    * $get_param3:&lt;br /&gt;
    * $post_param1: 21&lt;br /&gt;
    * $post_param2: 22&lt;br /&gt;
    * $post_param3: 23&lt;br /&gt;
    * $data.new.price:&lt;br /&gt;
&lt;br /&gt;
   ... здесь будет форма ...  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно видеть в этом случае POST параметры получили переданные из формы значения, и они выводятся вместо значений по умолчанию. Остальные параметры не были приняты, поэтому получили пустое значение (определенное по умолчанию).&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8306</id>
		<title>Zoom эффект для изображения</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8306"/>
		<updated>2018-05-29T07:55:20Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для TPL-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом [http://wiki.umisoft.ru/images/0/0a/Zoom.zip][[Файл:Zoom.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке &amp;#039;&amp;#039;/templates/имя_шаблона/css&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/content/inner.tpl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/имя_шаблона/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/имя_шаблона/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/thumbs/catalog_view.tpl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;%link%&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 10, adjustY: -4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%src%&amp;quot; width=&amp;quot;%width%&amp;quot; height=&amp;quot;%height%&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;float: left; margin-right: 20px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Homyaksmilezoom.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для XSLT-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом zoom.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке /templates/имя_шаблона/css&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/layouts/default.xsl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/имя_шаблона/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/имя_шаблона/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/modules/catalog/object-view.xsl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;{.//property[@name = &amp;#039;photo&amp;#039;]/value}&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 0, adjustY: 0&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;page/@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;width&amp;quot;&amp;gt;281&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;/source&amp;gt;&lt;br /&gt;
5. В файле cloud-zoom.css может потребоваться некоторая корректировка стилей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.cloud-zoom img {&lt;br /&gt;
display: inline !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Erecsonnzoom.png]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Сторонние сервисы и программы]][[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Каталог]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8305</id>
		<title>Zoom эффект для изображения</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8305"/>
		<updated>2018-05-29T07:54:27Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для TPL-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом [http://wiki.umisoft.ru/images/0/0a/Zoom.zip][[Файл:Zoom.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке &amp;#039;&amp;#039;/templates/имя_шаблона/css&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/content/inner.tpl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/имя_шаблона/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/имя_шаблона/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/thumbs/catalog_view.tpl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;%link%&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 10, adjustY: -4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%src%&amp;quot; width=&amp;quot;%width%&amp;quot; height=&amp;quot;%height%&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;float: left; margin-right: 20px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Homyaksmilezoom.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для XSLT-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом zoom.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке /templates/имя_шаблона/css&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/layouts/default.xsl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/имя_шаблона/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/имя_шаблона/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/modules/catalog/object-view.xsl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;{.//property[@name = &amp;#039;photo&amp;#039;]/value}&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 0, adjustY: 0&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;page/@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;width&amp;quot;&amp;gt;281&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;/source&amp;gt;&lt;br /&gt;
5. В файле cloud-zoom.css может потребоваться некоторая корректировка стилей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.cloud-zoom img {&lt;br /&gt;
display: inline !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Erecsonnzoom.png]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Сторонние сервисы и программы]][[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Каталог]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8304</id>
		<title>Zoom эффект для изображения</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Zoom_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=8304"/>
		<updated>2018-05-29T07:53:53Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для TPL-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом [http://wiki.umisoft.ru/images/0/0a/Zoom.zip][[Файл:Zoom.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке &amp;#039;&amp;#039;/templates/имя_шаблона/css&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/content/inner.tpl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/имя_шаблона/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/имя_шаблона/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/tpls/thumbs/catalog_view.tpl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;%link%&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 10, adjustY: -4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%src%&amp;quot; width=&amp;quot;%width%&amp;quot; height=&amp;quot;%height%&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;float: left; margin-right: 20px;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Homyaksmilezoom.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для XSLT-шаблонизатора:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Скачиваем папку со скриптом zoom.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2. Располагаем файл cloud-zoom.1.0.2.min.js в папке &amp;#039;&amp;#039;/templates/имя_шаблона/js&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
а файл cloud-zoom.css в папке /templates/имя_шаблона/css&amp;lt;br/&amp;gt;&lt;br /&gt;
3. Подключаем файлы в шаблоне дизайна, который используется для отображения каталога. В нашем случае это шаблон: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/layouts/default.xsl&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/templates/&amp;#039;&amp;#039;&amp;#039;имя_шаблона&amp;#039;&amp;#039;&amp;#039;/css/cloud-zoom.css?%system_build%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/templates/&amp;#039;&amp;#039;&amp;#039;имя_шаблона&amp;#039;&amp;#039;&amp;#039;/js/cloud-zoom.1.0.2.min.js?%system_build%&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
4. Идём в шаблон по которому отображается картинка: &amp;#039;&amp;#039;/templates/имя_шаблона/xslt/modules/catalog/object-view.xsl&amp;#039;&amp;#039;&lt;br /&gt;
и обрамляем изображение ссылкой:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;{.//property[@name = &amp;#039;photo&amp;#039;]/value}&amp;quot; class=&amp;quot;cloud-zoom&amp;quot; id=&amp;quot;zoom1&amp;quot; rel=&amp;quot;adjustX: 0, adjustY: 0&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;page/@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;width&amp;quot;&amp;gt;281&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;/source&amp;gt;&lt;br /&gt;
5. В файле cloud-zoom.css может потребоваться некоторая корректировка стилей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.cloud-zoom img {&lt;br /&gt;
display: inline !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Erecsonnzoom.png]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Сторонние сервисы и программы]][[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Каталог]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8302</id>
		<title>Добавить JavaScript в шаблон</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8302"/>
		<updated>2018-05-29T07:20:25Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: переименовал «Добавить JavaScript в xslt» в «Добавить JavaScript в шаблон»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Иногда необходимо добавить JavaScript в свой шаблон. Сделать это можно так, открываем файл по которому осуществляется вывод сайта и вставляем между тегами &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; подключаемый JavaScript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;alert( &amp;#039;Привет, Мир!&amp;#039; )&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная инструкция подходит для всех шаблонизаторов.&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_xslt&amp;diff=8303</id>
		<title>Добавить JavaScript в xslt</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_xslt&amp;diff=8303"/>
		<updated>2018-05-29T07:20:25Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: переименовал «Добавить JavaScript в xslt» в «Добавить JavaScript в шаблон»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Добавить JavaScript в шаблон]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8301</id>
		<title>Добавить JavaScript в шаблон</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8301"/>
		<updated>2018-05-29T07:19:36Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Иногда необходимо добавить JavaScript в свой шаблон. Сделать это можно так, открываем файл по которому осуществляется вывод сайта и вставляем между тегами &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; подключаемый JavaScript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;alert( &amp;#039;Привет, Мир!&amp;#039; )&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная инструкция подходит для всех шаблонизаторов.&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8300</id>
		<title>Добавить JavaScript в шаблон</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_JavaScript_%D0%B2_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD&amp;diff=8300"/>
		<updated>2018-05-29T07:17:11Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Иногда необходимо добавить JavaScript в свой шаблон. Сделать это можно так, открываем файл по которому осуществляется вывод сайта и вставляем между тегами &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt; подключаемый JavaScript:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;alert( &amp;#039;Привет, Мир!&amp;#039; )&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8240</id>
		<title>Использование знака рубля</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8240"/>
		<updated>2018-05-23T08:00:01Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; внедрить в интернет-магазин отображение цен с символом российской денежной единицы утвержденным 11 декабря 2013 года.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Так как специального символа для отображения знака рубля ещё не существует, то были разработаны различные шрифты, используя которые мы можем превратить практически любую букву латинского алфавита в то или иное начертание знака рубля.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для XSLT&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Современный&amp;quot; [demodizzy])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) Заменяем соответствующие темплейты, по которому отображаются цены /templates/demodizzy/xslt/modules/emarket/price.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;total-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot; mode=&amp;quot;discounted-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price[not(original) or original = &amp;#039;&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demodizzy/css/modules.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
	padding: 0 0 0 0.5em !important;&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
    font-size: 1.2em !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demodizzy/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble4.png]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble2.png]]&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны basket.xsl и cart.xsl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для TPL&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Классический&amp;quot; [demoold])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) изменяем файл, по которому отображаются цены /templates/demoold/tpls/emarket/short.tpl&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;price_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
%price-original%&lt;br /&gt;
%price-actual%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_original&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;strike&amp;gt;%prefix% %original% %suffix%&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_actual&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
%system ifClause(&amp;#039;%prefix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;%prefix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
&amp;lt;span class=&amp;quot;value-price&amp;quot;  umi:element-id=&amp;quot;%id%&amp;quot; umi:field-name=&amp;quot;price&amp;quot;&amp;gt;%actual%&amp;lt;/span&amp;gt;&lt;br /&gt;
%system ifClause(&amp;#039;%suffix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;%suffix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
		&lt;br /&gt;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demoold/css/style.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demoold/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв (в примере используется буква &amp;#039;c&amp;#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble3.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны /templates/demoold/tpls/emarket/default.tpl и basket.tpl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Интернет магазин]][[Категория:Модуль Каталог]][[Категория:Сторонние сервисы и программы]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8238</id>
		<title>Использование знака рубля</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8238"/>
		<updated>2018-05-23T07:42:29Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; внедрить в интернет-магазин отображение цен с символом российской денежной единицы утвержденным 11 декабря 2013 года.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Так как специального символа для отображения знака рубля ещё не существует, то были разработаны различные шрифты, используя которые мы можем превратить практически любую букву латинского алфавита в то или иное начертание знака рубля.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для XSLT&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Современный&amp;quot; [demodizzy])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) Заменяем содержимое файла, по которому отображаются цены /templates/demodizzy/xslt/modules/emarket/price.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;total-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot; mode=&amp;quot;discounted-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price[not(original) or original = &amp;#039;&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demodizzy/css/modules.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
	padding: 0 0 0 0.5em !important;&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
    font-size: 1.2em !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demodizzy/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble4.png]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble2.png]]&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны basket.xsl и cart.xsl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для TPL&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Классический&amp;quot; [demoold])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) изменяем файл, по которому отображаются цены /templates/demoold/tpls/emarket/short.tpl&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;price_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
%price-original%&lt;br /&gt;
%price-actual%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_original&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;strike&amp;gt;%prefix% %original% %suffix%&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_actual&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
%system ifClause(&amp;#039;%prefix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;%prefix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
&amp;lt;span class=&amp;quot;value-price&amp;quot;  umi:element-id=&amp;quot;%id%&amp;quot; umi:field-name=&amp;quot;price&amp;quot;&amp;gt;%actual%&amp;lt;/span&amp;gt;&lt;br /&gt;
%system ifClause(&amp;#039;%suffix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;%suffix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
		&lt;br /&gt;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demoold/css/style.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demoold/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв (в примере используется буква &amp;#039;c&amp;#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble3.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны /templates/demoold/tpls/emarket/default.tpl и basket.tpl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Интернет магазин]][[Категория:Модуль Каталог]][[Категория:Сторонние сервисы и программы]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8237</id>
		<title>Использование знака рубля</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0_%D1%80%D1%83%D0%B1%D0%BB%D1%8F&amp;diff=8237"/>
		<updated>2018-05-23T07:41:57Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; внедрить в интернет-магазин отображение цен с символом российской денежной единицы утвержденным 11 декабря 2013 года.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Так как специального символа для отображения знака рубля ещё не существует, то были разработаны различные шрифты, используя которые мы можем превратить практически любую букву латинского алфавита в то или иное начертание знака рубля.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для XSLT&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Современный&amp;quot; [demodizzy])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) Заменяем содержимое файла, по которому отображаются цены /templates/demodizzy/xslt/modules/emarket/price.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;total-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot; mode=&amp;quot;discounted-price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;price[not(original) or original = &amp;#039;&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@prefix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@prefix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;span class=&amp;quot;value-price&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;actual&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;@suffix&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@suffix&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demodizzy/css/modules.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
	padding: 0 0 0 0.5em !important;&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
    font-size: 1.2em !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demodizzy/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble4.png]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble2.png]]&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны basket.xsl и cart.xsl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внедрение для TPL&amp;#039;&amp;#039;&amp;#039; (на примере интернет-магазина &amp;quot;Классический&amp;quot; [demoold])&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
1) изменяем файл, по которому отображаются цены /templates/demoold/tpls/emarket/short.tpl&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;price_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
%price-original%&lt;br /&gt;
%price-actual%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_original&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;strike&amp;gt;%prefix% %original% %suffix%&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;price_actual&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
%system ifClause(&amp;#039;%prefix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;prefix&amp;quot;&amp;gt;%prefix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
&amp;lt;span class=&amp;quot;value-price&amp;quot;  umi:element-id=&amp;quot;%id%&amp;quot; umi:field-name=&amp;quot;price&amp;quot;&amp;gt;%actual%&amp;lt;/span&amp;gt;&lt;br /&gt;
%system ifClause(&amp;#039;%suffix%&amp;#039;, &amp;#039;&amp;lt;span class=&amp;quot;suffix&amp;quot;&amp;gt;%suffix%&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)%&lt;br /&gt;
		&lt;br /&gt;
END;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2) описываем стили в файле: /templates/demoold/css/style.css&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot; &amp;gt;&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;#039;ALSRublRegular&amp;#039;;&lt;br /&gt;
	src: url(&amp;#039;rouble.eot&amp;#039;);&lt;br /&gt;
	src: local(&amp;#039;ALS Rubl&amp;#039;), local(&amp;#039;ALSRubl&amp;#039;), url(&amp;#039;rouble.woff&amp;#039;) format(&amp;#039;woff&amp;#039;), url(&amp;#039;rouble.ttf&amp;#039;) format(&amp;#039;truetype&amp;#039;), url(&amp;#039;rouble.svg#ALSRubl&amp;#039;) format(&amp;#039;svg&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
.suffix {&lt;br /&gt;
    font-family: &amp;quot;ALSRublRegular&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3) размещаем файлы из прикрепленного архива [[Файл:Rouble.zip]] в той же папке со стилями: /templates/demoold/css/&amp;lt;br/&amp;gt;&lt;br /&gt;
4) в модуле Интернет-магазина на вкладке &amp;quot;Валюты&amp;quot;, выбираем российский рубль и в качестве суффикса назначаем одну из латинских букв (в примере используется буква &amp;#039;c&amp;#039;)&amp;lt;br/&amp;gt;&lt;br /&gt;
5) Проверяем:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Файл:Znakrouble3.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039; В корзине цены отображаются отдельно, поэтому Вам придется аналогичным образом скорректировать шаблоны /templates/demoold/tpls/emarket/default.tpl и basket.tpl&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в TPL]][[Категория:Верстка в XSLT]][[Категория:Модуль Интернет магазин]][[Категория:Модуль Каталог]][[Категория:Сторонние сервисы и программы]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8233</id>
		<title>Добавить видео из YouTube</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8233"/>
		<updated>2018-05-23T07:00:52Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Сторонние сервисы и программы]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить видео с YouTube на страницу сайта необходимо выполнить следующую последовательность действий.&lt;br /&gt;
&lt;br /&gt;
1. На странице с видео на YouTube выбрать раздел Поделиться(1)\Встроить(2).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout.png]]&lt;br /&gt;
&lt;br /&gt;
2. Выбрать необходимые Вам параметры, размер видео(3).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout2.png]]&lt;br /&gt;
&lt;br /&gt;
3. В административной части сайта, открыть нужную страницу на редактирование, и в визуальном редакторе(ВИЗИВИГ) нажав кнопку &amp;quot;Исходный код&amp;quot; вставит полученный код.&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout3.png]]&lt;br /&gt;
&lt;br /&gt;
Незабудьте сохранить изменения!&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout3.png&amp;diff=8232</id>
		<title>Файл:Yout3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout3.png&amp;diff=8232"/>
		<updated>2018-05-23T07:00:22Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8231</id>
		<title>Добавить видео из YouTube</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8231"/>
		<updated>2018-05-23T06:54:31Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Сторонние сервисы и программы]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить видео с YouTube на страницу сайта необходимо выполнить следующую последовательность действий.&lt;br /&gt;
&lt;br /&gt;
1. На странице с видео на YouTube выбрать раздел Поделиться(1)\Встроить(2).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout.png]]&lt;br /&gt;
&lt;br /&gt;
2. Выбрать необходимые Вам параметры, размер видео(3).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout2.png]]&lt;br /&gt;
&lt;br /&gt;
3. В административной части сайта, открыть нужную страницу на редактирование, и в визуальном редакторе(ВИЗИВИГ) нажав кнопку &amp;quot;Редактировать HTML-код&amp;quot; вставит полученный код.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Youtube2.png.png]]&lt;br /&gt;
&lt;br /&gt;
Незабудьте сохранить изменения!&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout2.png&amp;diff=8230</id>
		<title>Файл:Yout2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout2.png&amp;diff=8230"/>
		<updated>2018-05-23T06:54:16Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: загружена новая версия «Файл:Yout2.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout2.png&amp;diff=8229</id>
		<title>Файл:Yout2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout2.png&amp;diff=8229"/>
		<updated>2018-05-23T06:53:59Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8228</id>
		<title>Добавить видео из YouTube</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8228"/>
		<updated>2018-05-23T06:53:41Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Сторонние сервисы и программы]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить видео с YouTube на страницу сайта необходимо выполнить следующую последовательность действий.&lt;br /&gt;
&lt;br /&gt;
1. На странице с видео на YouTube выбрать раздел Поделиться(1)\Встроить(2).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout.png]]&lt;br /&gt;
&lt;br /&gt;
2. Выбрать необходимые Вам параметры, размер видео(3).&lt;br /&gt;
&lt;br /&gt;
[[Файл:YouTube2.png]]&lt;br /&gt;
&lt;br /&gt;
3. В административной части сайта, открыть нужную страницу на редактирование, и в визуальном редакторе(ВИЗИВИГ) нажав кнопку &amp;quot;Редактировать HTML-код&amp;quot; вставит полученный код.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Youtube2.png.png]]&lt;br /&gt;
&lt;br /&gt;
Незабудьте сохранить изменения!&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout.png&amp;diff=8227</id>
		<title>Файл:Yout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout.png&amp;diff=8227"/>
		<updated>2018-05-23T06:53:13Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: загружена новая версия «Файл:Yout.png»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8226</id>
		<title>Добавить видео из YouTube</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8226"/>
		<updated>2018-05-23T06:51:28Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Сторонние сервисы и программы]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить видео с YouTube на страницу сайта необходимо выполнить следующую последовательность действий.&lt;br /&gt;
&lt;br /&gt;
1. На странице с видео на YouTube выбрать раздел Поделиться(1)\Встроить(2).&lt;br /&gt;
&lt;br /&gt;
[[Файл:yout.png]]&lt;br /&gt;
2. Выбрать необходимые Вам параметры, размер видео(3).&lt;br /&gt;
&lt;br /&gt;
[[Файл:YouTube2.png]]&lt;br /&gt;
&lt;br /&gt;
3. В административной части сайта, открыть нужную страницу на редактирование, и в визуальном редакторе(ВИЗИВИГ) нажав кнопку &amp;quot;Редактировать HTML-код&amp;quot; вставит полученный код.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Youtube2.png.png]]&lt;br /&gt;
&lt;br /&gt;
Незабудьте сохранить изменения!&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout.png&amp;diff=8225</id>
		<title>Файл:Yout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Yout.png&amp;diff=8225"/>
		<updated>2018-05-23T06:50:59Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8223</id>
		<title>Добавить видео из YouTube</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B8%D0%B7_YouTube&amp;diff=8223"/>
		<updated>2018-05-23T06:46:27Z</updated>

		<summary type="html">&lt;p&gt;Sdarks: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[category:Сторонние сервисы и программы]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить видео с YouTube на страницу сайта необходимо выполнить следующую последовательность действий.&lt;br /&gt;
&lt;br /&gt;
1. На странице с видео на YouTube выбрать раздел Поделиться(1)\Встроить(2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Выбрать необходимые Вам параметры, размер видео(3).&lt;br /&gt;
&lt;br /&gt;
[[Файл:YouTube2.png]]&lt;br /&gt;
&lt;br /&gt;
3. В административной части сайта, открыть нужную страницу на редактирование, и в визуальном редакторе(ВИЗИВИГ) нажав кнопку &amp;quot;Редактировать HTML-код&amp;quot; вставит полученный код.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Youtube2.png.png]]&lt;br /&gt;
&lt;br /&gt;
Незабудьте сохранить изменения!&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Sdarks</name></author>
		
	</entry>
</feed>