/** Собирает клиентские модули с версиями **/ public static function GetCurrentModules(&$strError) { $arClientModules = array(); if (file_exists($_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules/main/classes/general/version.php") && is_file($_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules/main/classes/general/version.php")) { $p = file_get_contents($_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules/main/classes/general/version.php"); preg_match("/define\\s*\\(\\s*\"SM_VERSION\"\\s*,\\s*\"(\\d+\\.\\d+\\.\\d+)\"\\s*\\)\\s*/im", $p, $arVers); $arClientModules["main"] = array("VERSION" => $arVers[1], "IS_DEMO" => defined("DEMO") && DEMO == "Y" ? "Y" : "N"); } if (!array_key_exists("main", $arClientModules) || strlen($arClientModules["main"]["VERSION"]) <= 0) { CUpdateClientPartner::AddMessage2Log(GetMessage("SUPP_GM_ERR_DMAIN"), "Ux09"); $strError .= "[Ux09] " . GetMessage("SUPP_GM_ERR_DMAIN") . ". "; return array(); } if ($handle = @opendir($_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules")) { while (false !== ($dir = readdir($handle))) { if (is_dir($_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules/" . $dir) && $dir != "." && $dir != ".." && $dir != "main") { $module_dir = $_SERVER["DOCUMENT_ROOT"] . US_SHARED_KERNEL_PATH . "/modules/" . $dir; if (file_exists($module_dir . "/install/index.php")) { $arInfo = CUpdateClientPartner::__GetModuleInfo($module_dir); if (!isset($arInfo["VERSION"]) || strlen($arInfo["VERSION"]) <= 0) { CUpdateClientPartner::AddMessage2Log(str_replace("#MODULE#", $dir, GetMessage("SUPP_GM_ERR_DMOD")), "Ux11"); $strError .= "[Ux11] " . str_replace("#MODULE#", $dir, GetMessage("SUPP_GM_ERR_DMOD")) . ". "; return array(); } else { if ($arInfo["ACTIVE"] == "Y") { $arClientModules[$dir] = array("VERSION" => $arInfo["VERSION"], "IS_DEMO" => $arInfo["IS_DEMO"]); } } } else { CUpdateClientPartner::AddMessage2Log(str_replace("#MODULE#", $dir, GetMessage("SUPP_GM_ERR_DMOD")), "Ux12"); } } } closedir($handle); } else { CUpdateClientPartner::AddMessage2Log(GetMessage("SUPP_GM_NO_KERNEL"), "Ux15"); $strError .= "[Ux15] " . GetMessage("SUPP_GM_NO_KERNEL") . ". "; return array(); } return $arClientModules; }