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

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

	if (!isset($command['FORCE']) || $command['FORCE'] == 'N')
	{
		$commands = self::getListCache();
		if (!isset($commands[$commandId]))
			return false;

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

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

	BitrixImModelCommandTable::delete($commandId);

	$orm = BitrixImModelCommandLangTable::getList(Array(
		'filter' => Array('=COMMAND_ID' => $commandId)
	));
	while ($row = $orm->fetch())
	{
		BitrixImModelCommandLangTable::delete($row['ID']);
	}

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

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

	return true;
}