Цитата |
---|
Андрей Переберин пишет: куда надо писать свою функцию или метод, если мне необходимо добавить свои поля в почтовое сообщение о приходе сообщения в соцсети. |
Попытаюсь ответить вместо Дмитрия, если никто не против.
1. Добавляем в файл /bitrix/php_interface/init.php следующее:
Код |
---|
<?if(!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();
// Повесим обработчик события на добавление почтового события )
AddEventHandler('main', 'OnBeforeEventAdd', Array('CMyClass', 'OnBeforeEventAddHandler'));
class CMyClass {
function OnBeforeEventAddHandler($event, $lid, $arFields) {
// log_array - для отладки, результат смотреть в /bitrix/log.txt
// убрать ниже комментарий если надо посмотреть что приходит и не забыть его потом снова поставить )
//log_array($event, $lid, $arFields);
// SONET_NEW_MESSAGE - это символьный код кастомизируемого типа почтового события
if($event == 'SONET_NEW_MESSAGE') {
// NEW_FIELD - это ключ нашего нового кастомного поля
// "Та-да!" - это его строковое значение
$arFields['NEW_FIELD'] = 'Та-да!';
}
}
}
// для отладки (не раз пригодится)
// записывает все что передадут в /bitrix/log.txt
function log_array() {
$arArgs = func_get_args();
$sResult = '';
foreach($arArgs as $arArg) {
$sResult .= "\n\n".print_r($arArg, true);
}
if(!defined('LOG_FILENAME')) {
define('LOG_FILENAME', $_SERVER['DOCUMENT_ROOT'].'/bitrix/log.txt');
}
AddMessage2Log($sResult, 'log_array -> ');
}
|
2. Заходим в админку на страницу списка почтовых шаблонов (Настройки - Настройки продукта - Почтовые события - Типы почтовых событий)
3. Открываем на редактирование SONET_NEW_MESSAGE (У Вас новое сообщение) - если я правильно понял о каком сообщении идет речь.
4. Добавляем внизу или вверху поля "Описание" нужные макросы, чтобы потом не забыть что для чего. В нашем примере это будет:
#NEW_FIELD# - мое новое поле
5. Нажимаем "применить". Переходим на вкладку "Шаблоны". Жмем на ссылки почтовых шаблонов (в квадратных скобочках которые).
6. В почтовых шаблонах расставляем макросы в нужные места, сохраняем.
7. Отправляем сообщение, смотрим в почту получилось или нет (должно получиться).
Или я не правильно понял задачу? Т.к. ковырять здесь агенты - это последнее, что пришло бы мне в голову
