Exemplo n.º 1
0
 $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) {
Exemplo n.º 2
0
/**
 * 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;
}