Древовидное (раскрывающееся) навигационное меню для магазина

#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
Кстати, такая проблема уже возникала: http://www.hostcms.ru/forums/17/5484/ Но, к сожалению, никто не ответил человеку
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
Неужели нет какого-то готового решения (теоретически, должно быть вшито такое решение, но я не нашел, к сожалению) для корректного древовидного отображения категорий?
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
Попробуйте так:

<xsl:if test="(@id = $parent_group_id and count(group) &gt; 0) or (@id != $parent_group_id and count(.//group[@id = $parent_group_id]) &gt; 0)">
          <ul style="padding-left:10px; font-size:11px; color: #663300">            
             <xsl:apply-templates select="group"/>
          </ul>
</xsl:if>

#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
html писал(а):
Попробуйте так:

Волшебно! Работает вплоть до пятой вложенности, а больше у меня пока что нет

Огромное Вам спасибо!
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
у меня почему то верхние группы вывелись в li а подгрупп нету.
Как определить причину? подгруппы есть, но невыводятся.
в xml они есть.
добавлено спустя 5 минут:
вот так вывелись все. Ничего плохого в этом нет? я просто совсем начинающий.
<xsl:if test="count(group) &gt; 0">
          <ul style="padding-left:10px; font-size:11px; color: #663300">            
             <xsl:apply-templates select="group"/>
          </ul>
</xsl:if>
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
html писал(а):
День добрый, меню удобное спасибо большое, но хотелось бы объединить работу вашего меню с стандартным... который с ява кодом.. пытаюсь сделать так:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:template match="/">
      
      <xsl:apply-templates select="/shop"/>
      
   </xsl:template>
   
   <!-- Шаблон для магазина -->
   <xsl:template match="/shop">
         <SCRIPT>
         <xsl:comment>
            <xsl:text disable-output-escaping="yes">
               <![CDATA[
               function show_hide_menu(id)
               {
               if (obj = document.getElementById(id))
               {
               obj.style.display == 'none' ? obj.style.display = 'block' : obj.style.display = 'none';
               return false;
               }
               return true;
               }
               ]]>
            </xsl:text>
         </xsl:comment>
      </SCRIPT>
      <ul>
         <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: #6e6e6e; padding-bottom:5px">
         
         <xsl:if test="@id = $parent_group_id">
            
            <font style="font-weight:bold">
               
               <xsl:value-of disable-output-escaping="yes" select="name"/>
               
            </font>
            
         </xsl:if>
         
         <xsl:if test="@id != $parent_group_id">
            
            <a href="{/shop/path}{fullpath}" onClick="return show_hide_menu('{@id}');">
               
               <xsl:value-of disable-output-escaping="yes" select="name"/>
               
            </a>
            
         </xsl:if>
         
      </li>
               <!-- Если есть подгруппы -->
         <xsl:if test="group">
            <ul class="left_menu gray_link gray" id="{@id}" style="display: none;">
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
      
      <xsl:if test="(@id = $parent_group_id and count(group) &gt; 0) or (count(group[@id = $parent_group_id]) &gt; 0)">
         <ul style="padding-left:10px; font-size:11px; color: #6e6e6e">
            <xsl:apply-templates select="group"/>
         </ul>
      </xsl:if>
      
   </xsl:template>
   
</xsl:stylesheet>

Работает, но если повторно по разделу нажать естественно появляться скрытые подпункты... и получается дублирование подпунктов (если текущая группа)...., как бы этого избежать... не поможете, заранее спасибо.
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
#
Re: Древовидное (раскрывающееся) навигационное меню для магазина
Здравствуйте!
Вместо меню выводится сообщение:
Fatal error: Class 'shop' not found in .........\www\templates\template1\template.htm on line 112 подкажите, пожалйуста, что сделано не так?
Заранее спасибо!
Авторизация