$update = false; if (!$c and $session != null) { $update = true; /* Update meeting details through Adobe Connect API call */ update_meeting($webinar, $session, $date, $presenter_details); //Send email to all registered attendees when session/meeting details are changed send_email_sessionupdated($webinar, $session, $cm, $date); $sessionid = $session->id; $todb->id = $session->id; if (!webinar_update_session($todb, $sessiondates)) { rollback_sql(); add_to_log($course->id, 'webinar', 'update session (FAILED)', "sessions.php?s={$session->id}", $webinar->id, $cm->id); print_error('error:couldnotupdatesession', 'webinar', $returnurl); } // Remove old site-wide calendar entry if (!webinar_remove_session_from_site_calendar($session)) { rollback_sql(); print_error('error:couldnotupdatecalendar', 'webinar', $returnurl); } } else { //Create meeting through Adobe Connect API call $webinardetails = create_meeting($webinar, $fromform, $date, $presenter_details); $todb->scoid = $webinardetails->scoid; $todb->urlpath = $webinardetails->urlpath; if (!($sessionid = webinar_add_session($todb, $sessiondates))) { rollback_sql(); add_to_log($course->id, 'webinar', 'add session (FAILED)', 'sessions.php?f=' . $webinar->id, $webinar->id, $cm->id); print_error('error:couldnotaddsession', 'webinar', $returnurl); } } foreach ($customfields as $field) {
/** * Delete entry from the webinar_sessions table along with all * related details in other tables * * @param object $session Record from webinar_sessions */ function webinar_delete_session($session) { global $CFG, $DB; $webinar = $DB->get_record('webinar', array('id' => $session->webinar)); // Cancel user signups (and notify users) $signedupusers = $DB->get_records_sql("\n SELECT DISTINCT\n userid\n FROM\n {$CFG->prefix}webinar_signups s\n LEFT JOIN\n {$CFG->prefix}webinar_signups_status ss\n ON ss.signupid = s.id\n WHERE\n s.sessionid = {$session->id}\n AND ss.superceded = 0\n AND ss.statuscode >= " . WEBINAR_STATUS_REQUESTED . "\n "); if ($signedupusers and count($signedupusers) > 0) { foreach ($signedupusers as $user) { if (webinar_user_cancel($session, $user->userid, true)) { webinar_send_cancellation_notice($webinar, $session, $user->userid); } else { return false; // Cannot rollback since we notified users already } } } //begin_sql(); // Remove entries from the teacher calendars if (!$DB->delete_records_select('event', "modulename = 'webinar' AND eventtype = 'webinarsession' AND instance = {$webinar->id}")) { //rollback_sql(); return false; } // Remove entry from site-wide calendar webinar_remove_session_from_site_calendar($session); // Remove entry from site-wide calendar webinar_remove_session_from_site_calendar($session); // Delete session details if (!$DB->delete_records('webinar_sessions', array('id' => $session->id))) { //rollback_sql(); return false; } if (!$DB->delete_records('webinar_sessions_dates', array('sessionid' => $session->id))) { //rollback_sql(); return false; } if (!$DB->delete_records_select('webinar_signups_status', "signupid IN\n (\n SELECT\n id\n FROM\n {$CFG->prefix}webinar_signups\n WHERE\n sessionid = {$session->id}\n )\n ")) { $result = false; } if (!$DB->delete_records('webinar_signups', array('sessionid' => $session->id))) { //rollback_sql(); return false; } //commit_sql(); return true; }