Матвей Земсков

Заметки веб-мастера

Немного о веб-технологиях

Мой блог содержит заметки о различных веб-технологиях, как клиентских, так и серверных. Здесь будут раскрыты вопросы html-верстки, программирования на javaScript и jQuery,разработки на PHP. Не останутся без внимания популярные системы управления сайтом «1С-Битрикс», Joomla и другие. О работе с ними, я также буду писать.

Мои заметки предназначены в основном для начинающих веб-мастеров. Несмотря на это, опытные разработчики также найдут здесь что-нибудь интересное для себя.

В своем блоге я собираюсь публиковать статьи о современных веб-технологиях (HTML5, CSS3 и других). Если в процессе работы над проектами я открываю для себя «свежее» решение какой-либо задачи, я записываю сюда информацию об этом, что позволяет мне при необходимости применять полученные знания в будущем.

Надеюсь информация будет полезна для посетителей.

 
Вторник, 11 февраля 2020 21:45

Создание почтового события с помощью API в Битрикс

Оцените материал
(272 голосов)

В этой статье я хочу поделиться с читателем информацией о создании почтового события и почтового шаблона в Битрикс с помощью API продукта. Я столкнулся с этой задачей в процессе разработки мастера установки готового решения и подумал, что эта информация будет полезна посетителям моего сайта. Сейчас мы по шагам рассмотрим скрипт, который выполняет описанные функции.

Тип почтового события ORDER_FORM

Визуальную часть сайта в скрипте я подключать не буду. Начинаем с определения параметров. Создаем массив $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 />';
		}		
	}
}

Если все сделано правильно, то после выполнения приведенного выше кода будут созданы новый тип почтового события и новый шаблон почтового события.

Скачать пример скрипта из статьи

Прочитано 19666 раз
Свежие заметки
Наверх