• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/update/agent.php
  • Класс: BitrixImopenlinesUpdateAgent
  • Вызов: Agent::updateQuick
static function updateQuick(): string
{
	if (
		Loader::IncludeModule("im")
		&& class_exists('BitrixImModelAppTable')
		&& class_exists('BitrixImApp')
	)
	{
		$imagePath = BX_ROOT.'/modules/imopenlines/install/icon/icon_quick.png';

		$result = BitrixImModelAppTable::getList([
			'filter' => ['=MODULE_ID' => 'imopenlines', '=CODE' => 'quick']
		])->fetch();

		if (!$result)
		{
			$iconId = CFile::SaveFile(CFile::MakeFileArray($imagePath), 'imopenlines');

			BitrixImApp::register(Array(
				'MODULE_ID' => 'imopenlines',
				'BOT_ID' => 0,
				'CODE' => 'quick',
				'REGISTERED' => 'Y',
				'ICON_ID' => $iconId,
				'IFRAME' => '/desktop_app/iframe/imopenlines_quick.php',
				'IFRAME_WIDTH' => '512',
				'IFRAME_HEIGHT' => '234',
				'CONTEXT' => 'lines',
				'CLASS' => 'BitrixImOpenLinesChat',
				'METHOD_LANG_GET' => 'onAppLang',
			));
		}
		else
		{
			$iconFileOk = false;
			$appId = (int)$result['ID'];
			$iconId = (int)$result['ICON_FILE_ID'];
			if ($iconId)
			{
				$file = CFile::getByID($iconId)->fetch();

				$iconFileOk = BitrixMainIOFile::isFileExists(
					BitrixMainApplication::getDocumentRoot()
					.$file['SRC']
				);
			}
			if (
				$iconFileOk !== true
				&& ($iconId = CFile::SaveFile(CFile::MakeFileArray($imagePath), 'imopenlines'))
			)
			{
				BitrixImModelAppTable::update($appId, ['ICON_FILE_ID' => $iconId])->isSuccess();
			}
		}

		return '';
	}
	else
	{
		return __METHOD__. '();';
	}
}