// регистрируем обработчик для благодарностей
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyAdmin", "OnAfterIBlockElementAddHandler"));
class MyAdmin
{
// создаем обработчик события "OnAfterIBlockElementAdd"
function OnAfterIBlockElementAddHandler(&$arFields)
{
if(!$arFields["RESULT"])
return false;
if ($arFields["IBLOCK_ID"] == 31)
{
$db_props = CIBlockElement::GetProperty(31, $arFields['ID'], "sort", "asc", Array("CODE"=>"USER"));
if ($ar_props = $db_props->Fetch())
{
$THANKSUSER=$ar_props['VALUE'];//получаем значение сотрудника, которому объявили благодарность
}
$rsUser = CUser::GetByID($THANKSUSER);
$arUser = $rsUser->Fetch();
$WORKEREMAIL=$arUser['EMAIL']; //получаем значение почты сотрудника, которому объявили благодарность
AddMessage2Log('$WORKEREMAIL-'.$WORKEREMAIL);
{ $arIBlockElement = GetIBlockElement($arFields["ID"]);
$arSend = array('TEXT');
$arrSite = 's1';
CEvent::Send('THANKS',$arrSite,$arSend);
}
}
}
}
// регистрируем обработчик для добавления в список переменных шаблона
AddEventHandler("main", "OnBeforeEventAdd", array("MyClass", "OnBeforeEventAddHandler"));
class MyClass extends MyAdmin
{
function OnBeforeEventAddHandler(&$event, &$lid, &$arFields)
{
$Object = MyAdmin::OnAfterIBlockElementAddHandler();
AddMessage2Log(print MyAdmin::$WORKEREMAIL);
$arFields["WORKER_MAIL"] = '';//тут нужно вывести значение $WORKEREMAIL
$event = 'THANKS';
}
}
CEvent::Send( 'THANKS', $arrSite, $arSend );
OnBeforeEventAdd
OnBeforeEventAddHandler ( &$event, &$lid, &$arFields )
&$event
УЖЕ равно'THANKS'
и значит его не нужно переопределять (а даже можно добавить проверку, чтобы не резались все почтовые события поголовно);&$arFields
будет содержать ссылку на массив $arSend
, в который вы и можете поместить нужную переменную. Использовать как вам нужно и почистить (или не чистить — поля, которых нет в почтовом шаблоне просто проигнорируются).$WORKEREMAIL
задумано как одно из полей в письме, его нужно просто учесть в почтовом шаблоне и передать сразу в CEvent::Send( 'THANKS', $arrSite, $arSend );
без последующего перехвата.$arSend
составлен неправильно. Тут должен быть массив ключ–значение.