Сделал поиск как описано тут [URL=http://dev.1c-bitrix.ru/community/blogs/oracle/search-search-limits-on-arbitrary-parameters.php]http://dev.1c-bitrix.ru/community/blogs/oracle/search-search-limits-on-arbitrary-parameters.php[/URL]
но в выпадающем списке не появляются подразделы, что делаю неправильно
в init.php добавли следующее
[QUOTE]// регистрируем обработчик
AddEventHandler("search", "BeforeIndex", Array("MyClass", "BeforeIndexHandler"));
class MyClass
{
// создаем обработчик события "BeforeIndex"
function BeforeIndexHandler($arFields)
{
// элемент инфоблока 2 (не раздел)
if($arFields["MODULE_ID"] == "iblock" && $arFields["PARAM2"] == 24 && substr($arFields["ITEM_ID"], 0, 1) != "S")
{
$arFields["PARAMS"]["iblock_section"] = array();
//Получаем разделы привязки элемента (их может быть несколько)
$rsSections = CIBlockElement::GetElementGroups($arFields["ITEM_ID"], true);
while($arSection = $rsSections->Fetch())
{
$nav = CIBlockSection::GetNavChain(2, $arSection["ID"]);
while($nav->Fetch("nav_")) {
//Сохраняем в поисковый индекс
$arFields["PARAMS"]["iblock_section"][] = $nav_ID;
}
}
}
//Всегда возвращаем arFields
return $arFields;
}
}[/QUOTE]
на станице поиска следующее
[QUOTE]<?global $arSectionFilter;
$arSectionFilter = array("PARAMS" => array("iblock_section" => $SECTION_ID));
?>
<?$APPLICATION->IncludeComponent("bitrix:search.page", "mainpage.search", array(
"RESTART" => "Y",
"NO_WORD_LOGIC" => "N",
"CHECK_DATES" => "N",
"USE_TITLE_RANK" => "N",
"DEFAULT_SORT" => "rank",
"FILTER_NAME" => "arSectionFilter",
"arrFILTER" => array(
0 => "iblock_bookCalatog",
),
"arrFILTER_iblock_bookCalatog" => array(
0 => "24",
),
"SHOW_WHERE" => "Y",
"arrWHERE" => array(
0 => "iblock_bookCalatog",
),[/QUOTE]