function definition() { global $COURSE; $mform =& $this->_form; $current = cegep_local_current_term(); $year = substr($current, 0, 4); $semester = substr($current, 4, 1); // If course isn't visible, offer the option if (!$COURSE->visible) { $mform->addElement('checkbox', 'makevisible', null, get_string('make_visible', 'block_cegep')); } $enrol = array(); $enrol[] =& $mform->createElement('select', 'semester', null, array('1' => get_string('winter', 'block_cegep'), '2' => get_string('summer', 'block_cegep'), '3' => get_string('autumn', 'block_cegep'))); $enrol[] =& $mform->createElement('select', 'year', null, array($year - 1 => $year - 1, $year => $year, $year + 1 => $year + 1)); $mform->addGroup($enrol, 'semester', get_string('semester', 'block_cegep') . ' :', ' ', false); $mform->addRule('semester', get_string('specifysemester', 'block_cegep'), 'required'); $mform->addGroupRule('semester', array('trimestre' => array(array(get_string('specifysemester', 'block_cegep'), 'required')), 'year' => array(array(get_string('specifyyear', 'block_cegep'), 'required'))), 'required', null, 2); $mform->setType('semester', PARAM_INT); $mform->setType('year', PARAM_INT); $mform->addElement('text', 'coursecode', get_string('coursecode', 'block_cegep') . ' :', 'size="8", maxlength="8"'); $mform->setType('coursecode', PARAM_TEXT); $mform->addElement('text', 'coursegroup', get_string('coursegroup', 'block_cegep') . ' :', 'size="8", maxlength="32"'); $mform->addRule('coursegroup', get_string('specifycoursegroup', 'block_cegep'), 'required'); $mform->setType('coursegroup', PARAM_TEXT); $mform->SetDefaults(array('year' => $year, 'semester' => $semester)); $mform->addElement('checkbox', 'creategroups', null, get_string('creategroups', 'block_cegep')); $this->add_action_buttons(); }
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 cegep_sisdb_sync_form() { $currenttab = 'sync'; require 'sisdb_tabs.php'; print_box('Please input the term at which you would like to start the synchronization.'); $form = '<center><form enctype="multipart/form-data" action="sisdb.php" method="post">'; $form .= 'Term (eg. ' . cegep_local_current_term() . '): <input name="start_term" type="text" size="5" maxlength="5" />'; $form .= '<input type="hidden" name="op" value="sync" />'; $form .= '<br /><br /><input type="submit" value="Start" /></form></center>'; print_box($form); print_footer(); }
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; }
<?php define('CLI_SCRIPT', true); error_reporting(E_ALL | E_STRICT); require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config.php'; require_once $CFG->libdir . '/clilib.php'; // cli only functions require_once $CFG->dirroot . '/blocks/cegep/lib.php'; require_once $CFG->dirroot . '/blocks/cegep/sisdb/lib.php'; list($options, $unrecognized) = cli_get_params(array('sync' => false, 'prune' => false, 'help' => false), array('s' => 'sync', 'p' => 'prune', 'h' => 'help')); if ($unrecognized) { $unrecognized = implode("\n ", $unrecognized); cli_error(get_string('cliunknowoption', 'admin', $unrecognized)); } if ($options['help']) { $help = "Execute SISDB maintenance.\n\nOptions:\n-s, --sync Sync internal SIS BD with source.\n-p, --prune Prune old SIS information (1 year +)\n-h, --help Print out this help\n"; echo $help; die; } set_time_limit(600); cegep_sisdb_init(); if ($options['prune']) { cegep_sisdb_prune(3); } if ($options['sync']) { cegep_sisdb_sync(cegep_local_current_term()); } cegep_sisdb_close(); exit(0);