Beispiel #1
0
/**
 * This function does the cron process within the time range according to settings.
 */
function tool_qeupgradehelper_process($settings)
{
    global $CFG;
    require_once dirname(__FILE__) . '/locallib.php';
    if (!tool_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 = tool_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 = tool_qeupgradehelper_get_quiz($quizid);
        if ($quizsummary) {
            mtrace('  starting upgrade of attempts at quiz ' . $quizid);
            $upgrader = new tool_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', context_system::instance());
tool_qeupgradehelper_require_upgraded();
admin_externalpage_setup('qeupgradehelper', '', array(), tool_qeupgradehelper_url('convertquiz', array('quizid' => $quizid)));
$PAGE->navbar->add(get_string('listtodo', 'tool_qeupgradehelper'), tool_qeupgradehelper_url('listtodo'));
$PAGE->navbar->add(get_string('convertattempts', 'tool_qeupgradehelper'));
$renderer = $PAGE->get_renderer('tool_qeupgradehelper');
$quizsummary = tool_qeupgradehelper_get_quiz($quizid);
if (!$quizsummary) {
    print_error('invalidquizid', 'tool_qeupgradehelper', tool_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', 'tool_qeupgradehelper', $quizsummary));
    $upgrader = new tool_qeupgradehelper_attempt_upgrader($quizsummary->id, $quizsummary->numtoconvert);
    $upgrader->convert_all_quiz_attempts();
    echo $renderer->heading(get_string('conversioncomplete', 'tool_qeupgradehelper'));
    echo $renderer->end_of_page_link(new moodle_url('/mod/quiz/report.php', array('q' => $quizsummary->id)), get_string('gotoquizreport', 'tool_qeupgradehelper'));
    echo $renderer->end_of_page_link(tool_qeupgradehelper_url('listtodo'), get_string('listtodo', 'tool_qeupgradehelper'));
    echo $renderer->footer();
    exit;