все хорошо, фактически это и надо было вывести подменю в момент нахождения в подменю, но подменю выводится в родительских тегах меню, тоесть дублируя друг друга, как сделать чтобы при нахождении в подпунктах выводились только подпункты не дублируя друг друга, помогите пожалуйста разобраться, впервые получается делать такую сложную на мой взгляд структуру вывода?
<!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
<xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
<!-- Показывать ссылку, или нет -->
<xsl:if test="show_link=1">
<!-- Определяем адрес ссылки -->
<xsl:variable name="link">
<xsl:choose>
<!-- Если внешняя ссылка -->
<xsl:when test="is_external_link=1">
<xsl:value-of disable-output-escaping="yes" select="external_link"/>
</xsl:when>
<!-- Иначе если внутренняя ссылка -->
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="link"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем стиль вывода ссылки -->
<xsl:variable name="link_style">
<xsl:choose>
<!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
<xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
<!-- Иначе обычный вывод с пустым стилем -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Если не показывать ссылку - выводим просто имя ссылки -->
<xsl:if test="show_link=0">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:if>
</li>
</xsl:template>
<xsl:template match="structure" mode="pool">
<li class="item_menu_div" id="menu_id_{@id}" onmouseover="MenuOver('menu_id_{@id}', 'child_menu_id_{@id}');" onmouseout="MenuOut('menu_id_{@id}', 'child_menu_id_{@id}');">
<!-- Показывать ссылку, или нет -->
<xsl:if test="show_link=1">
<!-- Определяем адрес ссылки -->
<xsl:variable name="link">
<xsl:choose>
<!-- Если внешняя ссылка -->
<xsl:when test="is_external_link=1">
<xsl:value-of disable-output-escaping="yes" select="external_link"/>
</xsl:when>
<!-- Иначе если внутренняя ссылка -->
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="link"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Если не показывать ссылку - выводим просто имя ссылки -->
<xsl:if test="show_link=0">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
Если при вызове метода $Structure->ShowStructure (1,'MainMenu',$param) передавать параметры $param['show_groups'] = true и
$param['show_items'] = true, то инфогруппы и инфоэлементы попадут в XML-код вместе с остальными узлами структуры. И отображать их можно наравне с «обычными» узлами.
Не подскажете, как сделать, чтобы в меню отображались инфогруппы и количество инфоэлементов в каждой группе? Сами инфоэлементы отображать не надо.
Однако, если мы начинаем переходить в эти пункты подменю, то подменю перестает выводиться.
Подскажите как сделать, чтобы подменю выводилось всегда, вне зависимости от того, в каком уровне вложенности мы находимся.
Уточню, что структура выглядит следующим образом:
1. Другая языковая версия сайта
1.1. Пункт1 меню
1.1.1. Пункт1 подменю
1.1.2. Пункт2 подменю
1.2. Пункт2 меню
1.2.1. Пункт1 подменю
1.2.2. Пункт2 подменю
В основном меню выводится пункты 1.1. и 1.2.
При переходе в них в отдельном месте появляются их подпункты, например если заходим в пункт 1.1., то в подменю - 1.1.1 и 1.2.1, но если мы заходим в один из этих подпунктов, то ничего не выодится.
Это все я уже пробовал прежде чем написать, не помогает.
При указании false выводятся все пункты, входящие в "1. Другая языковая версия сайта" без привязки к текущему уровню, а при указании "5" (это то меню, которое я указываю в структуре к нужной странице) вообще ничего не выводится