<?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=SpeLL</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=SpeLL"/>
	<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/SpeLL"/>
	<updated>2026-04-20T00:19:03Z</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%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D1%87%D1%91%D1%82%D0%B5_%D0%B4%D0%BB%D1%8F_%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BB%D0%B8%D1%86_%D1%86%D0%B5%D0%BD%D1%8B_%D1%81_%D0%9D%D0%94%D0%A1&amp;diff=4227</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%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D1%87%D1%91%D1%82%D0%B5_%D0%B4%D0%BB%D1%8F_%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BB%D0%B8%D1%86_%D1%86%D0%B5%D0%BD%D1%8B_%D1%81_%D0%9D%D0%94%D0%A1&amp;diff=4227"/>
		<updated>2012-11-30T15:31:04Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «Задача: нужно в  счёте для юридических лиц выводить цену с указанным НДС.  Решение: редакти…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: нужно в  счёте для юридических лиц выводить цену с указанным НДС.&lt;br /&gt;
&lt;br /&gt;
Решение: редактируем шаблон, по которому выводится упомянутый выше шаблон. Находится он в файле \templates\demodizzy\xslt\sys-tpls\emarket-invoice.xsl:&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet [ &amp;lt;!ENTITY nbsp &amp;quot;&amp;amp;#160;&amp;quot;&amp;gt; ]&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet	version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
		xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
		xmlns:php=&amp;quot;http://php.net/xsl&amp;quot;&lt;br /&gt;
		xsl:extension-element-prefixes=&amp;quot;php&amp;quot;&lt;br /&gt;
		exclude-result-prefixes=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:output encoding=&amp;quot;utf-8&amp;quot; method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;payment&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, //property[@name=&amp;#039;payment_id&amp;#039;]/value/item/@id))/udata/object&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;person&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, //property[@name=&amp;#039;legal_person&amp;#039;]/value/item/@id))/udata/object&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;html&amp;gt;&lt;br /&gt;
			&amp;lt;head&amp;gt;&lt;br /&gt;
			&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
			table td {&lt;br /&gt;
			border: 1px solid black;&lt;br /&gt;
			}&lt;br /&gt;
			&amp;lt;/style&amp;gt;&lt;br /&gt;
			&amp;lt;/head&amp;gt;&lt;br /&gt;
			&amp;lt;body id=&amp;quot;invoice&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;div style=&amp;quot;width:620px;&amp;quot;&amp;gt;&amp;lt;!--hr/--&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;table bgcolor=&amp;quot;#FFFFFF&amp;quot; width=&amp;quot;620&amp;quot; height=&amp;quot;1000&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;tr&amp;gt;&lt;br /&gt;
					&amp;lt;td align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;font-family:Arial;font-size:13px;&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;name&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&lt;br /&gt;
						&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
						&amp;lt;b&amp;gt;Адрес: &amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;legal_address&amp;#039;]/value&amp;quot; /&amp;gt;, тел.: &amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;phone_number&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
						&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
						&amp;lt;table class=&amp;quot;tbl&amp;quot; width=&amp;quot;620&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; bordercolor=&amp;quot;#000000&amp;quot; style=&amp;quot;font-family:Arial;font-size:13px;&amp;quot;&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;175&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;ИНН &amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;inn&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;175&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;КПП &amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;kpp&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;54&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot; rowspan=&amp;quot;2&amp;quot;&amp;gt;Сч. №&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;216&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;bottom&amp;quot; rowspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;account&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;350&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
									Получатель&lt;br /&gt;
									&amp;lt;br/&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;name&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; rowspan=&amp;quot;2&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
									Банк получателя&lt;br /&gt;
									&amp;lt;br/&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;bank&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;БИК&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-bottom-width:0px;&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;bik&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Сч. №&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-top-width:0px;&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;bank_account&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
						&amp;lt;/table&amp;gt;&lt;br /&gt;
						&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
						&amp;lt;center style=&amp;quot;font:16 Arial;font-weight:bold;&amp;quot;&amp;gt;СЧЕТ № И/&amp;lt;xsl:value-of select=&amp;quot;/udata/object/@id&amp;quot; /&amp;gt;/П от &amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;dateToString&amp;#039;, number(//property[@name=&amp;#039;order_date&amp;#039;]/value/@unix-timestamp))&amp;quot; /&amp;gt;.&amp;lt;/center&amp;gt;&lt;br /&gt;
						&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
						&amp;lt;table cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;font-family:Arial;font-size:13px;&amp;quot;&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td&amp;gt;&lt;br /&gt;
									Покупатель: ИНН &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;inn&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
									, КПП &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;kpp&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
									, &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;name&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
									, &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;legal_address&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
									, тел: &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;phone_number&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
									, факс: &amp;lt;xsl:value-of select=&amp;quot;$person//property[@name=&amp;#039;fax&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
						&amp;lt;/table&amp;gt;&lt;br /&gt;
						&amp;lt;table class=&amp;quot;tbl&amp;quot; width=&amp;quot;620&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; bordercolor=&amp;quot;#000000&amp;quot; style=&amp;quot;font-family:Arial;font-size:13px;&amp;quot;&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;20&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;№&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;300&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Товар&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;65&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Кол-во&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;65&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Ед.&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;85&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Цена &amp;lt;p&amp;gt;(с НДС, руб.)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td width=&amp;quot;85&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;Сумма &amp;lt;p&amp;gt;(с НДС, руб.)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
							&amp;lt;xsl:apply-templates select=&amp;quot;//property[@name=&amp;#039;order_items&amp;#039;]/value/item&amp;quot; mode=&amp;quot;order-items&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
							&amp;lt;xsl:variable name=&amp;quot;total_original_price&amp;quot; select=&amp;quot;//property[@name=&amp;#039;total_original_price&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:variable name=&amp;quot;total_price&amp;quot; select=&amp;quot;//property[@name=&amp;#039;total_price&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:variable name=&amp;quot;delivery&amp;quot; select=&amp;quot;//property[@name=&amp;#039;delivery_price&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:variable name=&amp;quot;discount&amp;quot; select=&amp;quot;$total_original_price + $delivery - $total_price&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
							&amp;lt;xsl:if test=&amp;quot;$discount &amp;amp;gt; 0&amp;quot;&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
									&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Скидка:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
									&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
											&amp;lt;xsl:value-of select=&amp;quot;format-number($discount, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
									&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
							&amp;lt;xsl:apply-templates select=&amp;quot;//property[@name=&amp;#039;delivery_price&amp;#039;]/value&amp;quot; mode=&amp;quot;delivery&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
							&amp;lt;!--&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;можно  удалить&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;format-number(//property[@name=&amp;#039;total_price&amp;#039;]/value, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;--&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td colspan=&amp;quot;5&amp;quot; align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;b&amp;gt;В том числе НДС 18%: &amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
							&amp;lt;tr&amp;gt;&lt;br /&gt;
								&amp;lt;td colspan=&amp;quot;5&amp;quot; align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Всего к оплате с учётом НДС:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
								&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;format-number(//property[@name=&amp;#039;total_price&amp;#039;]/value, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
							&amp;lt;/tr&amp;gt;&lt;br /&gt;
						&amp;lt;/table&amp;gt;&lt;br /&gt;
						&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
						&amp;lt;p style=&amp;quot;font-family:Arial;font-size:13px;&amp;quot;&amp;gt;&lt;br /&gt;
							Всего наименований &amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;total_amount&amp;#039;]/value&amp;quot; /&amp;gt;, на сумму &amp;lt;xsl:value-of select=&amp;quot;format-number(//property[@name=&amp;#039;total_price&amp;#039;]/value, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt; руб.&lt;br /&gt;
							&amp;lt;br/&amp;gt;&lt;br /&gt;
							&amp;lt;b&amp;gt;(&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;sumToString&amp;#039;, number(//property[@name=&amp;#039;total_price&amp;#039;]/value))&amp;quot; /&amp;gt;)&amp;lt;/b&amp;gt;&lt;br /&gt;
						&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
						&amp;lt;img&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:attribute name=&amp;quot;src&amp;quot;&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:value-of select=&amp;quot;$payment//property[@name=&amp;#039;sign_image&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
						&amp;lt;/img&amp;gt;&lt;br /&gt;
					&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;/table&amp;gt;&lt;br /&gt;
			&amp;lt;/body&amp;gt;&lt;br /&gt;
		&amp;lt;/html&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;order-items&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;object&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, @id))/udata/object&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;20&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;300&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$object/@name&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;65&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$object//property[@name=&amp;#039;item_amount&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;65&amp;quot; align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;шт.&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;85&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;format-number($object//property[@name=&amp;#039;item_price&amp;#039;]/value, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td width=&amp;quot;85&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;format-number($object//property[@name=&amp;#039;item_total_price&amp;#039;]/value, &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;value[.=&amp;#039;0&amp;#039;]&amp;quot; mode=&amp;quot;delivery&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;value&amp;quot; mode=&amp;quot;delivery&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Доставка:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td align=&amp;quot;right&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;format-number(., &amp;#039;#.00&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Интернет магазин]] [[Категория:XSLT шаблонизатор]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4226</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4226"/>
		<updated>2012-11-30T14:47:06Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ноябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Отображение в счёте для юридических лиц цены с НДС]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сохранение данных введёных в вебформу при неверном вводе]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Автоматическая подписка на рассылку после отправки вебформы]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2%D0%B2%D0%B5%D0%B4%D1%91%D0%BD%D1%8B%D1%85_%D0%B2_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D0%BF%D1%80%D0%B8_%D0%BD%D0%B5%D0%B2%D0%B5%D1%80%D0%BD%D0%BE%D0%BC_%D0%B2%D0%B2%D0%BE%D0%B4%D0%B5&amp;diff=4196</id>
		<title>Сохранение данных введёных в вебформу при неверном вводе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2%D0%B2%D0%B5%D0%B4%D1%91%D0%BD%D1%8B%D1%85_%D0%B2_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D0%BF%D1%80%D0%B8_%D0%BD%D0%B5%D0%B2%D0%B5%D1%80%D0%BD%D0%BE%D0%BC_%D0%B2%D0%B2%D0%BE%D0%B4%D0%B5&amp;diff=4196"/>
		<updated>2012-11-21T13:40:37Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «Пользователи часто сталкиваются с тем, что ошибаясь в каких-то данных уже введённые данны…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Пользователи часто сталкиваются с тем, что ошибаясь в каких-то данных уже введённые данные в форму стираются и приходится вводить их заново. Это неприятно и доставляет вашим пользователям определённое количество неприятных эмоций.&lt;br /&gt;
Решить эту проблему можно добавлением обработчика события &amp;#039;&amp;#039;&amp;#039;onSubmit&amp;#039;&amp;#039;&amp;#039; к форме:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;/webforms/send/&amp;quot; name=&amp;quot;form_priemn&amp;quot; id=&amp;quot;form_priemn&amp;quot; onsubmit=&amp;quot;return sendForm();&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
а также нужно добавить код самой функции sendForm() на страницу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script xmlns=&amp;quot;&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
function sendForm() {&lt;br /&gt;
&lt;br /&gt;
   var neededIds = [&lt;br /&gt;
   &amp;#039;#data\\[new\\]\\[fio\\]&amp;#039;,&lt;br /&gt;
   &amp;#039;#data\\[new\\]\\[index\\]&amp;#039;,&lt;br /&gt;
   &amp;#039;#data\\[new\\]\\[region\\]&amp;#039;,&lt;br /&gt;
   &amp;#039;#data\\[new\\]\\[city\\]&amp;#039;,&lt;br /&gt;
   &amp;#039;#data\\[new\\]\\[street\\]&amp;#039;&lt;br /&gt;
   ];&lt;br /&gt;
&lt;br /&gt;
   for (var i=0;i&amp;lt;neededIds.length;i++) {&lt;br /&gt;
&lt;br /&gt;
      if ($(neededIds[i]).val() == &amp;#039;&amp;#039;) {&lt;br /&gt;
&lt;br /&gt;
      alert(&amp;#039;Заполните поля отмеченные знаком *&amp;#039;);&lt;br /&gt;
      return false;&lt;br /&gt;
   }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   if ($(&amp;#039;#data\\[new\\]\\[status\\]&amp;#039;).val() == &amp;#039;&amp;#039; &amp;amp;&amp;amp; &lt;br /&gt;
   $(&amp;#039;#data\\[new\\]\\[other_status\\]&amp;#039;).val() == &amp;#039;&amp;#039;) {&lt;br /&gt;
&lt;br /&gt;
      alert(&amp;#039;Заполните поля отмеченные знаком *&amp;#039;);&lt;br /&gt;
      return false;&lt;br /&gt;
   }&lt;br /&gt;
					 &lt;br /&gt;
   if ($(&amp;#039;#data\\[new\\]\\[text\\]&amp;#039;).val() == &amp;#039;&amp;#039;) {&lt;br /&gt;
&lt;br /&gt;
      alert(&amp;#039;Заполните поля отмеченные знаком *&amp;#039;);&lt;br /&gt;
   return false;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   saveFormData(document.forms[&amp;#039;form_priemn&amp;#039;]);&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4195</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4195"/>
		<updated>2012-11-21T13:22:25Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Ноябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ноябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сохранение данных введёных в вебформу при неверном вводе]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Автоматическая подписка на рассылку после отправки вебформы]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4194</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4194"/>
		<updated>2012-11-21T13:16:28Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ноябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сохранение данных введёных в вебформу при неверном вводе - XSLT шаблонизатор]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Сохранение данных введёных в вебформу при неверном вводе - TPL шаблонизатор]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Автоматическая подписка на рассылку после отправки вебформы]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4115</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4115"/>
		<updated>2012-10-26T14:10:36Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;hr/&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;hr/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&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;
[[Категория:Верстка в XSLT]][[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=4110</id>
		<title>Автоматическая подписка на рассылку после отправки вебформы</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=4110"/>
		<updated>2012-10-24T10:03:31Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
&lt;br /&gt;
Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подписывался на рассылки. &lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
Добавить в шаблон вебформы ячейку&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;input class=&amp;quot;checkbox&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;autosubscribe&amp;quot; id=&amp;quot;autosubscribe&amp;quot; value=&amp;quot;Подписаться на рассылки компании&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;label class=&amp;quot;inline&amp;quot; for=&amp;quot;autosubscribe&amp;quot;&amp;gt;Подписаться на рассылки компании&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разместить кастомные макросы, перехватывающие событие отправки вебформы, в директорию ~/classes/modules/dispatches/&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;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
	abstract class __custom_dispatches {&lt;br /&gt;
&lt;br /&gt;
		//TODO: Write here your own macroses&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
		public function autoSubscribe(umiEventPoint $event) &lt;br /&gt;
		{&lt;br /&gt;
			if ($event-&amp;gt;getMode() === &amp;quot;after&amp;quot;){ &lt;br /&gt;
				&lt;br /&gt;
				$email = getRequest(&amp;#039;data&amp;#039;);&lt;br /&gt;
				$email=$email[&amp;#039;new&amp;#039;][&amp;#039;email&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
				$fio = getRequest(&amp;#039;data&amp;#039;);&lt;br /&gt;
				$fio = $fio[&amp;#039;new&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
				&lt;br /&gt;
				list($lname, $fname) = split(&amp;quot; &amp;quot;, $fio);&lt;br /&gt;
				&lt;br /&gt;
				if(getRequest(&amp;quot;autosubscribe&amp;quot;)) {&lt;br /&gt;
					return $subscriber_id = $this-&amp;gt;import_subscriber($email, $fname, $lname);&lt;br /&gt;
				} else {&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;custom_events.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$listener = new umiEventListener(&amp;quot;webforms_post&amp;quot;, &amp;quot;dispatches&amp;quot;, &amp;quot;autoSubscribe&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Было проверено на localpack версии 2.8.5.3&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=4109</id>
		<title>Автоматическая подписка на рассылку после отправки вебформы</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%8B&amp;diff=4109"/>
		<updated>2012-10-24T09:37:20Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Решение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
&lt;br /&gt;
Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подписывался на рассылки. &lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
Добавить в шаблон вебформы ячейку&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;input class=&amp;quot;checkbox&amp;quot; type=&amp;quot;checkbox&amp;quot; name=&amp;quot;autosubscribe&amp;quot; id=&amp;quot;autosubscribe&amp;quot; value=&amp;quot;Подписаться на рассылки компании&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;label class=&amp;quot;inline&amp;quot; for=&amp;quot;autosubscribe&amp;quot;&amp;gt;Подписаться на рассылки компании&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разместить кастомные макросы, перехватывающие событие отправки вебформы, в директорию ~/classes/modules/dispatches/&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;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
	abstract class __custom_dispatches {&lt;br /&gt;
&lt;br /&gt;
		//TODO: Write here your own macroses&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
		public function autoSubscribe(umiEventPoint $event) &lt;br /&gt;
		{&lt;br /&gt;
			if ($event-&amp;gt;getMode() === &amp;quot;after&amp;quot;){ &lt;br /&gt;
				&lt;br /&gt;
				$email = getRequest(&amp;#039;data&amp;#039;);&lt;br /&gt;
				$email=$email[&amp;#039;new&amp;#039;][&amp;#039;email&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
				$fio = getRequest(&amp;#039;data&amp;#039;);&lt;br /&gt;
				$fio = $fio[&amp;#039;new&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
				&lt;br /&gt;
				list($lname, $fname) = split(&amp;quot; &amp;quot;, $fio);&lt;br /&gt;
				&lt;br /&gt;
				if(getRequest(&amp;quot;autosubscribe&amp;quot;)) {&lt;br /&gt;
					return $subscriber_id = $this-&amp;gt;import_subscriber($email, $fname, $lname);&lt;br /&gt;
				} else {&lt;br /&gt;
					return false;&lt;br /&gt;
				}&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;custom_events.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$listener = new umiEventListener(&amp;quot;webforms_post&amp;quot;, &amp;quot;dispatches&amp;quot;, &amp;quot;autoSubscribe&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4108</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4108"/>
		<updated>2012-10-24T09:35:07Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Октябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Автоматическая подписка на рассылку после отправки вебформы]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4089</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4089"/>
		<updated>2012-10-09T11:51:14Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Добавление информации о заказе и личных данных в письмо-уведомление» в «[[Добавление информации о заказе в письмо-уведомл�&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B8_%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4090</id>
		<title>Добавление информации о заказе и личных данных в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B8_%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4090"/>
		<updated>2012-10-09T11:51:14Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Добавление информации о заказе и личных данных в письмо-уведомление» в «[[Добавление информации о заказе в письмо-уведомл�&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Добавление информации о заказе в письмо-уведомление]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4088</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4088"/>
		<updated>2012-10-09T11:50:53Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Октябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4068</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4068"/>
		<updated>2012-10-02T09:54:00Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4067</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4067"/>
		<updated>2012-10-02T09:49:37Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4066</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4066"/>
		<updated>2012-10-02T09:49:20Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4065</id>
		<title>Добавление информации о заказе в письмо-уведомление</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%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=4065"/>
		<updated>2012-10-02T09:46:52Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «Задача. Необходимо добавить в письмо, которое приходит клиенту и администратору сайта инф…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача.&lt;br /&gt;
Необходимо добавить в письмо, которое приходит клиенту и администратору сайта информацию о содержимом заказа, а также личные данные пользователя.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
Для реализации поставленной задачи нужно отредактировать шаблон, по которому формируется письмо-уведомление о заказе: \xsltTpls\mail\emarket\default.xsl&lt;br /&gt;
&lt;br /&gt;
В шаблон &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;status_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,@order_number))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;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;status_notification_receipt&amp;quot;&amp;gt;, &amp;lt;xsl:template match=&amp;quot;neworder_notification&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; добавляем &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://emarket/order/&amp;#039;,order_id))&amp;quot; mode= &amp;quot;unic&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь осталось написать шаблон, который будет добавлять требуемую информацию в письмо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode= &amp;quot;unic&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;order&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode = &amp;quot;lin&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;____________________________________________&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Всего товаров: &amp;lt;xsl:value-of select=&amp;quot;summary/amount&amp;quot; /&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;На сумму: &amp;lt;xsl:value-of select=&amp;quot;summary/price&amp;quot; /&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;summary/price/@suffix&amp;quot; /&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata//item&amp;quot; mode= &amp;quot;lin&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{page/@link}&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Цена:  &amp;lt;xsl:value-of select=&amp;quot;price&amp;quot;/&amp;gt; &amp;lt;xsl:value-of select=&amp;quot;price/@suffix&amp;quot; /&amp;gt;. Количество: &amp;lt;xsl:value-of select=&amp;quot;amount&amp;quot;/&amp;gt; шт.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4064</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4064"/>
		<updated>2012-10-02T09:22:54Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Сентябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Октябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Добавление информации о заказе и личных данных в письмо-уведомление]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4062</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4062"/>
		<updated>2012-10-01T08:21:52Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki.png]]&lt;br /&gt;
&lt;br /&gt;
Первым добавим к каждому объекту каталога свойство &amp;quot;Первая буква&amp;quot;, имеющее идентификатор &amp;#039;bukva&amp;#039;. &lt;br /&gt;
Затем создадим 2 кастомных метода в модуле &amp;quot;Каталог&amp;quot;:&lt;br /&gt;
1) функцию urlenc() - для того чтобы get-запрос обрабатывал передаваемую буквы в urlencode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function urlenc($name){&lt;br /&gt;
    $param = getRequest($name);&lt;br /&gt;
    if($param){&lt;br /&gt;
      return urlencode($param);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2)функцию insertLetters() - выводящую массив букв, по которым будет производиться группировка выводимых объектов каталога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function insertLetters()&lt;br /&gt;
   {&lt;br /&gt;
   $letters = array(&amp;quot;А&amp;quot;,&amp;quot;Б&amp;quot;,&amp;quot;В&amp;quot;,&amp;quot;Г&amp;quot;,&amp;quot;Д&amp;quot;,&amp;quot;Е&amp;quot;,&amp;quot;Ж&amp;quot;,&amp;quot;З&amp;quot;,&amp;quot;И&amp;quot;,&amp;quot;К&amp;quot;,&amp;quot;Л&amp;quot;,&amp;quot;М&amp;quot;,&amp;quot;Н&amp;quot;,&amp;quot;О&amp;quot;,&amp;quot;П&amp;quot;,&amp;quot;Р&amp;quot;,&amp;quot;С&amp;quot;,&amp;quot;Т&amp;quot;,&amp;quot;У&amp;quot;,&amp;quot;Ф&amp;quot;,&amp;quot;Х&amp;quot;,&amp;quot;Ц&amp;quot;,&amp;quot;Ч&amp;quot;,&amp;quot;Ш&amp;quot;,&amp;quot;Щ&amp;quot;,&amp;quot;Э&amp;quot;,&amp;quot;Ю&amp;quot;,&amp;quot;Я&amp;quot;);&lt;br /&gt;
   $str = &amp;quot;&amp;lt;div class = \&amp;quot;letters\&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
   foreach($letters as $key){&lt;br /&gt;
      if($key == &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;) $str .= &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
      else{&lt;br /&gt;
      if(isset($_GET[&amp;#039;letter&amp;#039;]) and strtoupper($_GET[&amp;#039;letter&amp;#039;]) == $key) $class = &amp;quot;class = \&amp;quot;active\&amp;quot;&amp;quot;; else $class = &amp;quot;&amp;quot;;&lt;br /&gt;
      $str .= &amp;quot;&amp;lt;a &amp;quot;.$class.&amp;quot; href = \&amp;quot;http://new/shop/hudozhniki/?letter=&amp;quot;.$key.&amp;quot;\&amp;quot;&amp;gt;&amp;quot;.$key.&amp;quot;&amp;lt;/a&amp;gt; &amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   $str .= &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
   return $str;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\catalog\permissions.custom.php не забываем прописать разрешения для созданных методов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
   &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
   &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;insertLetters&amp;#039;,&amp;#039;urlenc&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь требуется создать выборку из БД по протоколу USel, для этого создадим файл usels\test_sel.xml, содержащий следующий код:&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;selection&amp;gt;&lt;br /&gt;
	&amp;lt;target result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;type  module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot; id=&amp;quot;124&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/target&amp;gt;&lt;br /&gt;
	&amp;lt;property name = &amp;quot;bukva&amp;quot; value = &amp;quot;{letter}&amp;quot; mode = &amp;quot;like&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;
	&amp;lt;sort order=&amp;quot;ascending&amp;quot;&amp;gt;&amp;lt;/sort&amp;gt;&lt;br /&gt;
	&amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;25&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/selection&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробнее о правилах формирования выборки можно прочитать в документации разработчика: [http://http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/]&lt;br /&gt;
Самое время адаптировать под нашу задачу шаблон, по которому будут выводиться наши объекты каталога, Для этого в файл \xsltTpls\modules\catalog\category-view.xsl запишем XSLT-шаблон:&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:template match=&amp;quot;/result[@module = &amp;#039;catalog&amp;#039; and @method= &amp;#039;category&amp;#039; and @pageId=&amp;#039;90&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://catalog/insertLetters&amp;#039;)&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:variable name=&amp;quot;name_enc&amp;quot; select=&amp;quot;document(&amp;#039;udata://catalog/urlenc/letter/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;usel://test_sel/?letter=&amp;#039;, $name_enc))/udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot;/&amp;gt;		&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; &amp;gt;		&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{@link}&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;,@id))&amp;quot; mode=&amp;quot;shablon_3&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, при выборе определённой буквы из всего списка объектов каталога на странице останутся только те, название которых начинается с выбранной буквы:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki 2.png]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4061</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4061"/>
		<updated>2012-10-01T08:20:25Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Сентябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4059</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4059"/>
		<updated>2012-10-01T08:20:11Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Вывод объектов каталога с группировкой по алфавиту» в «Вывод объектов каталога с группировкой по алфавиту (XSLT)»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki.png]]&lt;br /&gt;
&lt;br /&gt;
Первым добавим к каждому объекту каталога свойство &amp;quot;Первая буква&amp;quot;, имеющее идентификатор &amp;#039;bukva&amp;#039;. &lt;br /&gt;
Затем создадим 2 кастомных метода в модуле &amp;quot;Каталог&amp;quot;:&lt;br /&gt;
1) функцию urlenc() - для того чтобы get-запрос обрабатывал передаваемую буквы в urlencode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function urlenc($name){&lt;br /&gt;
    $param = getRequest($name);&lt;br /&gt;
    if($param){&lt;br /&gt;
      return urlencode($param);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2)функцию insertLetters() - выводящую массив букв, по которым будет производиться группировка выводимых объектов каталога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function insertLetters()&lt;br /&gt;
   {&lt;br /&gt;
   $letters = array(&amp;quot;А&amp;quot;,&amp;quot;Б&amp;quot;,&amp;quot;В&amp;quot;,&amp;quot;Г&amp;quot;,&amp;quot;Д&amp;quot;,&amp;quot;Е&amp;quot;,&amp;quot;Ж&amp;quot;,&amp;quot;З&amp;quot;,&amp;quot;И&amp;quot;,&amp;quot;К&amp;quot;,&amp;quot;Л&amp;quot;,&amp;quot;М&amp;quot;,&amp;quot;Н&amp;quot;,&amp;quot;О&amp;quot;,&amp;quot;П&amp;quot;,&amp;quot;Р&amp;quot;,&amp;quot;С&amp;quot;,&amp;quot;Т&amp;quot;,&amp;quot;У&amp;quot;,&amp;quot;Ф&amp;quot;,&amp;quot;Х&amp;quot;,&amp;quot;Ц&amp;quot;,&amp;quot;Ч&amp;quot;,&amp;quot;Ш&amp;quot;,&amp;quot;Щ&amp;quot;,&amp;quot;Э&amp;quot;,&amp;quot;Ю&amp;quot;,&amp;quot;Я&amp;quot;);&lt;br /&gt;
   $str = &amp;quot;&amp;lt;div class = \&amp;quot;letters\&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
   foreach($letters as $key){&lt;br /&gt;
      if($key == &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;) $str .= &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
      else{&lt;br /&gt;
      if(isset($_GET[&amp;#039;letter&amp;#039;]) and strtoupper($_GET[&amp;#039;letter&amp;#039;]) == $key) $class = &amp;quot;class = \&amp;quot;active\&amp;quot;&amp;quot;; else $class = &amp;quot;&amp;quot;;&lt;br /&gt;
      $str .= &amp;quot;&amp;lt;a &amp;quot;.$class.&amp;quot; href = \&amp;quot;http://new/shop/hudozhniki/?letter=&amp;quot;.$key.&amp;quot;\&amp;quot;&amp;gt;&amp;quot;.$key.&amp;quot;&amp;lt;/a&amp;gt; &amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   $str .= &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
   return $str;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\catalog\permissions.custom.php не забываем прописать разрешения для созданных методов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
   &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
   &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;insertLetters&amp;#039;,&amp;#039;urlenc&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь требуется создать выборку из БД по протоколу USel, для этого создадим файл usels\test_sel.xml, содержащий следующий код:&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;selection&amp;gt;&lt;br /&gt;
	&amp;lt;target result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;type  module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot; id=&amp;quot;124&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/target&amp;gt;&lt;br /&gt;
	&amp;lt;property name = &amp;quot;bukva&amp;quot; value = &amp;quot;{letter}&amp;quot; mode = &amp;quot;like&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;
	&amp;lt;sort order=&amp;quot;ascending&amp;quot;&amp;gt;&amp;lt;/sort&amp;gt;&lt;br /&gt;
	&amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;25&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/selection&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробнее о правилах формирования выборки можно прочитать в документации разработчика: [http://http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/]&lt;br /&gt;
Самое время адаптировать под нашу задачу шаблон, по которому будут выводиться наши объекты каталога, Для этого в файл \xsltTpls\modules\catalog\category-view.xsl запишем XSLT-шаблон:&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:template match=&amp;quot;/result[@module = &amp;#039;catalog&amp;#039; and @method= &amp;#039;category&amp;#039; and @pageId=&amp;#039;90&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://catalog/insertLetters&amp;#039;)&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:variable name=&amp;quot;name_enc&amp;quot; select=&amp;quot;document(&amp;#039;udata://catalog/urlenc/letter/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;usel://test_sel/?letter=&amp;#039;, $name_enc))/udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot;/&amp;gt;		&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; &amp;gt;		&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{@link}&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;,@id))&amp;quot; mode=&amp;quot;klhg&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, при выборе определённой буквы из всего списка объектов каталога на странице останутся только те, название которых начинается с выбранной буквы:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki 2.png]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83&amp;diff=4060</id>
		<title>Вывод объектов каталога с группировкой по алфавиту</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83&amp;diff=4060"/>
		<updated>2012-10-01T08:20:11Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Вывод объектов каталога с группировкой по алфавиту» в «Вывод объектов каталога с группировкой по алфавиту (XSLT)»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Вывод объектов каталога с группировкой по алфавиту (XSLT)]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4058</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4058"/>
		<updated>2012-10-01T08:19:27Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki.png]]&lt;br /&gt;
&lt;br /&gt;
Первым добавим к каждому объекту каталога свойство &amp;quot;Первая буква&amp;quot;, имеющее идентификатор &amp;#039;bukva&amp;#039;. &lt;br /&gt;
Затем создадим 2 кастомных метода в модуле &amp;quot;Каталог&amp;quot;:&lt;br /&gt;
1) функцию urlenc() - для того чтобы get-запрос обрабатывал передаваемую буквы в urlencode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function urlenc($name){&lt;br /&gt;
    $param = getRequest($name);&lt;br /&gt;
    if($param){&lt;br /&gt;
      return urlencode($param);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2)функцию insertLetters() - выводящую массив букв, по которым будет производиться группировка выводимых объектов каталога:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function insertLetters()&lt;br /&gt;
   {&lt;br /&gt;
   $letters = array(&amp;quot;А&amp;quot;,&amp;quot;Б&amp;quot;,&amp;quot;В&amp;quot;,&amp;quot;Г&amp;quot;,&amp;quot;Д&amp;quot;,&amp;quot;Е&amp;quot;,&amp;quot;Ж&amp;quot;,&amp;quot;З&amp;quot;,&amp;quot;И&amp;quot;,&amp;quot;К&amp;quot;,&amp;quot;Л&amp;quot;,&amp;quot;М&amp;quot;,&amp;quot;Н&amp;quot;,&amp;quot;О&amp;quot;,&amp;quot;П&amp;quot;,&amp;quot;Р&amp;quot;,&amp;quot;С&amp;quot;,&amp;quot;Т&amp;quot;,&amp;quot;У&amp;quot;,&amp;quot;Ф&amp;quot;,&amp;quot;Х&amp;quot;,&amp;quot;Ц&amp;quot;,&amp;quot;Ч&amp;quot;,&amp;quot;Ш&amp;quot;,&amp;quot;Щ&amp;quot;,&amp;quot;Э&amp;quot;,&amp;quot;Ю&amp;quot;,&amp;quot;Я&amp;quot;);&lt;br /&gt;
   $str = &amp;quot;&amp;lt;div class = \&amp;quot;letters\&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
   foreach($letters as $key){&lt;br /&gt;
      if($key == &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;) $str .= &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
      else{&lt;br /&gt;
      if(isset($_GET[&amp;#039;letter&amp;#039;]) and strtoupper($_GET[&amp;#039;letter&amp;#039;]) == $key) $class = &amp;quot;class = \&amp;quot;active\&amp;quot;&amp;quot;; else $class = &amp;quot;&amp;quot;;&lt;br /&gt;
      $str .= &amp;quot;&amp;lt;a &amp;quot;.$class.&amp;quot; href = \&amp;quot;http://new/shop/hudozhniki/?letter=&amp;quot;.$key.&amp;quot;\&amp;quot;&amp;gt;&amp;quot;.$key.&amp;quot;&amp;lt;/a&amp;gt; &amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   $str .= &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
   return $str;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\catalog\permissions.custom.php не забываем прописать разрешения для созданных методов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
   &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
   &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;insertLetters&amp;#039;,&amp;#039;urlenc&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь требуется создать выборку из БД по протоколу USel, для этого создадим файл usels\test_sel.xml, содержащий следующий код:&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;selection&amp;gt;&lt;br /&gt;
	&amp;lt;target result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;type  module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot; id=&amp;quot;124&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/target&amp;gt;&lt;br /&gt;
	&amp;lt;property name = &amp;quot;bukva&amp;quot; value = &amp;quot;{letter}&amp;quot; mode = &amp;quot;like&amp;quot;&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;
	&amp;lt;sort order=&amp;quot;ascending&amp;quot;&amp;gt;&amp;lt;/sort&amp;gt;&lt;br /&gt;
	&amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;25&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/selection&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробнее о правилах формирования выборки можно прочитать в документации разработчика: [http://http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/]&lt;br /&gt;
Самое время адаптировать под нашу задачу шаблон, по которому будут выводиться наши объекты каталога, Для этого в файл \xsltTpls\modules\catalog\category-view.xsl запишем XSLT-шаблон:&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:template match=&amp;quot;/result[@module = &amp;#039;catalog&amp;#039; and @method= &amp;#039;category&amp;#039; and @pageId=&amp;#039;90&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://catalog/insertLetters&amp;#039;)&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:variable name=&amp;quot;name_enc&amp;quot; select=&amp;quot;document(&amp;#039;udata://catalog/urlenc/letter/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;usel://test_sel/?letter=&amp;#039;, $name_enc))/udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot;/&amp;gt;		&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata&amp;quot; mode=&amp;quot;shablon_1&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;div&amp;gt;&lt;br /&gt;
   &amp;lt;xsl:apply-templates select=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;page&amp;quot; mode=&amp;quot;shablon_2&amp;quot; &amp;gt;		&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;{@link}&amp;quot;&amp;gt;&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;,@id))&amp;quot; mode=&amp;quot;klhg&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, при выборе определённой буквы из всего списка объектов каталога на странице останутся только те, название которых начинается с выбранной буквы:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki 2.png]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hudozhniki_2.png&amp;diff=4057</id>
		<title>Файл:Hudozhniki 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hudozhniki_2.png&amp;diff=4057"/>
		<updated>2012-10-01T08:18:58Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4056</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4056"/>
		<updated>2012-10-01T07:38:47Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hudozhniki.png]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4055</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4055"/>
		<updated>2012-10-01T07:38:29Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;br /&gt;
[[Файл:Hudozhniki.png]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hudozhniki.png&amp;diff=4054</id>
		<title>Файл:Hudozhniki.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hudozhniki.png&amp;diff=4054"/>
		<updated>2012-10-01T07:29:48Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4050</id>
		<title>Вывод объектов каталога с группировкой по алфавиту (XSLT)</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%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%D1%81_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83_(XSLT)&amp;diff=4050"/>
		<updated>2012-09-28T15:58:37Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести тольк…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: Имеется список всех объектов одной из категорий каталога. Требуется вывести только те, название которых начинается с определённой буквы алфавита.&lt;br /&gt;
Решение:&lt;br /&gt;
Допустим у нас есть раздел каталога, к примеру, &amp;quot;Художники&amp;quot;. Содержащий коллекцию художников:&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4049</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4049"/>
		<updated>2012-09-28T15:22:19Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Сентябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Вывод объектов каталога с группировкой по алфавиту]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4048</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4048"/>
		<updated>2012-09-28T11:27:00Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Сентябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4046</id>
		<title>Запрет отображения товара, отсутствующего на складе.</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4046"/>
		<updated>2012-09-28T11:25:58Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Запрет тотбражения товара, отсутствующего на складе.» в «Запрет отображения товара, отсутствующего на складе.»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача - Необходимо чтобы товар не отображался в каталоге, если он отсутствует на складе.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
&lt;br /&gt;
В модуле «Шаблоны данных» добавим в типе «Объект каталога»добавим поле, отвечающее за состояние на складе: &amp;#039;test_storage&amp;#039; и сделаем его обязательным.&lt;br /&gt;
В файл ..\classes\modules\catalog\__custom.php после слов &amp;quot;//TODO: Write your own macroses here&amp;quot; добавим кастомных метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getObjectsList_custom($template = &amp;quot;default&amp;quot;, $path = false, $limit = false, $ignore_paging = false, $i_need_deep = 0, $field_id = false, $asc = true) {&lt;br /&gt;
                        if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = intval(getRequest(&amp;#039;param4&amp;#039;));&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = 0;&lt;br /&gt;
                        $i_need_deep = intval($i_need_deep);&lt;br /&gt;
                        if ($i_need_deep === -1) $i_need_deep = 100;&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
&lt;br /&gt;
                        list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates(&amp;quot;catalog/&amp;quot;.$template, &amp;quot;objects_block&amp;quot;, &amp;quot;objects_block_empty&amp;quot;, &amp;quot;objects_block_search_empty&amp;quot;, &amp;quot;objects_block_line&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
                        $category_id = $this-&amp;gt;analyzeRequiredPath($path);&lt;br /&gt;
&lt;br /&gt;
                        if($category_id === false &amp;amp;&amp;amp; $path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    throw new publicException(getLabel(&amp;#039;error-page-does-not-exist&amp;#039;, null, $path));&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $category_element = $hierarchy-&amp;gt;getElement($category_id);&lt;br /&gt;
&lt;br /&gt;
                        $per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
                        $curr_page = 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;setElementTypeFilter();&lt;br /&gt;
                        $sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $sel-&amp;gt;setHierarchyFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addHierarchyFilter($category_id, $i_need_deep);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $sel-&amp;gt;setPermissionsFilter();&lt;br /&gt;
                        $sel-&amp;gt;addPermissions();&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type = umiHierarchyTypesCollection::getInstance()-&amp;gt;getType($hierarchy_type_id);&lt;br /&gt;
                        $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path === KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $curr_category_id = cmsController::getInstance()-&amp;gt;getCurrentElementId();&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $curr_category_id = $category_id;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $type_id = $hierarchy-&amp;gt;getDominantTypeId($curr_category_id, $i_need_deep, $hierarchy_type_id);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if(!$type_id) {&lt;br /&gt;
                                    $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($type_id) {&lt;br /&gt;
                                    $this-&amp;gt;autoDetectOrders($sel, $type_id);&lt;br /&gt;
                                    $this-&amp;gt;autoDetectFilters($sel, $type_id);&lt;br /&gt;
&lt;br /&gt;
                                    if($this-&amp;gt;isSelectionFiltered) {&lt;br /&gt;
                                               $template_block_empty = $template_block_search_empty;&lt;br /&gt;
                                               $this-&amp;gt;isSelectionFiltered = false;&lt;br /&gt;
                                    }&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $sel-&amp;gt;setOrderFilter();&lt;br /&gt;
                                    $sel-&amp;gt;setOrderByName();&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($curr_page !== &amp;quot;all&amp;quot;) {&lt;br /&gt;
                                    $curr_page = (int) $curr_page;&lt;br /&gt;
                                    $sel-&amp;gt;setLimitFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($field_id) {&lt;br /&gt;
                                    if (is_numeric($field_id)) {&lt;br /&gt;
                                               $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                    } else {&lt;br /&gt;
                                               if ($type_id) {&lt;br /&gt;
                                                           $field_id = umiObjectTypesCollection::getInstance()-&amp;gt;getType($type_id)-&amp;gt;getFieldId($field_id);&lt;br /&gt;
                                                           if ($field_id) {&lt;br /&gt;
                                                                       $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                                           } else {&lt;br /&gt;
                                                                       $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                                           }&lt;br /&gt;
                                               } else {&lt;br /&gt;
                                                           $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                               }&lt;br /&gt;
                                    }&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                                    $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $iTypeId = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;);&lt;br /&gt;
                        $oType    = umiObjectTypesCollection::getInstance()-&amp;gt;getType($iTypeId);&lt;br /&gt;
                        $iFieldId = $oType-&amp;gt;getFieldId(&amp;#039;test_storage&amp;#039;);&lt;br /&gt;
                        $sel-&amp;gt;addPropertyFilterNotEqual($iFieldId,0);&lt;br /&gt;
                        &lt;br /&gt;
                        $result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
                        $total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
&lt;br /&gt;
                        if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
                                    $block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
                                    $lines = Array();&lt;br /&gt;
                                    for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
                                               $element_id = $result[$i];&lt;br /&gt;
                                               $element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
&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: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;node:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
&lt;br /&gt;
                                               $lines[] = def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
&lt;br /&gt;
                                               $this-&amp;gt;pushEditable(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;, $element_id);&lt;br /&gt;
                                               umiHierarchy::getInstance()-&amp;gt;unloadElement($element_id);&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    $block_arr[&amp;#039;subnodes:lines&amp;#039;] = $lines;&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage($total, $per_page);&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;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    if($type_id) {&lt;br /&gt;
                                               $block_arr[&amp;#039;type_id&amp;#039;] = $type_id;&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage(0, 0);&lt;br /&gt;
                                    $block_arr[&amp;#039;lines&amp;#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
                                    $block_arr[&amp;#039;total&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;per_page&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    return self::parseTemplate($template_block_empty, $block_arr, $category_id);;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В шаблоне, по которому выводится список объектов каталога, обычно это tpls/catalog/default.tpl, измением название метода  getObjectsList() на:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;%catalog getObjectsList_custom(&amp;#039;default&amp;#039;, &amp;#039;%category_id%&amp;#039;)%&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле ..\classes\modules\catalog\permissions.custom.php расширим существующую группу прав:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
                        &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
                        &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;getObjectsList_custom&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%82%D0%BE%D1%82%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4047</id>
		<title>Запрет тотбражения товара, отсутствующего на складе.</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%82%D0%BE%D1%82%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4047"/>
		<updated>2012-09-28T11:25:58Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Запрет тотбражения товара, отсутствующего на складе.» в «Запрет отображения товара, отсутствующего на складе.»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Запрет отображения товара, отсутствующего на складе.]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4045</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4045"/>
		<updated>2012-09-28T11:25:43Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: /* Сентябрь: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет отображения товара, отсутствующего на складе]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4044</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4044"/>
		<updated>2012-09-28T11:23:34Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Запрет тотбражения товара, отсутствующего на складе]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4042</id>
		<title>Запрет отображения товара, отсутствующего на складе.</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4042"/>
		<updated>2012-09-28T11:21:57Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Первая» в «Запрет тотбражения товара, отсутствующего на складе.»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача - Необходимо чтобы товар не отображался в каталоге, если он отсутствует на складе.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
&lt;br /&gt;
В модуле «Шаблоны данных» добавим в типе «Объект каталога»добавим поле, отвечающее за состояние на складе: &amp;#039;test_storage&amp;#039; и сделаем его обязательным.&lt;br /&gt;
В файл ..\classes\modules\catalog\__custom.php после слов &amp;quot;//TODO: Write your own macroses here&amp;quot; добавим кастомных метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getObjectsList_custom($template = &amp;quot;default&amp;quot;, $path = false, $limit = false, $ignore_paging = false, $i_need_deep = 0, $field_id = false, $asc = true) {&lt;br /&gt;
                        if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = intval(getRequest(&amp;#039;param4&amp;#039;));&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = 0;&lt;br /&gt;
                        $i_need_deep = intval($i_need_deep);&lt;br /&gt;
                        if ($i_need_deep === -1) $i_need_deep = 100;&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
&lt;br /&gt;
                        list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates(&amp;quot;catalog/&amp;quot;.$template, &amp;quot;objects_block&amp;quot;, &amp;quot;objects_block_empty&amp;quot;, &amp;quot;objects_block_search_empty&amp;quot;, &amp;quot;objects_block_line&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
                        $category_id = $this-&amp;gt;analyzeRequiredPath($path);&lt;br /&gt;
&lt;br /&gt;
                        if($category_id === false &amp;amp;&amp;amp; $path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    throw new publicException(getLabel(&amp;#039;error-page-does-not-exist&amp;#039;, null, $path));&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $category_element = $hierarchy-&amp;gt;getElement($category_id);&lt;br /&gt;
&lt;br /&gt;
                        $per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
                        $curr_page = 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;setElementTypeFilter();&lt;br /&gt;
                        $sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $sel-&amp;gt;setHierarchyFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addHierarchyFilter($category_id, $i_need_deep);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $sel-&amp;gt;setPermissionsFilter();&lt;br /&gt;
                        $sel-&amp;gt;addPermissions();&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type = umiHierarchyTypesCollection::getInstance()-&amp;gt;getType($hierarchy_type_id);&lt;br /&gt;
                        $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path === KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $curr_category_id = cmsController::getInstance()-&amp;gt;getCurrentElementId();&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $curr_category_id = $category_id;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $type_id = $hierarchy-&amp;gt;getDominantTypeId($curr_category_id, $i_need_deep, $hierarchy_type_id);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if(!$type_id) {&lt;br /&gt;
                                    $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($type_id) {&lt;br /&gt;
                                    $this-&amp;gt;autoDetectOrders($sel, $type_id);&lt;br /&gt;
                                    $this-&amp;gt;autoDetectFilters($sel, $type_id);&lt;br /&gt;
&lt;br /&gt;
                                    if($this-&amp;gt;isSelectionFiltered) {&lt;br /&gt;
                                               $template_block_empty = $template_block_search_empty;&lt;br /&gt;
                                               $this-&amp;gt;isSelectionFiltered = false;&lt;br /&gt;
                                    }&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $sel-&amp;gt;setOrderFilter();&lt;br /&gt;
                                    $sel-&amp;gt;setOrderByName();&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($curr_page !== &amp;quot;all&amp;quot;) {&lt;br /&gt;
                                    $curr_page = (int) $curr_page;&lt;br /&gt;
                                    $sel-&amp;gt;setLimitFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($field_id) {&lt;br /&gt;
                                    if (is_numeric($field_id)) {&lt;br /&gt;
                                               $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                    } else {&lt;br /&gt;
                                               if ($type_id) {&lt;br /&gt;
                                                           $field_id = umiObjectTypesCollection::getInstance()-&amp;gt;getType($type_id)-&amp;gt;getFieldId($field_id);&lt;br /&gt;
                                                           if ($field_id) {&lt;br /&gt;
                                                                       $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                                           } else {&lt;br /&gt;
                                                                       $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                                           }&lt;br /&gt;
                                               } else {&lt;br /&gt;
                                                           $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                               }&lt;br /&gt;
                                    }&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                                    $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $iTypeId = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;);&lt;br /&gt;
                        $oType    = umiObjectTypesCollection::getInstance()-&amp;gt;getType($iTypeId);&lt;br /&gt;
                        $iFieldId = $oType-&amp;gt;getFieldId(&amp;#039;test_storage&amp;#039;);&lt;br /&gt;
                        $sel-&amp;gt;addPropertyFilterNotEqual($iFieldId,0);&lt;br /&gt;
                        &lt;br /&gt;
                        $result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
                        $total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
&lt;br /&gt;
                        if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
                                    $block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
                                    $lines = Array();&lt;br /&gt;
                                    for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
                                               $element_id = $result[$i];&lt;br /&gt;
                                               $element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
&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: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;node:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
&lt;br /&gt;
                                               $lines[] = def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
&lt;br /&gt;
                                               $this-&amp;gt;pushEditable(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;, $element_id);&lt;br /&gt;
                                               umiHierarchy::getInstance()-&amp;gt;unloadElement($element_id);&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    $block_arr[&amp;#039;subnodes:lines&amp;#039;] = $lines;&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage($total, $per_page);&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;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    if($type_id) {&lt;br /&gt;
                                               $block_arr[&amp;#039;type_id&amp;#039;] = $type_id;&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage(0, 0);&lt;br /&gt;
                                    $block_arr[&amp;#039;lines&amp;#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
                                    $block_arr[&amp;#039;total&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;per_page&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    return self::parseTemplate($template_block_empty, $block_arr, $category_id);;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В шаблоне, по которому выводится список объектов каталога, обычно это tpls/catalog/default.tpl, измением название метода  getObjectsList() на:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;%catalog getObjectsList_custom(&amp;#039;default&amp;#039;, &amp;#039;%category_id%&amp;#039;)%&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле ..\classes\modules\catalog\permissions.custom.php расширим существующую группу прав:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
                        &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
                        &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;getObjectsList_custom&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B2%D0%B0%D1%8F&amp;diff=4043</id>
		<title>Первая</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B2%D0%B0%D1%8F&amp;diff=4043"/>
		<updated>2012-09-28T11:21:57Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: переименовал «Первая» в «Запрет тотбражения товара, отсутствующего на складе.»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Запрет тотбражения товара, отсутствующего на складе.]]&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4041</id>
		<title>Запрет отображения товара, отсутствующего на складе.</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0,_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D0%BD%D0%B0_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B5.&amp;diff=4041"/>
		<updated>2012-09-28T11:21:13Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «Задача - Необходимо чтобы товар не отображался в каталоге, если он отсутствует на складе.  …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача - Необходимо чтобы товар не отображался в каталоге, если он отсутствует на складе.&lt;br /&gt;
&lt;br /&gt;
Решение.&lt;br /&gt;
&lt;br /&gt;
В модуле «Шаблоны данных» добавим в типе «Объект каталога»добавим поле, отвечающее за состояние на складе: &amp;#039;test_storage&amp;#039; и сделаем его обязательным.&lt;br /&gt;
В файл ..\classes\modules\catalog\__custom.php после слов &amp;quot;//TODO: Write your own macroses here&amp;quot; добавим кастомных метод:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getObjectsList_custom($template = &amp;quot;default&amp;quot;, $path = false, $limit = false, $ignore_paging = false, $i_need_deep = 0, $field_id = false, $asc = true) {&lt;br /&gt;
                        if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = intval(getRequest(&amp;#039;param4&amp;#039;));&lt;br /&gt;
                        if (!$i_need_deep) $i_need_deep = 0;&lt;br /&gt;
                        $i_need_deep = intval($i_need_deep);&lt;br /&gt;
                        if ($i_need_deep === -1) $i_need_deep = 100;&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
&lt;br /&gt;
                        list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates(&amp;quot;catalog/&amp;quot;.$template, &amp;quot;objects_block&amp;quot;, &amp;quot;objects_block_empty&amp;quot;, &amp;quot;objects_block_search_empty&amp;quot;, &amp;quot;objects_block_line&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;)-&amp;gt;getId();&lt;br /&gt;
&lt;br /&gt;
                        $category_id = $this-&amp;gt;analyzeRequiredPath($path);&lt;br /&gt;
&lt;br /&gt;
                        if($category_id === false &amp;amp;&amp;amp; $path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    throw new publicException(getLabel(&amp;#039;error-page-does-not-exist&amp;#039;, null, $path));&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $category_element = $hierarchy-&amp;gt;getElement($category_id);&lt;br /&gt;
&lt;br /&gt;
                        $per_page = ($limit) ? $limit : $this-&amp;gt;per_page;&lt;br /&gt;
                        $curr_page = 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;setElementTypeFilter();&lt;br /&gt;
                        $sel-&amp;gt;addElementType($hierarchy_type_id);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $sel-&amp;gt;setHierarchyFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addHierarchyFilter($category_id, $i_need_deep);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $sel-&amp;gt;setPermissionsFilter();&lt;br /&gt;
                        $sel-&amp;gt;addPermissions();&lt;br /&gt;
&lt;br /&gt;
                        $hierarchy_type = umiHierarchyTypesCollection::getInstance()-&amp;gt;getType($hierarchy_type_id);&lt;br /&gt;
                        $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path === KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $curr_category_id = cmsController::getInstance()-&amp;gt;getCurrentElementId();&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $curr_category_id = $category_id;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($path != KEYWORD_GRAB_ALL) {&lt;br /&gt;
                                    $type_id = $hierarchy-&amp;gt;getDominantTypeId($curr_category_id, $i_need_deep, $hierarchy_type_id);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if(!$type_id) {&lt;br /&gt;
                                    $type_id = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType($hierarchy_type-&amp;gt;getName(), $hierarchy_type-&amp;gt;getExt());&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        if($type_id) {&lt;br /&gt;
                                    $this-&amp;gt;autoDetectOrders($sel, $type_id);&lt;br /&gt;
                                    $this-&amp;gt;autoDetectFilters($sel, $type_id);&lt;br /&gt;
&lt;br /&gt;
                                    if($this-&amp;gt;isSelectionFiltered) {&lt;br /&gt;
                                               $template_block_empty = $template_block_search_empty;&lt;br /&gt;
                                               $this-&amp;gt;isSelectionFiltered = false;&lt;br /&gt;
                                    }&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $sel-&amp;gt;setOrderFilter();&lt;br /&gt;
                                    $sel-&amp;gt;setOrderByName();&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($curr_page !== &amp;quot;all&amp;quot;) {&lt;br /&gt;
                                    $curr_page = (int) $curr_page;&lt;br /&gt;
                                    $sel-&amp;gt;setLimitFilter();&lt;br /&gt;
                                    $sel-&amp;gt;addLimit($per_page, $curr_page);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        if($field_id) {&lt;br /&gt;
                                    if (is_numeric($field_id)) {&lt;br /&gt;
                                               $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                    } else {&lt;br /&gt;
                                               if ($type_id) {&lt;br /&gt;
                                                           $field_id = umiObjectTypesCollection::getInstance()-&amp;gt;getType($type_id)-&amp;gt;getFieldId($field_id);&lt;br /&gt;
                                                           if ($field_id) {&lt;br /&gt;
                                                                       $sel-&amp;gt;setOrderByProperty($field_id, $asc);&lt;br /&gt;
                                                           } else {&lt;br /&gt;
                                                                       $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                                           }&lt;br /&gt;
                                               } else {&lt;br /&gt;
                                                           $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                                               }&lt;br /&gt;
                                    }&lt;br /&gt;
                        }&lt;br /&gt;
                        else {&lt;br /&gt;
                                    $sel -&amp;gt;setOrderByOrd($asc);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        $iTypeId = umiObjectTypesCollection::getInstance()-&amp;gt;getBaseType(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;);&lt;br /&gt;
                        $oType    = umiObjectTypesCollection::getInstance()-&amp;gt;getType($iTypeId);&lt;br /&gt;
                        $iFieldId = $oType-&amp;gt;getFieldId(&amp;#039;test_storage&amp;#039;);&lt;br /&gt;
                        $sel-&amp;gt;addPropertyFilterNotEqual($iFieldId,0);&lt;br /&gt;
                        &lt;br /&gt;
                        $result = umiSelectionsParser::runSelection($sel);&lt;br /&gt;
                        $total = umiSelectionsParser::runSelectionCounts($sel);&lt;br /&gt;
&lt;br /&gt;
                        if(($sz = sizeof($result)) &amp;gt; 0) {&lt;br /&gt;
                                    $block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
                                    $lines = Array();&lt;br /&gt;
                                    for($i = 0; $i &amp;lt; $sz; $i++) {&lt;br /&gt;
                                               $element_id = $result[$i];&lt;br /&gt;
                                               $element = umiHierarchy::getInstance()-&amp;gt;getElement($element_id);&lt;br /&gt;
&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: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;node:text&amp;#039;] = $element-&amp;gt;getName();&lt;br /&gt;
&lt;br /&gt;
                                               $lines[] = def_module::parseTemplate($template_line, $line_arr, $element_id);&lt;br /&gt;
&lt;br /&gt;
                                               $this-&amp;gt;pushEditable(&amp;quot;catalog&amp;quot;, &amp;quot;object&amp;quot;, $element_id);&lt;br /&gt;
                                               umiHierarchy::getInstance()-&amp;gt;unloadElement($element_id);&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    $block_arr[&amp;#039;subnodes:lines&amp;#039;] = $lines;&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage($total, $per_page);&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;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    if($type_id) {&lt;br /&gt;
                                               $block_arr[&amp;#039;type_id&amp;#039;] = $type_id;&lt;br /&gt;
                                    }&lt;br /&gt;
&lt;br /&gt;
                                    return def_module::parseTemplate($template_block, $block_arr, $category_id);&lt;br /&gt;
                        } else {&lt;br /&gt;
                                    $block_arr[&amp;#039;numpages&amp;#039;] = umiPagenum::generateNumPage(0, 0);&lt;br /&gt;
                                    $block_arr[&amp;#039;lines&amp;#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
                                    $block_arr[&amp;#039;total&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;per_page&amp;#039;] = 0;&lt;br /&gt;
                                    $block_arr[&amp;#039;category_id&amp;#039;] = $category_id;&lt;br /&gt;
&lt;br /&gt;
                                    return self::parseTemplate($template_block_empty, $block_arr, $category_id);;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
            }&lt;br /&gt;
            };&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В шаблоне, по которому выводится список объектов каталога, обычно это tpls/catalog/default.tpl, измением название метода  getObjectsList() на:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;%catalog getObjectsList_custom(&amp;#039;default&amp;#039;, &amp;#039;%category_id%&amp;#039;)%&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле ..\classes\modules\catalog\permissions.custom.php расширим существующую группу прав:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$permissions = array(&lt;br /&gt;
                        &amp;#039;tree&amp;#039; =&amp;gt; array(),&lt;br /&gt;
                        &amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;getObjectsList_custom&amp;#039;)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4031</id>
		<title>Участник:SpeLL</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:SpeLL&amp;diff=4031"/>
		<updated>2012-09-24T07:26:48Z</updated>

		<summary type="html">&lt;p&gt;SpeLL: Новая страница: «== Сентябрь: ==  &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;Первая&amp;lt;/li&amp;gt; &amp;lt;/ul&amp;gt;»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Сентябрь: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Первая]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>SpeLL</name></author>
		
	</entry>
</feed>