Beispiel #1
0
function xmldb_customlabel_upgrade($oldversion = 0)
{
    global $CFG, $THEME, $DB;
    $result = true;
    $dbman = $DB->get_manager();
    //===== 1.9.0 upgrade line ======//
    if ($result && $oldversion < 2012062401) {
        // Define field fallbacktype to be added to customlabel.
        $table = new xmldb_table('customlabel');
        $field = new xmldb_field('fallbacktype');
        $field->set_attributes(XMLDB_TYPE_CHAR, '32', null, null, null, null, 'labelclass');
        // Launch add field parent.
        $result = $result || $dbman->add_field($table, $field);
        // customlabel savepoint reached.
        upgrade_mod_savepoint($result, 2012062401, 'customlabel');
    }
    if ($result && $oldversion < 2013041802) {
        // Regenerates all contents to match template changes.
        $sql = "\n            SELECT DISTINCT\n                c.id,\n                c.shortname,\n                c.fullname,\n                c.idnumber,\n                c.summary,\n                c.category,\n                c.summaryformat\n            FROM\n                {course} c,\n                {course_modules} cm,\n                {modules} m\n            WHERE\n                c.id = cm.course AND\n                cm.module = m.id AND\n                m.name = 'customlabel'\n        ";
        $courses = $DB->get_records_sql($sql);
        if ($courses) {
            echo '<pre>';
            foreach ($courses as $c) {
                customlabel_course_preprocess_filepickers($c);
                customlabel_course_regenerate($c, 'all');
            }
            echo '</pre>';
        }
        upgrade_mod_savepoint($result, 2013041802, 'customlabel');
    }
    return $result;
}
if ($form->is_cancelled()) {
    redirect($CFG->wwwroot . '/admin/settings.php?section=modsettingcustomlabel');
}
echo $OUTPUT->header();
if ($data = $form->get_data()) {
    echo $OUTPUT->container_start('emptyleftspace');
    echo $OUTPUT->heading(get_string('updatelabels', 'customlabel', get_string('modulename', 'customlabel')), 1);
    $courseids = clean_param_array($data->courses, PARAM_INT);
    $labelclasses = clean_param_array($data->labelclasses, PARAM_RAW);
    if (empty($courseids)) {
        $courses = array();
    } else {
        $courses = $DB->get_records_list('course', 'id', $courseids);
    }
    if (empty($labelclasses)) {
        $labelclasses = array();
    }
    echo "<pre>";
    foreach ($courses as $courseid => $course) {
        mtrace("processing course {$courseid} : {$course->shortname}");
        customlabel_course_regenerate($course, $labelclasses);
    }
    echo '</pre>';
    echo $OUTPUT->container_end();
    echo $OUTPUT->continue_button(new moodle_url('/mod/customlabel/admin_updateall.php'));
} else {
    // Print form.
    echo $OUTPUT->heading(get_string('updatelabels', 'customlabel', get_string('modulename', 'customlabel')), 1);
    $form->display();
}
echo $OUTPUT->footer();