Вывести все подразделы текущего раздела

RSS
Вывести все подразделы текущего раздела, Люди добрые, немножко вашего внимания и ваша помощь
 
Люди добрые, немножко вашего внимания и помощь
Появилась необходимость вывести все подразделы текущего раздела

Структура:
1. Раздел со всеми разделами одним списком - 2. Раздел из всех разделов - 3. Подразделы из (2.) - 4. Список товаров из подразделов.

Нужно чтобы подразделы (2.) , отображались на каждой странице списка товаров (4.)

Сейчас через компонент catalog.section.list могу вывести из определенного раздела, указав "SECTION_CODE" => "kosmetika_dlya_gostinits" определенного раздела (2.)

Не судите строго если что то написано не так, я еще совсем новичок в этом всем. Но буду очень рад и благодарен вашей помощи.
Код
<?$APPLICATION->IncludeComponent(
   "bitrix:catalog.section.list",
   "catalog_struktr_spa",
   Array(
      "ADD_SECTIONS_CHAIN" => "Y",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "CACHE_TIME" => "36000000",
      "CACHE_TYPE" => "A",
      "COMPONENT_TEMPLATE" => "tree",
      "COMPOSITE_FRAME_MODE" => "A",
      "COMPOSITE_FRAME_TYPE" => "AUTO",
      "COUNT_ELEMENTS" => "N",
      "FILTER_NAME" => "sectionsFilter",
      "IBLOCK_ID" => "2",
      "IBLOCK_TYPE" => "catalog",
      "SECTION_CODE" => "kosmetika_dlya_gostinits",
      "SECTION_FIELDS" => array(0=>"NAME",1=>"",),
      "SECTION_ID" => "",
      "SECTION_URL" => "#SECTION_CODE#",
      "SECTION_USER_FIELDS" => array(0=>"",1=>"",),
      "SHOW_PARENT_NAME" => "Y",
      "TOP_DEPTH" => "1",
      "VIEW_MODE" => "LINE"
   )
);?>
 
Внутри под раздела получаете его родителя (раздел верхнего уровня, в вашем случае)
Код
$SECTION_ID = $arResult['SECTION_ID']; //ID текущего раздела
$sectionParent = CIBlockSection::GetNavChain(false, $SECTION_ID);
    while($arItem = $sectionParent->Fetch()){
        $parentSectionId = $arItem['ID']; // ID родителя (там массив, если больше одного родителя)
    }

В bitrix:catalog.section.list передаете этот ID
Код
<?$APPLICATION->IncludeComponent(
   "bitrix:catalog.section.list",
   "catalog_struktr_spa",
   Array(
      "ADD_SECTIONS_CHAIN" => "Y",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "CACHE_TIME" => "36000000",
      "CACHE_TYPE" => "A",
      "COMPONENT_TEMPLATE" => "tree",
      "COMPOSITE_FRAME_MODE" => "A",
      "COMPOSITE_FRAME_TYPE" => "AUTO",
      "COUNT_ELEMENTS" => "N",
      "FILTER_NAME" => "",
      "IBLOCK_ID" => "2",
      "IBLOCK_TYPE" => "catalog",
      "SECTION_CODE" => "",
      "SECTION_FIELDS" => array(0=>"NAME",1=>"",),
      "SECTION_ID" => $parentSectionId,  // Тут передали ID
      "SECTION_URL" => "#SECTION_CODE#",
      "SECTION_USER_FIELDS" => array(0=>"",1=>"",),
      "SHOW_PARENT_NAME" => "Y",
      "TOP_DEPTH" => "1",
      "VIEW_MODE" => "LINE"
   )
);?>

Пишу по быстрому, но вроде бы ни чего не упустил.
Вам, скорее всего, нужно будет еще выполнять проверки на глубину текущего раздела.
 
Михаил Базаров, да все верно. Но вывелись разделы самого начала каталога, то есть основные разделы. А нужно отобразить подразделы из основного раздела.
Цитата
Структура:
1. Раздел со всеми разделами одним списком - 2. Раздел из всех разделов - 3. Подразделы из (2.) - 4. Список товаров из подразделов.

Нужно чтобы подразделы (2.) , отображались на каждой странице списка товаров (4.)
Если смотреть по структуре отобразились разделы с структуры (1.), а нужно чтобы отображались подразделы из структуры (2.)
 
Тогда, пропробуйте так
Код
$SECTION_ID = $arResult['SECTION_ID']; //ID текущего раздела
$res = CIBlockSection::GetByID($SECTION_ID);
if($ar_res = $res->GetNext()) {
 print_r($ar_res);
}
 
В распечатке, получите все данные о разделе, в том числе о его прямом родителе (на самом верхнем, а о близжайшем).
Но не точно, сейчас проверить негде
 
Цитата
Михаил Базаров написал:
$SECTION_ID = $arResult['SECTION_ID']; //ID текущего раздела
$res = CIBlockSection::GetByID($SECTION_ID);
if($ar_res = $res->GetNext()) {
print_r($ar_res);
}
В компоненте что то нужно менять?

А то отображается так же.
 
Михаил Базаров, может у Вас похожие какие нибудь видеоуроки имеются?
 
Или когда появится возможность проверить, пожалуйста отпишите.
Жду вашего ответа.

Спасибо вам большое.

Написал на многих форумах, ответили только Вы!
 
Я вот подумал, может можно как то через компонент меню это все реализовать?
 
Михаил Базаров, вы ответите?
 
В компоненте ничего менять не нужно. Решить, этот вопрос, можно на уровне шаблонов.
Вам нужно, просто получить ID (или CODE) родителя на нужном уровне раздела и передать его в catalog.section.list
 
Михаил Базаров, спасибо, буду разбираться.
 
Михаил Базаров,можете помочь в решении. Я заплачу.
У вас не должно уйти много времени, я уже 4 день этим занимаюсь.
Читают тему (гостей: 1)

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще