Example #1
0
/**
 * Enrol a coursegroup/section into a Moodle course.
 * Accepts either the coursegroup id OR coursecode, coursegroup
 * and term for the coursegroup/section to enrol.
 */
function cegep_local_enrol_coursegroup()
{
    global $CFG, $COURSE, $DB, $enroldb, $sisdb;
    $args = func_get_args();
    if (count($args) == 1) {
        $coursegroup_id = $args[0];
    } elseif (count($args) == 3) {
        $coursegroup_id = cegep_local_get_coursegroup_id($args[0], $args[1], $args[2]);
        $coursegroup = $args[1];
    } else {
        return FALSE;
    }
    // Fetch records of students enrolled into this course from SIS
    $select_students = "SELECT * FROM `{$CFG->sisdb_name}`.`student_enrolment` WHERE `coursegroup_id` = {$coursegroup_id};";
    $students_rs = $sisdb->Execute($select_students);
    // Fail if can't find coursegroup id or student list
    if (!$coursegroup_id || !$students_rs) {
        return FALSE;
    }
    $context = get_context_instance(CONTEXT_COURSE, $COURSE->id);
    $student_role = $DB->get_record('role', array($CFG->enrol_localrolefield => $CFG->block_cegep_studentrole));
    // Go through each student and insert Moodle external enrolment database record
    $students_enrolled = array();
    while ($students_rs && !$students_rs->EOF) {
        $student = $students_rs->fields;
        if (!cegep_local_enrol_user($COURSE->idnumber, $student['username'], $CFG->block_cegep_studentrole, $coursegroup_id)) {
            return FALSE;
        } else {
            array_push($students_enrolled, $student['username']);
        }
        $students_rs->MoveNext();
    }
    return $students_enrolled;
}
function cegep_enrolprogram()
{
    global $CFG, $COURSE, $OUTPUT, $enroldb, $sisdb;
    $currenttab = 'enrolprogram';
    require 'block_cegep_tabs.php';
    // Set up enrolment form
    require 'block_cegep_enrolprogram_form.php';
    $enrolprogramform = new cegep_enrolprogram_form('block_cegep_enrolment.php?a=enrolprogram&id=' . $COURSE->id . '');
    // Go back to course page if cancelled
    if ($enrolprogramform->is_cancelled()) {
        redirect($CFG->wwwroot . '/course/view.php?id=' . $COURSE->id);
    } elseif ($data = $enrolprogramform->get_data()) {
        $program_idyear = $data->program_id . '_' . $data->program_year;
        // Fetch records of students enrolled into this program/year from SISDB
        $select_students = "SELECT * FROM `{$CFG->sisdb_name}`.`student` WHERE `program_id` = '" . $data->program_id . "' AND program_year = '" . $data->program_year . "';";
        $students_rs = $sisdb->Execute($select_students);
        if (!$students_rs) {
            print_error('errorimportingstudentlist', 'block_cegep');
        }
        // Go through each student and insert Moodle external enrolment database record
        $studentlist = '';
        while ($students_rs && !$students_rs->EOF) {
            $student = $students_rs->fields;
            $program_idyear = $data->program_id . "_" . $data->program_year;
            if (!cegep_local_enrol_user($COURSE->idnumber, $student['username'], $CFG->block_cegep_studentrole, NULL, $program_idyear)) {
                trigger_error(get_string('errorimportingstudentlist', 'block_cegep'), E_USER_ERROR);
                break;
            } else {
                $studentlist .= $student['username'] . '<br />';
            }
            $students_rs->MoveNext();
        }
        // Display nice confirmation with student list and buttons
        echo $OUTPUT->notification(get_string('programenrolled', 'block_cegep'), 'notifysuccess');
        echo $OUTPUT->continue_button($CFG->wwwroot . '/course/view.php?id=' . $COURSE->id);
    } else {
        echo $OUTPUT->heading(get_string('enrolprogram', 'block_cegep'), 3);
        $enrolprogramform->display();
    }
}
$coursecode = optional_param('coursecode', null, PARAM_ALPHANUM);
require_login();
$coursetitle = cegep_local_get_course_title($coursecode);
$createcourse_form = new cegep_createcourse_form(null, array('coursecode' => $coursecode, 'coursetitle' => $coursetitle));
if ($createcourse_form->is_cancelled()) {
    redirect($CFG->wwwroot);
} elseif ($data = $createcourse_form->get_data()) {
    require_once '../../course/lib.php';
    $course = cegep_local_new_course_template($data->coursecode);
    $course->shortname = $course->idnumber;
    $course->fullname = $data->fullname;
    $course->visible = $data->visible;
    $course = create_course($course);
    if (is_object($course) && $course->id > 0) {
        // Enrol current user (teacher) into the new course (except if admin)
        if (!is_siteadmin($USER)) {
            cegep_local_enrol_user($course->idnumber, $USER->username, 'editingteacher');
        }
        // Redirect to the enrolment form
        redirect($CFG->wwwroot . '/blocks/cegep/block_cegep_enrolment.php?a=enrol&id=' . $course->id, get_string('coursecreatesuccess', 'block_cegep'));
    } else {
        print_error('errorcreatingcourse', 'block_cegep');
    }
} else {
    $PAGE->navbar->add(get_string('coursecreate', 'block_cegep'));
    $PAGE->set_heading('heading');
    $PAGE->set_title(get_string('coursecreate', 'block_cegep'));
    echo $OUTPUT->header();
    $createcourse_form->display();
    echo $OUTPUT->footer();
}