В комплексную компоненту bitrix:new.list требуется добавить новый параметр, отвечающий за выбор нового ID инфоблока.
Для этого в файле .parametrs.php в папке templates в скопированном шаблоне компоненты. Конкретно в данном случае:
/public_html/local/templates/.default/components/bitrix/news/brands/.parameters.php
Ищем массив $arTemplateParameters и добавляем туда свой параметр
$arTemplateParameters = array( ... "IBLOCK_ID_C" => Array( "PARENT" => "BASE", "NAME"=>GetMessage("IT_IBLOCK_ID_C"), "TYPE"=>"LIST", "VALUES"=>$arIBlocks, "DEFAULT"=>'1', "MULTIPLE"=>"N", "ADDITIONAL_VALUES"=>"N", "REFRESH" => "Y", ), );
Массив для выбора списка инфоблоков. Добавляем выше.
$arIBlocks=Array(); $db_iblock = CIBlock::GetList(Array("SORT"=>"ASC"), Array("SITE_ID"=>$_REQUEST["site"], "TYPE" => ($arCurrentValues["IBLOCK_TYPE"]!="all"?$arCurrentValues["IBLOCK_TYPE"]:""))); while($arRes = $db_iblock->Fetch()) $arIBlocks[$arRes["ID"]] = $arRes["NAME"];
Незабываем добавить описание Параметра в языковой файл по адресу: /public_html/local/templates/.default/components/bitrix/news/brands/lang/ru/.parameters.php
$MESS["IT_IBLOCK_ID_C"] = "Инфоблок Товары";
Смотрим наличие нового параметра в параметрах компоненты.
Находим и радуемся=)
Если требуется Достать не только инфоблок но и тип инфоблока. К коду выше требуется дописать запрос который вытаскивает типы инфоблоков и привязать его к массиву выстаскивающему инфоблоки.
По итогу получим код:
$arTypesEx = CIBlockParameters::GetIBlockTypes(Array("all"=>" ")); $arIBlocks=Array(); $db_iblock = CIBlock::GetList(Array("SORT"=>"ASC"), Array("SITE_ID"=>$_REQUEST["site"], "TYPE" => ($arCurrentValues["I_IBLOCK_TYPE_SP"]!="all"?$arCurrentValues["I_IBLOCK_TYPE_SP"]:""))); while($arRes = $db_iblock->Fetch()) $arIBlocks[$arRes["ID"]] = $arRes["NAME"];
$arTemplateParameters = array( "IBLOCK_TYPE_SP" => Array( "PARENT" => "BASE", "NAME"=>GetMessage("I_IBLOCK_TYPE_SP"), "TYPE"=>"LIST", "VALUES"=>$arTypesEx, "ADDITIONAL_VALUES"=>"N", "REFRESH" => "Y", ), "IBLOCK_ID_SP" => Array( "PARENT" => "BASE", "NAME" => GetMessage("T_IBLOCK_ID_SP"), "TYPE" => "LIST", "VALUES"=>$arIBlocks, "MULTIPLE"=>"N", "ADDITIONAL_VALUES"=>"N", "REFRESH" => "Y" ), );