Отображение всех подгрупп и под-подгрупп для данной группы

#
Отображение всех подгрупп и под-подгрупп для данной группы
Добрый вечер.

Смотрел информацию на форуме по древовидным меню и отображению подгрупп, но так ответа и не нашел.

Предлагаемая структура магазина.

Интернет магазин
----------------
Группа 1
-Подгруппа1 (Группы 1)
   - Под-подгруппа1 (Подгруппы1)
   - Под-подгруппа2 (Подгруппы1)
-Подгруппа2 (Группы 1)
-Подгруппа3 (Группы 1)

Группа 2
-Подгруппа1 (Группы 2)
-Подгруппа2 (Группы 2)

Группа 3
-Подгруппа1 (Группы 3)


Как сейчас реализовано. Дети отображаются только конкретного родителя.

Кликаем на интернет магазин. Нам показывается.

Интернет магазин
----------------------
Группа 1
Группа 2
Группа 3
----------------------
Кликаем на Группу 1. Нам показывается.

Группа 1
----------------------
-Подгруппа1(Группы1)
-Подгруппа2(Группы1)
-Подгруппа3(Группы1)
----------------------
Кликаем на Подгруппу1. Нам показывается.

Подгруппа1
----------------------
-Под-подгруппа1(подгруппы1)
-Под-подгруппа2(подгруппы1)
----------------------

Что хотелось бы видеть? Чтобы отображались дети конкретного родителя, а также дети детей.

Кликаем на интернет магазин. Нам показывается.

Интернет магазин
----------------
Группа 1
-Подгруппа1 (Группы 1)
   - Под-подгруппа1 (Подгруппы1)
   - Под-подгруппа2 (Подгруппы1)
-Подгруппа2 (Группы 1)
-Подгруппа3 (Группы 1)

Группа 2
-Подгруппа1 (Группы 2)
-Подгруппа2 (Группы 2)

Группа 3
-Подгруппа1 (Группы 3)
----------------------

Кликаем на Группу 1. Нам показывается.

Группа 1
----------------------
-Подгруппа1 (Группы 1)
   - Под-подгруппа1 (Подгруппы1)
   - Под-подгруппа2 (Подгруппы1)
-Подгруппа2 (Группы 1)
-Подгруппа3 (Группы 1)

Кликаем на Подгруппу1. Нам показывается.

Подгруппа1
----------------------
- Под-подгруппа1 (Подгруппы1)
- Под-подгруппа2 (Подгруппы1)

Заранее спасибо.
Модератор
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
Mihey2007 писал(а):
мотрел информацию на форуме по древовидным меню и отображению подгрупп, но так ответа и не нашел.

Посмотрите еще раз внимательно: http://www.hostcms.ru/search/?text=tree+all
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
Посмотрел, уже голова болит. Может не туда смотрю. Самое ближайшее, что нашел это http://www.hostcms.ru/forums/17/2019/ .

Но даже и здесь толку ноль если поставить $param['xml_show_group_type'] = 'all'; по этой ссылке с этим xsl подразделы не отображаются.
<?
$shop = new shop();
$xsl_catalog = 'МагазинКаталогТоваров';
$param['xml_show_group_type'] = 'all';
$shop->ShowShop(3, $xsl_catalog, $param, array('current_group_id' => false, 'items_on_page' => 0, 'items_order' => 'rand');
?>


А если взять - стандартный xsl 'МагазинКаталогТоваров'  и вывести его, то меню полностью отображается со всеми подразделами, всегда на всех страницах. А нужно чтобы на главной все отображалось, а в разделе только то что к разделу относится.

                if (class_exists('shop')
      {
         $shop = & singleton('shop';
         $shop_id = 3;
         $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);
      }
      ?>

может не там копаю
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
или так

тупо прописать условие, чтобы развернутое меню по all отображалось только на главной магазина. а на всех отсальных стандартное отображение каталога?

и кстате включение на $param['xml_show_group_type'] = 'all'; по предложенной в начале структуре магазина показывает только подгруппы, а под-подгруппы не показывает.
Модератор
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
Mihey2007,
под показывает Вы имеете ввиду XSL выводит или система генерирует? Проверьте данные в XML, там должны быть подгруппы и останется только в XSL указать выводить подгруппы у подгрупп.
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
в динамической странице инет магаза lib_6.php добавил параметр $param['xml_show_group_type'] = 'all';. выводится стандартным xsl шаблоном "МагазинКаталогТоваров" только подкатегории. поэтому в нем добавил <!-- Шаблон для под_подразделов --> с вызовом его из <!-- Шаблон для подразделов -->. стали выводится и подподкатегории.
Модератор
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
Mihey2007,
Вот об этом я и говорил, система генерировала, не было обработки в XSL-шаблоне.
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
А можно попросить продемонстрировать шаблоны? Или, хотя бы, куда именно вставить строку $param['xml_show_group_type'] = 'all'; и как вызвать под_подраздел?
www.dsaleks.ru - создание сайтов и интернет-магазинов
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
Открываем hostcmsfiles\lib\lib_6\lib_6.php
в самом конце перед

   Цитата:
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
   }
   else


вставляем

      Цитата:
$param['xml_show_group_type'] = 'all';


и правим xsl файл
      hostcmsfiles\xsl\55.xsl (стандартный шаблон , используется по умолчанию)

Цитата:
<!-- Шаблон для групп товара -->
         <xsl:template match="group">
            
            <xsl:variable name="parent_id" select="@parent"/>
            
            <div style="margin-bottom: 15px;">
               <a href="{/shop/path}{fullpath}" style="font-weight: bold">
                  <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>&#xA0;<span style="color: #aaaaaa">(<xsl:value-of select="count_all_items"/></span>
               <br/>
               <xsl:value-of disable-output-escaping="yes" select="description"/>
               
               <xsl:if test="count(group) &gt; 1">
                  <xsl:apply-templates select="group" mode="sub_group"/>
               </xsl:if>
            </div>
            
            <xsl:if test="position()= round(count(//group[@parent = $parent_id]) div 2)">
               <xsl:text disable-output-escaping="yes">
                  &lt;/td&gt;
                  &lt;td valign="top" width="50%"&gt;
               </xsl:text>
            </xsl:if>
         </xsl:template>
         
         <!-- Шаблон для подразделов -->
         <xsl:template match="group" mode="sub_group">
            <a href="{/shop/path}{fullpath}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>
            <xsl:variable name="parent_id" select="@parent"/>
            <!-- Ставим запятую после группы, за которой следуют еще группы из данной родителской группы -->
            <xsl:if test="position() != last() and count(//group[@parent = $parent_id]) &gt; 1">,&#xA0;</xsl:if>

<xsl:if test="count(group) &gt; 1">
                  <xsl:apply-templates select="group" mode="sub_sub_group"/>
               </xsl:if>
         </xsl:template>

<!-- Шаблон для под_подразделов -->
         <xsl:template match="group" mode="sub_sub_group">
            <a href="{/shop/path}{fullpath}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>

            </a>
            <xsl:variable name="parent_id" select="@parent"/>
            <!-- Ставим запятую после группы, за которой следуют еще группы из данной родителской группы -->
            <xsl:if test="position() != last() and count(//group[@parent = $parent_id]) &gt; 1">,&#xA0;</xsl:if>
         </xsl:template>
#
Re: Отображение всех подгрупп и под-подгрупп для данной группы
$param['xml_show_group_type'] = 'all';
  Я так понимаю что после вставки этого в ТДС в xml выведуться все подгруппы подгрупп данной группы.

Вставил а в XML подгруппы не попали в чем может быть дело??
Авторизация