Добавление артикула в поиск по заголовкам
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler("search", "BeforeIndex", "BeforeIndexHandler");
function BeforeIndexHandler($arFields){
if(!\Bitrix\Main\Loader::includeModule('iblock')) return $arFields;
if($arFields["MODULE_ID"] == "iblock"){
$dbProps = CIBlockElement::GetProperty(// Запросим свойства индексируемого элемента
$arFields["PARAM2"], // BLOCK_ID индексируемого свойства
$arFields["ITEM_ID"], // ID индексируемого свойства
["sort" => "asc"], // Сортировка (можно упустить)
["CODE"=>"CML2_ARTICLE"], // CODE свойства (в данном случае артикул)
);
if($arProps = $dbProps->fetch()){
$arFields["TITLE"] .= " ".$arProps["VALUE"]; // Добавим свойство в конец заголовка индексируемого элемента
}
$res = CIBlockElement::GetByID($arFields["ITEM_ID"]);
if($arRes = $res->fetch()){
$arFields["TITLE"] .= " ".$arRes["DETAIL_TEXT"];
}
}
return $arFields; // вернём изменения
}