setMaintenanceMode(true)) { // if upgrade was successful if (($sFolder = $oController->getAvailableUpgrade()) && $oController->runUpgrade($sFolder)) { setParam('sys_revision', getParam('sys_revision') + 1); // write upgrade log $oController->writeLog(); // send email notification bx_import('BxDolLanguages'); sendMailTemplateSystem('t_UpgradeSuccess', array ( 'new_version' => bx_get_ver(true), 'conclusion' => $oController->getConclusion() ? _t('_sys_upgrade_conclusion', $oController->getConclusion()) : '', )); // if next upgrade is available (in case of bulk upgrade) then schedule to run it upon next cron run $sUpgradeDir = pathinfo(__FILE__, PATHINFO_DIRNAME); if ($oController->getAvailableUpgrade()) { $oUpgrader = bx_instance('BxDolUpgrader'); $oUpgrader->setTransientUpgradeCronJob($sUpgradeDir); } elseif (0 === strpos($sUpgradeDir, BX_DIRECTORY_PATH_TMP)) { @bx_rrmdir($sUpgradeDir); } } $oController->setMaintenanceMode(false); } // if something went grong during upgrade if ($sErrorMsg = $oController->getErrorMsg()) { // write upgrade log $oController->writeLog(); // send email notification sendMailTemplateSystem('t_UpgradeFailed', array ( 'error_msg' => $sErrorMsg, )); // disable auto-upgrade if it is failed setParam('sys_autoupdate', ''); } else { // run modules update after successful system upgrade bx_import('BxDolCronQuery'); BxDolCronQuery::getInstance()->addTransientJobClass('sys_perform_upgrade_modules', 'BxDolCronUpgradeModulesCheck', 'inc/classes/BxDolCronUpgradeModulesCheck.php'); } } } /** @} */