function action_savenew() { $users = cm_get_param('users', array()); $clsid = required_param('id', PARAM_INT); if (!empty($users)) { foreach ($users as $uid => $user) { if (!empty($user['assign'])) { $insrecord = array(); $insrecord['classid'] = $clsid; $insrecord['userid'] = $uid; $startyear = $user['startyear']; $startmonth = $user['startmonth']; $startday = $user['startday']; $insrecord['assigntime'] = mktime(0, 0, 0, $startmonth, $startday, $startyear); $endyear = $user['endyear']; $endmonth = $user['endmonth']; $endday = $user['endday']; $insrecord['completetime'] = mktime(0, 0, 0, $endmonth, $endday, $endyear); $newins = new instructor($insrecord); if (($status = $newins->add()) !== true) { if (!empty($status->message)) { echo cm_error('Record not created. Reason: ' . $status->message); } else { echo cm_error('Record not created.'); } } } } } $this->action_default(); }
/** * When a role is selected from the sync configuration, create class * enrolments for the specified role assignments. */ static function instructor_sync_role_set() { require_once CURMAN_DIRLOCATION . '/lib/instructor.class.php'; global $CURMAN; $contextlevel = context_level_base::get_custom_context_level('class', 'block_curr_admin'); // find all class role assignments $sql = "SELECT ra.id, cu.id AS userid, ctx.instanceid AS classid\n FROM {$CURMAN->db->prefix_table('role_assignments')} ra\n JOIN {$CURMAN->db->prefix_table('user')} mu ON ra.userid = mu.id\n JOIN {$CURMAN->db->prefix_table('crlm_user')} cu ON mu.idnumber = cu.idnumber\n JOIN {$CURMAN->db->prefix_table('context')} ctx ON ctx.id = ra.contextid\n WHERE ctx.contextlevel = {$contextlevel}\n AND ra.roleid = {$CURMAN->config->enrolment_role_sync_instructor_role}"; $instructorswanted = $CURMAN->db->get_records_sql($sql); $instructorswanted = $instructorswanted ? $instructorswanted : array(); foreach ($instructorswanted as $instructor) { unset($instructor->id); if (!instructor::user_is_instructor_of_class($instructor->userid, $instructor->classid)) { $instructor = new instructor($instructor); $instructor->add(); } } return true; }