• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/interactivemessage/output.php
  • Класс: BitrixImConnectorInteractiveMessageOutput
  • Вызов: Output::init
static function init($chatId = 0, $connectorId = ''): self
{
	$class = __CLASS__;

	if(
		$chatId > 0
	)
	{
		if(
			empty($connectorId) &&
			Loader::includeModule('im') &&
			Loader::includeModule('imopenlines')
		)
		{
			$chatData = ChatTable::getList([
				'select' => ['ENTITY_ID'],
				'filter' => [
					'=ENTITY_TYPE' => 'LINES',
					'=ID' => $chatId,
				],
				'limit' => 1,
				'cache' => ['ttl' => 86400]
			])->fetch();
			if ($chatData && isset($chatData['ENTITY_ID']))
			{
				$connectorId = Chat::parseLinesChatEntityId($chatData['ENTITY_ID'])['connectorId'];
			}
		}

		if(
			!empty($connectorId) &&
			Connector::isConnector($connectorId)
		)
		{
			$connectorId = Connector::getConnectorRealId($connectorId);
			$className = "Bitrix\ImConnector\InteractiveMessage\Connectors\" . $connectorId . "\Output";
			if(class_exists($className))
			{
				$class = $className;
			}
		}
	}

	return new $class($chatId, $connectorId);
}