<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0</id>
	<title>Вывод фильтров для всех разделов каталога - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;action=history"/>
	<updated>2026-04-27T13:22:48Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6332&amp;oldid=prev</id>
		<title>Mad grant в 15:33, 23 сентября 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6332&amp;oldid=prev"/>
		<updated>2013-09-23T15:33:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 15:33, 23 сентября 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; [[category:Верстка в XSLT]][[Категория:Модуль Каталог]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; [[category:Верстка в XSLT]][[Категория:Модуль Каталог&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]][[category:API&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.1&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.1&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вывод фильтров для всех разделов каталога==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Вывод фильтров для всех разделов каталога==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mad grant</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6325&amp;oldid=prev</id>
		<title>Mad grant в 14:58, 23 сентября 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6325&amp;oldid=prev"/>
		<updated>2013-09-23T14:58:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 14:58, 23 сентября 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l123&quot; &gt;Строка 123:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 123:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Результат ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Результат ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Результат будет такой же как через usel, только мы выиграем в быстродействии.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Результат будет такой же как через usel, только мы выиграем в быстродействии.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Полезные ссылки ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Документация по макросу %catalog getObjectList()% [http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getobjectslist/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Документация по макросу %catalog search()% [http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_search/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Документация по протоколу USel [http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Документация по Selector [http://api.docs.umi-cms.ru/spravochnik_po_klassam_yadra_umicms/vyborki/selector/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Документация по классу umiHierarchyElement [http://api.docs.umi-cms.ru/spravochnik_po_klassam_yadra_umicms/model_ierarhii/umihierarchyelement/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Конструкция foreach [http://www.php.net/manual/ru/control-structures.foreach.php]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mad grant</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6321&amp;oldid=prev</id>
		<title>Mad grant: Новая страница: « category:Верстка в XSLTКатегория:Модуль Каталог &#039;&#039;&#039;Актуально для версии 2.9.1&#039;&#039;&#039; == Вывод фильтр…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%81%D0%B5%D1%85_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=6321&amp;oldid=prev"/>
		<updated>2013-09-23T14:56:08Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « &lt;a href=&quot;/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&quot; title=&quot;Категория:Верстка в XSLT&quot;&gt;category:Верстка в XSLT&lt;/a&gt;&lt;a href=&quot;/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3&quot; title=&quot;Категория:Модуль Каталог&quot;&gt;Категория:Модуль Каталог&lt;/a&gt; &amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.1&amp;#039;&amp;#039;&amp;#039; == Вывод фильтр…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt; [[category:Верстка в XSLT]][[Категория:Модуль Каталог]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Вывод фильтров для всех разделов каталога==&lt;br /&gt;
По-умолчанию в демошаблоне &amp;quot;demodizzy&amp;quot;(Современный интернет магазин) реализована следующая структура каталога:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Structure.png]]&lt;br /&gt;
&lt;br /&gt;
И фильтры выводятся только в разделах каталога 3его уровня, а в разделах 2ого уровня фильтры не выводятся:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Filter1.png]][[Файл:Filter4.png]]&lt;br /&gt;
&lt;br /&gt;
А нам нужно вывести фильтры для товаров и на 3ем и на 2ом уровне, при условии, что в каждом разделе 2ого уровня присутствуют товары&lt;br /&gt;
только одного типа данных, то есть нам нужно как-то передавать тип данных объекта каталога, находящегося с разделе каталога на&lt;br /&gt;
3ем уровне, в раздел каталога на 2ом уровне.&lt;br /&gt;
=== Решение через макрос catalog getObjectList ===&lt;br /&gt;
Сначала, попробуем решить задачу с помощью системного макроса %catalog getObjectList()%, см. &amp;quot;Полезные ссылки&amp;quot;. Попробуем&lt;br /&gt;
воспользоваться примером решения из статьи [[Как_вывести_фильтр_по_товарам_по_всему_каталогу(XSLT)]], для этого&lt;br /&gt;
перед вызовом макроса %catalog search()%, см. &amp;quot;Полезные ссылки&amp;quot;, в файле /templates/demodizzy/xslt/modules/catalog/category-view.xsl&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(&amp;#039;udata://catalog/search&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
добавим переменную &amp;quot;type&amp;quot; и присвоим ей значение типа данных первого объекта каталога, полученного с помощью catalog getObjectList:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////3/&amp;#039;))/udata/type_id&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и модифицируем вызов макроса catalog search, добавив 4 параметром нашу переменную &amp;quot;type&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/search////&amp;#039;, $type))&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
то есть в результате темплейт match=&amp;quot;udata[@method = &amp;#039;getObjectsList&amp;#039;][total]&amp;quot; будет начинаться со следующего:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////3/&amp;#039;))/udata/type_id&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://catalog/search////&amp;#039;, $type))&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Результат ===&lt;br /&gt;
В результате страницах разделов каталога 2ого и 3его уровня отображаются фильтры, причем для каждого раздела каталога свои:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Filter2.png]][[Файл:Filter3.png]]&lt;br /&gt;
&lt;br /&gt;
На первый взгляд задача была решена, но если мы зададим в фильтре такие значения, которым не будет удовлетворять ни один объект&lt;br /&gt;
каталога (товар), то после нажатия кнопки &amp;quot;применить&amp;quot;, окно фильтра пропадет, а так как и объектов нет - пользователю откроется пустой экран:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Filter5.png]]&lt;br /&gt;
&lt;br /&gt;
Нас это не устраивает, так как, хотелось бы, чтобы форма осталась и пользователь мог ввести другие данные.&lt;br /&gt;
Такая ситуация возникает из-за особенностей работы макроса catalog getObjectsList(), он взаимодействует с get параметрами,&lt;br /&gt;
появляющимися в адресной строке браузера после применения фильтра, а так как ни один объект каталога не удовлетворяет заданным параметрам,&lt;br /&gt;
то и переменную type равную типу данных объекта каталога мы получить не можем, а значит мы передаем макросу catalog search() пустую переменную, то и&lt;br /&gt;
форма не выводится. Значит нам нужно получать тип данных каким-нибудь другим способом, независимым от работы catalog search(), из&lt;br /&gt;
стандартных средства с этой задаче справиться USel, см. &amp;quot;Полезные ссылки&amp;quot;.&lt;br /&gt;
=== Решение через USel ===&lt;br /&gt;
Сначала, создадим xml шаблон для USel выборки, для этого поместим в директорию /templates/demodizzy/usels/ файл getObjectOfCategory.xml следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;selection&amp;gt;&lt;br /&gt;
        &amp;lt;!-- результат выборки - страницы --&amp;gt;&lt;br /&gt;
	&amp;lt;target result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- результат выборки - страницы объектов каталога --&amp;gt;&lt;br /&gt;
			&amp;lt;type module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- результат выборки - страницы объектов каталога, находящиеся в директории с id или url равным {1} на 5 уровнях вложенности --&amp;gt;&lt;br /&gt;
			&amp;lt;category depth=&amp;quot;5&amp;quot;&amp;gt;{1}&amp;lt;/category&amp;gt;&lt;br /&gt;
	&amp;lt;/target&amp;gt;&lt;br /&gt;
        &amp;lt;!-- выводить только один результат выборки --&amp;gt;&lt;br /&gt;
	&amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;1&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/selection&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
А теперь заменим присваивание переменной type значения через catalog getObjectsList() в файле /templates/demodizzy/xslt/modules/catalog/category-view.xsl&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsList/&amp;#039;, page/@id, &amp;#039;////3/&amp;#039;))/udata/type_id&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
на присваивания через usel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;usel://getObjectOfCategory/&amp;#039;, $document-page-id))/udata/page/@type-id&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
в этом селекте мы используем переменную $document-page-id, которая стандартно задана в файле /templates/demodizzy/xslt/default.xsl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;document-page-id&amp;quot; select=&amp;quot;/result/@pageId&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и передаем её первым параметром {1} в наш USel.&lt;br /&gt;
=== Результат ===&lt;br /&gt;
В результате, вывод формы фильтрации не зависит от введенных раннее данных. Однако, usel это не оптимальное решение, так как он довольно медленный, лучше решить&lt;br /&gt;
нашу задачу через API.&lt;br /&gt;
=== Решение через API===&lt;br /&gt;
В кастоме мы будем с помощью Selector, см. &amp;quot;Полезные ссылки&amp;quot;, получать объект каталог из раздела с заданным id, а потом с помощью метода getObjectTypeId класса umiHierarchyElement, см. &amp;quot;Полезные ссылки&amp;quot;. &lt;br /&gt;
получать id его типа данных, собственно его кастом и будет возвращать.&lt;br /&gt;
В файле /classes/modules/catalog/__custom.php после строки abstract class __custom_catalog { добавим следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getObjectsType($id)&lt;br /&gt;
		{&lt;br /&gt;
		// создаем $pages экземпляр класса selector&lt;br /&gt;
		$pages = new selector(&amp;#039;pages&amp;#039;);&lt;br /&gt;
		// определяем типы данных - объект каталога&lt;br /&gt;
		$pages-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;name(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;);&lt;br /&gt;
		// определяем параметры выборки - искать объекты каталога, дочерние страницы с id = $id с вложенностью в 5 уровней&lt;br /&gt;
		$pages-&amp;gt;where(&amp;#039;hierarchy&amp;#039;)-&amp;gt;page($id)-&amp;gt;childs(5);&lt;br /&gt;
		// определяем выводимое количество результатов выборки - 1 результат&lt;br /&gt;
		$pages-&amp;gt;limit(0,1);&lt;br /&gt;
		// см. &amp;quot;Полезные ссылки&amp;quot;&lt;br /&gt;
		foreach($pages as $page)&lt;br /&gt;
		// возвращаем тип данных полученной страницы&lt;br /&gt;
		return $page-&amp;gt;getObjectTypeId();&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;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	// В этом файле вы можете расширить существующую группу прав, или добавить свою&lt;br /&gt;
	$permissions = array(&lt;br /&gt;
		&amp;#039;tree&amp;#039; =&amp;gt; array(&amp;#039;getObjectsType&amp;#039;),&lt;br /&gt;
		&amp;#039;view&amp;#039; =&amp;gt; array(&amp;#039;getObjectsType&amp;#039;)&lt;br /&gt;
	);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
После этого, заменим присваивание переменной type значения через USel в файле /templates/demodizzy/xslt/modules/catalog/category-view.xsl:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;usel://getObjectOfCategory/&amp;#039;, $document-page-id))/udata/page/@type-id&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
на присваивание через наш кастомный макрос:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:variable name=&amp;quot;type&amp;quot; select=&amp;quot;document(concat(&amp;#039;udata://catalog/getObjectsType/&amp;#039;, $document-page-id))/udata&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Результат ===&lt;br /&gt;
Результат будет такой же как через usel, только мы выиграем в быстродействии.&lt;/div&gt;</summary>
		<author><name>Mad grant</name></author>
		
	</entry>
</feed>