Задача такая: есть форма поиска с выбором раздела поиска, и с выбором по каким полям искать (по бренду, по наименованию, по коду)
1. Как можно реализовать поиск внутри раздела? Читала по форумам, что никак нельзя, только через фильтр, может , это устаревшая информация? Нельзя ли кастомизировать модуль поиска , что бы он искал в пределах выбранного раздела инфоблока... Может какое-то событие спасет мир?
2.Я кастомизировала компоненту search.title , записала в $arResult в компоненте данные выбранных селектов. Вопрос, какое событие позволит искать по определенным полям инфоблока. Поля Бренд, код в настройках инфоблока участвуют в поиске.
Вопрос в $arFields попадает $arResult?
1. Как можно реализовать поиск внутри раздела? Читала по форумам, что никак нельзя, только через фильтр, может , это устаревшая информация? Нельзя ли кастомизировать модуль поиска , что бы он искал в пределах выбранного раздела инфоблока... Может какое-то событие спасет мир?
2.Я кастомизировала компоненту search.title , записала в $arResult в компоненте данные выбранных селектов. Вопрос, какое событие позволит искать по определенным полям инфоблока. Поля Бренд, код в настройках инфоблока участвуют в поиске.
Вопрос в $arFields попадает $arResult?
Код |
---|
/ регистрируем обработчик AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler"); // создаем обработчик события "BeforeIndex" function BeforeIndexHandler($arFields) { if(!CModule::IncludeModule("iblock")) // подключаем модуль return $arFields; if($arFields["MODULE_ID"] == "iblock") { $db_props = CIBlockElement::GetProperty( // Запросим свойства индексируемого элемента $arFields["PARAM2"], // BLOCK_ID индексируемого свойства $arFields["ITEM_ID"], // ID индексируемого свойства array("sort" => "asc"), // Сортировка (можно упустить) Array("CODE"=>"CML2_ARTICLE")); // CODE свойства (в данном случае артикул) if($ar_props = $db_props->Fetch()) $arFields["TITLE"] .= " ".$ar_props["VALUE"]; // Добавим свойство в конец заголовка индексируемого элемента } return $arFields; // вернём изменения } |