В метод показа интернет-магазина(при организации показа подобного меню) ShowShop нужно передать следующие параметры:
$param['current_group_id'] = false;
$param['xml_show_group_type'] = 'all';
$param['items_on_page'] = 9999999;
После этого нужно подготовить XSL-шаблон(на базе стандартного "МагазинКаталогТоваров" ), который следует использовать для показа меню(т.е. его название нужно передать в вызов метода ShowShop). Для этого в коде, взятом из стандартного XSL-шаблона "МагазинКаталогТоваров", нужно вместо:
<xsl:apply-templates select="item" />
использовать:
<xsl:if test="$parent_group_id != 0">
<xsl:apply-templates select="item" />
</xsl:if>
вместо:
<xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
использовать:
<ul>
<xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
</ul>
вместо:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<div style="margin-bottom: 15px;">
<a href="{/shop/path}{fullpath}" style="font-weight: bold">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a> <span style="color: #aaaaaa">(<xsl:value-of select="count_all_items"/>)</span>
<br/>
<xsl:value-of disable-output-escaping="yes" select="description"/>
<xsl:if test="count(group) > 1">
<xsl:apply-templates select="group" mode="sub_group"/>
</xsl:if>
</div>
<xsl:if test="position()= round(count(//group[@parent = $parent_id]) div 2)">
<xsl:text disable-output-escaping="yes">
</td>
<td valign="top" width="50%">
</xsl:text>
</xsl:if>
</xsl:template>
<!-- Шаблон для подразделов -->
<xsl:template match="group" mode="sub_group">
<a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
<xsl:variable name="parent_id" select="@parent"/>
<!-- Ставим запятую после группы, за которой следуют еще группы из данной родителской группы -->
<xsl:if test="position() != last() and count(//group[@parent = $parent_id]) > 1">, </xsl:if>
</xsl:template>
использовать:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="id" select="@id"/>
<li>
<a href="{/shop/path}{fullpath}" style="font-weight: bold">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a> <span style="color: #aaaaaa">(<xsl:value-of select="count_all_items"/>)</span>
<xsl:if test="count(//item[@group = $id]) > 1">
<ul>
<xsl:apply-templates select="//item[@group = $id]" mode="item_list"/>
</ul>
</xsl:if>
<xsl:if test="count(group) > 1">
<ul>
<xsl:apply-templates select="group"/>
</ul>
</xsl:if>
</li>
</xsl:template>
<xsl:template match="item" mode="item_list">
<li>
<a href="{/shop/path}{fullpath}{path}/" class="cat_title">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</li>
</xsl:template>