Пример #1
0
$APPLICATION->SetAdditionalCSS("/bitrix/themes/" . ADMIN_THEME_ID . "/sysupdate.css");
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
if (!function_exists("GetMessageJS")) {
    function GetMessageJS($name, $replace = false)
    {
        static $aSearch = array("
", "\\", "'", "\"", "\r\n", "\r", "\n", "
", "*/", "</");
        static $aReplace = array(" ", "\\\\", "\\'", '\\"', "\n", "\n", "\\n", "\\n", "*\\/", "<\\/");
        $val = str_replace($aSearch, $aReplace, GetMessage($name, $replace));
        return $val;
    }
}
$arMenu = array(array("TEXT" => GetMessage("SUP_CHECK_UPDATES"), "LINK" => "/bitrix/admin/update_system.php?refresh=Y&lang=" . LANGUAGE_ID, "ICON" => "btn_update"), array("SEPARATOR" => "Y"), array("TEXT" => GetMessage("SUP_SETTINGS"), "LINK" => "/bitrix/admin/settings.php?lang=" . LANGUAGE_ID . "&mid=main&tabControl_active_tab=edit5&back_url_settings=%2Fbitrix%2Fadmin%2Fupdate_system.php%3Flang%3D" . LANGUAGE_ID . ""), array("SEPARATOR" => "Y"), array("TEXT" => GetMessage("SUP_HISTORY"), "LINK" => "/bitrix/admin/sysupdate_log.php?lang=" . LANGUAGE_ID, "ICON" => "btn_update_log"));
$context = new CAdminContextMenu($arMenu);
$context->Show();
if (!$bLockUpdateSystemKernel) {
    if (CUpdateClient::Lock()) {
        if ($arUpdateList = CUpdateClient::GetUpdatesList($errorMessage, LANG, $stableVersionsOnly)) {
            $refreshStep = intval($_REQUEST["refresh_step"]) + 1;
            if (isset($arUpdateList["REPAIR"])) {
                if ($refreshStep < 5) {
                    CUpdateClient::Repair($arUpdateList["REPAIR"][0]["@"]["TYPE"], $stableVersionsOnly, LANG);
                    LocalRedirect("/bitrix/admin/update_system.php?refresh=Y&refresh_step=" . $refreshStep . "&lang=" . LANGUAGE_ID);
                } else {
                    $errorMessage .= "<br>" . GetMessage("SUP_CANT_REPARE") . ". ";
                }
            }
        } else {
            $errorMessage .= "<br>" . GetMessage("SUP_CANT_CONNECT") . ". ";
        }
        CUpdateClient::UnLock();
    } else {