Вывод количества объектов в категории. XSLT — различия между версиями
XiBOR (обсуждение | вклад) (Новая страница: «Если у нас стоит задача вывести количество товаров напротив каждой подкатегории(к пример…») |
(нет различий)
|
Версия 08:35, 28 октября 2012
Если у нас стоит задача вывести количество товаров напротив каждой подкатегории(к примеру чтоб напротив DVD плееры стояла цифра 3, то есть кол-во DVD плееров). Конечно же есть статья Выводим_количество_товаров_в_категории_xslt, в которой это уже реализованно. Но там используется usel выборка. А мы постараемся обойтись без неё, и вообще сделать это решение минимальным.
Для начала откроем шаблон, по которому все подкатегории у нас выводятся, это шаблон \xsltTpls\modules\catalog\category-list.xsl
Смотрим на шаблон:
<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>
Соответственно, для того, чтобы вывести количество, мы можем взять значение total из макроса getObjectsList. Добавим вывод значения, после наименования категории. Выглядеть это будет так:
<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>(<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '///10'))/udata/total" />)
</li>
</xsl:template>
А если мы хотим добавить и общее количество товаров в категории, добавим эту же самую строчку в шаблоне, по которому формируется вывод категорий. Шаблон этот \xsltTpls\modules\catalog\left-column-category-list.xsl
Добавляем ту же самую строку:
(<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '///10'))/udata/total" />)
Внутри span, сразу после </a>, и на выходе получим такую картину: