Рецепты и примеры кода для CMS Bitrix

Добавление артикула в поиск по заголовкам


$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; // вернём изменения
}