• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/controller_member.php
  • Класс: CControllerClient
  • Вызов: CControllerClient::RestoreModules
static function RestoreModules()
{
	$arBackup = CControllerClient::GetBackup();
	if(isset($arBackup["modules"]))
	{
		$oModule = new CModule();
		$arWasInstalled = $arBackup["modules"];

		$arNowInstalled = Array();
		$arm = CModule::_GetCache();
		foreach($arm as $module_id => $tr)
			$arNowInstalled[] = $module_id;

		foreach($arNowInstalled as $module_id)
		{
			if(!in_array($module_id, $arWasInstalled))
			{
				$oModule->MODULE_ID = $module_id;
				$oModule->Remove();
			}
			else
				unset($arWasInstalled[array_search($module_id, $arWasInstalled)]);
		}

		foreach($arWasInstalled as $module_id)
		{
			$oModule->MODULE_ID = $module_id;
			$oModule->Add();
		}

		unset($arBackup["modules"]);
		CControllerClient::SetBackup($arBackup);
	}
}