Example #1
0
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);
                        }
                    }
                }
            }
        }
    }
}