Документация для разработчиков

OnBeforeEventAdd

функция-обработчик(
 string &$event,
 string &$lid,
 array &$arFields,
 string &$message_id,
 string &$files,
 string languageId = ''
)
Событие OnBeforeEventAdd вызывается в момент добавления почтового события в таблицу b_event. Как правило, задача обработчика данного события - изменить или добавить какое-либо значение, передаваемое в макросы почтового шаблона.  

Параметры

ПараметрОписание С версии
$event Идентификатор типа почтового события, например FORM_FILLING_ANKETA
$lid ID сайта, на котором был вызов метода CEvent::Send()
$arFields Массив параметров, которые передаются в обработчик события.
Пример массива:
Array
        (
            [RS_FORM_ID] => 1
            [RS_FORM_NAME] => Анкета посетителя сайта
            [RS_FORM_VARNAME] => ANKETA
            [RS_FORM_SID] => ANKETA
            [RS_RESULT_ID] => 11
            [RS_DATE_CREATE] => 24.07.2011 16:59:55
            [RS_USER_ID] => 1
            [RS_USER_EMAIL] => my@email.com
            [RS_USER_NAME] =>  
            [RS_USER_AUTH] =>  
            [RS_STAT_GUEST_ID] => 1
            [RS_STAT_SESSION_ID] => 1
            [VS_NAME] => sfdsf
            [VS_NAME_RAW] => sfdsf
            [VS_BIRTHDAY] => 21.07.2011
            [VS_BIRTHDAY_RAW] => 21.07.2011
            [VS_ADDRESS] => sdfdsf
            [VS_ADDRESS_RAW] => sdfdsf
            [VS_MARRIED] => Да [4]
            [VS_MARRIED_RAW] => Да
            [VS_INTEREST] => физика (2) [7]
                             программирование (5) [10]
            [VS_INTEREST_RAW] => физика,программирование
            [VS_AGE] => 30-39 (30) [13]
            [VS_AGE_RAW] => 30-39
            [VS_EDUCATION] => высшее (3) [19]
            [VS_EDUCATION_RAW] => высшее
            [VS_INCOME] =>  
            [VS_INCOME_RAW] =>  
            [VS_PHOTO] =>  
            [VS_PHOTO_RAW] =>  
        )
$message_idИдентификатор почтового шаблона (если указан). Если переменная определена в обработчике, то среди нескольких почтовых шаблонов по одному типу будет отправлен только с этим ID, а не все.11.0.16
$filesФайл16.0.1
$languageId (По умолчанию - текущий язык) Отвечает за отправку уведомлений на указанном языке (у почтовых шаблонов параметр "Язык"). Отправляются все шаблоны без указания языка и те у которых язык соответствует $languageId.

Фильтр по языку шаблонов не выполняется если передается переменная $messageId.

Пример функции-обработчика:

<?
class MyClass
{
    function onBeforeEventAdd(&$event, &$lid, &$arFields, &$messageId, &$files, &$languageId)
    {
         // код
    }
}
?>
16.5.8

Возвращаемое значение

Нет. Начиная с версии ядра 11.0.16 при возврате false добавление почтового события отменяется.

См. также

Пример функции-обработчика

<?
//Обработчик в файле /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeEventAdd", array("MyClass", "OnBeforeEventAddHandler"));
class MyClass
{
	function OnBeforeEventAddHandler(&$event, &$lid, &$arFields)
	{
		$arFields["NEW_FIELD"] = "Новый макрос для почтового шаблона";
		$arFields["VS_BIRTHDAY"] = "Изменение существующего макроса";
		$lid = 's2'; //Изменяем привязку к сайту
	}
}
?>



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх