Нужно отправить письмо, если изменили данные инфоблока
Код |
---|
<?
use Bitrix\Main\Mail\Event;
use Bitrix\Main\EventManager;
use Bitrix\Main\Diag\Debug;
use Bitrix\Main\Loader;
$onBeforeIBlockUpdateHand ler = EventManager::getInstance()->addEventHandler(
"iblock",
"OnBeforeIBlockUpdate",
array(
"MyClass",
"OnBeforeIBlockUpdateHandler"
)
);
$onAfterIBlockUpdateHand ler = EventManager::getInstance()->addEventHandler(
"iblock",
"OnAfterIBlockUpdate",
array(
"MyClass",
"OnAfterIBlockUpdateHandler"
)
);
class MyClass{
function OnBeforeIBlockUpdateHandler(&$arFields){
if($arFields["ID"] == 2){
$iblockRres = CIBlock::GetByID($arFields["ID"]);
if($ar_res = $iblockRres->GetNext()){
$arIblock = $ar_res;
}
$_SESSION['EDIT_IBLOCK']['ID'] = $arFields['ID'];
$_SESSION['EDIT_IBLOCK']['OLD_NAME'] = $arIblock['NAME'];
$_SESSION['EDIT_IBLOCK']['NEW_NAME'] = $arFields['NAME'];
}
}
function OnAfterIBlockUpdateHandler(&$arFields){
if($_SESSION['EDIT_IBLOCK']['ID'] == 2){
Event::send(array(
"EVENT_NAME" => "EDIT_IBLOCK",
"LID" => "s1",
"C_FIELDS" => $_SESSION['EDIT_IBLOCK']
));
unset($_SESSION['EDIT_IBLOCK']);
}
}
}
?>
|
Если убрать проверку на ID инфоблока, то приходит 3 письма: первое касается инфоблока с id = 2, а второе и третье - инфоблока предложений. Без проверки как-то можно обойтись?