/** * Display an introductory screen with any pre-upgrade messages */ public function runIntro() { $upgrade = new CRM_Upgrade_Form(); $template = CRM_Core_Smarty::singleton(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { CRM_Core_Error::fatal($error); } $config = CRM_Core_Config::singleton(); // All cached content needs to be cleared because the civi codebase was just replaced CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode(); CRM_Core_Menu::store(); // cleanup only the templates_c directory $config->cleanup(1, FALSE); $preUpgradeMessage = NULL; $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); $template->assign('currentVersion', $currentVer); $template->assign('newVersion', $latestVer); $template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', array(1 => $currentVer, 2 => $latestVer))); $template->assign('upgraded', FALSE); // Render page header if (!defined('CIVICRM_UF_HEAD') && ($region = CRM_Core_Region::instance('html-header', FALSE))) { CRM_Utils_System::addHTMLHead($region->render('')); } $template->assign('preUpgradeMessage', $preUpgradeMessage); $content = $template->fetch('CRM/common/success.tpl'); echo CRM_Utils_System::theme($content, $this->_print, TRUE); }
/** * Perform an upgrade without using the web-frontend * * @param bool $enablePrint * * @throws Exception * @return array, with keys: * - message: string, HTML-ish blob */ public function run($enablePrint = TRUE) { // lets get around the time limit issue if possible for upgrades if (!ini_get('safe_mode')) { set_time_limit(0); } $upgrade = new CRM_Upgrade_Form(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { throw new Exception($error); } // Disable our SQL triggers CRM_Core_DAO::dropTriggers(); // CRM-11156 $preUpgradeMessage = NULL; $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); $postUpgradeMessageFile = CRM_Utils_File::tempnam('civicrm-post-upgrade'); $queueRunner = new CRM_Queue_Runner(array('title' => ts('CiviCRM Upgrade Tasks'), 'queue' => CRM_Upgrade_Form::buildQueue($currentVer, $latestVer, $postUpgradeMessageFile))); $queueResult = $queueRunner->runAll(); if ($queueResult !== TRUE) { $errorMessage = CRM_Core_Error::formatTextException($queueResult['exception']); CRM_Core_Error::debug_log_message($errorMessage); if ($enablePrint) { print $errorMessage; } throw $queueResult['exception']; // FIXME test } CRM_Upgrade_Form::doFinish(); $message = file_get_contents($postUpgradeMessageFile); return array('latestVer' => $latestVer, 'message' => $message, 'text' => CRM_Utils_String::htmlToText($message)); }
/** * Display an introductory screen with any pre-upgrade messages */ function runIntro() { $upgrade = new CRM_Upgrade_Form(); $template = CRM_Core_Smarty::singleton(); list($currentVer, $latestVer) = $upgrade->getUpgradeVersions(); if ($error = $upgrade->checkUpgradeableVersion($currentVer, $latestVer)) { CRM_Core_Error::fatal($error); } // This could be removed in later rev if ($currentVer == '2.1.6') { $config = CRM_Core_Config::singleton(); // also cleanup the templates_c directory $config->cleanupCaches(); } else { $config = CRM_Core_Config::singleton(); // cleanup only the templates_c directory $config->cleanup(1, FALSE); } // end of hack $preUpgradeMessage = NULL; $upgrade->setPreUpgradeMessage($preUpgradeMessage, $currentVer, $latestVer); $template->assign('currentVersion', $currentVer); $template->assign('newVersion', $latestVer); $template->assign('upgradeTitle', ts('Upgrade CiviCRM from v %1 To v %2', array(1 => $currentVer, 2 => $latestVer))); $template->assign('upgraded', FALSE); // Render page header if (!defined('CIVICRM_UF_HEAD') && ($region = CRM_Core_Region::instance('html-header', FALSE))) { CRM_Utils_System::addHTMLHead($region->render('')); } $template->assign('preUpgradeMessage', $preUpgradeMessage); // $template->assign( 'message', $postUpgradeMessage ); $content = $template->fetch('CRM/common/success.tpl'); echo CRM_Utils_System::theme($content, $this->_print, TRUE); }