• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/update_client_partner.php
  • Класс: CUpdateClientPartner
  • Вызов: CUpdateClientPartner::LoadModuleNoDemand
static function LoadModuleNoDemand($moduleId, &$strError, $stableVersionsOnly = "Y", $lang = false)
{
	$strError_tmp = "";

	CUpdateClientPartner::AddMessage2Log("exec CUpdateClientPartner::LoadModuleNoDemand");

	$stableVersionsOnly = (($stableVersionsOnly == "N") ? "N" : "Y");

	if ($lang === false)
		$lang = LANGUAGE_ID;

	$strQuery = CUpdateClientPartner::__CollectRequestData($strError_tmp, $lang, $stableVersionsOnly, array($moduleId), array(), true);
	if ($strQuery === false || $strQuery == '' || $strError_tmp <> '')
	{
		if ($strError_tmp == '')
			$strError_tmp = "[GNSU01] ".GetMessage("SUPZ_NO_QSTRING").". ";
	}

	if ($strError_tmp == '')
	{
		CUpdateClientPartner::AddMessage2Log(preg_replace("/LICENSE_KEY=[^&]*/i", "LICENSE_KEY=X", $strQuery));

		$stime = microtime(true);
		$content = CUpdateClientPartner::__GetHTTPPage("MODULE", $strQuery, $strError_tmp);
		if ($content == '')
		{
			if ($strError_tmp == '')
				$strError_tmp = "[GNSU02] ".GetMessage("SUPZ_EMPTY_ANSWER").". ";
		}

		CUpdateClientPartner::AddMessage2Log("TIME LoadModuleNoDemand(request) ".Round(microtime(true) - $stime, 3)." sec");
	}

	if ($strError_tmp == '')
	{
		if (!($fp1 = fopen($_SERVER["DOCUMENT_ROOT"]."/bitrix/updates/update_archive.gz", "wb")))
			$strError_tmp = "[GNSU03] ".str_replace("#FILE#", $_SERVER["DOCUMENT_ROOT"]."/bitrix/updates", GetMessage("SUPP_RV_ER_TEMP_FILE")).". ";
	}

	if ($strError_tmp == '')
	{
		fwrite($fp1, $content);
		fclose($fp1);
	}

	if ($strError_tmp == '')
	{
		$temporaryUpdatesDir = "";
		if (!CUpdateClientPartner::UnGzipArchive($temporaryUpdatesDir, $strError_tmp, true))
		{
			$strError_tmp .= "[CL02] ".GetMessage("SUPC_ME_PACK").". ";
			CUpdateClientPartner::AddMessage2Log(GetMessage("SUPC_ME_PACK"), "CL02");
		}
	}

	$arStepUpdateInfo = array();
	if ($strError_tmp == '')
		$arStepUpdateInfo = CUpdateClientPartner::GetStepUpdateInfo($temporaryUpdatesDir, $strError_tmp);

	if ($strError_tmp == '')
	{
		if (isset($arStepUpdateInfo["DATA"]["#"]["ERROR"]))
		{
			for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ERROR"]); $i < $cnt; $i++)
				$strError_tmp .= "[".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["@"]["TYPE"]."] ".$arStepUpdateInfo["DATA"]["#"]["ERROR"][$i]["#"];
		}
	}

	if ($strError_tmp == '')
	{
		if (!CUpdateClientPartner::UpdateStepModules($temporaryUpdatesDir, $strError_tmp))
		{
			$strError_tmp .= "[CL04] ".GetMessage("SUPC_ME_UPDATE").". ";
			CUpdateClientPartner::AddMessage2Log(GetMessage("SUPC_ME_UPDATE"), "CL04");
		}
	}

	if ($strError_tmp <> '')
	{
		CUpdateSystem::AddMessage2Log($strError_tmp, "CURV");
		$strError .= $strError_tmp;
		return false;
	}
	else
		return true;
}