• Модуль: 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 = [];
}