$grade->grade = $ugrade; $grade->timemodified = time(); $DB->insert_record('elluminate_attendance', $grade); elluminate_update_grades($elluminate, $USER->id); } else { $grade->attended = $ugrade; $DB->update_record('elluminate_attendance', $grade); elluminate_update_grades($elluminate, $USER->id); } } if (!empty($cm)) { $cmid = $cm->id; } else { $cmid = 0; } add_to_log($elluminate->course, 'elluminate', 'view meeting', 'loadmeeting.php?id=' . $elluminate->id, $elluminate->id, $cmid, $USER->id); if (empty($elluminate->meetingid)) { elluminate_group_instance_check($elluminate, $cm->id); } $modinsession = false; if ($ismoderator) { $modinsession = elluminate_is_participant($elluminate->id, $USER->id, true); } /// Load the meeting. if (!empty($elluminate->meetingid)) { if (!elluminate_build_meeting_jnlp($elluminate->meetingid, $USER->id, $elluminate->sessiontype, $modinsession)) { print_error('Could not launch Blackboard Collaborate meeting.'); } } else { print_error('Could not launch Blackboard Collaborate meeting. Error in initialization.'); }
/** * Add a user as a participant to a given meeting. * * @param int $meetingid The Blackboard Collaborate meeting ID. * @param int $userid The Blackboard Collaborate user ID. * @param boolean $moderator Is the user being added as a moderator? (default False) * @return boolean True on success, False otherwise. */ function elluminate_add_participant($id, $userid, $moderator = false) { global $DB; /// Make sure this user is not already a participant or moderator for this meeting. if (elluminate_is_participant($id, $userid)) { return true; } /// Make sure any existing participants are included in the list. $participants = elluminate_list_participants($id); $moderatoruserlist = ''; $participantuserlist = ''; $moderatorusercount = 0; $participantusercount = 0; if (!empty($participants)) { foreach ($participants as $participant) { if (ELLUMINATELIVE_ROLE_MODERATOR == $participant['role']) { if ($moderatorusercount > 0) { $moderatoruserlist .= ','; } $moderatoruserlist .= $participant['user']; $moderatorusercount++; } else { if ($participantusercount) { $participantuserlist .= ','; } $participantuserlist .= $participant['user']; $participantusercount++; } } } /// Append the new user we're adding. if ($moderator) { if ($moderatorusercount) { $moderatoruserlist .= ','; } $moderatoruserlist .= $userid; } else { if ($participantusercount) { $participantuserlist .= ','; } $participantuserlist .= $userid; } $elluminate->chairlist = $moderatoruserlist; $elluminate->nonchairlist = $participantuserlist; $DB->set_field('elluminate', 'chairlist', $moderatoruserlist, array('id' => $id)); $DB->set_field('elluminate', 'nonchairlist', $participantuserlist, array('id' => $id)); return true; }
/** * Get a list of recent recorded meetings based upon the user's system authority: * - admins can see all recent meeting recordings * - teachers see recent recordings in their courses * - students see recent recordings they participated in * * The return array is of the format where each entry is an object that consists * of the following information: * * $entry->name = meeting name * $entry->recordingid = recording ID * * @uses $USER * @param none * @return array An array of recorded meeting information. */ function elluminate_recent_recordings() { global $USER; /* if (!$elmuser = get_record('elluminate_users', 'userid', $USER->id)) { return NULL; } */ /// Get the five most recent recordings. if (!($recordings = get_records('elluminate_recordings', '', '', 'created DESC', '*', '', 5))) { return NULL; } $return = array(); $type = 'student'; if (isadmin($USER->id)) { $type = 'admin'; } else { if (isteacherinanycourse($USER->id, false)) { $type = 'teacher'; } } $rids = array(); foreach ($recordings as $recording) { $meeting = get_record('elluminate', 'meetingid', $recording->meetingid); $meeting->name = stripslashes($meeting->name); if (in_array($meeting->id, $rids)) { continue; } if ($meeting->private == false) { $return[] = createRecordingEntry($meeting, $recording); } else { // ## REFACTOR THIS MESS!!!! switch ($type) { case 'admin': $return[] = createRecordingEntry($meeting, $recording); break; case 'teacher': if (isteacher($meeting->course, $USER->id, false)) { $return[] = createRecordingEntry($meeting, $recording); } break; case 'student': if (elluminate_is_participant($recording->meetingid, $USER->id)) { $return[] = createRecordingEntry($meeting, $recording); } break; default: break; } } } return $return; }