$confirmplugincheck = optional_param('confirmplugincheck', 0, PARAM_BOOL);
/// check upgrade status first
- if ($ignoreupgradewarning and !empty($_SESSION['upgraderunning'])) {
- $_SESSION['upgraderunning'] = 0;
+ if ($ignoreupgradewarning) {
+ $SESSION->upgraderunning = 0;
}
upgrade_check_running("Upgrade already running in this session, please wait!<br />Click on the exclamation marks to ignore this warning (<a href=\"index.php?ignoreupgradewarning=1\">!!!</a>).", 10);
/// set install/upgrade autocontinue session flag
if ($autopilot) {
- $_SESSION['installautopilot'] = $autopilot;
+ $SESSION->installautopilot = $autopilot;
}
/// Check some PHP server settings
/// Check all admin report plugins and upgrade if necessary
upgrade_plugins('report', $CFG->admin.'/report', "$CFG->wwwroot/$CFG->admin/index.php");
+/// Check all quiz report plugins and upgrade if necessary
+ upgrade_plugins('quiz_report', 'mod/quiz/report', "$CFG->wwwroot/$CFG->admin/index.php");
+
/// just make sure upgrade logging is properly terminated
upgrade_log_finish();
- unset($_SESSION['installautopilot']);
+ unset($SESSION->installautopilot);
/// Set up the blank site - to be customized later at the end of install.
if (! $site = get_site()) {
$dbdirs[] = $CFG->dirroot.'/'.$CFG->admin.'/report/'.$plugin.'/db';
}
}
+
+/// Now quiz report plugins (mod/quiz/report/xxx/db)
+ if ($plugins = get_list_of_plugins('mod/quiz/report', 'db')) {
+ foreach ($plugins as $plugin) {
+ $dbdirs[] = $CFG->dirroot.'/mod/quiz/report/'.$plugin.'/db';
+ }
+ }
/// Local database changes, if the local folder exists.
if (file_exists($CFG->dirroot . '/local')) {
}
function upgrade_get_javascript() {
- global $CFG;
+ global $CFG, $SESSION;
- if (!empty($_SESSION['installautopilot'])) {
+ if (!empty($SESSION->installautopilot)) {
$linktoscrolltoerrors = '<script type="text/javascript">var installautopilot = true;</script>'."\n";
} else {
$linktoscrolltoerrors = '<script type="text/javascript">var installautopilot = false;</script>'."\n";
* @param int page reload timeout
*/
function upgrade_check_running($message, $timeout) {
- if (!empty($_SESSION['upgraderunning'])) {
+ global $SESSION;
+
+ if (!empty($SESSION->upgraderunning)) {
print_header();
redirect(me(), $message, $timeout);
}
* This function may be called repeatedly.
*/
function upgrade_log_start() {
- global $CFG, $upgradeloghandle;
+ global $CFG, $upgradeloghandle, $SESSION;
- if (!empty($_SESSION['upgraderunning'])) {
+ if (!empty($SESSION->upgraderunning)) {
return; // logging already started
}
@ignore_user_abort(true); // ignore if user stops or otherwise aborts page loading
- $_SESSION['upgraderunning'] = 1; // set upgrade indicator
+ $SESSION->upgraderunning = 1; // set upgrade indicator
if (empty($CFG->dbsessions)) { // workaround for bug in adodb, db session can not be restarted
session_write_close(); // from now on user can reload page - will be displayed warning
}
* This function may be called repeatedly.
*/
function upgrade_log_finish() {
- global $CFG, $upgradeloghandle, $upgradelogbuffer;
+ global $CFG, $upgradeloghandle, $upgradelogbuffer, $SESSION;
- if (empty($_SESSION['upgraderunning'])) {
+ if (empty($SESSION->upgraderunning)) {
return; // logging already terminated
}
@fclose($upgradeloghandle);
$upgradeloghandle = false;
}
- if (empty($CFG->dbsessions)) {
- @session_start(); // ignore header errors, we only need to reopen session
- }
- $_SESSION['upgraderunning'] = 0; // clear upgrade indicator
+ @session_start(); // ignore header errors, we only need to reopen session
+
+ $SESSION->upgraderunning = 0; // clear upgrade indicator
+
if (connection_aborted()) {
die;
}