Отключить всем сотрудникам портала уведомления о дне рождение, вступлении в группу
677
Уведомления о дне рождении сотрудника приходит в desktop приложение, инициатором является скрипт im.js модуля Веб-мессенджера(im) и отследить через php события Bitrix Framework возможности нет, но есть возможность повлиять на настройки desktop приложения. Для этого воспользуемся событием OnEpilog и подключим свое расширение с помощью CJSCore::RegisterExt
Далее мы воспользуемся функцией BX.addCustomEvent, которая назначает обработчик событию onImInit (при инициализации мессенджера), передав параметр в desktop приложение функции birthdayStatus = false, что позволит отключить уведомления.
BX.ready(function() {
BX.addCustomEvent('onImInit', function (im) {
im.desktop.birthdayStatus(false);
});
});
Уведомления о вступлении в группу, можно отключить воспользовавшись php событием Bitrix Framework модуля im OnBeforeMessageNotifyAdd
AddEventHandler("im", "OnBeforeMessageNotifyAdd", "OnBeforeMessageNotifyAddHandler"); function OnBeforeMessageNotifyAddHandler($arFields)
{ if((strripos($arFields["MESSAGE"], "вступил(а)")) // я проверяю сообщение на наличие слова в сообщении (
$arFields["SYSTEM"] == "Y" // на то что это системное
)
(
$arFields["MESSAGE_TYPE"] == IM_MESSAGE_CHAT // и его тип
))
return false; // запрещаю отправку
}