меню из списка

#
Re: меню из списка
нет всем разделам магазина в этом меню присваивается адрес раздела в котором находимся.
а если в корне интернет-магазина находимся - то всем разделам в меню присваивается адрес магазина
#
Re: меню из списка
выложите xsl
#
Re: меню из списка
я там временно проверку на родителя Вашу заменил пока на вывод стиля только для разделов магазина
<?xml version="1.0" encoding="windows-1251"?>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:key name='menu-curr' match="*[@href = $request-uri]" use='ancestor::group / link / @href'/>
   
   <xsl:template match="/document">
      <div id='main' style="padding-top: -100px"><!-- Выбираем узлы структуры -->
         <ul id="browser" class="filetree treeview-famfamfam"><xsl:apply-templates select="structure[show=1]"/>
      </ul></div>
   </xsl:template>
   
   <xsl:template match="structure">
      
      <xsl:if test="contains(@id, 'item_') = 'True' or contains(@id, 'group_') = 'True'">

      <xsl:variable name="current_structure_id">
         <xsl:choose>
            <xsl:when test="/document/item/node()">item_<xsl:value-of select="/document/item"/></xsl:when>
            <xsl:when test="/document/group/node()">group_<xsl:value-of select="/document/group"/></xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="/document/structure/current_structure_id"/>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>

         <li >
<xsl:if test="count(structure) > 0"><xsl:attribute name="class">closed</xsl:attribute></xsl:if>
                        
            <!-- Расчитываем размер отступа -->
            <xsl:variable name="padding" select="level * 0"/>
            
            <!-- Показывать ссылку, или нет -->
            <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:choose>
                  <xsl:when test="count(structure) > 0">
                  <a rel="nofollow"  href='' ><xsl:value-of disable-output-escaping="yes" select="name"/><font color="#66FF66">(<xsl:value-of select="count(.//structure[starts-with(@id, 'item_') = 'True'])"/>)</font></a>
                  </xsl:when>
                  <xsl:otherwise>
                     <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:if>
            
            
            <xsl:if test="count(structure[show=1]) &gt; 0">
               <ul>
                  <!-- Выбираем узлы структуры -->
                  <xsl:apply-templates select="structure[show=1]"/>
               </ul>
            </xsl:if>
         </li>
      </xsl:if>
   </xsl:template>
   
</xsl:stylesheet>
#
Re: меню из списка
<a rel="nofollow"  href='' >


Во-первых, скрываете от поисковиков пустую ссылку (зачем?)

Во-вторых, пустой href и будет вести на текущую страницу
у конечных узлов должно быть все порядке

оставьте у промежуточных узлов
href="{$link}"


а скрипт по идее должен перехватывать нажатие

если не перехватывает, как вариант
href="{$link}" onclick="return false"


+при отключенных скриптах такое меню перестает работать
#
Re: меню из списка
нет, это я блин с этими заменами пропустил пустую ссылку и её скрытие от другого меню.

Всё теперь работает. Вот только если нахожусь на странице товара из меню пропадают товары кроме товара на странице которого нахожусь.
Посмотрите: http://www.altay-magazin.ru/%CF%F0%EE%E4%F3%EA%F6%E8%FF_%C3%EE%F0%ED%EE%E3%EE_%C0%EB%F2%E0%FF/%D1%F3%E2%E5%ED%E8%F0%FB/group_1135/%E1%EB%FE%E4%EE/
Если переходишь в раздел - всё ок.

А так работает как надо.
#
Re: меню из списка
удалите
$param['show_shop_items'] = array($item_id);
в вызове
#
Re: меню из списка
всё, спасибо большое, теперь надо подсобрать немного и выложить меню со скриптами в олезные решения.

Ещё раз благодарю
#
Re: меню из списка
ещё вопрос

Может кто подскажет как в коде ниже задать вывод названия раздела (без ссылки) если находися на странице раздела. Тоесть если на этой странице находимся, то на нейже не надо на себя же ссылку...
<!-- Выводим ссылку -->
               <xsl:choose>
<!--ссылка если это группа -->
<xsl:when test="count(structure) > 0">
               <span class="folder"  style="{$link_style}"><a href='{$link}' ><xsl:value-of disable-output-escaping="yes" select="name"/><font color="#009933">(<xsl:value-of select="count(.//structure[starts-with(@id, 'item_') = 'True'])"/>)</font></a></span>
</xsl:when>
<!-- без ссылки на страницу раздела (если в нем находимся) -->

<!-- без ссылки на страницу товара (если в ней находимся) -->
<xsl:when test="@id=$current_structure_id">
                     <span class="file" style="{$link_style}"><xsl:value-of disable-output-escaping="yes" select="name"/></span>
</xsl:when>
<!-- иначе просто ссылка на страницу товара -->
<xsl:otherwise>
                  <a href="{$link}"><span class="file" ><xsl:value-of disable-output-escaping="yes" select="name"/></span></a>
</xsl:otherwise>
               </xsl:choose>
#
Re: меню из списка
возможно так:
<!-- Выводим ссылку -->
               <xsl:choose>
<!--ссылка если это группа -->
<xsl:when test="count(structure) > 0">
               <span class="folder"  style="{$link_style}">
<xsl:choose>
<xsl:when test="@id=$current_structure_id">
<xsl:value-of disable-output-escaping="yes" select="name"/><font color="#009933">(<xsl:value-of select="count(.//structure[starts-with(@id, 'item_') = 'True'])"/>)</font>
</xsl:when>
<xsl:otherwise>
<a href='{$link}' ><xsl:value-of disable-output-escaping="yes" select="name"/><font color="#009933">(<xsl:value-of select="count(.//structure[starts-with(@id, 'item_') = 'True'])"/>)</font></a>
</xsl:otherwise>
</xsl:choose>

</span>
</xsl:when>
<xsl:otherwise>
<xsl:choose>

<!-- без ссылки на страницу товара (если в ней находимся) -->
<xsl:when test="@id=$current_structure_id">
                     <span class="file" style="{$link_style}"><xsl:value-of disable-output-escaping="yes" select="name"/></span>
</xsl:when>
<!-- иначе просто ссылка на страницу товара -->
<xsl:otherwise>
                  <a href="{$link}"><span class="file" ><xsl:value-of disable-output-escaping="yes" select="name"/></span></a>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>

               </xsl:choose>


суть - для всех ссылок a href добавить проверку на текущий раздел
<xsl:choose>
<xsl:when test="@id=$current_structure_id">
вывод без ссылки
</xsl:when>
<xsl:otherwise>
вывод со ссылкой
</xsl:otherwise>
</xsl:choose>
#
Re: меню из списка
Большое спасибо! теперь работает.
Авторизация