• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/ai/controller.php
  • Класс: BitrixSocialnetworkIntegrationAIController
  • Вызов: Controller::onContextGetMessages
static function onContextGetMessages(Event $event): array
{
	$moduleId = $event->getParameter('module');
	$contextId = $event->getParameter('id');
	$contextParameters = $event->getParameter('params');
	$nextStep = $event->getParameter('next_step');

	$isCommentContext = (
		$moduleId === 'socialnetwork'
		&& str_starts_with($contextId, 'sonet_comment_')
	);
	if ($isCommentContext)
	{
		$messages = [];

		$xmlId = is_string($contextParameters['xmlId'] ?? null) ? $contextParameters['xmlId'] : null;
		if (!$xmlId)
		{
			return ['messages' => []];
		}

		if (isset(self::$listMessages[$xmlId]))
		{
			return ['messages' => self::$listMessages[$xmlId]];
		}

		if (str_starts_with($xmlId, 'BLOG_'))
		{
			$blogId = (int) mb_substr($xmlId, 5);
			$postMessages = self::getPostContext($blogId);
			foreach ($postMessages as $postMessage)
			{
				$messages[] = ['content' => $postMessage];
			}
		}
		else if (str_starts_with($xmlId, 'TASK_') && Loader::includeModule('tasks'))
		{
			$taskId = (int) mb_substr($xmlId, 5);
			$postMessages = self::getTaskContext($taskId);
			foreach ($postMessages as $postMessage)
			{
				$messages[] = ['content' => $postMessage];
			}
		}

		$messages[0]['is_original_message'] = true;

		if ($messages)
		{
			self::$listMessages[$xmlId] = $messages;
		}

		return ['messages' => $messages];
	}

	return ['messages' => []];
}