Beispiel #1
0
	function GetLoadedHelpUpdates($updates_dir, &$strError)
	{
		$arResult = array();
		$strError_tmp = "";

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

		$updates_dir_full = $_SERVER["DOCUMENT_ROOT"]."/bitrix/updates/".$updates_dir;
		if (!file_exists($updates_dir_full) || !is_dir($updates_dir_full))
		{
			$strError_tmp .= "[UGLHU01] ".str_replace("#FILE#", $updates_dir_full, GetMessage("SUPP_CU_NO_TMP_CAT")).".<br>";
		}

		if (strlen($strError_tmp)<=0)
		{
			if (!is_readable($updates_dir_full))
				$strError_tmp .= "[UGLHU02] ".str_replace("#FILE#", $updates_dir_full, GetMessage("SUPP_CU_RD_TMP_CAT")).".<br>";
		}

		if (strlen($strError_tmp)<=0)
		{
			if (!file_exists($updates_dir_full."/update_info.xml") || !is_file($updates_dir_full."/update_info.xml"))
			{
				$strError_tmp .= "[UGLHU03] ".str_replace("#FILE#", $updates_dir_full."/update_info.xml", GetMessage("SUPP_RV_ER_DESCR_FILE")).".<br>";
			}
		}

		if (strlen($strError_tmp)<=0)
		{
			if (!is_readable($updates_dir_full."/update_info.xml"))
				$strError_tmp .= "[UGLHU04] ".str_replace("#FILE#", $updates_dir_full."/update_info.xml", GetMessage("SUPP_RV_READ_DESCR_FILE")).".<br>";
		}

		if (strlen($strError_tmp)<=0)
		{
			$content = file_get_contents($updates_dir_full."/update_info.xml");
		}

		//echo "!1!".htmlspecialchars($content)."!2!";

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

		//echo "!3!".htmlspecialchars($content)."!4!";
		//echo "<pre>";print_r($arRes);echo "</pre>";

		if (strlen($strError_tmp)<=0)
		{
			if (isset($arRes["DATA"]["#"]["HELPS"])
				&& is_array($arRes["DATA"]["#"]["HELPS"])
				&& count($arRes["DATA"]["#"]["HELPS"])>0)
			{
				$arResult["HELPS"] = $arRes["DATA"]["#"]["HELPS"][0];
			}

			if (isset($arRes["DATA"]["#"]["ERROR"])
				&& is_array($arRes["DATA"]["#"]["ERROR"])
				&& count($arRes["DATA"]["#"]["ERROR"])>0)
			{
				$arResult["ERROR"] = $arRes["DATA"]["#"]["ERROR"];
			}

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

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

		if (strlen($strError_tmp)<=0)
		{
			if ((!isset($arResult["CLIENT"]) || !is_array($arResult["CLIENT"]))
				&& (!isset($arResult["ERROR"]) || !is_array($arResult["ERROR"])))
			{
				$strError_tmp .= "[UGSHU01] ".GetMessage("SUPP_GAUT_SYSERR").".<br>";
			}
		}

		if (strlen($strError_tmp)>0)
		{
			CUpdateSystem::AddMessage2Log($strError_tmp, "CUGLHU");
			$strError .= $strError_tmp;
			return False;
		}
		else
			return $arResult;
	}