В компоненте search.page в поле WHERE можно отметить и вывести типы инфоблоков. Нужно получить древовидную структуру, в которой под каждым типом будут выводиться его инфоблоки.
в компоненте тип инфоблока выводится в выпадашку таким образом: $arrDropdown[$code] = $arIBlockTypes[$part_id]
где $arIBlockTypes собирается гетлистом
Код |
---|
$arIBlockTypes = array();
if(CModule::IncludeModule("iblock"))
{
$rsIBlockType = CIBlockType::GetList(array("sort"=>"asc"), array("ACTIVE"=>"Y"));
while($arIBlockType = $rsIBlockType->Fetch())
{
if($ar = CIBlockType::GetByIDLang($arIBlockType["ID"], LANGUAGE_ID))
{
$arIBlockTypes[$arIBlockType["ID"]] = $ar["~NAME"];
}
}
}
|
$code приходит из параметров компонента. в параметрах прописано следующее
Код |
---|
"SHOW_WHERE" => array(
"PARENT" => "VISUAL",
"NAME" => GetMessage("SEARCH_SHOW_DROPDOWN"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
"REFRESH" => "Y",
),
"arrWHERE" => array(
"PARENT" => "VISUAL",
"NAME" => GetMessage("SEARCH_WHERE_DROPDOWN"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"VALUES" => CSearchParameters::GetFilterDropDown(),
),
|
По CSearchParameters::GetFilterDropDown() документации не нашла. Как создается этот набор? И где прописан GetFilterDropDown?