Вывод элементов из подраздела инфоблока в компоненте news.list

Рейтинг: -1Ответов: 2Опубликовано: 06.04.2023

Есть тип инфоблока Каталог, содержащий инфоблок Товары

введите сюда описание изображения

Внутри этого инфоблока есть разделы Телевизоры, Видео, Аудио и Товары для дома

введите сюда описание изображения

Внутри раздела Телевизоры, Видео, Аудио есть подраздел Телевизоры

введите сюда описание изображения

Внутри подраздела Телевизоры есть следующие элементы

введите сюда описание изображения

которые отображаются в каталоге товаров на сайте

введите сюда описание изображения

Есть также подраздел Стиральные машины в разделе Товары для дома

введите сюда описание изображения

Элементы подраздела Стиральные машины должны отображаться на главной странице сайта

введите сюда описание изображения

Я добавил на главную страницу сайта компонент news.list - https://i.sstatic.net/kFaQD.png.

Как я полагаю, для того чтобы вывести элементы подраздела Стиральные машины в компоненте news.list необходимо задать каким-то образом фильтр (если я ошибаюсь, то поправьте меня), но каким образом его можно задать я не знаю (даже непонятно, как загуглить). Вообщем подскажите, как вывести элементы подраздела Стиральные машины на главной странице. Привожу код вызова компонента news.list

<?$APPLICATION->IncludeComponent(
    "bitrix:news.list",
    "",
    Array(
        "ACTIVE_DATE_FORMAT" => "d.m.Y",
        "ADD_SECTIONS_CHAIN" => "N",
        "AJAX_MODE" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "CACHE_FILTER" => "N",
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "CHECK_DATES" => "Y",
        "DETAIL_URL" => "",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "DISPLAY_DATE" => "Y",
        "DISPLAY_NAME" => "Y",
        "DISPLAY_PICTURE" => "Y",
        "DISPLAY_PREVIEW_TEXT" => "Y",
        "DISPLAY_TOP_PAGER" => "N",
        "FIELD_CODE" => array("", ""),
        "FILTER_NAME" => "",
        "HIDE_LINK_WHEN_NO_DETAIL" => "N",
        "IBLOCK_ID" => "10",
        "IBLOCK_TYPE" => "catalog_goods",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "N",
        "INCLUDE_SUBSECTIONS" => "Y",
        "MESSAGE_404" => "",
        "NEWS_COUNT" => "4",
        "PAGER_BASE_LINK_ENABLE" => "N",
        "PAGER_DESC_NUMBERING" => "N",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
        "PAGER_SHOW_ALL" => "N",
        "PAGER_SHOW_ALWAYS" => "N",
        "PAGER_TEMPLATE" => ".default",
        "PAGER_TITLE" => "Новости",
        "PARENT_SECTION" => "",
        "PARENT_SECTION_CODE" => "",
        "PREVIEW_TRUNCATE_LEN" => "",
        "PROPERTY_CODE" => array("", ""),
        "SET_BROWSER_TITLE" => "N",
        "SET_LAST_MODIFIED" => "N",
        "SET_META_DESCRIPTION" => "N",
        "SET_META_KEYWORDS" => "N",
        "SET_STATUS_404" => "N",
        "SET_TITLE" => "N",
        "SHOW_404" => "N",
        "SORT_BY1" => "ACTIVE_FROM",
        "SORT_BY2" => "SORT",
        "SORT_ORDER1" => "DESC",
        "SORT_ORDER2" => "ASC",
        "STRICT_SECTION_CHECK" => "N"
    )
);?>

P.S. Прошу предоставить не только рhp код, но и скриншот настроек компонента news.list, позволяющих вывести элементы подраздела Стиральные машины. Прошу объяснить предельно подробно.

Ответы

▲ 1Принят

Можно указать параметр "PARENT_SECTION" => 31, где 31 - ID вашего раздела со стиральными машинами, но предпочтительнее задать для раздела код (например, "washing_machines") введите сюда описание изображения и указывать этот код в другом параметре: "PARENT_SECTION_CODE" => "washing_machines".введите сюда описание изображения Тогда код будет понятнее.

▲ 0

Для вывода товаров и работы с категориями лучше работать с компонентом catalog.section, в нём можно будет сразу и указать категорию и вывести цену, остаток и т.д.

Для того что бы отфильтровать элементы выводимые компонентом news.list, необходимо указать фильтр. В компоненте есть параметр "FILTER_NAME" - в нём нужно определить названание глобальной переменной в которой будет находиться фильтр.

Пример:

<?php
global $arMainProductFilter;
$arMainProductFilter = array(
    "SECTION_ID" => ID_раздела
);
?>
<?$APPLICATION->IncludeComponent(
    "bitrix:news.list",
    ...
    "FILTER_NAME" => "arMainProductFilter",
    ...
?>

Данный фильтр будет передан в \CIBlockElement::GetList и полностью варианты фильтрации можно смотреть там. И подробнее описывал в ответе