Вывод заголовка в каталоге с перечислением всех примененных фильтров
Кодинг
→
HostCMS
→
Интернет-магазин
При фильтрации часто в заголовок необходимо вывести перечесления фильтров. Для фильтра, изображенного на картинке справа, будет выведен заголовок "Производитель MAYTONI; Серия Diamant 1, Ferentino; Цвет Никель;". Пример можно посмотреть на сайте http://lumierelight.ru/
Для доп. свойств типа "Информационный элемент" необходимо будет добавить значения в XML отдельно. Так, в приведенном коде я использую информационные элементы в качестве производителя. Это было необходимо для возможности группировки производителей по странам.
Установка:
1. В XSL каталога товаров добавляем код
<!-- КАД: Шаблон для заголовка при фильтрации -->
<xsl:template match="property" mode="header">
<xsl:variable name="id" select="@id"/>
<xsl:variable name="nodename">property_<xsl:value-of select="$id"/></xsl:variable>
<xsl:variable name="type" select="type"/>
<xsl:if test="/shop/*[name()=$nodename] != ''">
<xsl:value-of select="name"/><xsl:text> </xsl:text>
<xsl:for-each select="/shop/*[name()=$nodename]">
<xsl:variable name="value"><xsl:value-of select="."/></xsl:variable>
<xsl:choose>
<!-- Информационные системы -->
<xsl:when test="$type=5">
<xsl:value-of select="/shop/shop_producer[id=$value]/name"/>
</xsl:when>
<!-- Списки -->
<xsl:otherwise>
<xsl:value-of select="//list_item[@id=$value]/value"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>; </xsl:text>
</xsl:if>
</xsl:template>
2. В месте, где требуется вывести заголовок вставляем
<xsl:apply-templates select="//property" mode="header"/>
перечисление, аргументы фильтра, вывод, фильтр, Заголовок
26.02.2013, 3825 просмотров.
Добавить комментарий