https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&feed=atom&action=history
Сгруппировать товары по категориям (xslt / demodizi) - История изменений
2024-03-29T15:10:44Z
История изменений этой страницы в вики
MediaWiki 1.31.0
https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&diff=3494&oldid=prev
Romario в 14:09, 12 апреля 2012
2012-04-12T14:09:02Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Предыдущая</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Версия 14:09, 12 апреля 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l20" >Строка 20:</td>
<td colspan="2" class="diff-lineno">Строка 20:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><source lang="xml">  </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><source lang="xml">  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]"></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" mode="main_cat" /></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))<ins class="diffchange diffchange-inline">//item</ins>" mode="main_cat" /></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></xsl:template>  </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></xsl:template>  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></source>  </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></source>  </div></td></tr>
</table>
Romario
https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&diff=3471&oldid=prev
Romario в 08:43, 30 марта 2012
2012-03-30T08:43:59Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Предыдущая</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Версия 08:43, 30 марта 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l39" >Строка 39:</td>
<td colspan="2" class="diff-lineno">Строка 39:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Таким образом мы получим на втором уровне каталога список товаров разбитый по категориям.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Таким образом мы получим на втором уровне каталога список товаров разбитый по категориям.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Категория:Верстка в XSLT]]</ins></div></td></tr>
</table>
Romario
https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC_(xslt_/_demodizi)&diff=3469&oldid=prev
Romario: Новая страница: «Описание: На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором…»
2012-03-30T08:35:33Z
<p>Новая страница: «Описание: На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором…»</p>
<p><b>Новая страница</b></p><div>Описание:<br />
<br />
На демонстрационном сайте UMI.CMS с шаблоном дизайна современный, товары на втором уровне каталога (например DVD Техника) отображаются все вместе. <br />
<br />
Задача:<br />
<br />
Разбить товары на категории в зависимости от поткатегорий этого каталога. <br />
<br />
Решение:<br />
<br />
Шаблон отвечающий за отображение товаров на втором уровне каталога, по умолчанию, находится в файле ~\xsltTpls\modules\catalog\category-view.xsl:<br />
<source lang="xml"> <br />
<xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]"><br />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', page/@id, '////2/'))/udata" /> <br />
</xsl:template> <br />
</source> <br />
В данной конструкции вызываются все объекты каталога из 2х подуровней каталога.<br />
<br />
Данный шаблон заменим на следующий:<br />
<source lang="xml"> <br />
<xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]"><br />
<xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" mode="main_cat" /><br />
</xsl:template> <br />
</source> <br />
В данном шаблоне мы заменили вызов объектов каталога на вызов категорий каталога.<br />
<br />
Теперь нам необходимо написать шаблон для категорий каталога, таким образом, чтобы из каждой категории вызывались только "свои: объекты:<br />
<source lang="xml"> <br />
<xsl:template match="udata[@method = 'getCategoryList']//item" mode="main_cat"><br />
<h2><br />
<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;"><br />
<xsl:value-of select="." /><br />
</a><br />
</h2><br />
<hr/><br />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList//',@id))/udata" /><br />
</xsl:template><br />
</source> <br />
<br />
Таким образом мы получим на втором уровне каталога список товаров разбитый по категориям.</div>
Romario