Древовидный вывод меню магазина

#
Re: Древовидный вывод меню магазина
я так замучался с этим не понимая видимо элементарности
а ведь задача простая же совсем

вывести каталог товаров(те которые в корне) и группы с товарами в древовидное меню
но не в одном а с пробелами как выше показал
да чтобы товары в корне которые - шли сначала

как это с шаблоном карты сделать?
+ убрать вывод ссылки на прайслит тк он в структуре ведь и выводиться ссылка на нее
ку
#
Re: Древовидный вывод меню магазина
никто не поможет? просто предлагается с картой сайта
но все выводиться подрят,вся структура. и никак не не разделить и отсортировать

то есть поставленная задача решается  но беспорядок остается и ненужные элементы

прайслит
группа
-товар
-товар
группа
-товар
-товар
товар
товар

а надо

товар
товар

группа
-товар
-товар

группа
-товар
-товар
ку
#
Re: Древовидный вывод меню магазина
люди хелп!
ку
Модератор
#
Re: Древовидный вывод меню магазина
compaq,
Давайте не флудить на форуме. От флуда быстрее никто не ответит на вопрос.
#
Re: Древовидный вывод меню магазина
HostCMS писал(а):
никто не поможет? просто предлагается с картой сайта
но все выводиться подрят,вся структура. и никак не не разделить и отсортировать

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

прайслит
группа
-товар
-товар
группа
-товар
-товар
товар
товар

а надо

товар
товар

группа
-товар
-товар

группа
-товар
-товар


Здравствуйте! Флудить никто не собирается канечно же =)
Так и не разобрался. Вы мне поможете?

Cпасибо.
ку
#
Re: Древовидный вывод меню магазина
compaq писал(а):
но беспорядок остается
- сортировку элементов можно задавать непосредственно в XSL-шаблоне. См. описание элемента xsl:sort.
compaq писал(а):
ненужные элементы
- уберите для "ненужных" узлов галочку "Отображать в меню сайта" при их редактировании. Если нужно, чтобы в другом меню эти узлы все-таки отображались, то ограничить их можно с помощью доп. свойств узлов, например.
#
Re: Древовидный вывод меню магазина
Вот слепил что хочу реализовать (раскрытие для убоства сделано но понятно одно - это древовидное меню магазина)

например
http://namez.spb.ru/files/tree/index.html

Первым в списке идут товары которые в корне магазина
Затем группы товаров с товарами

Как это в шаблон карты сайта интегрировать
чтобы именно так и выводилось?

То есть получить шаблон древовидного меню магазина.

Я бы и влепил бы в макет это меню без интеграции в xls
Но заказчик будет менять товары и группы.
И естественно требует древовидное меню

Cпасибо
ку
Модератор
#
Re: Древовидный вывод меню магазина
compaq,
Берете XSL от карты сайта и вставляете в него нужную логику раскрывания древовидного меню.
#
Re: Древовидный вывод меню магазина
Я это понимаю... У меня не получается из xls шаблона карты сайта сделать то что мне надо =)

Скрипт построен на списке <ul></ul> где <li> в нем раскрываются тогда когда в нем есть вложенный <ul></ul> со своми <li>

Значит надо так интегрировать в шаблон xls чтобы в нашем случае группа товаров являлась этим самым <li> в котором вложенный <ul><ul>, где <li> в этом списке являются товары.

+ c корня товары собрать в группу и чтобы эта группа была первой в общем списке

ТО есть вот что и сделал на пальцах
http://namez.spb.ru/files/tree/index.html


вот карта сайта


<?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:template match="/document">
      
      <ul class="sample-menu" id="my-menu">
         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure[show=1]"/>
      </ul>
   </xsl:template>
   
   <xsl:template match="structure">
      <li>
         <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
         
     <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
         
         <!-- Расчитываем размер отступа -->
         <xsl:variable name="padding" select="level * 10"/>
         
         <!-- Показывать ссылку, или нет -->
         <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:variable name="link_style">
               <xsl:choose>
                  <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
                  <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
                  <!-- Иначе обычный вывод с пустым стилем -->
                  <xsl:otherwise></xsl:otherwise>
               </xsl:choose>
            </xsl:variable>
            
            <a href="{$link}">
               <span style="{$link_style}">
                  <xsl:value-of disable-output-escaping="yes" select="name"/>
               </span>
            </a>
         </xsl:if>
         
         <!-- Если не показывать ссылку - выводим просто имя ссылки -->
         <xsl:if test="show_link=0">
            <!-- <img border="0" src="/images/menu_point.gif" class="menu_point" width="4" height="7" /> -->
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </xsl:if>
         
         
         <!-- ЕСЛИ ДОШЛИ ДО СЕРЕДИНЫ СПИСКА -->
         
         <!-- Если не надо разравать колонку на вторых уровнях, то указать: -->
         <!-- <xsl:if test="position() = round(count(/document/structure) div 2)"> -->
            <!--
            <xsl:if test="level = 0 and position() = round(count(/document//structure) div 2)">
               <xsl:text disable-output-escaping="yes">
                  &lt;/td&gt;
                  &lt;td valign="top" style="padding-left: 20px"&gt;
               </xsl:text>
            </xsl:if>
            -->

    <!-- Выбираем подузлы структуры -->
            <xsl:if test="count(structure[show=1]) &gt; 0">

                  <!-- Выбираем узлы структуры -->
                  <xsl:apply-templates select="structure[show=1]"/>


            </xsl:if>
         </li>
      </xsl:template>
   </xsl:stylesheet>



Помогите сюда сделать данную интеграцию
Я не понимаю как мне здесь  логику в xls поменять чтобы получилось так как я написал выше

ку
#
Re: Древовидный вывод меню магазина
что-то надо менять в логике xls?
ку
Авторизация