Kirill
Новичок
трабла с группировкой
Уважаемые, не поможете с шаблном:
XML:
<list>
<food>
<category name="category" id="1">
<item name="name" producer="producer1"/>
<item name="name2" producer="producer2"/>
<item name="name3" producer="producer2"/>
<item name="name4" producer="producer1"/>
</category>
<category name="category45" id="51">
<item name="name5" producer="producer1"/>
<item name="name6" producer="producer2"/>
<item name="name7" producer="producer2"/>
<item name="name8" producer="producer1"/>
</category>
</food>
<clothes>
<item name="name345" producer="producer1"/>
<item name="name66" producer="producer2"/>
<item name="name77" producer="producer2"/>
<item name="name87" producer="producer4"/>
</clothes>
</list>
Нужно чтобы была общая таблица в виде:
Сначала питание:
продукты дробятся по категориям (т.е. загаловок категории - затем идут продукты), в одежде такого нет - сначала загаловок с одеждой - затем пошла вся одежда. В каждой группе продукты (питание/одежда) должны быть сгруппированы по производителям (@producer).
Делаю так:
Далее идет шаблон для clothes - аналогично.
Если убрать clothes и оставить только food, затем запустит вышеуказанный шаблон то в 1 категории окажутся производители и продукты, которых нету в 1 категории, а в какой-нибудь последней может не оказаться продуктов вообще, т.к. они все окажутся распиханными по другим категориям. По - ключу выбираются все продукты, которые удовлетворяют условию @producer, а на родительскую категорию ключ не реагирует. Никто не подскажет как это поправить?
-~{}~ 20.01.07 00:06:
p.s. про случай, когда есть ещё шаблон clothes я не говорю
, но следует учесть что это возможно
Уважаемые, не поможете с шаблном:
XML:
<list>
<food>
<category name="category" id="1">
<item name="name" producer="producer1"/>
<item name="name2" producer="producer2"/>
<item name="name3" producer="producer2"/>
<item name="name4" producer="producer1"/>
</category>
<category name="category45" id="51">
<item name="name5" producer="producer1"/>
<item name="name6" producer="producer2"/>
<item name="name7" producer="producer2"/>
<item name="name8" producer="producer1"/>
</category>
</food>
<clothes>
<item name="name345" producer="producer1"/>
<item name="name66" producer="producer2"/>
<item name="name77" producer="producer2"/>
<item name="name87" producer="producer4"/>
</clothes>
</list>
Нужно чтобы была общая таблица в виде:
Сначала питание:
продукты дробятся по категориям (т.е. загаловок категории - затем идут продукты), в одежде такого нет - сначала загаловок с одеждой - затем пошла вся одежда. В каждой группе продукты (питание/одежда) должны быть сгруппированы по производителям (@producer).
Делаю так:
PHP:
<xsl:key name="src" match="item" use="@producer"/>
<xsl:template match="list">
<div class="products">
<table cellspacing="0" cellpadding="0" width="100%">
<xsl:apply-templates select="food"/>
<xsl:apply-templates select="clothes"/>
</table>
</div>
</xsl:template>
<xsl:template match="food">
<tr>
<td colspan="5">питание</td>
</tr>
<tr class="product_head">
<td width="50"> </td>
<td width="100%">Товар</td>
<td>Упаковка</td>
<td>Цена</td>
<td> </td>
</tr>
<xsl:apply-templates select="category"/>
</xsl:template>
<xsl:template match="category">
<tr>
<td colspan="5" class="cat_head"><xsl:value-of select="@name"/></td>
</tr>
<xsl:for-each select="item[generate-id()=generate-id(key('src',@producer))]">
<xsl:sort select="@producer" data-type="text" order="ascending" />
<tr>
<td colspan="5" class="product_producer">
<xsl:value-of select="@producer"/>
</td>
</tr>
<xsl:for-each select="key('src',@producer)">
<xsl:apply-templates select=".">
<xsl:with-param name="pos" select="position()"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template match="category/item">
<tr>
item_tpl
</tr>
</xsl:template>
Если убрать clothes и оставить только food, затем запустит вышеуказанный шаблон то в 1 категории окажутся производители и продукты, которых нету в 1 категории, а в какой-нибудь последней может не оказаться продуктов вообще, т.к. они все окажутся распиханными по другим категориям. По - ключу выбираются все продукты, которые удовлетворяют условию @producer, а на родительскую категорию ключ не реагирует. Никто не подскажет как это поправить?
-~{}~ 20.01.07 00:06:
p.s. про случай, когда есть ещё шаблон clothes я не говорю
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)