function cegep_dawson_get_create_course_buttons() { global $CFG, $USER; $items = array(); $previous_term_str = ''; $courseterms = array(); $enrolments = cegep_local_get_teacher_enrolments($USER->idnumber, cegep_local_current_term()); foreach ($enrolments as $enrolment) { // Skip already displayed courses if (in_array($enrolment['coursecode'] . $enrolment['term'], $courseterms)) { continue; } // Check if course title is empty if (!empty($enrolment['coursetitle'])) { $coursetitle = $enrolment['coursetitle']; } else { $coursetitle = get_string('cousetitlemissing', 'block_cegep'); } // Display term string $current_term_str = cegep_local_term_to_string($enrolment['term']); if ($current_term_str != $previous_term_str) { $items[] = '<div style="font-weight: bold; font-size: 1.2em;">' . $current_term_str . '</div>'; } $previous_term_str = $current_term_str; $items[] = '<form action="' . $CFG->wwwroot . '/blocks/cegep/block_cegep_createcourse.php" method="post" class="form_create">' . '<div class="coursenumber create_button">' . '<input type="hidden" name="coursecode" value="' . $enrolment['coursecode'] . '" />' . '<input type="hidden" name="term" value="' . $enrolment['term'] . '" />' . '<input type="submit" value="' . get_string('create', 'block_cegep') . '" name="submit" style="margin-right: 5px;" />' . $enrolment['coursecode'] . '</div><div class="coursetitle">' . $coursetitle . '</div></form>'; array_push($courseterms, $enrolment['coursecode'] . $enrolment['term']); } if (count($enrolments) > 0) { $items[] = '<li><a target="_blank" href="' . $CFG->wwwroot . '/help/missing.course.php">Can\'t find your course?</a></li>'; } return $items; }
function validation($data, $files) { global $DB, $USER; $errors = parent::validation($data, $files); $allowed = FALSE; // Admins and teachers can create courses if (is_siteadmin($USER)) { $allowed = TRUE; } else { // Check if the current user is a teacher enrolled in this course $enrolments = cegep_local_get_teacher_enrolments($USER->idnumber, cegep_local_current_term()); foreach ($enrolments as $enrolment) { if ($enrolment['coursecode'] == $data['coursecode']) { $allowed = TRUE; break; } } } if (!$allowed) { $errors['_coursecode'] = get_string('errormustbeteachercourse', 'block_cegep'); } return $errors; }
function cegep_local_get_coursegroups($course_idnumber, $teacher_idnumber = '') { global $CFG, $sisdb; $coursecode = substr($course_idnumber, 0, strpos($course_idnumber, '_')); if (empty($coursecode)) { $coursecode = $course_idnumber; } $term = cegep_local_current_term(); $select = "SELECT * FROM `{$CFG->sisdb_name}`.`coursegroup` WHERE `coursecode` = '{$coursecode}' AND `term` >= {$term};"; $coursegroups_rs = $sisdb->Execute($select); if (!$coursegroups_rs) { trigger_error($enroldb->ErrorMsg() . ' STATEMENT: ' . $select, E_USER_ERROR); return false; } $coursegroups = array(); $teacher_enrolments = array(); if (!empty($teacher_idnumber)) { $teacher_enrolments = cegep_local_get_teacher_enrolments($teacher_idnumber, $term); } while (!$coursegroups_rs->EOF) { $coursegroup = array(); $coursegroup['id'] = $coursegroups_rs->fields['id']; $coursegroup['coursecode'] = $coursegroups_rs->fields['coursecode']; $coursegroup['group'] = $coursegroups_rs->fields['group']; $coursegroup['term'] = $coursegroups_rs->fields['term']; // Count student enrolments in SIS $select = "SELECT COUNT(`username`) AS numberofstudents FROM `{$CFG->sisdb_name}`.`student_enrolment` WHERE coursegroup_id = {$coursegroup['id']};"; $coursegroup['numberofstudents'] = $sisdb->Execute($select)->fields['numberofstudents']; // If teacher_idnumber is specified, return only coursegroups/sections in which that teacher is enrolled in SIS if (!empty($teacher_idnumber)) { foreach ($teacher_enrolments as $teacher_enrolment) { if ($teacher_enrolment['coursecode'] === $coursegroup['coursecode'] && $teacher_enrolment['coursegroup'] === $coursegroup['group']) { array_push($coursegroups, $coursegroup); break; } } } else { array_push($coursegroups, $coursegroup); } $coursegroups_rs->MoveNext(); } return $coursegroups; }