Exemplo n.º 1
0
 public 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 || StrLen($strQuery) <= 0 || StrLen($strError_tmp) > 0) {
         if (StrLen($strError_tmp) <= 0) {
             $strError_tmp = "[GNSU01] " . GetMessage("SUPZ_NO_QSTRING") . ". ";
         }
     }
     if (StrLen($strError_tmp) <= 0) {
         CUpdateClientPartner::AddMessage2Log(preg_replace("/LICENSE_KEY=[^&]*/i", "LICENSE_KEY=X", $strQuery));
         $stime = CUpdateClientPartner::__GetMicroTime();
         $content = CUpdateClientPartner::__GetHTTPPage("MODULE", $strQuery, $strError_tmp);
         if (strlen($content) <= 0) {
             if (StrLen($strError_tmp) <= 0) {
                 $strError_tmp = "[GNSU02] " . GetMessage("SUPZ_EMPTY_ANSWER") . ". ";
             }
         }
         CUpdateClientPartner::AddMessage2Log("TIME LoadModuleNoDemand(request) " . Round(CUpdateClientPartner::__GetMicroTime() - $stime, 3) . " sec");
     }
     if (StrLen($strError_tmp) <= 0) {
         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 (StrLen($strError_tmp) <= 0) {
         fwrite($fp1, $content);
         fclose($fp1);
     }
     if (strlen($strError_tmp) <= 0) {
         $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 (strlen($strError_tmp) <= 0) {
         $arStepUpdateInfo = CUpdateClientPartner::GetStepUpdateInfo($temporaryUpdatesDir, $strError_tmp);
     }
     if (StrLen($strError_tmp) <= 0) {
         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 (strlen($strError_tmp) <= 0) {
         if (!CUpdateClientPartner::UpdateStepModules($temporaryUpdatesDir, $strError_tmp)) {
             $strError_tmp .= "[CL04] " . GetMessage("SUPC_ME_UPDATE") . ". ";
             CUpdateClientPartner::AddMessage2Log(GetMessage("SUPC_ME_UPDATE"), "CL04");
         }
     }
     if (strlen($strError_tmp) > 0) {
         CUpdateSystem::AddMessage2Log($strError_tmp, "CURV");
         $strError .= $strError_tmp;
         return False;
     } else {
         return True;
     }
 }