таких привязок в товаре 6 штук, для каждой сделать такой же обработчик
хотелось бы отблагодарить как то, есть возможность написать тебе куда нибудь в личку
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('search', 'BeforeIndex', array('MySearch', 'BeforeIndex'));
class MySearch {
private static $catalogIblockId = 2;
private static $docsIblockId = 4;
const PROPERTY_DOCUMENTS = 'PROPERTY_FILE';
public static function BeforeIndex($arFields) {
if(intval($arFields['PARAM2']) == self::$catalogIblockId && intval($arFields['ITEM_ID']) > 0 && isset($arFields['BODY'])) {
\Bitrix\Main\Loader::includeModule('iblock');
$arDocsId = array();
$dbRes = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $arFields['PARAM2'], 'ID' => $arFields['ITEM_ID']), false, false, array(self::PROPERTY_DOCUMENTS));
while($arRes = $dbRes->Fetch()) {
if($arRes[self::PROPERTY_DOCUMENTS.'_VALUE'])
$arDocsId[] = $arRes[self::PROPERTY_DOCUMENTS.'_VALUE'];
//$arFile = CFile::GetFileArray($arRes['PROPERTY_FILE_VALUE']);
// $arFields['BODY'] .= PHP_EOL.$arFile['ORIGINAL_NAME'];
}
if($arDocsId) {
$dbRes = CIBlockElement::GetList(array(), array('IBLOCK_ID' => self::$docsIblockId, 'ID' => $arDocsId), false, false, array('NAME'));
while($arRes = $dbRes->Fetch()) {
$arFields['BODY'] .= PHP_EOL.$arRes['NAME'];
}
}
return $arFields;
}
}
}
($|index\\.php|\\?.*)