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

	$stime = CUpdateSystem::getmicrotime();

	if (!is_array($arRes)
		|| !isset($arRes["MODULES"])
		|| !is_array($arRes["MODULES"])
		)
	{
		$strError_tmp .= "[UCV01] ".GetMessage("SUPP_CV_ERR_ARR").".
"; } if ($arSelectedModules!==false && (!is_array($arSelectedModules) || empty($arSelectedModules))) { $strError_tmp .= "[UCV011] ".GetMessage("SUPP_CV_NO_SELECTED").".
"; } if ($strError_tmp == '') { $arModulesList = $arRes["MODULES"]["#"]["MODULE"]; if (!is_array($arModulesList) || empty($arModulesList)) { $strError_tmp .= "[UCV02] ".GetMessage("SUPP_CV_EMPTY_MODS").".
"; } } if ($strError_tmp == '') { for ($i = 0, $ni = count($arModulesList); $i < $ni; $i++) { if ($arSelectedModules===false || in_array($arModulesList[$i]["@"]["ID"], $arSelectedModules)) { if (isset($arModulesList[$i]["#"]["VERSION_CONTROL"]) && !empty($arModulesList[$i]["#"]["VERSION_CONTROL"])) { for ($j = 0, $nj = count($arModulesList[$i]["#"]["VERSION_CONTROL"]); $j < $nj; $j++) { $strModule_tmp = $arModulesList[$i]["#"]["VERSION_CONTROL"][$j]["@"]["MODUL"]; $bNeedInstall = true; for ($k = 0, $nk = count($arModulesList); $k < $nk; $k++) { if ($arModulesList[$k]["@"]["ID"]==$strModule_tmp && ($arSelectedModules===false || in_array($arModulesList[$k]["@"]["ID"], $arSelectedModules))) { if (CUpdateSystem::CompareVersions( $arModulesList[$k]["@"]["VERSION"], $arModulesList[$i]["#"]["VERSION_CONTROL"][$j]["@"]["VERSION"] ) >= 0) { $bNeedInstall = false; break; } } } if ($bNeedInstall) { $strModule_tmp_dir = $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$strModule_tmp; if (file_exists($strModule_tmp_dir) && is_dir($strModule_tmp_dir)) { if ($strModule_tmp!="main") { if (file_exists($strModule_tmp_dir."/install/index.php")) { $arModule_tmp_info = CUpdateSystem::GetModuleInfo($strModule_tmp_dir); if (CUpdateSystem::CompareVersions( $arModule_tmp_info["VERSION"], $arModulesList[$i]["#"]["VERSION_CONTROL"][$j]["@"]["VERSION"] ) >= 0) { $bNeedInstall = false; } } } else { if (CUpdateSystem::CompareVersions( SM_VERSION, $arModulesList[$i]["#"]["VERSION_CONTROL"][$j]["@"]["VERSION"] ) >= 0) { $bNeedInstall = false; } } } else { $bNeedInstall = false; } } if ($bNeedInstall) { $strError_tmp .= "[UCV_MER01] ".str_replace("#VERS#", $arModulesList[$i]["#"]["VERSION_CONTROL"][$j]["@"]["VERSION"], str_replace("#MODULE2#", $strModule_tmp, str_replace("#MODULE1#", $arModulesList[$i]["@"]["ID"], GetMessage("SUPP_CV_RES_ERR")))).".
"; } } } } } } CUpdateSystem::AddMessage2Log("TIME CheckVersions ".Round(CUpdateSystem::getmicrotime()-$stime, 3)." sec"); if ($strError_tmp <> '') { CUpdateSystem::AddMessage2Log($strError_tmp, "CUCV"); $strError .= $strError_tmp; return false; } else return true; }