- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/forum/task/comment.php
- Класс: BitrixTasksIntegrationForumTaskComment
- Вызов: Comment::onAfterDelete
static function onAfterDelete($entityType, $taskId, $data): void
{
if ($entityType !== 'TK' || !$taskId)
{
return;
}
$taskId = (int)$taskId;
$messageId = (int)$data['MESSAGE_ID'];
$message = $data['MESSAGE'];
if (!is_array($message) || !array_key_exists('AUTHOR_ID', $message))
{
$message = CForumMessage::getByID($messageId);
}
CounterCounterService::addEvent(
CounterEventEventDictionary::EVENT_AFTER_COMMENT_DELETE,
[
'TASK_ID' => (int) $taskId,
'USER_ID' => (int) $message['AUTHOR_ID'],
'MESSAGE_ID' => (int) $messageId
]
);
(new ResultManager(User::getId()))->deleteByComment((int) $messageId);
if (!Loader::includeModule('pull'))
{
return;
}
$task = TaskRegistry::getInstance()->getObject((int) $taskId, true);
if (!$task)
{
return;
}
$groupId = (int) $task->getGroupId();
$members = $task->getMemberList();
$taskParticipants = [];
foreach ($members as $member)
{
$taskParticipants[] = $member->getUserId();
}
$taskParticipants = array_unique($taskParticipants);
$pushRecipients = $taskParticipants;
if (
SocialNetwork::includeModule()
&& $groupId > 0
)
{
$pushRecipients = array_unique(
array_merge(
$taskParticipants,
SocialNetworkUser::getUsersCanPerformOperation($groupId, 'view_all')
)
);
CSocNetGroup::SetLastActivity($groupId);
}
PushService::addEvent($pushRecipients, [
'module_id' => 'tasks',
'command' => PushCommand::COMMENT_DELETED,
'params' => [
'entityXmlId' => $data['MESSAGE']['XML_ID'],
'ownerId' => static::getOccurAsId($data['MESSAGE']['AUTHOR_ID']),
'messageId' => $data['MESSAGE']['ID'],
'groupId' => $groupId,
'participants' => $taskParticipants,
'pullComment' => true,
],
]);
(new TimeLineManager($taskId, (int)$message['AUTHOR_ID']))->onTaskCommentDeleted(self::$fileAttachments)->save();
self::$fileAttachments = [];
}