Вывод всех подразделов каталога в левом меню (интернет магазин "Современный")
Материал из Umicms
Проблема:
В левом меню на демо-сайте интернет магазина "Современный" воводятся разделы каталога только до 2-ого уровня.
Решение:
Решение может показаться не очевидным, но в действительности это одно из очень удобных свойств xslt-шаблонизатора.
Можно организовать своего рода "замыкание". В шаблоне "\xsltTpls\modules\catalog\left-column-category-list.xsl" есть следующий блок:
<xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column"> <li umi:element-id="{@id}" umi:region="row"> <span> <a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;"> <xsl:value-of select="." /> </a> </span> <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id))" mode="left-column" /> </li> </xsl:template>
В оригинальном блоке отсутствует режим вызова (отмечен жирным) <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id))" mode="left-column" />. Если его добавить - то этот шаблон будет вызывать сам себя и выводить абсолютно все под категории.
