Схлопывание меню при переходе на 3 уровень вложенности
vino-mila
18 марта 2011 г.
Использую следующий шаблон для навигационного меню в Интернет-магазине
<xsl:template match="/">
<xsl:apply-templates select="/shop"/>
</xsl:template>
<!-- Шаблон для магазина -->
<xsl:template match="/shop">
<h2><a href="{path}" title="Интернет-магазин">Каталог</a></h2>
<ul class="left_menu">
<xsl:apply-templates select="group"/>
</ul>
</xsl:template>
<!-- Правое меню групп товара -->
<xsl:template match="group">
<xsl:variable name="parent" select="@id"/>
<xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
<li style="color:#000; padding-bottom:5px">
<xsl:if test="@id = $parent_group_id">
<font style="text-decoration:underline; font-weight: bold; color: #7708A6">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</font>
</xsl:if>
<xsl:if test="@id != $parent_group_id">
<a href="{/shop/path}{fullpath}" style="color: #000">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:if>
</li>
<xsl:if test="(@id = $parent_group_id and count(group) > 0) or (count(group[@id = $parent_group_id]) > 0)">
<ul style="padding-left:7px; font-size:12px; color: #7708A6">
<xsl:apply-templates select="group"/>
</ul>
</xsl:if>
</xsl:template>
При заходе на 3-й и далее уровень вложенности, меню схлопывается.
Пример:
Группа 1
Группа 1.1
Группа 1.1.1 - меню схлопывается и показываются только группы 1-го уровня
Подскажите, пожалуйста, что надо поправить в шаблоне, чтобы оно не схлопывалось, когда находишься внутри
Группы 1.1.1 или на карточках товаров этой группы.
В макете данный шаблон вызываю так:
$shop = & singleton('shop');
$ShopId = 1;//Идентификатор магазина
$rez = array();
$rez = $shop->GetItemPath($ShopId);
$xsl_catalog = 'НавигационноеМеню';//Название XSL-шаблона
$param = array();
$param['xml_show_group_type'] = 'all';//Отображать все группы
$param['items_on_page'] = 2;
$param['current_group_id'] = $rez['group'];//Выводим в XML ИД текущей группы
$shop->ShowShop($ShopId, $xsl_catalog, $param);
Спасибо!
<xsl:template match="/">
<xsl:apply-templates select="/shop"/>
</xsl:template>
<!-- Шаблон для магазина -->
<xsl:template match="/shop">
<h2><a href="{path}" title="Интернет-магазин">Каталог</a></h2>
<ul class="left_menu">
<xsl:apply-templates select="group"/>
</ul>
</xsl:template>
<!-- Правое меню групп товара -->
<xsl:template match="group">
<xsl:variable name="parent" select="@id"/>
<xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
<li style="color:#000; padding-bottom:5px">
<xsl:if test="@id = $parent_group_id">
<font style="text-decoration:underline; font-weight: bold; color: #7708A6">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</font>
</xsl:if>
<xsl:if test="@id != $parent_group_id">
<a href="{/shop/path}{fullpath}" style="color: #000">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</xsl:if>
</li>
<xsl:if test="(@id = $parent_group_id and count(group) > 0) or (count(group[@id = $parent_group_id]) > 0)">
<ul style="padding-left:7px; font-size:12px; color: #7708A6">
<xsl:apply-templates select="group"/>
</ul>
</xsl:if>
</xsl:template>
При заходе на 3-й и далее уровень вложенности, меню схлопывается.
Пример:
Группа 1
Группа 1.1
Группа 1.1.1 - меню схлопывается и показываются только группы 1-го уровня
Подскажите, пожалуйста, что надо поправить в шаблоне, чтобы оно не схлопывалось, когда находишься внутри
Группы 1.1.1 или на карточках товаров этой группы.
В макете данный шаблон вызываю так:
$shop = & singleton('shop');
$ShopId = 1;//Идентификатор магазина
$rez = array();
$rez = $shop->GetItemPath($ShopId);
$xsl_catalog = 'НавигационноеМеню';//Название XSL-шаблона
$param = array();
$param['xml_show_group_type'] = 'all';//Отображать все группы
$param['items_on_page'] = 2;
$param['current_group_id'] = $rez['group'];//Выводим в XML ИД текущей группы
$shop->ShowShop($ShopId, $xsl_catalog, $param);
Спасибо!
Авторизация