static function sendNotification($messageData, $taskData, $fromUser, $toUsers, array $eventData = []): bool
{
$message = (string)Util::trim(CTextParser::clearAllTags($messageData['POST_MESSAGE']));
if (CTaskNotifications::useNewNotifications())
{
$task = BitrixTasksInternalsRegistryTaskRegistry::getInstance()->getObject($taskData['ID'], true);
if (!$task)
{
return false;
}
$controller = new BitrixTasksInternalsNotificationController();
$controller->onCommentCreated($task, $messageData['ID'], $message);
$controller->push();
return true;
}
if (empty($toUsers) || !IM::includeModule())
{
return false;
}
// some sources do not even pass $eventData, so ensure we got at least MESSAGE_ID
$eventData['MESSAGE_ID'] = $messageData['ID'];
// $notifyType = IM_NOTIFY_SYSTEM;
// $notifyAnswer = false;
$user = CTaskNotifications::getUser($fromUser);
// $messageTemplate = '[color=#000]#TASK_TITLE#[/color][br][i]#USER_NAME#:[/i] #TASK_COMMENT_TEXT#';
// $messageTemplatePush = '#USER_NAME#: #TASK_COMMENT_TEXT#';
// if (
// Loader::includeModule('socialnetwork')
// && $messageData['POST_MESSAGE'] === BitrixSocialnetworkCommentAuxTaskInfo::POST_TEXT
// && array_key_exists('AUX_DATA', $eventData)
// )
// {
// $commentInfo = unserialize($eventData['AUX_DATA'], ['allowed_classes' => false]);
// if (!$commentInfo)
// {
// return false;
// }
// $message = CommentsTaskCommentPoster::getCommentText($commentInfo);
// }
$messageTemplate = CTaskNotifications::getGenderMessage($fromUser, 'TASKS_COMMENT_MESSAGE_ADD');
$messageTemplatePush = CTaskNotifications::getGenderMessage($fromUser, 'TASKS_COMMENT_MESSAGE_ADD_PUSH');
$messageCropped = self::cropMessage($message);
if ($messageCropped !== '')
{
$messageTemplate .= Loc::getMessage('TASKS_COMMENT_MESSAGE_ADD_WITH_TEXT');
$messageTemplatePush .= ': #TASK_COMMENT_TEXT#';
}
CTaskNotifications::SendMessageEx(
$taskData['ID'],
$fromUser,
$toUsers,
[
'INSTANT' => str_replace('#TASK_COMMENT_TEXT#', $messageCropped, $messageTemplate),
'EMAIL' => str_replace('#TASK_COMMENT_TEXT#', $message, $messageTemplate),
'PUSH' => CTaskNotifications::cropMessage(
$messageTemplatePush,
[
'USER_NAME' => User::formatName($user),
'TASK_TITLE' => $taskData['TITLE'],
'TASK_COMMENT_TEXT' => $message,
],
CTaskNotifications::PUSH_MESSAGE_MAX_LENGTH
)
],
[
'ENTITY_CODE' => 'COMMENT',
'ENTITY_OPERATION' => 'ADD',
'EVENT_DATA' => $eventData,
'NOTIFY_EVENT' => 'comment',
'NOTIFY_ANSWER' => true,
'TASK_DATA' => $taskData,
'TASK_URL' => [
'PARAMETERS' => static::getUrlParameters($messageData['ID']),
'HASH' => static::makeUrlHash($messageData['ID']),
],
]
);
// CTaskNotifications::SendMessageEx(
// $taskData["ID"],
// $fromUser,
// $toUsers,
// [
// 'INSTANT' => str_replace(
// ["#TASK_COMMENT_TEXT#", "#USER_NAME#", "#TASK_TITLE#"],
// [$messageCropped, User::formatName($user), $taskData["TITLE"]],
// $messageTemplate
// ),
// 'EMAIL' => str_replace(
// ["#TASK_COMMENT_TEXT#", "#USER_NAME#"],
// [$message, User::formatName($user)],
// $messageTemplate
// ),
// 'PUSH' => CTaskNotifications::cropMessage(
// $messageTemplatePush,
// [
// 'USER_NAME' => User::formatName($user),
// 'TASK_TITLE' => $taskData["TITLE"],
// 'TASK_COMMENT_TEXT' => $message
// ],
// CTaskNotifications::PUSH_MESSAGE_MAX_LENGTH
// )
// ],
// [
// 'ENTITY_CODE' => 'COMMENT',
// 'ENTITY_OPERATION' => 'ADD',
// 'EVENT_DATA' => $eventData,
// 'NOTIFY_EVENT' => 'comment',
// 'NOTIFY_ANSWER' => $notifyAnswer,
// 'NOTIFY_TYPE' => $notifyType,
// 'TASK_DATA' => $taskData,
// 'TASK_URL' => [
// 'PARAMETERS' => static::getUrlParameters($messageData['ID']),
// 'HASH' => static::makeUrlHash($messageData['ID'])
// ],
// 'PUSH_PARAMS' => [
// 'SENDER_NAME' => $taskData["TITLE"]
// ]
// ]);
return true;
}