@daylight6

Каким компонентом в Битриксе можно вывести названия разделов и под ними список всех элементов раздела?

Добрый день.
Подскажите, можно ли каким-то компонентом без кастомизации вывести названия разделов и под ними названия всех элементов, принадлежащих в конкретному разделу, для примера, как здесь: www.ego-estetic.ru/i-can/?
  • Вопрос задан
  • 1054 просмотра
Решения вопроса 2
alexyarik
@alexyarik
Битрикс разработчик
Вы можете расширить возможности стандартного компонента и создать свой простой каталог. Копируете компонент в своё пространство имен и меняете логику.
1) CIBlockSection::GetList - вытаскиваете разделы
2) формируете массив, строите связи id раздела - ID элементов раздела
3) CIBlockElement::GetList - Вытаскиваете элементы
4) Завершаете формирование своего массива $arResult
5) В шаблоне компонента выводите данные из сформированного массива так как нужно
Ответ написан
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
По умолчанию такого компонента нет. Но если надо как в примере сделать простую структуру из одного уровня разделов + их элементы то:
1) Подключаете bitrix:news.list
2) В result_modifier.php шаблона делайте запрос CIblockSection::GetList. С его помощью вы получите список разделов.
3) Имея список разделов и зная к какому разделу принадлежит элемент, можно вывести то что вам надо.

Только не надо делать так:
foreach ($arResult["ITEMS"] as $arItem) {
    $arSelect = Array("ID", "NAME", "IBLOCK_ID");
    $arFilter = Array(
        "IBLOCK_ID" => $IBLOCK_ID,
        "ID" => $arItem["IBLOCK_SECTION_ID"],
    );
    
    $res = CIblockSEction::GetList(array("SORT" => "ASC"), $arFilter);
    if($arSection = $res->Fetch()) {

    }
}

а то получите n+1 запросы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы