В этой статье я хочу поделиться с читателем информацией о создании почтового события и почтового шаблона в Битрикс с помощью API продукта. Я столкнулся с этой задачей в процессе разработки мастера установки готового решения и подумал, что эта информация будет полезна посетителям моего сайта. Сейчас мы по шагам рассмотрим скрипт, который выполняет описанные функции.
Визуальную часть сайта в скрипте я подключать не буду. Начинаем с определения параметров. Создаем массив $arrCeventType. В нем мы сохраним массив с описанием параметров типа почтового события Битрикс. Если необходимо создать несколько типов за 1 раз, можно добавлять их параметры в указанный массив. Также создадим пустой массив $arrCeventRes. В него мы сохраним результат создания типа почтового события.
PHP
$arrCeventRes = [];
$arrCeventTypes = Array(
Array(
'LID' => SITE_ID,
'EVENT_NAME' => 'ORDER_FORM',
'NAME' => 'Отправка данных о заказе',
'DESCRIPTION' => '
#EMAIL_TO# E-mail получателя
#VNAME# Имя заказчика
#VPHONE# Телефон заказчика
#ORDERLIST# Список заказанных блюд',
),
);
В массиве хранятся следующие элементы:
- LID – Идентификатор сайта
- EVENT_NAME – Идентификатор типа почтового события Битрикс
- NAME – Название типа события
- DESCRIPTION – Описание. В нем определяются маркеры, которые затем будут использоваться в почтовом шаблоне Битрикс
Следующим пунктом создаем массив $arrCeventTemplates, в котором сохраняем параметры почтового шаблона.
PHP
$arrCeventTemplates = Array(
'ORDER_FORM' => Array(
'ACTIVE'=> 'Y',
'EVENT_NAME' => 'ORDER_FORM',
'LID' => Array('s1'),
'EMAIL_FROM' => '#DEFAULT_EMAIL_FROM#',
'EMAIL_TO' => '#DEFAULT_EMAIL_FROM#',
'SUBJECT' => 'Новый заказ с сайта',
'BODY_TYPE' => 'html',
'MESSAGE' => '
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Поступил новый заказ с сайта</title>
</head>
<body>
<h2>Добрый день!</h2>
<p>Поступил новый заказ с сайта.</p>
<p>Имя заказчика: #VNAME#</p>
<p>Телефон заказчика: #VPHONE#</p>
<p>Список заказанных блюд:</p>
#ORDERLIST#
<p>Письмо сформировано автоматически.</p>
</body>
</html>',
),);
- ACTIVE – Флаг активности почтового шаблона Битрикс
- EVENT_NAME - Идентификатор почтового шаблона
- LID - Идентификатор сайта
- EMAIL_FROM – Маркер, размещаемый в поле «Отправитель»
- EMAIL_TO – Маркер, размещаемый в поле «Кому»
- SUBJECT – Тема письма
- BODY_TYPE – Тип тело письма (текст/HTML)
- MESSAGE – Текст сообщения в почтовом шаблоне
Теперь переходим непосредственно к созданию типа почтового события Битрикс. Используем метод Add класса CEventType.
PHP
$et = new CEventType;
foreach($arrCeventTypes as $arrCeventType){
$res = $et->Add($arrCeventType);
if(!$res){
echo $et->LAST_ERROR;
}
else{
$arrCeventRes[$res] = $arrCeventType['EVENT_NAME'];
}
}
Для создания почтового шаблона метод Add класса CEventMessage.
PHP
if(is_array($arrCeventRes)){
$em = new CEventMessage;
foreach($arrCeventRes as $cEventTypeName){
$res_em = $em->Add($arrCeventTemplates[$cEventTypeName]);
if(!$res_em){
echo $em->LAST_ERROR;
}
else{
echo 'Шаблон создан '.$res_em.'<br />';
}
}
}
Если все сделано правильно, то после выполнения приведенного выше кода будут созданы новый тип почтового события и новый шаблон почтового события.
Скачать пример скрипта из статьи