Меню
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 день этим занимаюсь.
 
Подразделы могут не выводиться из-за того, что у вас глубина вывода только один уровень:
Цитата
написал:
"TOP_DEPTH" => "1"
Эту цифру нужно увеличить на требуемую вам глубину отображения подразделов.
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

Индивидуальные цены в 1С-Битрикс: в каталоге и при оформлении заказа

В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей. При этом, индивидуальные цен...

Удалить всех пользователей которые не делали заказов в магазине 1С-Битрикс

Задача: сайт проработал 7 лет и все время на нем была открытая регистрация, создано много мертвых учетных записей (б...

Если предложение SKU в корзине, поменять кнопку добавления на "В корзине"

Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине"...

Самодельная форма добавления элемента на API Битрикс

Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изрядно и не используя js) как уг...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Настройка обмена между 1С:Предприятие и магазином на "1С-Битрикс24: Интернет-магазин + CRM" по REST протоколу

В этой заметке расскажу как настроить синхронизацию между 1С:предприятие и "1С-Битрикс24: Интернет-магазин + CR...

Получить и вывести все цены товара в 1С-Битрикс

Задача: получить и вывести все цены товара по его ID в каталоге 1С-Битрикс (например, в детальной карточке catalog.e...

Постраничная навигация в списке разделов Битрикс- catalog.section.list

Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно воспользоваться методами CDBR...