Example #1
0
function move_courses($courseids, $categoryid)
{
    global $CFG;
    if (!empty($courseids)) {
        $courseids = array_reverse($courseids);
        foreach ($courseids as $courseid) {
            if (!($course = get_record("course", "id", $courseid))) {
                notify("Error finding course {$courseid}");
            } else {
                // figure out a sortorder that we can use in the destination category
                $sortorder = get_field_sql('SELECT MIN(sortorder)-1 AS min
                                                    FROM ' . $CFG->prefix . 'course WHERE category=' . $categoryid);
                if (is_null($sortorder) || $sortorder === false) {
                    // the category is empty
                    // rather than let the db default to 0
                    // set it to > 100 and avoid extra work in fix_coursesortorder()
                    $sortorder = 200;
                } else {
                    if ($sortorder < 10) {
                        fix_course_sortorder($categoryid);
                    }
                }
                $course->category = $categoryid;
                $course->sortorder = $sortorder;
                $course->fullname = addslashes($course->fullname);
                $course->shortname = addslashes($course->shortname);
                $course->summary = addslashes($course->summary);
                $course->password = addslashes($course->password);
                $course->teacher = addslashes($course->teacher);
                $course->teachers = addslashes($course->teachers);
                $course->student = addslashes($course->student);
                $course->students = addslashes($course->students);
                if (!update_record('course', $course)) {
                    notify("An error occurred - course not moved!");
                }
                // parents changed (course category), do not delete child context relations
                insert_context_rel(get_context_instance(CONTEXT_COURSE, $course->id), false);
            }
        }
        fix_course_sortorder();
    }
    return true;
}
Example #2
0
/**
 * rebuild context_rel table without deleting
 */
function build_context_rel()
{
    global $db;
    $savedb = $db->debug;
    // total number of records
    $total = count_records('context');
    // processed records
    $done = 0;
    print_progress($done, $total, 10, 0, 'Processing context relations');
    $db->debug = false;
    if ($contexts = get_records('context')) {
        foreach ($contexts as $context) {
            // no need to delete because it's all empty
            insert_context_rel($context, false, false);
            $db->debug = true;
            print_progress(++$done, $total, 10, 0, 'Processing context relations');
            $db->debug = false;
        }
    }
    $db->debug = $savedb;
}