Структура шаблонов модуля Каталог, демо-сайт Современный — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «В данной статье мы рассмотрим структура шаблонов демо-сайта Современный, тех шаблонов кот…») |
Mad grant (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 82: | Строка 82: | ||
находятся в этом же файле. | находятся в этом же файле. | ||
+ | [[Категория:Верстка в XSLT]] |
Текущая версия на 20:34, 4 июня 2013
В данной статье мы рассмотрим структура шаблонов демо-сайта Современный, тех шаблонов которые относятся к модулю Каталог.
Благодаря шаблону /xsltTpls/modules/catalog/special-offers.xsl, на главной странице случайным образом отображается девять объектов каталога. Отрабатывается данный шаблон:
<xsl:template match="result[page/@is-default = '1']" priority="1">
<xsl:apply-templates select="document('usel://special-offers/?limit=&specials-limit;')" mode="special-offers" />
</xsl:template
В xsl-шаблоне /xsltTpls/layouts/default.xsl, прописан вызов получения дочерних разделов каталога, относительно раздела 'shop':
<xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
шаблоны-обработчики данного вызова находятся в файле /xsltTpls/modules/catalog/left-column-category-list.xsl, дополнительные шаблоны в файле /xsltTpls/modules/catalog/category-list.xsl.
В xsl-шаблоне /xsltTpls/layouts/default.xsl, прописан вызов обработки корневого узла result, т.е. xml-данных текущей страницы:
<div class="content">
<xsl:apply-templates select="result" />
</div>
При нахождении на странице типа "Раздела каталога" (@method = 'category'), в файле /xsltTpls/modules/catalog/category-view.xsl, будет отрабатываться один из шаблонов:
<xsl:template match="/result[@method = 'category']">
<xsl:apply-templates select="document(concat('usel://special-category-offers/', $document-page-id, '?limit=&specials-limit;'))" mode="special-offers" />
</xsl:template>
<xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]">
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', page/@id, '////2/'))/udata" />
</xsl:template>
<xsl:template match="/result[@method = 'category'][count(/result/parents/page) > 1]">
<xsl:apply-templates select="document('udata://catalog/getObjectsList')" />
</xsl:template>
в зависимости от того какой уровень вложенности текуйщей страницы (count(/result/parents/page)). Два последних из указанных шаблонов вызывают метод getObjectsList, шаблоны-обработчики данного вызова находятся в этом же файле:
<xsl:apply-templates select="document('udata://catalog/search')" />
<div class="catalog" umi:element-id="{category_id}" umi:module="catalog" umi:method="getObjectsList" umi:sortable="sortable" umi:add-method="popup">
<xsl:text>&empty-category;</xsl:text>
</div>
</xsl:template>
<xsl:template match="udata[@method = 'getObjectsList'][total]">
<xsl:apply-templates select="document('udata://catalog/search')" />
<div class="catalog_sort" />
<div class="catalog">
<div class="objects" umi:element-id="{category_id}" umi:module="catalog" umi:method="getObjectsList" umi:sortable="sortable">
<xsl:apply-templates select="lines/item" mode="short-view">
<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
</xsl:apply-templates>
<div class="clear" />
</div>
</div>
<div class="clear" />
<xsl:apply-templates select="total" />
Шаблоны для обработки данного вызова:
<xsl:apply-templates select="lines/item" mode="short-view">
<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
</xsl:apply-templates>
находятся в файле /xsltTpls/modules/catalog/common.xsl
При нахождении на странице типа "Объект каталога" (@method = 'object'), в файле /xsltTpls/modules/catalog/object-view.xsl, будет отрабатываться шаблон:
<xsl:template match="/result[@module = 'catalog' and @method = 'object']">
<xsl:apply-templates select="document(concat('upage://', page/@id,'?show-empty'))/udata" mode="object-view" />
</xsl:template>
шаблоны для обработки вызова:
<xsl:apply-templates select="document(concat('upage://', page/@id,'?show-empty'))/udata" mode="object-view" />
находятся в этом же файле.