Выпадающее меню интернет-магазин + стурктуры

#
Выпадающее меню интернет-магазин + стурктуры
Добрый день!

В шапке реализован вывод 4-х пунктов меню:
Каталог
О магазине
Доставка
Контакты

У Пункта Каталог - выпадающее меню с группами магазина.

Прошу помочь в составлении правильного xsl

Нужно использовать его на базе

$Structure = & singleton('Structure');
$param = array();
$param['show_shop_groups'] = true;
$Structure->ShowStructure (1,'ВыпадающееМеню',$param);


Если да, то почему не выводятся пункты магазина?

Какой шаблон Меню xsl использовать?

Спасибо!
#
Re: Выпадающее меню интернет-магазин + стурктуры
xshock, приведите код XSL-шаблона "ВыпадающееМеню" полностью.
#
Re: Выпадающее меню интернет-магазин + стурктуры
Сейчас это реализовано так:

в макете страницы:

<!-- Top_Menu -->
         <div class="menu_t">
            <!-- Верхнее меню -->
            <ul>
               <li>
                  <div class="mt_s"><div class="mt_st"><div class="mt_sb"><div class="mt_sm">
                  <?php
                  // Проверяем, существует ли класс Интернет-магазина
                  if (class_exists('shop'))
                  {
                     $shop = & singleton('shop');
                     $shop_id = 1;

                     $param = array();
                     $param['items_on_page'] = 0;
                     $param['xml_show_group_type'] = 'all';
                     $param['xml_show_all_producers'] = false;
                     $param['xml_show_producers'] = false;
                     $param['xml_show_all_sellers'] = false;
                     $param['xml_show_tying_products'] = false;
                     $param['xml_show_modification'] = false;
                     $param['xml_show_group_property'] = false;
                     $param['xml_show_item_property'] = false;
                     $param['xml_show_tags'] = false;
                     $shop->ShowShop($shop_id, 'ВыпадающееМенюГруппыТоваров', $param);
                  }
                  ?>
                  </div></div></div></div>
                  <a href="#"><span><span><span>Каталог</span></span></span></a>
                  <?php
                  $Structure = & singleton('Structure');
                  $param = array();
                  $param['show_shop_groups'] = true;
                  $param['level'] = 5;
                  $param['cache'] = false;
                  $Structure->ShowStructure (1,'ВыпадающееМеню',$param);
                  ?>
               </li>
            </ul>
            
         </div>
         <!-- //Top_Menu -->


в шаблонах XSL:
ВыпадающееМенюГруппыТоваров

<?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="/">
      <ul>
         <xsl:apply-templates select="/shop"/>
      </ul>
   </xsl:template>
   
   <!-- Шаблон для магазина -->
   <xsl:template match="/shop">
      <xsl:apply-templates select="group"/>
   </xsl:template>
   
   <!-- Шаблон для групп товара -->
   <xsl:template match="group">
      <li>
         <!-- Если это подпункт (родитель не равен 0) - выводим слева от него тире -->
         <xsl:if test="@parent != 0">
            
         </xsl:if>
         
         <a href="{/shop/path}{fullpath}" title="{name}">
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </a>
         
         <!-- Если есть подгруппы -->
         <xsl:if test="group">
            <ul>
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
      </li>
   </xsl:template>
</xsl:stylesheet>


ВыпадающееМеню


<?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="/document">
      
      <!-- Выбираем узлы структуры первого уровня -->
      <xsl:apply-templates select="structure[show=1]"/>
      
   </xsl:template>
   
   <xsl:template match="structure">
      
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
      
      <li>
         <!--
         Выделяем текущую страницу добавлением к li класса red_li,
         если это текущая страница, либо у нее есть ребенок с атрибутом id, равным текущей uheggt.
         -->
         <xsl:if test="current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
            <xsl:attribute name="class">red_li</xsl:attribute>
         </xsl:if>
         
         
         <!-- Показывать ссылку, или нет -->
         <xsl:choose>
            <xsl:when 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>
               <!-- Ссылка на пункт меню -->
      <a href="{$link}" title="{name}"><span><span><span><xsl:value-of disable-output-escaping="yes" select="name"/></span></span></span></a>
            </xsl:when>
            <!-- Если не показывать ссылку - выводим просто имя ссылки -->
            <xsl:otherwise>
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </xsl:otherwise>
         </xsl:choose>
      </li>
   </xsl:template>
</xsl:stylesheet>

#
Re: Выпадающее меню интернет-магазин + стурктуры
Реализовал благодаря наводке h4mpy
в теме http://www.hostcms.ru/forums/17/1157/

Вот так:

<?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="/document">
      <ul>
      <!-- Выбираем узлы структуры первого уровня -->
      <xsl:apply-templates select="structure[show=1]" mode="main"/>
      </ul>
   </xsl:template>
   
   <xsl:template match="structure" mode="main">
      
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
      <li>

      <!-- Выбираем подузлы структуры -->
      <xsl:if test="count(structure[show=1]) &gt; 0">
      <div class="mt_s"><div class="mt_st"><div class="mt_sb"><div class="mt_sm">
         <ul>
            <!-- Выбираем узлы структуры -->
            <xsl:apply-templates select="structure[show=1]" mode="sub" />
         </ul>
      </div></div></div></div>
      </xsl:if>

      <!-- Показывать ссылку, или нет -->
      <xsl:choose>
         <xsl:when test="show_link = 1">
            <!-- Определяем адрес ссылки -->
            <xsl:variable name="link">
               <xsl:value-of disable-output-escaping="yes" select="link"/>                  
            </xsl:variable>
            <!-- Ссылка на пункт меню -->
            <a href="{$link}" title="{name}"><span><span><span><xsl:value-of disable-output-escaping="yes" select="name"/></span></span></span></a>
         </xsl:when>
         <!-- Если не показывать ссылку - выводим просто имя ссылки -->
         <xsl:otherwise>
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </xsl:otherwise>
      </xsl:choose>


      </li>
   </xsl:template>

   <xsl:template match="structure" mode="sub">
      <li>
         <a href="{link}" title="{name}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

      <!-- Выбираем подузлы структуры -->
      <xsl:if test="count(structure[show=1]) &gt; 0">      
         <ul>
            <!-- Выбираем узлы структуры -->
            <xsl:apply-templates select="structure[show=1]" mode="sub" />
         </ul>
      </xsl:if>
      </li>
   </xsl:template>
</xsl:stylesheet>
Авторизация