Сделал поиск как описано тут http://dev.1c-bitrix.ru/community/blogs/oracle/search-search-limits-on-arbitrary-parameters.php
но в выпадающем списке не появляются подразделы, что делаю неправильно
в init.php добавли следующее
на станице поиска следующее
но в выпадающем списке не появляются подразделы, что делаю неправильно
в init.php добавли следующее
Цитата |
---|
// регистрируем обработчик 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; } } |
на станице поиска следующее
Цитата |
---|
<?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", ), |