Выводим количество товаров в категории xslt — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
Если у нас стоит задача вывести количество товаров напротив каждой подкатегории(к примеру чтоб напротив DVD плееры стояла цифра 3, то есть кол-во DVD плееров)
+
'''Актуально для версии 2.9'''
 +
 
 +
== Задача ==
 +
Вывести количество товаров напротив каждой подкатегории(к примеру чтоб напротив DVD плееры стояла цифра 3, то есть кол-во DVD плееров)
 +
 
 +
== Решение ==
 
Для начала создадим usel запрос вот такого содержания
 
Для начала создадим usel запрос вот такого содержания
 
<source lang="xml">
 
<source lang="xml">
Строка 14: Строка 19:
 
<source lang="xml">
 
<source lang="xml">
 
<xsl:template match="udata[@method = 'getCategoryList']//item">
 
<xsl:template match="udata[@method = 'getCategoryList']//item">
<li umi:element-id="{@id}" umi:region="row">
+
<li umi:element-id="{@id}" umi:region="row">
<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
+
<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
<xsl:value-of select="." />
+
<xsl:value-of select="." />
<xsl:value-of select="document(concat('usel://42/', @id))/udata/total" />
+
</a>
</a>
+
</li>
</li>
+
</xsl:template>
</xsl:template>
 
 
</source>
 
</source>
 
после
 
после
Строка 33: Строка 37:
 
Всё, теперь у нас напротив категорий выводится количество товаров в этой категории.
 
Всё, теперь у нас напротив категорий выводится количество товаров в этой категории.
 
Работа протестирована в версиях 2.8.5.1 и 2.8.5.2
 
Работа протестирована в версиях 2.8.5.1 и 2.8.5.2
 +
 +
[[Категория: Верстка в XSLT]][[Категория:Модуль Каталог]]

Текущая версия на 15:25, 31 октября 2019

Актуально для версии 2.9

Задача

Вывести количество товаров напротив каждой подкатегории(к примеру чтоб напротив DVD плееры стояла цифра 3, то есть кол-во DVD плееров)

Решение

Для начала создадим usel запрос вот такого содержания

<?xml version="1.0" encoding="UTF-8"?>
<selection>
<target result="pages">
  <type module="catalog" method="object" />
  <category depth="2">{1}</category>
</target>
</selection>

Назовём его 42.xml и положим в паку /usels. Затем идём в шаблон, отвечающий за вывод подкатегорий и в блок

<xsl:template match="udata[@method = 'getCategoryList']//item">
	<li umi:element-id="{@id}" umi:region="row">
		<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
			<xsl:value-of select="." />
		</a>
	</li>
</xsl:template>

после

<xsl:value-of select="." />

добавляем следующий код

<xsl:value-of select="document(concat('usel://42/', @id))/udata/total" />

В нашем случае это шаблон /templates/modern/xslt/modules/catalog/category-list.xsl Всё, теперь у нас напротив категорий выводится количество товаров в этой категории. Работа протестирована в версиях 2.8.5.1 и 2.8.5.2