• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/forum/task/comment.php
  • Класс: BitrixTasksIntegrationForumTaskComment
  • Вызов: Comment::processResultData
static function processResultData($commentId = 0): void
{
	$isTaskResult = false;

	if (!BitrixMainApplication::getInstance()->getContext()->getRequest()->getPost('IS_TASK_RESULT_FORM'))
	{
		return;
	}

	if (BitrixMainApplication::getInstance()->getContext()->getRequest()->getPost('IS_TASK_RESULT') === 'Y')
	{
		$isTaskResult = true;
	}

	if ($commentId > 0)
	{
		AddEventHandler(
			'forum',
			'onBeforeMessageUpdate',
			static function($id, &$fields) use ($isTaskResult) {
				if (
					!array_key_exists('SERVICE_TYPE', $fields)
					|| !$fields['SERVICE_TYPE']
				)
				{
					$fields['SERVICE_DATA'] = ($isTaskResult ? ResultManager::COMMENT_SERVICE_DATA : null);
				}
			}
		);
	}
	else
	{
		AddEventHandler(
			'forum',
			'onBeforeMessageAdd',
			static function(&$fields) use ($isTaskResult) {
				if (
					$isTaskResult
					&& (
						!array_key_exists('SERVICE_TYPE', $fields)
						|| !$fields['SERVICE_TYPE']
					)
				)
				{
					$fields['SERVICE_DATA'] = ResultManager::COMMENT_SERVICE_DATA;
				}
			}
		);
	}
}