public function processing() { $oController = new BxDolUpgradeController(); if ($oController->setMaintenanceMode(true)) { // if upgrade was successful if (($sFolder = $oController->getAvailableUpgrade()) && $oController->runUpgrade($sFolder)) { // 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_system', ''); } }
public function processing() { if ('on' != getParam('sys_autoupdate_system')) { return; } $o = bx_instance('BxDolUpgrader'); if (!$o->prepare()) { sendMailTemplateSystem('t_UpgradeFailed', array('error_msg' => $o->getError())); setParam('sys_autoupdate_system', ''); // disable auto-update if it is failed } }
public function prepare() { $iUmaskSave = umask(0); bx_import('BxDolStudioInstallerUtils'); $oInstallerUtils = BxDolStudioInstallerUtils::getInstance(); $aUpdated = array(); while (true) { $aUpdates = $oInstallerUtils->checkUpdates(); foreach ($aUpdates as $aUpdate) { $mixedResult = $oInstallerUtils->downloadUpdatePublic($aUpdate['name']); if ($mixedResult !== true) { $this->setError($mixedResult); break; } } if ($this->getError()) { break; } $aUpdates = $oInstallerUtils->getUpdates(); foreach ($aUpdates as $aUpdate) { $aResult = BxDolStudioInstallerUtils::getInstance()->perform($aUpdate['dir'], 'update'); if ((int) $aResult['code'] != 0) { $this->setError($aResult['message']); break; } else { $aUpdated[$aUpdate['module_name']] = $aUpdate['version_to']; } } break; } umask($iUmaskSave); if (!empty($aUpdated)) { bx_import('BxDolModuleQuery'); $oModuleQuery = BxDolModuleQuery::getInstance(); $sUpdated = ''; foreach ($aUpdated as $sModule => $sVersion) { $aModule = $oModuleQuery->getModuleByName($sModule); $sUpdated .= _t('_sys_et_txt_body_upgraded_module', $aModule['title'], $sVersion); } sendMailTemplateSystem('t_UpgradeModulesSuccess', array('conclusion' => $sUpdated)); } return $this->getError() ? false : true; }
private function emailNotify($sMessage) { sendMailTemplateSystem('t_BgOperationFailed', array('conclusion' => strip_tags($sMessage))); }
private function emailNotifyModulesUpgrade($sResult, $aData) { $oModuleQuery = BxDolModuleQuery::getInstance(); $sConclusion = ''; if (!empty($aData)) { foreach ($aData as $sModule => $sMessage) { $aModule = $oModuleQuery->getModuleByName($sModule); $sConclusion .= _t('_sys_et_txt_body_modules_upgrade_' . $sResult, $aModule['title'], $sMessage); } } sendMailTemplateSystem('t_UpgradeModules' . ucfirst($sResult), array('conclusion' => $sConclusion)); }