• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/app.php
  • Класс: BitrixImApp
  • Вызов: App::unRegister
static function unRegister(array $app)
{
	$appId = intval($app['ID']);
	$moduleId = isset($app['MODULE_ID'])? $app['MODULE_ID']: '';
	$restAppId = isset($app['APP_ID'])? $app['APP_ID']: '';

	if (intval($appId) <= 0)
		return false;

	if (!isset($app['FORCE']) || $app['FORCE'] == 'N')
	{
		$icons = self::getListCache();
		if (!isset($icons[$appId]))
			return false;

		if ($moduleId <> '' && $icons[$appId]['MODULE_ID'] != $moduleId)
			return false;

		if ($restAppId <> '' && $icons[$appId]['APP_ID'] != $restAppId)
			return false;
	}

	BitrixImModelAppTable::delete($appId);

	$orm = BitrixImModelAppLangTable::getList(Array(
		'filter' => Array('=APP_ID' => $appId)
	));
	while ($row = $orm->fetch())
	{
		BitrixImModelAppLangTable::delete($row['ID']);
	}

	$cache = BitrixMainDataCache::createInstance();
	$cache->cleanDir(self::CACHE_PATH);

	if (BitrixMainLoader::includeModule('pull'))
	{
		CPullStack::AddShared(Array(
			'module_id' => 'im',
			'command' => 'appDeleteIcon',
			'params' => Array(
				'iconId' => $appId
			),
			'extra' => BitrixImCommon::getPullExtra()
		));
	}

	return true;
}