Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Каким образом можно добавить новое поле в шаблон подписок

00 голосов
3
Каким образом можно добавить новое поле в шаблон подписок. Надо что бы при отправке почтового события добавлялась дополнительная переменная типа #EMAIL# #SERVER_NAME# что бы например была переменная #RUBRICS# В КОТОРУЮ приходили хотя бы айдишники рассылок
спросил 20 Июль, 13 от Dimonkhv (160 баллов)

3 Ответы

00 голосов
Сначала нужно создать свой тип почтового события. "Настройки продукта" - "Почтовые события" - "Типы почтовых событий".
В нем создать требуемые макросы.

Например, так:
Тип почтового события: MY_EVENT
Название: моё почтовое событие
Описание:
Код
#USER_ID# - ID пользователя
#STATUS# - Статус логина
#MESSAGE# - Сообщение пользователю
#LOGIN# - Логин
#CHECKWORD# - Контрольная строка для смены пароля
#NAME# - Имя
#LAST_NAME# - Фамилия
#EMAIL# - E-Mail пользователя



Потом для этого события создать шаблон.

Ну и самое главное - создать файл-обработчик который будет заполнять поля для даного почтового события.

Например, файл /send_me_email.php в корне сайта.

Код
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$event = new CEvent;
$arEventFields = array(
   "QUESTION_ID"        => $_REQUEST['form_dropdown_SIMPLE_QUESTION_658'],
   "FIO"              => $_REQUEST['form_text_708'],
   "E_MAIL"           => $_REQUEST['form_email_709'],
   "PHONE"              => $_REQUEST['form_text_710'],
   "QUESTION"           => $_REQUEST['form_textarea_711'],
   "RS_DATE_CREATE"     => date("d.m.Y H:i:s")
    );

$rez = $event->Send($SpecType, "to", $arEventFields, "Y", "");


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

А вообще, во всех почтовых событиях обычно уже все что нужно есть. Просто нужно внимательно посмотреть.
Так в типе события SUBSCRIBE_CONFIRM есть поле #ID# - идентификатор подписки.
ответил 20 Июль, 13 от Perfekt (220 баллов)
00 голосов
да ну можно бы было привязать к какому -либо полю , но это тоже выход, т.е. пересохранить результат,а тип уже создан так же как и шаблон
ответил 12 Сен, 13 от Dimonkhv (160 баллов)
00 голосов
Цитата
Иван Левый пишет:

Ну и самое главное - создать файл-обработчик который будет заполнять поля для даного почтового события.
Например, файл /send_me_email.php в корне сайта.

Код

// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$event = new CEvent;
$arEventFields = array(
&nbsp;&nbsp;&nbsp;"QUESTION_ID"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $_REQUEST['form_dropdown_SIMPLE_QUESTION_658'],
&nbsp;&nbsp;&nbsp;"FIO"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $_REQUEST['form_text_708'],
&nbsp;&nbsp;&nbsp;"E_MAIL"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $_REQUEST['form_email_709'],
&nbsp;&nbsp;&nbsp;"PHONE"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $_REQUEST['form_text_710'],
&nbsp;&nbsp;&nbsp;"QUESTION"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> $_REQUEST['form_textarea_711'],
&nbsp;&nbsp;&nbsp;"RS_DATE_CREATE"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> date("d.m.Y H:i:s")
&nbsp;&nbsp;&nbsp;&nbsp;);

$rez = $event->Send($SpecType, "to", $arEventFields, "Y", "");

А каким образом привязать этот обработчик к нашему событию?
ответил 10 Дек, 13 от 4aunuk (100 баллов)