Оповещение сотрудника на портале Битрикс24
Задача
Доработка на портале Битрикс24 оповещения сотрудника на его почту при добавлении элемента инфоблока к которому сотрудник привязан.
Этапы реализации
1) Разработка и программирование обработчика для добавления значения рабочей почты сотрудника, которому объявили благодарность (элемент инфоблока) в почтовый шаблон.
2) Создание почтового события и настройка почтового шаблона для оповещений сотрудников о новой благодарности
3) Тестирование работоспособности события оповещения о новой благодарности сотруднику.
Примечания:
/local/php_interface – в системной папке в файл init.php добавлен код нового обработчика для добавления значения (макроса) рабочей почты сотрудника, которому объявили благодарность в почтовый шаблон.
Для почтового события THANKS был добавлен новый почтовый шаблон [146] #SITE_NAME#: Вам была добавлена новая благодарность
Особенности
В процессе разработки обработчика у меня проблема вывести в почтовом шаблоне макрос поля, в моем случае это #’WORKER_EMAIL#
Как выяснилось, особенностью CEvent::Send является то, что любое доступное свойство элемента инфоблока можно передать в обработчике в почтовый шаблон и использовать.
Рабочий пример обработчика
class MyAdmin
{
// создаем обработчик события «OnAfterIBlockElementAdd»
function OnAfterIBlockElementAddHandler(&$arFields)
{
if(!$arFields[«RESULT»])
return false;
if ($arFields[«IBLOCK_ID»] == 25)
{
$db_props = CIBlockElement::GetProperty(25, $arFields[‘ID’], «sort», «asc», Array(«CODE»=>»USER»));
if ($ar_props = $db_props->Fetch())
{
$THANKSUSER=$ar_props[‘VALUE’];//получаем значение сотрудника, которому объявили благодарность
}
$rsUser = CUser::GetByID($THANKSUSER);
$arUser = $rsUser->Fetch();
$WORKEREMAIL=$arUser[‘EMAIL’]; //получаем значение почты сотрудника, которому объявили благодарность
{ $arIBlockElement = GetIBlockElement($arFields[«ID»]);
$arSend = array(
‘WORKER_EMAIL’ => $WORKEREMAIL,
‘TEXT’ => $arIBlockElement[‘DISPLAY_PROPERTIES’][‘USER’][‘DISPLAY_VALUE’].’ добавил благодарность’);
$arrSite = ‘s1’;
CEvent::Send(‘THANKS2’,$arrSite,$arSend);
}
}
}
}
Ещё статьи:
15.02.2024
История о жадности или как клиент свободное место искал на сервере
Случилась у меня одна история с клиентом, который свободное место искал на сервере, но на самом деле это больше о жадности, но в итоге всё равно пришл...
ID: 466
08.11.2023
Хроники БУС упадка
На днях произошли очередные изменения в БУС битрикс. Полезный модуль bitrix.xscan включили в состав проактивной защиты и убрали из бесплатного сегмента...
ID: 465
26.07.2023
Kwork.com закрыл доступ для резидентов РФ
Доступ к выставлению услуг теперь ограничен "К сожалению, вынуждены сообщить, что резиденты РФ в настоящее время не могут использовать сайт Kwork...
ID: 463
Новые статьи в блоге:
27.11.2024
Ошибка при 1с обмене 502 Bad Gateway
Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен. Ответ сервера: 502 Bad Gateway
ID: 540
20.11.2024
Задача для РНР, разработать Футбольный календарь
На первый взгляд задача кажется не сложной, но это не так. Нужно учитывать, что она займёт время, многие не успевают сделать в сроки.
ID: 538
20.11.2024
Нюансы обмена доставок один случай
Описание проблемы.
В сторону 1С синхронизацию доставок она налажена, информация записывается (проставляется тип доставки, зона доставки)
ID: 537