Меню
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
Сайт в режиме тех обслуживания

Сообщения форума и комментарии не сохраняются

Возвращайтесь после 12-го января

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

Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне 1С-Битрикс

Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении товара в корзину в старых шаблон...

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

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

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...

Вывести артикул в печатную форму бланка заказа

Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе.

Перенос Битрикс сайта с хостинга на хостинг, инструкция

Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга на другой, как раз подвернулас...

Уникальный URL для торговых предложений (SKU) с возможностью автоматического выбора предложения при переходе по ссылке.

Задача: на странице товара необходимо реализовать функцию автоматического изменения URL при выборе определенной товарной...

Очистка корзины в 1С-Битрикс одним нажатием

В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием. Требуется это довольно редко,...

Очистить брошенные корзины с помощью API 1С-Битрикс

Задача: в интернет-магазине накапливается большое количество брошенных корзин, нужно их очистить. Включая и корзины заре...

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...