function elluminate_update_group_records($elluminate) { global $DB; $search = array("<", "&", "\"", "#", "%"); $replace = ''; $originalname = $elluminate->sessionname; $strippedname = str_replace($search, $replace, $elluminate->sessionname); $parentsessionid = $elluminate->id; $elluminate->id = ''; $elluminate->meetingid = null; $elluminate->groupparentid = $parentsessionid; $elluminate->meetinginit = 0; if ($elluminate->groupmode != 0) { $sessions = $DB->get_records('elluminate', array('groupparentid' => $elluminate->instance)); $desc = $elluminate->description; foreach ($sessions as $session) { $group = $DB->get_record('groups', array('id' => $session->groupid)); $session->name = $elluminate->name; $elluminate->groupid = $group->id; $name_string = $elluminate->name; if ($elluminate->customname > 0) { if ($elluminate->customname == 1) { $name_string = $group->name; } else { if ($elluminate->customname == 2) { $name_string = $name_string . ' - ' . $group->name; } } if (strlen($name_string) > 64) { $stringlength = strlen($name_string); $toomany = $stringlength - 64 + 5; $remainder = $toomany % 2; $difference = $toomany / 2; $session->sessionname = substr($name_string, 0, 33 - ($difference + $remainder)) . ' ... ' . substr($name_string, 32 + $difference, $stringlength); } else { $session->sessionname = $name_string; } } else { $session->sessionname = $elluminate->sessionname; } if ($elluminate->customdescription == 1) { $session->description = ''; $session->description = $group->name . ' - ' . $desc; $session->customdescription = 1; } else { $session->description = $desc; $session->customdescription = 0; } $search = array("<", "&", "\"", "#", "%"); $replace = ''; $elluminate->sessionname = str_replace($search, $replace, $elluminate->sessionname); $session->customname = $elluminate->customname; $session->timestart = $elluminate->timestart; $session->timeend = $elluminate->timeend; $session->recordingmode = $elluminate->recordingmode; $session->boundarytime = $elluminate->boundarytime; $session->boundarytimedisplay = $elluminate->boundarytimedisplay; $session->maxtalkers = $elluminate->maxtalkers; $session->seats = $elluminate->seats; $session->grade = $elluminate->grade; $session->timemodified = $elluminate->timemodified; $session->groupmode = $elluminate->groupmode; $session->groupingid = $elluminate->groupingid; $session->creator = $elluminate->creator; $session->chairlist = $elluminate->chairlist; $timenow = time(); $ss_start_time = new stdClass(); if ($session->timestart < $timenow) { $starttime = userdate($elluminate->timestart); $boundary = userdate($elluminate->boundarytime); $starttime = $elluminate->timestart; $boundary = $elluminate->boundarytime * 60; $new_boundarytime = floor(($timenow - ($starttime - $boundary)) / 60); $minutes = date('i', $timenow); $millis = date('s', $timenow); $addminutes = 15 - $minutes % 15; $new_boundarytime = $new_boundarytime + $addminutes; $ss_start_time = $timenow + $addminutes * 60 - $millis; } else { $ss_start_time = $session->timestart; } //Update the scheduling server with changes to meetings that have a meeting id already. if (!empty($session->meetingid)) { if (!($create_result = elluminate_update_meeting($session->meetingid, $ss_start_time, $session->timeend, $session->sessionname, '', '', $session->sessiontype, $session->seats, $session->boundarytime, $session->maxtalkers, $session->recordingmode, '', $session->id))) { return false; } } $DB->update_record('elluminate', $session); elluminate_update_events($session); /// If the grade value for attendance has changed, modify any existing attendance records. if ($elluminate->grade != $session->grade) { $attendance = $DB->get_records('elluminate_attendance', array('elluminateid' => $session->id)); foreach ($attendance as $attendee) { if ($attendee->grade > 0) { /// We're using a scale. if ($elluminate->grade < 0) { $grades = make_grades_menu($elluminate->grade); $attendee->grade = key($grades); /// We're using a numerical value. } else { $attendee->grade = $elluminate->grade; } $DB->update_record('elluminate_attendance', $attendee); elluminate_update_grades($session, $attendee->userid); } } } } } }
function elluminate_update_group_records($elluminate) { $search = array("<", ">", "&", "#", "%", "\""); $replace = ''; $originalname = $elluminate->sessionname; $strippedname = str_replace($search, $replace, $elluminate->sessionname); $parentsessionid = $elluminate->id; $elluminate->id = ''; $elluminate->meetingid = null; $elluminate->groupparentid = $parentsessionid; $elluminate->meetinginit = 0; if ($elluminate->groupmode != 0) { $sessions = get_records('elluminate', 'groupparentid', $elluminate->instance); $desc = $elluminate->description; foreach ($sessions as $session) { $group = get_record('groups', 'id', $session->groupid); $session->name = $elluminate->name; $elluminate->groupid = $group->id; $name_string = $elluminate->name; if ($elluminate->customname > 0) { if ($elluminate->customname == 1) { $name_string = $group->name; } else { if ($elluminate->customname == 2) { $name_string = $name_string . ' - ' . $group->name; } } if (strlen($name_string) > 64) { $stringlength = strlen($name_string); $toomany = $stringlength - 64 + 5; $remainder = $toomany % 2; $difference = $toomany / 2; $session->sessionname = substr($name_string, 0, 33 - ($difference + $remainder)) . ' ... ' . substr($name_string, 32 + $difference, $stringlength); } else { $session->sessionname = $name_string; } } else { $session->sessionname = $elluminate->sessionname; } if ($elluminate->customdescription == 1) { $session->description = ''; $session->description = $group->name . ' - ' . $desc; $session->customdescription = 1; } else { $session->description = $desc; $session->customdescription = 0; } $search = array("<", ">", "&", "#", "%", "\"", "\\", "|"); $replace = ''; $databasesafe = array("'"); $replacedb = '\\\''; $elluminate->sessionname = str_replace($search, $replace, $elluminate->sessionname); $elluminate->sessionname = str_replace($databasesafe, $replacedb, $elluminate->sessionname); $elluminate->description = addslashes($elluminate->description); $session->customname = $elluminate->customname; $session->timestart = $elluminate->timestart; $session->timeend = $elluminate->timeend; $session->recordingmode = $elluminate->recordingmode; $session->boundarytime = $elluminate->boundarytime; $session->boundarytimedisplay = $elluminate->boundarytimedisplay; $session->seats = $elluminate->seats; $session->grade = $elluminate->grade; $session->timemodified = $elluminate->timemodified; $session->groupmode = $elluminate->groupmode; $session->groupingid = $elluminate->groupingid; $session->creator = $elluminate->creator; $session->chairlist = $elluminate->chairlist; //Update the scheduling server with changes to meetings that have a meeting id already. if (!empty($session->meetingid)) { if (!($create_result = elluminate_update_meeting($session->meetingid, $session->timestart, $session->timeend, $session->name, '', '', $session->sessiontype, $session->seats, $session->boundarytime, $session->recordingmode, '', $session->id))) { return false; } } update_record('elluminate', $session); /// If the grade value for attendance has changed, modify any existing attendance records. if ($elluminate->grade != $session->grade) { if ($attendance = get_records('elluminate_attendance', 'elluminateid', $session->id)) { foreach ($attendance as $attendee) { if ($attendee->grade > 0) { /// We're using a scale. if ($elluminate->grade < 0) { $grades = make_grades_menu($elluminate->grade); $attendee->grade = key($grades); /// We're using a numerical value. } else { $attendee->grade = $elluminate->grade; } update_record('elluminate_attendance', $attendee); elluminate_update_grades($session, $attendee->userid); } } } } } } }