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

	CUpdateSystem::AddMessage2Log("exec CUpdateSystem::GetServerModuleUpdates");

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

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

	$arClientModules = CUpdateSystem::GetModules($strError_tmp);

	if ($strError_tmp == '')
	{
		$GLOBALS["DB"]->GetVersion();

		$strVars = "LICENSE_KEY=".urlencode(md5(CUpdateSystem::GetLicenseKey())).
			"&lang=".urlencode($lang).
			"&UTYPES=".urlencode("M").
			"&SUPD_VER=".urlencode(UPDATE_SYSTEM_VERSION).
			"&ALL_MODULES=".urlencode("Y").
			"&TYPENC=".((defined("DEMO") && DEMO=="Y") ? "D" : ((defined("ENCODE") && ENCODE=="Y") ? "E" : "F" )).
			"&COUNT_ONLY=".urlencode("N").
			"&SUPD_STS=".urlencode(CUpdateSystem::GetFooPath("GetList")).
			"&CLIENT_SITE=".urlencode($_SERVER["SERVER_NAME"]).
			"&SUPD_DBS=".urlencode($GLOBALS["DB"]->type).
			"&XE=".urlencode((isset($GLOBALS["DB"]->XE) && $GLOBALS["DB"]->XE) ? "Y" : "N").
			"&CANGZIP=".urlencode((CUpdateSystem::IsGzipInstalled()) ? "Y" : "N").
			"&CLIENT_PHPVER=".urlencode(phpversion()).
			"&stable=".urlencode($stableVersionsOnly).
			"&".CUpdateSystem::ModulesArray2Query($arClientModules, "bitm_");

		CUpdateSystem::AddMessage2Log(preg_replace("/LICENSE_KEY=[^&]*/i", "LICENSE_KEY=X", $strVars));

		$stime = CUpdateSystem::getmicrotime();
		$content = CUpdateSystem::getHTTPPage("bit_sysserver.php", $strVars, $strError_tmp);
		CUpdateSystem::AddMessage2Log("TIME GetServerModuleUpdates.getHTTPPage ".Round(CUpdateSystem::getmicrotime()-$stime, 3)." sec");
	}

	if ($strError_tmp == '')
	{
		$arRes = Array();
		CUpdateSystem::ParseServerData($content, $arRes, $strError_tmp);
	}

	if ($strError_tmp == '')
	{
		if (isset($arRes["DATA"]["#"]["UPDATE_SYSTEM"])
			&& is_array($arRes["DATA"]["#"]["UPDATE_SYSTEM"])
			&& !empty($arRes["DATA"]["#"]["UPDATE_SYSTEM"]))
		{
			$arResult["UPDATE_SYSTEM"] = $arRes["DATA"]["#"]["UPDATE_SYSTEM"][0];
		}

		if (isset($arRes["DATA"]["#"]["MODULES"])
			&& is_array($arRes["DATA"]["#"]["MODULES"])
			&& !empty($arRes["DATA"]["#"]["MODULES"]))
		{
			$arResult["MODULES"] = $arRes["DATA"]["#"]["MODULES"][0];
		}

		if (isset($arRes["DATA"]["#"]["ERROR"])
			&& is_array($arRes["DATA"]["#"]["ERROR"])
			&& !empty($arRes["DATA"]["#"]["ERROR"]))
		{
			$arResult["ERROR"] = $arRes["DATA"]["#"]["ERROR"];
		}

		if (isset($arRes["DATA"]["#"]["CLIENT"])
			&& is_array($arRes["DATA"]["#"]["CLIENT"])
			&& !empty($arRes["DATA"]["#"]["CLIENT"]))
		{
			$arResult["CLIENT"] = $arRes["DATA"]["#"]["CLIENT"][0];
		}

		if (isset($arRes["DATA"]["#"]["SYSTEM"])
			&& is_array($arRes["DATA"]["#"]["SYSTEM"])
			&& !empty($arRes["DATA"]["#"]["SYSTEM"]))
		{
			$arResult["SYSTEM"] = $arRes["DATA"]["#"]["SYSTEM"][0];
		}
	}

	if ($strError_tmp == '')
	{
		if ((!isset($arResult["CLIENT"]) || !is_array($arResult["CLIENT"]))
			&& (!isset($arResult["ERROR"]) || !is_array($arResult["ERROR"])))
		{
			$strError_tmp .= "[UGSMU01] ".GetMessage("SUPP_GAUT_SYSERR").".
"; } } if ($strError_tmp <> '') { CUpdateSystem::AddMessage2Log($strError_tmp, "CUGSMU"); $strError .= $strError_tmp; return false; } else return $arResult; }