Левое меню Интернет магазина.

#
Левое меню Интернет магазина.
Добрый день администрация и посетители форума.
Возник такой вопрос...

В левом меню сайта я вывожу меню Интернет - магазина

      <?php
      // Проверяем, существует ли класс Интернет-магазина
      if (class_exists('shop'))
      {
         $shop = & singleton('shop');
         $shop_id = 1;

         $param = array();
         $param['items_on_page'] = 0;
         $param['xml_show_group_type'] = 'all';

         $shop->ShowShop($shop_id, 'МагазинГруппыТоваровНаГлавной', $param);
      }
      ?>


Суть в том что у меня выводятся группы товаров и при нажатии на группы выпадает список подгрупп, при повторном нажатии список подгрупп опять исчезает.
Кому не сложно объясните как сделать так что бы эти подгруппы были видны всегда.

Группа 1
- подгруппа 1
- подгруппа 2
Группа 2
- подгруппа 1
- подгруппа 2

Как то вот так.

Скажу сразу поиск юзал многое находил и пример от Varkolak пробовал (http://www.hostcms.ru/forums/22/1997/). Но к сожалению он не работает выдает ошибку.

Уважаемые, ткните пальцем где и что изменить и самое главное на что изменить.
Модератор
#
Re: Левое меню Интернет магазина.
1. В самом начале XSL убираете
<SCRIPT> ... </SCRIPT>

2. Дальше в коде вносите изменение:
<a href="{/shop/path}{fullpath}" onClick="return show_hide_menu('{@id}');">
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </a>
         
         <!-- Если есть подгруппы -->
         <xsl:if test="group">
            <ul class="left_menu gray_link gray" id="{@id}" style="display: none;">
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
#
Re: Левое меню Интернет магазина.
Большое спасибо, все получилось!
#
Re: Левое меню Интернет магазина.
Уважаемые форумчане! Помогите еще с 1 вопросом.
Как ограничить дерево меню интернет магазина, что бы оно выводило не все группы, подгруппы и подподгруппы? Необходима глубина меню не глубже 2го уровня.
Модератор
#
Re: Левое меню Интернет магазина.
http://www.hostcms.ru/forums/22/111/
для подсчета текущего уровня вложенности в дереве (полезно, например, для получения уровня вложенности у structure) используйте
count(ancestor::имя узла)

Получаем:
         <a href="{/shop/path}{fullpath}">
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </a>
        
         <!-- Если есть подгруппы -->
         <xsl:if test="count(group) > 0 and 2 > count(ancestor::group)">
            <ul class="left_menu gray_link gray" id="{@id}">
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
#
Re: Левое меню Интернет магазина.
Большое спасибо! Все получилось!
Модератор
#
Re: Левое меню Интернет магазина.
Пожалуйста.
#
Re: Левое меню Интернет магазина.
А каким образом сделать, чтобы если выбрана подгруппа в группе, то группа была развернута? Например, выбрали подгруппа 1, по клику переходим на этот раздел, а меню слева имеет такой вид. А если ещё как-то выделить активное меню, то вообще шикарно будет.

Группа 1
подгруппа 1
— подгруппа 2
Группа 2
Группа 3

Ну или хотя бы скажите, передается ли в XML id активной группы, чтобы сделать проверку на неё?
Модератор
#
Re: Левое меню Интернет магазина.
Art-Futuro,
В клиентском разделе можно включить вывод XML и сразу будет понятно где что в XML.
#
Re: Re: Левое меню Интернет магазина.
<xsl:if test="current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
   <xsl:attribute name="style">font-weight: bold</xsl:attribute>
</xsl:if>
Проверка на активность, примерно такая?
Авторизация