/** * This function does the cron process within the time range according to settings. */ function local_qeupgradehelper_process($settings) { global $CFG; require_once dirname(__FILE__) . '/locallib.php'; if (!local_qeupgradehelper_is_upgraded()) { mtrace('qeupgradehelper: site not yet upgraded. Doing nothing.'); return; } require_once dirname(__FILE__) . '/afterupgradelib.php'; $hour = (int) date('H'); if ($hour < $settings->starthour || $hour >= $settings->stophour) { mtrace('qeupgradehelper: not between starthour and stophour, so doing nothing (hour = ' . $hour . ').'); return; } $stoptime = time() + $settings->procesingtime; mtrace('qeupgradehelper: processing ...'); while (time() < $stoptime) { $quiz = local_qeupgradehelper_get_quiz_for_upgrade(); if (!$quiz) { mtrace('qeupgradehelper: No more quizzes to process. You should probably disable the qeupgradehelper cron settings now.'); break; // No more to do; } $quizid = $quiz->id; $quizsummary = local_qeupgradehelper_get_quiz($quizid); if ($quizsummary) { mtrace(' starting upgrade of attempts at quiz ' . $quizid); $upgrader = new local_qeupgradehelper_attempt_upgrader($quizsummary->id, $quizsummary->numtoconvert); $upgrader->convert_all_quiz_attempts(); mtrace(' upgrade of quiz ' . $quizid . ' complete.'); } } mtrace('qeupgradehelper: Done.'); return; }
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once dirname(__FILE__) . '/../../config.php'; require_once dirname(__FILE__) . '/locallib.php'; require_once dirname(__FILE__) . '/afterupgradelib.php'; require_once $CFG->libdir . '/adminlib.php'; $quizid = required_param('quizid', PARAM_INT); $confirmed = optional_param('confirmed', false, PARAM_BOOL); require_login(); require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM)); local_qeupgradehelper_require_upgraded(); admin_externalpage_setup('qeupgradehelper', '', array(), local_qeupgradehelper_url('convertquiz', array('quizid' => $quizid))); $PAGE->navbar->add(get_string('listtodo', 'local_qeupgradehelper'), local_qeupgradehelper_url('listtodo')); $PAGE->navbar->add(get_string('convertattempts', 'local_qeupgradehelper')); $renderer = $PAGE->get_renderer('local_qeupgradehelper'); $quizsummary = local_qeupgradehelper_get_quiz($quizid); if (!$quizsummary) { print_error('invalidquizid', 'local_qeupgradehelper', local_qeupgradehelper_url('listtodo')); } $quizsummary->name = format_string($quizsummary->name); if ($confirmed && data_submitted() && confirm_sesskey()) { // Actually do the conversion. echo $renderer->header(); echo $renderer->heading(get_string('upgradingquizattempts', 'local_qeupgradehelper', $quizsummary)); $upgrader = new local_qeupgradehelper_attempt_upgrader($quizsummary->id, $quizsummary->numtoconvert); $upgrader->convert_all_quiz_attempts(); echo $renderer->heading(get_string('conversioncomplete', 'local_qeupgradehelper')); echo $renderer->end_of_page_link(new moodle_url('/mod/quiz/report.php', array('q' => $quizsummary->id)), get_string('gotoquizreport', 'local_qeupgradehelper')); echo $renderer->end_of_page_link(local_qeupgradehelper_url('listtodo'), get_string('listtodo', 'local_qeupgradehelper')); echo $renderer->footer(); exit;