• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/controller_member.php
  • Класс: CControllerClient
  • Вызов: CControllerClient::SetModules
static function SetModules($arModules)
{
	$arInstalled = Array();
	$arm = CModule::_GetCache();
	foreach($arm as $module_id => $tr)
		$arInstalled[] = $module_id;
	$arBackup = CControllerClient::GetBackup();
	if(!isset($arBackup["modules"]))
	{
		$arBackup["modules"] = $arInstalled;
		CControllerClient::SetBackup($arBackup);
	}

	foreach($arModules as $module_id=>$status)
	{
		if(!($oModule = CModule::CreateModuleObject($module_id)))
			continue;

		if($status=="Y" && !in_array($module_id, $arInstalled))
		{
			if(!method_exists($oModule, "InstallDB") || $oModule->InstallDB()===false)
				$oModule->Add();
		}
		elseif($status=="N" && in_array($module_id, $arInstalled))
		{
			$oModule->Remove();
		}
	}

	return true;
}