переход в раздел

#
переход в раздел
вывод меню магазина осущетсвляется 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="/">
      <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 class="categories" id="shop_menu">
         <xsl:apply-templates select="group"/>
      </ul>
   </xsl:template>
   
   <!-- Шаблон для групп товара -->
   <xsl:template match="group">
      
      <!-- Если это подпункт (родитель не равен 0) - выводим слева от него тире -->
      
      <li class="bg_list">
         
         
         <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; font-size: 10px;">
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
      </li>
   </xsl:template>
</xsl:stylesheet>
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: переход в раздел
никто не подскажет?
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: переход в раздел
Как вы себе представляете одновременно
Цитата:
выскакивали подменюшки при нажатии, и в раздел переход был

Уж что-то одно - или подменюшки выскакивают на текущей странице, или переход в раздел (т.е. загрузка новой страницы).

Для перехода в раздел вместо раскрытия менюшке надо убрать
onClick="return show_hide_menu('{@id}');"


Чтобы при загрузке страницы с разделом текущая подменюшка рисовалась откытой, нужно над строкой
<ul class="left_menu gray_link gray" id="{@id}" style="display: none; font-size: 10px;">
добавить вычисление переменной, которая будет принимать значения block и none, в зависимости от того, находимся мы в разделе для которого рисуется вот эта конкретная подменюшка, или нет, а потом подставляем эту переменноую вместо "none" после style="display:
Заказов не беру. Консультирую редко.
#
Re: переход в раздел
Kotoff писал(а):
Чтобы при загрузке страницы с разделом текущая подменюшка рисовалась откытой, нужно над строкой
<ul class="left_menu gray_link gray" id="{@id}" style="display: none; font-size: 10px;">
добавить вычисление переменной, которая будет принимать значения block и none, в зависимости от того, находимся мы в разделе для которого рисуется вот эта конкретная подменюшка, или нет, а потом подставляем эту переменноую вместо «none» после style=«display:


и как вычислить эту переменную относительно группы магазина?
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: переход в раздел
Ну, например так:
<xsl:variable name="display_style">
    <xsl:choose>
        <xsl:when test="@id = /shop/@current_group_id or count(.//group[@id = /shop/@current_group_id]) &gt; 0">block</xsl:when>
        <xsl:otherwise>none</xsl:otherwise>
    </xsl:choose>
</xsl:variable>

И тогда в значении display у style дожно быть имя переменной:
style="display: {$display_style}; font-size: 10px;"
Заказов не беру. Консультирую редко.
#
Re: переход в разделюбо
спасибо
но что то не срабатывает
по любому "none" стоит
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: переход в раздел
надо поглядеть на ваш xml. стукнитесь завтра ко мне в аську со ссылкой на эту тему.
Заказов не беру. Консультирую редко.
#
Re: переход в раздел
шаблон правильный, но у вас при генерации xml для магазина идентификатор текущей группы почему-то всегда имеет значение 0, хотя в $param['current_group_id'] значение передается верное.
Обратитесь в техподдержку, возможно у вас была какая-то ошибка при обновлении.
Заказов не беру. Консультирую редко.
#
Re: переход в раздел
в макете вывод групп магазина должен быть, чтоб работало:
<!-- Разделы каталога товаров -->
      <?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;
$param['current_group_id'] = to_int($GLOBALS['shop_item_path']['group']);
$external_prorertys['current_group_id']=to_int($GLOBALS['shop_item_path']['group']);

$shop->ShowShop($shop_id, 'МагазинГруппыТоваровНаГлавной', $param, $external_prorertys);
      }
      ?>
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: переход в раздел
Это я, балбес, по привычке полез в ТДС, а вызов-то был в макете
Просто я обычно менюшки делаю через класс Structure а не через класс Shop, вот и сработал стереотип мышления
Заказов не беру. Консультирую редко.
Авторизация