Типы событий

Урок 355 из 465
Автор: Анна Кокина
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Дата изменения: 01.02.2023
Просмотров: 44909
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт, Малый бизнес

Что такое типы событий

Тип событий - сущность, предназначенная для выбора почтового или смс шаблона для отправки сообщений пользователям при наступлении определённых условий. Большая часть типов событий - системная, но есть возможность создания собственных шаблонов.

Если говорить более простым языком, то Типы событий - это сущность, соединяющая зоны ответственности программиста (события) и администратора (Шаблоны почты).

События в коде продукта - это способ изменить работу API продукта без изменения собственно кода "1С-Битрикс: Управление сайтом". Детально с функционалом событий можно познакомится в курсе Разработчик Bitrix Framework Иногда бывает необходимо повлиять на ход выполнения какой-нибудь API функции. Но если ее изменить, то эти изменения будут утеряны при очередном обновлении. Для таких случаев и разработана система событий.

Подробнее ...
.

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

Для большинства типовых ситуаций использования "1С-Битрикс: Управление сайтом" создания новых типов событий не требуется, достаточно того что есть в продукте "из коробки". Но в некоторых случаях создание новых типов событий бывает полезным или необходимым. Например: Менеджеру магазина необходимо получать информацию об изменении статуса заказа. По умолчанию в системе есть типы событий для изменений штатных статусов. А если вы создали свой, нужный именно вам статус? Уведомления о переходе заказа в этот статус просто так не придёт. Вот в этом случае и есть необходимость создания нового типа события.

Создать новый тип события можно как через API, так и через Административный раздел сайта.

Создание в административном разделе

Типы почтовых событий описаны на странице Настройки > Настройки продукта > Почтовые и СМС события > Типы событий:

Для редактирования типа почтовых и СМС событий выберите пункт Изменить в меню действий. Чтобы добавить новый тип, нажмите кнопку Добавить тип на контекстной панели, откроется форма создания:

Заполните поле Тип события. Для того чтобы потом не запутаться в списке типов событий и легко найти нужное, рекомендуется в качестве первого слова использовать название модуля, в котором будет использоваться создаваемый тип. В нашем случае, это будет модуль "Интернет-магазин". Значит название будет начинаться с SALE. Далее, через подчёркивание даём уникальное название. Например: SALE_MY_STATUS_CHANGE.

Выберите вид события: почтовое или СМС, то есть это указание системе каким способом отправить уведомление. Напомним, что для почтового события должны быть настроены Почтовые сервисы, а для СМС сообщений должна быть настроена Служба сообщений.

Поставьте галочки напротив заголовков тех языковых описаний, на которых хотите представить свой новый тип, и заполните поля Сортировка, Название и Описание. В поле Описание введите доступные поля (макросы вида #SOMETHING#), которые можно будет использовать при написании тела сообщения почтового или СМС шаблона, который будет принадлежать создаваемому вами типу.

Нажмите Сохранить, после чего новый тип добавится в общий список и его можно будет указывать при создании почтовых шаблонов или шаблонов СМС (в зависимости от указанного вида событий).

Примечание: подробнее о почтовых шаблонах смотрите в уроке Работа с почтовыми шаблонами Почтовые шаблоны расположены на странице Настройки > Настройки продукта > Почтовые события > Почтовые шаблоны. Чтобы редактировать почтовый шаблон, выберите пункт Изменить в меню действий нужного шаблона.

Подробнее...
.

При редактировании типа почтовых и СМС событий появится закладка Шаблоны, на которой видны шаблоны событий, привязанные к данному типу. Для только что созданного нами типа данная вкладка будет пустой.

Однако созданный тип события не заработает сразу после создания. Необходимо ещё в нужных местах API осуществить вызов события этого типа. Это делается программистом. Администратор, создавший новый тип события должен передать ему название типа В нашем случае: SALE_MY_STATUS_CHANGE , список значений, которые должны быть доступны в шаблонах этого события в виде макросов и условия при которых это событие должно быть вызвано В нашем случае - при смене статуса заказа на наш статус. .

Работа через API

Текст ниже требует определённых навыков работы с кодом. Если вы не уверены в том, что владеете этими навыками в достаточной мере, то лучше обратиться к разработчикам.

Тип события создаётся либо с Административной части (см. описание выше), либо через API с помощью метода CEventType::Add. Вызов события осуществляется методом CEvent::Send. Примеры работы с этими методами есть в документации. Детально как работать с событиями описано в курсе Разработчик Bitrix Framework.

Макросы

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

Системные макросы - это значения, устанавливаемые в настройках Главного модуля. Всего системных маркеров 4:

  1. #DEFAULT_EMAIL_FROM# - поле Email администратора сайта (отправитель по умолчанию),
  2. #DEFAULT_SENDER# - поле Номер отправителя по умолчанию,
  3. #SITE_NAME# - поле Название сайта,
  4. #SERVER_NAME# - поле URL сайта.

При вызове события значения для системных макросов передавать не нужно, они будут подставлены по умолчанию. Если же программист передаст своё значение для системного макроса, то он подменит системное значение на своё.

Макросы из описания берутся из массива объявленного методом CEventType::Add.

Сами макросы заменяются на вывод значения из массива по ключу названия макроса. Допустим, добавлено событие с массивом полей:

array(
	'ORDER_ID' => 123, 
	'ORDER_PAID' => 'Y', 
	'BUYER_NAME' => 'Андрей'
)

В почтовом шаблоне можно будет использовать эти поля, указывая макросы:

#ORDER_ID#
#ORDER_PAID#
#BUYER_NAME#

Начиная с версии главного модуля 15.0.7, где разрешается использование PHP в почтовых шаблонах, то же самое можно указать и так:

<=$arParams['ORDER_ID']>
<$arParams['ORDER_PAID']>
<=$arParams['BUYER_NAME']>

Таким образом, в теле почтового шаблона массив переданных полей доступен через переменную $arParams.

Особенности использования тега xml

Документация по теме:



Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас