define("IBMAINCATALOG_ID", 13); //инфоблок главного каталога
AddEventHandler('iblock', 'OnAfterIBlockElementAdd', 'my_onAfterIBlockElementAddHandler');
function my_onAfterIBlockElementAddHandler(&$arFields)
{
//для теста запишем в лог
$f = fopen($_SERVER["DOCUMENT_ROOT"]."/goods_add.log", "a");
ob_start();
print_r($arFields);
$print_r = ob_get_contents();
ob_end_clean();
fwrite($f, date("Y-m-d H:i:s", time())." ".$print_r."\n");
fclose($f);
if(!CModule::IncludeModule("iblock"))
{
global $APPLICATION;
$APPLICATION->throwException("Не могу подключить модуль iblock");
echo "Не могу подключить модуль iblock";
die();
return;
}
if($arFields['IBLOCK_ID'] == IBMAINCATALOG_ID) //если добавляли элемент в каталоге
{
$arElement = GetIBlockElement($arFields['ID']);
//для теста запишем в лог
$f = fopen($_SERVER["DOCUMENT_ROOT"]."/goods_add.log", "a");
ob_start();
if($arElement)
{
print_r($arElement);
$print_r = ob_get_contents();
}
else
{
$print_r = "false";
}
ob_end_clean();
fwrite($f, date("Y-m-d H:i:s", time())." ".$arFields['ID']." ".$print_r."\n");
fclose($f);
$big_img = CFile::CopyFile($file_id); //нужно получить $file_id, а GetIBlockElement($arFields['ID']) возвращает false
$el = new CIBlockElement;
CIBlockElement::SetPropertyValues($arFields['ID'], $arFields['IBLOCK_ID'], array('b_photo' => $big_img), 'b_photo');
$el->Update($arFields['ID'], array('DETAIL_PICTURE' => $arFields['DETAIL_PICTURE']), false, true, true);
//'PREVIEW_PICTURE' и 'DETAIL_PICTURE' обрабатываются правильно, согласно настройкам инфоблока
}
}
|