function bigbluebutton_add_instance($bigbluebutton) { $bigbluebutton->timemodified = time(); if ($returnid = insert_record('bigbluebutton', $bigbluebutton)) { $event = NULL; $event->courseid = $bigbluebutton->course; $event->name = $bigbluebutton->name; $event->meetingname = $bigbluebutton->meetingname; $event->meetingid = $bigbluebutton->meetingid; $event->attendeepw = $bigbluebutton->attendeepw; $event->moderatorpw = $bigbluebutton->moderatorpw; $event->autologin = $bigbluebutton->autologin; $event->newwindow = $bigbluebutton->newwindow; $event->welcomemsg = $bigbluebutton->welcomemsg; add_event($event); } return $returnid; }
function certificate_update_instance($certificate) { $certificate->timemodified = time(); $certificate->id = $certificate->instance; if ($returnid = update_record('certificate', $certificate)) { if ($event->id = get_field('event', 'id', 'modulename', 'certificate', 'instance', $certificate->id)) { $event->name = $certificate->name; update_event($event); } else { $event = NULL; $event->name = $certificate->name; $event->courseid = $certificate->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'certificate'; $event->instance = $certificate->id; add_event($event); } } else { delete_records('event', 'modulename', 'certificate', 'instance', $certificate->id); } return $returnid; }
/** * @desc Creates the corresponding events for a wwassignment. * @param $wwsetname string The name of the set. * @param $wwassignmentid string The ID of the wwassignment record. * @param $opendate integer The UNIX timestamp of the open date. * @param $duedate integer The UNIX timestamp of the due date. * @return integer 0 on success. -1 on error. */ function _wwassignment_create_events($wwsetname, $wwassignment, $opendate, $duedate) { global $COURSE; unset($event); $event->name = $wwsetname; $event->description = 'WeBWorK Set Event'; $event->courseid = $wwassignment->course; $event->groupid = 0; $event->userid = 0; $event->format = 1; $event->modulename = 'wwassignment'; $event->instance = $wwassignment->id; $event->visible = 1; // FIXME -- this doesn't create a new object we'll just handle the due date for now // what you want is $openevent = clone $event this makes a shallow copy of the object //$openevent = $event; // FIXME -- it's likely that only the due date needs to be posted. once that is sure, clean this up. $dueevent = $event; //$openevent->name .= ' is Open.'; //$openevent->eventtype = 'open'; //$openevent->timestart = $opendate; //$openevent->timeduration = $duedate - $opendate; $dueevent->name .= ' is Due.'; $dueevent->eventtype = 'due'; $dueevent->timestart = $duedate; $dueevent->timeduration = 1; // error_log("adding a due event"); $result = 0; //if(!add_event($openevent)) { // $result = -1; //} if (!add_event($dueevent)) { $result = -1; } return $result; }
/** * Update certificate instance. * * @param stdClass $certificate * @return bool true */ function certificate_update_instance($certificate) { global $DB; // Update the certificate $certificate->timemodified = time(); $certificate->id = $certificate->instance; $DB->update_record('certificate', $certificate); // Update the event if it exists, else create if ($event = $DB->get_record('event', array('modulename' => 'certificate', 'instance' => $certificate->id))) { $event->name = $certificate->name; update_event($event); } else { $event = new stdClass(); $event->name = $certificate->name; $event->description = ''; $event->courseid = $certificate->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'certificate'; $event->instance = $certificate->id; add_event($event); } return true; }
/** * This function is called at the end of quiz_add_instance * and quiz_update_instance, to do the common processing. * * @param object $quiz the quiz object. */ function quiz_after_add_or_update($quiz) { // Save the feedback delete_records('quiz_feedback', 'quizid', $quiz->id); for ($i = 0; $i <= $quiz->feedbackboundarycount; $i += 1) { $feedback = new stdClass(); $feedback->quizid = $quiz->id; $feedback->feedbacktext = $quiz->feedbacktext[$i]; $feedback->mingrade = $quiz->feedbackboundaries[$i]; $feedback->maxgrade = $quiz->feedbackboundaries[$i - 1]; if (!insert_record('quiz_feedback', $feedback, false)) { return "Could not save quiz feedback."; } } // Update the events relating to this quiz. // This is slightly inefficient, deleting the old events and creating new ones. However, // there are at most two events, and this keeps the code simpler. if ($events = get_records_select('event', "modulename = 'quiz' and instance = '{$quiz->id}'")) { foreach ($events as $event) { delete_event($event->id); } } $event = new stdClass(); $event->description = $quiz->intro; $event->courseid = $quiz->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'quiz'; $event->instance = $quiz->id; $event->timestart = $quiz->timeopen; $event->timeduration = $quiz->timeclose - $quiz->timeopen; $event->visible = instance_is_visible('quiz', $quiz); $event->eventtype = 'open'; if ($quiz->timeclose and $quiz->timeopen and $event->timeduration <= QUIZ_MAX_EVENT_LENGTH) { // Single event for the whole quiz. $event->name = $quiz->name; add_event($event); } else { // Separate start and end events. $event->timeduration = 0; if ($quiz->timeopen) { $event->name = $quiz->name . ' (' . get_string('quizopens', 'quiz') . ')'; add_event($event); unset($event->id); // So we can use the same object for the close event. } if ($quiz->timeclose) { $event->name = $quiz->name . ' (' . get_string('quizcloses', 'quiz') . ')'; $event->timestart = $quiz->timeclose; $event->eventtype = 'close'; add_event($event); } } //update related grade item quiz_grade_item_update(stripslashes_recursive($quiz)); }
function chat_refresh_events($courseid = 0) { // This standard function will check all instances of this module // and make sure there are up-to-date events created for each of them. // If courseid = 0, then every chat event in the site is checked, else // only chat events belonging to the course specified are checked. // This function is used, in its new format, by restore_refresh_events() if ($courseid) { if (!($chats = get_records("chat", "course", $courseid))) { return true; } } else { if (!($chats = get_records("chat"))) { return true; } } $moduleid = get_field('modules', 'id', 'name', 'chat'); foreach ($chats as $chat) { $event = NULL; $event->name = addslashes($chat->name); $event->description = addslashes($chat->intro); $event->timestart = $chat->chattime; if ($event->id = get_field('event', 'id', 'modulename', 'chat', 'instance', $chat->id)) { update_event($event); } else { $event->courseid = $chat->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'chat'; $event->instance = $chat->id; $event->eventtype = $chat->schedule; $event->timeduration = 0; $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $chat->id); add_event($event); } } return true; }
/** * This standard function will check all instances of this module * and make sure there are up-to-date events created for each of them. * If courseid = 0, then every chat event in the site is checked, else * only chat events belonging to the course specified are checked. * This function is used, in its new format, by restore_refresh_events() * * @global object * @param int $courseid * @return bool */ function chat_refresh_events($courseid = 0) { global $DB; if ($courseid) { if (!($chats = $DB->get_records("chat", array("course" => $courseid)))) { return true; } } else { if (!($chats = $DB->get_records("chat"))) { return true; } } $moduleid = $DB->get_field('modules', 'id', array('name' => 'chat')); foreach ($chats as $chat) { $cm = get_coursemodule_from_id('chat', $chat->id); $event = new object(); $event->name = $chat->name; $event->description = format_module_intro('chat', $chat, $cm->id); $event->timestart = $chat->chattime; if ($event->id = $DB->get_field('event', 'id', array('modulename' => 'chat', 'instance' => $chat->id))) { update_event($event); } else { $event->courseid = $chat->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'chat'; $event->instance = $chat->id; $event->eventtype = $chat->schedule; $event->timeduration = 0; $event->visible = $DB->get_field('course_modules', 'visible', array('module' => $moduleid, 'instance' => $chat->id)); add_event($event); } } return true; }
function questionnaire_set_events($questionnaire) { // Adding the questionnaire to the eventtable. global $DB; if ($events = $DB->get_records('event', array('modulename' => 'questionnaire', 'instance' => $questionnaire->id))) { foreach ($events as $event) { delete_event($event->id); } } // The open-event. $event = new stdClass(); $event->description = $questionnaire->name; $event->courseid = $questionnaire->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'questionnaire'; $event->instance = $questionnaire->id; $event->eventtype = 'open'; $event->timestart = $questionnaire->opendate; $event->visible = instance_is_visible('questionnaire', $questionnaire); $event->timeduration = $questionnaire->closedate - $questionnaire->opendate; if ($questionnaire->closedate and $questionnaire->opendate and $event->timeduration <= QUESTIONNAIRE_MAX_EVENT_LENGTH) { // Single event for the whole questionnaire. $event->name = $questionnaire->name; add_event($event); } else { // Separate start and end events. $event->timeduration = 0; if ($questionnaire->opendate) { $event->name = $questionnaire->name . ' (' . get_string('questionnaireopens', 'questionnaire') . ')'; add_event($event); unset($event->id); // So we can use the same object for the close event. } if ($questionnaire->closedate) { $event->name = $questionnaire->name . ' (' . get_string('questionnairecloses', 'questionnaire') . ')'; $event->timestart = $questionnaire->closedate; $event->eventtype = 'close'; add_event($event); } } }
/** * This is a standard Moodle module that checks to make sure there are events for each activity * * @param var $courseid The ID of the course this activity belongs to (default 0 for all courses) * @return bool success */ function turnitintool_refresh_events($courseid = 0) { if ($courseid == 0) { if (!($turnitintools = turnitintool_get_records("turnitintool"))) { $result = true; } } else { if (!($turnitintools = turnitintool_get_records("turnitintool", "course", $courseid))) { $result = true; } } $module = turnitintool_get_records_select('modules', "name='turnitintool'", NULL, 'id'); $moduleid = current(array_keys($module)); foreach ($turnitintools as $turnitintool) { $event = new stdClass(); $event->description = $turnitintool->intro; if (!($parts = turnitintool_get_records("turnitintool_parts", "turnitintoolid", $turnitintool->id))) { $result = false; } foreach ($parts as $part) { $event->timestart = $part->dtdue; if ($events = turnitintool_get_record_select('event', "modulename='turnitintool' AND instance=" . $turnitintool->id . " AND name='" . $turnitintool->name . " - " . $part->partname . "'")) { $event->id = $events->id; if (method_exists('calendar_event', 'update')) { $calendarevent = calendar_event::load($event->id); $calendarevent->update($event); } else { update_event($event); } } else { $event->courseid = $turnitintool->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'turnitintool'; $event->instance = $turnitintool->id; $event->eventtype = 'due'; $event->timeduration = 0; $event->name = $turnitintool->name . ' - ' . $part->partname; $coursemodule = turnitintool_get_record('course_modules', 'module', $moduleid, 'instance', $turnitintool->id); $event->visible = $coursemodule->visible; if (method_exists('calendar_event', 'create')) { calendar_event::create($event); } else { add_event($event); } } } $result = true; } return $result; }
/** * Runs any processes that must be run * after a lesson insert/update * * @param object $lesson Lesson form data * @return void **/ function lesson_process_post_save(&$lesson) { if ($events = get_records_select('event', "modulename = 'lesson' and instance = '{$lesson->id}'")) { foreach ($events as $event) { delete_event($event->id); } } $event = new stdClass(); $event->description = $lesson->name; $event->courseid = $lesson->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'lesson'; $event->instance = $lesson->id; $event->eventtype = 'open'; $event->timestart = $lesson->available; $event->visible = instance_is_visible('lesson', $lesson); $event->timeduration = $lesson->deadline - $lesson->available; if ($lesson->deadline and $lesson->available and $event->timeduration <= LESSON_MAX_EVENT_LENGTH) { // Single event for the whole lesson. $event->name = $lesson->name; add_event($event); } else { // Separate start and end events. $event->timeduration = 0; if ($lesson->available) { $event->name = $lesson->name . ' (' . get_string('lessonopens', 'lesson') . ')'; add_event($event); unset($event->id); // So we can use the same object for the close event. } if ($lesson->deadline) { $event->name = $lesson->name . ' (' . get_string('lessoncloses', 'lesson') . ')'; $event->timestart = $lesson->deadline; $event->eventtype = 'close'; add_event($event); } } }
/** * * Adds an event to the calendar of a user * @param object $event a object containing details of an event tot be saved into a users calendar */ function save_event($event) { //we can not user add_event in moodle 2.0 as it requires the user to have persmissions to add events to the //calendar however this capability check can be bypassed if we use the calendar event class so we will use add_event in //1.9 and calendar_event class in 2.0 global $CFG, $USER; if (stripos($CFG->release, "2.") !== false) { require_once $CFG->dirroot . '/calendar/lib.php'; $calevent = new calendar_event($event); $calevent->update($event, false); if ($calevent !== false) { return $calevent->id; } } else { return add_event($event); } }
function feedback_restore_mods($mod, $restore) { global $CFG; // $allValues = array(); // $allTrackings = array(); $status = true; $restore_userdata = restore_userdata_selected($restore, 'feedback', $mod->id); //Get record from backup_ids $data = backup_getid($restore->backup_unique_code, $mod->modtype, $mod->id); if ($data) { //Now get completed xmlized object $info = $data->info; //check of older backupversion of feedback $version = intval(backup_todb($info['MOD']['#']['VERSION']['0']['#'])); //Now, build the feedback record structure $feedback->course = $restore->course_id; $feedback->name = backup_todb($info['MOD']['#']['NAME']['0']['#']); $feedback->summary = backup_todb($info['MOD']['#']['SUMMARY']['0']['#']); $feedback->anonymous = backup_todb($info['MOD']['#']['ANONYMOUS']['0']['#']); $feedback->email_notification = backup_todb($info['MOD']['#']['EMAILNOTIFICATION']['0']['#']); $feedback->multiple_submit = backup_todb($info['MOD']['#']['MULTIPLESUBMIT']['0']['#']); $feedback->autonumbering = backup_todb($info['MOD']['#']['AUTONUMBERING']['0']['#']); $feedback->page_after_submit = backup_todb($info['MOD']['#']['PAGEAFTERSUB']['0']['#']); $feedback->site_after_submit = backup_todb($info['MOD']['#']['SITEAFTERSUB']['0']['#']); $feedback->publish_stats = backup_todb($info['MOD']['#']['PUBLISHSTATS']['0']['#']); $feedback->timeopen = backup_todb($info['MOD']['#']['TIMEOPEN']['0']['#']); $feedback->timeclose = backup_todb($info['MOD']['#']['TIMECLOSE']['0']['#']); $feedback->timemodified = backup_todb($info['MOD']['#']['TIMEMODIFIED']['0']['#']); //The structure is equal to the db, so insert the feedback $newid = insert_record("feedback", $feedback); //create events // the open-event if ($feedback->timeopen > 0) { $event = NULL; $event->name = get_string('start', 'feedback') . ' ' . $feedback->name; $event->description = $feedback->summary; $event->courseid = $feedback->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'feedback'; $event->instance = $newid; $event->eventtype = 'open'; $event->timestart = $feedback->timeopen; $event->visible = instance_is_visible('feedback', $feedback); if ($feedback->timeclose > 0) { $event->timeduration = $feedback->timeclose - $feedback->timeopen; } else { $event->timeduration = 0; } add_event($event); } // the close-event if ($feedback->timeclose > 0) { $event = NULL; $event->name = get_string('stop', 'feedback') . ' ' . $feedback->name; $event->description = $feedback->summary; $event->courseid = $feedback->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'feedback'; $event->instance = $newid; $event->eventtype = 'close'; $event->timestart = $feedback->timeclose; $event->visible = instance_is_visible('feedback', $feedback); $event->timeduration = 0; add_event($event); } //Do some output if (!defined('RESTORE_SILENTLY')) { echo "<ul><li>" . get_string("modulename", "feedback") . " \"" . $feedback->name . "\"<br />"; } backup_flush(300); if ($newid) { //Now, build the feedback_item record structure $items = $info['MOD']['#']['ITEMS']['0']['#']['ITEM']; for ($i = 0; $i < sizeof($items); $i++) { $item_info = $items[$i]; $item->feedback = $newid; $item->template = 0; $item->name = backup_todb($item_info['#']['NAME']['0']['#']); $item->presentation = backup_todb($item_info['#']['PRESENTATION']['0']['#']); $item->presentation = str_replace("\n", '', $item->presentation); if ($version >= 1) { $item->typ = backup_todb($item_info['#']['TYP']['0']['#']); $item->hasvalue = backup_todb($item_info['#']['HASVALUE']['0']['#']); switch ($item->typ) { case 'radio': $item->typ = 'multichoice'; $item->presentation = 'r' . FEEDBACK_MULTICHOICERESTORE_TYPE_SEP . $item->presentation; break; case 'check': $item->typ = 'multichoice'; $item->presentation = 'c' . FEEDBACK_MULTICHOICERESTORE_TYPE_SEP . $item->presentation; break; case 'dropdown': $item->typ = 'multichoice'; $item->presentation = 'd' . FEEDBACK_MULTICHOICERESTORE_TYPE_SEP . $item->presentation; break; case 'radiorated': $item->typ = 'multichoicerated'; $item->presentation = 'r' . FEEDBACK_MULTICHOICERESTORE_TYPE_SEP . $item->presentation; break; case 'dropdownrated': $item->typ = 'multichoicerated'; $item->presentation = 'd' . FEEDBACK_MULTICHOICERESTORE_TYPE_SEP . $item->presentation; break; } } else { $oldtyp = intval(backup_todb($item_info['#']['TYP']['0']['#'])); switch ($oldtyp) { case 0: $item->typ = 'label'; $item->hasvalue = 0; break; case 1: $item->typ = 'textfield'; $item->hasvalue = 1; break; case 2: $item->typ = 'textarea'; $item->hasvalue = 1; break; case 3: $item->typ = 'radio'; $item->hasvalue = 1; break; case 4: $item->typ = 'check'; $item->hasvalue = 1; break; case 5: $item->typ = 'dropdown'; $item->hasvalue = 1; break; } } $item->position = backup_todb($item_info['#']['POSITION']['0']['#']); $item->required = backup_todb($item_info['#']['REQUIRED']['0']['#']); //put this new item into the database $newitemid = insert_record('feedback_item', $item); //Now check if want to restore user data and do it. if ($restore_userdata) { $values = $item_info['#']['FBVALUES']['0']['#']['FBVALUE']; for ($ii = 0; $ii < sizeof($values); $ii++) { $value_info = $values[$ii]; $value = new object(); $value->id = ''; $value->item = $newitemid; $value->completed = 0; $value->tmp_completed = backup_todb($value_info['#']['COMPLETED']['0']['#']); $value->value = backup_todb($value_info['#']['VAL']['0']['#']); $value->value = addslashes($value->value); $value->course_id = backup_todb($value_info['#']['COURSE_ID']['0']['#']); //put this new value into the database $newvalueid = insert_record('feedback_value', $value); $value->id = $newvalueid; // $allValues[] = $value; } } } //Now check if want to restore user data again and do it. if ($restore_userdata) { //restore tracking-data $trackings = $info['MOD']['#']['TRACKINGS']['0']['#']['TRACKING']; for ($i = 0; $i < sizeof($trackings); $i++) { $tracking_info = $trackings[$i]; $tracking = new object(); $tracking->id = ''; $tracking->userid = backup_todb($tracking_info['#']['USERID']['0']['#']); //have to change later $tracking->feedback = $newid; $tracking->completed = backup_todb($tracking_info['#']['COMPLETED']['0']['#']); //have to change later $tracking->count = backup_todb($tracking_info['#']['COUNT']['0']['#']); if ($tracking->userid > 0) { //We have to recode the userid field $user = backup_getid($restore->backup_unique_code, "user", $tracking->userid); if ($user) { $tracking->userid = $user->new_id; } } //save the tracking $newtrackingid = insert_record('feedback_tracking', $tracking); $tracking->id = $newtrackingid; // $allTrackings[] = $tracking; } //restore completeds $completeds = $info['MOD']['#']['COMPLETEDS']['0']['#']['COMPLETED']; for ($i = 0; $i < sizeof($completeds); $i++) { $completed_info = $completeds[$i]; $completed = new object(); $completed->feedback = $newid; $completed->userid = backup_todb($completed_info['#']['USERID']['0']['#']); $completed->timemodified = backup_todb($completed_info['#']['TIMEMODIFIED']['0']['#']); $completed->random_response = backup_todb($completed_info['#']['RANDOMRESPONSE']['0']['#']); if (!($anonymous_response = backup_todb($completed_info['#']['ANONYMOUSRESPONSE']['0']['#']))) { $anonymous_response = 1; } $completed->anonymous_response = $anonymous_response; if ($completed->userid > 0) { //We have to recode the userid field $user = backup_getid($restore->backup_unique_code, "user", $completed->userid); if ($user) { $completed->userid = $user->new_id; } } //later this have to be changed $oldcompletedid = backup_todb($completed_info['#']['ID']['0']['#']); //save the completed $newcompletedid = insert_record('feedback_completed', $completed); //the newcompletedid have to be changed at every values $tochangevals = get_records('feedback_value', 'tmp_completed', $oldcompletedid); if ($tochangevals) { foreach ($tochangevals as $tmpVal) { $tmpVal->completed = $newcompletedid; $tmpVal->tmp_completed = 0; update_record('feedback_value', $tmpVal); } } //the newcompletedid have to be changed at every tracking $tochangetracks = get_records('feedback_tracking', 'completed', $oldcompletedid); if ($tochangetracks) { foreach ($tochangetracks as $tmpTrack) { $tmpTrack->completed = $newcompletedid; $tmpTrack->tmp_completed = 0; update_record('feedback_tracking', $tmpTrack); } } } } //We have the newid, update backup_ids backup_putid($restore->backup_unique_code, $mod->modtype, $mod->id, $newid); } else { $status = false; } if (!defined('RESTORE_SILENTLY')) { //Finalize ul echo "</ul>"; } } else { $status = false; } return $status; }
function wwassignment_refresh_events($courseid = 0) { error_log('wwassignment_refresh_events called'); if ($courseid == 0) { if (!($wwassignment = get_records('wwassignment'))) { return true; } } else { if (!($wwassignment = get_records('wwassignment', 'course', $courseid))) { return true; } } $moduleid = get_field('modules', 'id', 'name', 'wwassignment'); foreach ($wwassignment as $wwassignment) { $event = NULL; $event->name = addslashes($wwassignment->name); $event->description = addslashes($wwassignment->description); $event->timestart = $wwassignment->timedue; if ($event->id = get_field('event', 'id', 'modulename', 'wwassignment', 'instance', $wwassignment->id)) { update_event($event); } else { $event->courseid = $wwassignment->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'wwassignment'; $event->instance = $wwassignment->id; $event->eventtype = 'due'; $event->timeduration = 0; $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $wwassignment->id); add_event($event); } } return true; }
/** * Make sure up-to-date events are created for all mediaboard instances * * This standard function will check all instances of this module * and make sure there are up-to-date events created for each of them. * If courseid = 0, then every mediaboard event in the site is checked, else * only mediaboard events belonging to the course specified are checked. * This function is used, in its new format, by restore_refresh_events() * * @param $courseid int optional If zero then all mediaboards for all courses are covered * @return boolean Always returns true */ function mediaboard_refresh_events($courseid = 0) { global $DB; if ($courseid == 0) { if (!($mediaboards = $DB->get_records("mediaboard"))) { return true; } } else { if (!($mediaboards = $DB->get_records("mediaboard", array("course" => $courseid)))) { return true; } } $moduleid = $DB->get_field('modules', 'id', array('name' => 'mediaboard')); foreach ($mediaboards as $mediaboard) { $cm = get_coursemodule_from_id('mediaboard', $mediaboard->id); $event = new stdClass(); $event->name = $mediaboard->name; $event->description = format_module_intro('mediaboard', $mediaboard, $cm->id); $event->timestart = $mediaboard->timedue; if ($event->id = $DB->get_field('event', 'id', array('modulename' => 'mediaboard', 'instance' => $mediaboard->id))) { update_event($event); } else { $event->courseid = $mediaboard->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'mediaboard'; $event->instance = $mediaboard->id; $event->eventtype = 'due'; $event->timeduration = 0; $event->visible = $DB->get_field('course_modules', 'visible', array('module' => $moduleid, 'instance' => $mediaboard->id)); add_event($event); } } return true; }
<?php include 'config/db.php'; include 'libraries/events.php'; include 'libraries/general.php'; $device_id = mysqli_real_escape_string($conn, $_GET['device_id']); if (ctype_digit($device_id) && !empty($device_id)) { $sql = "DELETE FROM `devices` WHERE `device_id`='{$device_id}'"; if ($conn->query($sql) === TRUE) { //set success message $device_label = get_device_label_from_id($device_id); $event_type = "Device Removed"; $event_message = "Device {$device_label} was removed"; $event_status = "Complete"; add_event($event_type, $event_message, $event_status); $_SESSION['success'] = "Success, device removed."; } else { //set error message $_SESSION['error'] = "Error, device not removed."; } //redirect back to where we came from $referrer = $_SESSION['referrer']; unset($_SESSION['referrer']); //clear session var header("Location: {$referrer}"); //redirect! }
<?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <?php include 'header.php'; if (isset($_POST['addBook'])) { add_book(); } elseif (isset($_POST['deleteBook'])) { delete_book(); } elseif (isset($_POST['addEvent'])) { add_event(); } elseif (isset($_POST['deleteEvent'])) { delete_event(); } elseif (isset($_POST['uploadNewsletter'])) { upload_newsletter(); } elseif (isset($_POST['deleteNewsletter'])) { delete_newsletter(); } elseif (isset($_POST['uploadReport'])) { upload_report(); } elseif (isset($_POST['deleteReport'])) { delete_report(); } else { echo "Error: Please submit changes to the site first."; } // TODO: If logged_user is the admin user, then this page will be available as a link // TODO: Add following forms: // ADD/DELETE Books/Events Form
//see if the user wanted their selected options to be saved if ($_POST['saveBookingOptions'] == 'yes') { if ($bookingByUserID != '' && $bookingByUserID != '%') { //remove any existing preferences for this user $query = 'DELETE FROM ' . BOOKING_USER_OPTIONS_TABLE . ' WHERE user_id="' . $bookingByUserID . '"'; wrap_db_query($query); //save the new preferences to the db for use next time $numBookingOptions = count($_POST['bookingOptions']); for ($o = 0; $o < $numBookingOptions; $o++) { $query = "INSERT INTO " . BOOKING_USER_OPTIONS_TABLE . " SET user_id = " . $bookingByUserID . ", option_id = '" . $_POST['bookingOptions'][$o] . "'"; wrap_db_query($query); } } } // Attempt to Add the Event to the Database $add_event_id = add_event($bookingForUsername, $scheduled_date_time_data, $_REQUEST['subject'], $_REQUEST['location'], $starting_date . ' ' . $_REQUEST['start_time'], $ending_date . ' ' . $_REQUEST['end_time'], $_REQUEST['recur_interval'], $_REQUEST['recur_freq'], $recur_date, $_REQUEST['desc'], $_POST['bookingOptions']); if (!empty($add_event_id)) { $page_info_message = "Event added successfully!"; //if the user uses booking credits update their remaining credits if ($deductCredits && $bookeeUsesCredits) { update_booking_credits($bookingForUsername, $scheduled_slots, 'dec'); //Set the right message depending on if we are making the booking for ourselves or not if ($bookingForUsername == $_SESSION['valid_user']) { //booking for self $page_info_message .= '<br><br>' . $scheduled_slots . ' credits have been deducted for this booking. You have ' . remaining_booking_credits($bookingForUsername) . ' credits remaining.'; } else { //booking for someone else $page_info_message .= '<br><br>NOTE: User ' . $bookingForUsername . ' has had ' . $scheduled_slots . ' credits deducted. ' . remaining_booking_credits($bookingForUsername) . ' credits remaining.'; } } //see if booking cinfirmation e-mails are to get sent out
$recursion = null; if (!empty($_POST['frequencyperiod']) && intval($_POST['frequencynumber']) > 0 && !empty($_POST['enddate'])) { $recursion = array('unit' => $_POST['frequencyperiod'], 'repeat' => $_POST['frequencynumber'], 'end' => $_POST['enddate']); } if(isset($_POST['rep']) && $_POST['rep'] == 'yes'){ $resp = update_recursive_event($id, $event_title, $startdate, $duration, $content, $recursion); } else { $resp = update_event($id, $event_title, $startdate, $duration, $content, $recursion); } $agdx->store($id); } else { // add new event $recursion = null; if (!empty($_POST['frequencyperiod']) && intval($_POST['frequencynumber']) > 0 && !empty($_POST['enddate'])) { $recursion = array('unit' => $_POST['frequencyperiod'], 'repeat' => $_POST['frequencynumber'], 'end' => $_POST['enddate']); } $ev = add_event($event_title, $content, $startdate, $duration, $recursion); foreach($ev['event'] as $id) { $agdx->store($id); } } Session::Messages($langStoredOK, 'alert-success'); redirect_to_home_page("modules/agenda/index.php?course=$course_code"); } elseif (isset($_GET['delete']) && $_GET['delete'] == 'yes') { $resp = (isset($_GET['rep']) && $_GET['rep'] == 'yes')? delete_recursive_event($id):delete_event($id); $agdx->remove($id); $msgresp = ($resp['success'])? $langDeleteOK : $langDeleteError.": ".$resp['message']; $alerttype = ($resp['success'])? 'alert-success' : 'alert-error'; Session::Messages($msgresp, $alerttype); redirect_to_home_page("modules/agenda/index.php?course=$course_code"); }
/** * This creates new events given as timeopen and closeopen by $feedback. * @param object $feedback * @return void */ function feedback_set_events($feedback) { // adding the feedback to the eventtable (I have seen this at quiz-module) delete_records('event', 'modulename', 'feedback', 'instance', $feedback->id); // the open-event if ($feedback->timeopen > 0) { $event = NULL; $event->name = get_string('start', 'feedback') . ' ' . $feedback->name; $event->description = $feedback->summary; $event->courseid = $feedback->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'feedback'; $event->instance = $feedbackid; $event->eventtype = 'open'; $event->timestart = $feedback->timeopen; $event->visible = instance_is_visible('feedback', $feedback); if ($feedback->timeclose > 0) { $event->timeduration = $feedback->timeclose - $feedback->timeopen; } else { $event->timeduration = 0; } add_event($event); } // the close-event if ($feedback->timeclose > 0) { $event = NULL; $event->name = get_string('stop', 'feedback') . ' ' . $feedback->name; $event->description = $feedback->summary; $event->courseid = $feedback->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'feedback'; $event->instance = $feedbackid; $event->eventtype = 'close'; $event->timestart = $feedback->timeclose; $event->visible = instance_is_visible('feedback', $feedback); $event->timeduration = 0; add_event($event); } }
function hotpot_update_events($hotpot) { // remove any previous calendar events for this hotpot delete_records('event', 'modulename', 'hotpot', 'instance', $hotpot->id); $event = new stdClass(); $event->description = addslashes($hotpot->summary); $event->courseid = $hotpot->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'hotpot'; $event->instance = $hotpot->id; $event->timestart = $hotpot->timeopen; if ($cm = get_coursemodule_from_id('hotpot', $hotpot->id)) { $event->visible = hotpot_is_visible($cm); } else { $event->visible = 1; } if ($hotpot->timeclose && $hotpot->timeopen) { // we have both a start and an end date $event->eventtype = 'open'; $event->timeduration = $hotpot->timeclose - $hotpot->timeopen; if ($event->timeduration > HOTPOT_MAX_EVENT_LENGTH) { /// Long durations create two events $event->name = addslashes($hotpot->name) . ' (' . get_string('hotpotopens', 'hotpot') . ')'; $event->timeduration = 0; add_event($event); $event->timestart = $hotpot->timeclose; $event->eventtype = 'close'; $event->name = addslashes($hotpot->name) . ' (' . get_string('hotpotcloses', 'hotpot') . ')'; unset($event->id); add_event($event); } else { // single event with duration $event->name = $hotpot->name; add_event($event); } } elseif ($hotpot->timeopen) { // only an open date $event->name = addslashes($hotpot->name) . ' (' . get_string('hotpotopens', 'hotpot') . ')'; $event->eventtype = 'open'; $event->timeduration = 0; add_event($event); } elseif ($hotpot->timeclose) { // only a closing date $event->name = addslashes($hotpot->name) . ' (' . get_string('hotpotcloses', 'hotpot') . ')'; $event->timestart = $hotpot->timeclose; $event->eventtype = 'close'; $event->timeduration = 0; add_event($event); } }
function update_trigger($triggerid, $expression = NULL, $description = NULL, $type = NULL, $priority = NULL, $status = NULL, $comments = NULL, $url = NULL, $deps = array(), $templateid = 0) { $trigger = get_trigger_by_triggerid($triggerid); $trig_hosts = get_hosts_by_triggerid($triggerid); $trig_host = DBfetch($trig_hosts); $event_to_unknown = false; if (is_null($expression)) { /* Restore expression */ $expression = explode_exp($trigger["expression"], 0); } else { if ($expression != explode_exp($trigger["expression"], 0)) { $event_to_unknown = true; } } if (!validate_expression($expression)) { return false; } $exp_hosts = get_hosts_by_expression($expression); if ($exp_hosts) { $chd_hosts = get_hosts_by_templateid($trig_host["hostid"]); if (DBfetch($chd_hosts)) { $exp_host = DBfetch($exp_hosts); $db_chd_triggers = get_triggers_by_templateid($triggerid); while ($db_chd_trigger = DBfetch($db_chd_triggers)) { $chd_trig_hosts = get_hosts_by_triggerid($db_chd_trigger["triggerid"]); $chd_trig_host = DBfetch($chd_trig_hosts); $newexpression = str_replace("{" . $exp_host["host"] . ":", "{" . $chd_trig_host["host"] . ":", $expression); // recursion update_trigger($db_chd_trigger["triggerid"], $newexpression, $description, $type, $priority, NULL, $comments, $url, replace_template_dependencies($deps, $chd_trig_host['hostid']), $triggerid); } } } $result = delete_function_by_triggerid($triggerid); if (!$result) { return $result; } $expression = implode_exp($expression, $triggerid); /* errors can be ignored cose function must return NULL */ if ($event_to_unknown) { add_event($triggerid, TRIGGER_VALUE_UNKNOWN); } reset_items_nextcheck($triggerid); $sql = "UPDATE triggers SET"; if (!is_null($expression)) { $sql .= ' expression=' . zbx_dbstr($expression) . ','; } if (!is_null($description)) { $sql .= ' description=' . zbx_dbstr($description) . ','; } if (!is_null($type)) { $sql .= ' type=' . $type . ','; } if (!is_null($priority)) { $sql .= ' priority=' . $priority . ','; } if (!is_null($status)) { $sql .= ' status=' . $status . ','; } if (!is_null($comments)) { $sql .= ' comments=' . zbx_dbstr($comments) . ','; } if (!is_null($url)) { $sql .= ' url=' . zbx_dbstr($url) . ','; } if (!is_null($templateid)) { $sql .= ' templateid=' . $templateid . ','; } $sql .= ' value=2 WHERE triggerid=' . $triggerid; $result = DBexecute($sql); delete_dependencies_by_triggerid($triggerid); foreach ($deps as $id => $triggerid_up) { if (!($result2 = add_trigger_dependency($triggerid, $triggerid_up))) { error(S_INCORRECT_DEPENDENCY . ' [' . expand_trigger_description($triggerid_up) . ']'); } $result &= $result2; } if ($result) { $trig_hosts = get_hosts_by_triggerid($triggerid); $msg = "Trigger '" . $trigger["description"] . "' updated"; $trig_host = DBfetch($trig_hosts); if ($trig_host) { $msg .= " for host '" . $trig_host["host"] . "'"; } info($msg); } if ($result) { $trigger_new = get_trigger_by_triggerid($triggerid); add_audit_ext(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, $triggerid, $trigger["description"], 'triggers', $trigger, $trigger_new); } return $result; }
/** * Update existing event and logs the action * @param int $eventid id in table personal_calendar * @param string $title event title * @param string $start event datetime * @param text $content event details * @param boolean $recursivelly specifies if the update should be applied to all events of the group of recursive events or to the specific one */ function update_event($eventid, $title, $start, $duration, $content, $recursion, $recursivelly = false){ global $uid, $langNotValidInput, $course_id; if (!preg_match('/[0-9]+(:[0-9]+){0,2}/', $duration)) { $duration = '0:00'; } if($recursivelly && !is_null($recursion)){ $oldrec = get_event_recursion($eventid, $course_id); $p = "P".$recursion['repeat'].$recursion['unit']; $e = DateTime::createFromFormat('d-m-Y', $recursion['end'])->format('Y-m-d'); if($oldrec->recursion_period != $p || $oldrec->recursion_end != $e){ delete_recursive_event($eventid); return add_event($title, $content, $start, $duration, $recursion); } } if(!is_null($recursion) && !is_recursive($eventid)) { delete_event($eventid); return add_event($title, $content, $start, $duration, $recursion); } $d1 = DateTime::createFromFormat('d-m-Y H:i', $start); $d2 = DateTime::createFromFormat('d-m-Y H:i:s', $start); $title = trim($title); if(empty($title) || !(($d1 && $d1->format('d-m-Y H:i') == $start) || ($d2 && $d2->format('d-m-Y H:i:s') == $start))) { return array('success'=>false, 'message'=>$langNotValidInput); } else { $start = $d1->format('Y-m-d H:i'); } $where_clause = ($recursivelly)? "WHERE source_event_id = ?d AND course_id = ?d":"WHERE id = ?d AND course_id = ?d"; $startdatetimeformatted = ($recursivelly)? $d1->format('H:i'):$d1->format('Y-m-d H:i'); $start_date_update_clause = ($recursivelly)? "start = CONCAT(date_format(start, '%Y-%m-%d '),?t), ":"start = ?t, "; Database::get()->query("UPDATE agenda SET " . "title = ?s, " . $start_date_update_clause . "duration = ?t, " . "content = ?s " . $where_clause, $title, $startdatetimeformatted, $duration, purify($content), $eventid, $course_id); Log::record($course_id, MODULE_ID_AGENDA, LOG_MODIFY, array('user_id' => $uid, 'id' => $eventid, 'title' => $title, 'recursivelly' => $recursivelly, 'content' => ellipsize_html(canonicalize_whitespace(strip_tags($content)), 50, '+'))); return array('success'=>true, 'message'=>'', 'event'=>$eventid); }
function workshop_update_instance($workshop) { // Given an object containing all the necessary data, // (defined by the form in mod.html) this function // will update an existing instance with new data. global $CFG; $workshop->timemodified = time(); $workshop->submissionstart = make_timestamp($workshop->submissionstartyear, $workshop->submissionstartmonth, $workshop->submissionstartday, $workshop->submissionstarthour, $workshop->submissionstartminute); $workshop->assessmentstart = make_timestamp($workshop->assessmentstartyear, $workshop->assessmentstartmonth, $workshop->assessmentstartday, $workshop->assessmentstarthour, $workshop->assessmentstartminute); $workshop->submissionend = make_timestamp($workshop->submissionendyear, $workshop->submissionendmonth, $workshop->submissionendday, $workshop->submissionendhour, $workshop->submissionendminute); $workshop->assessmentend = make_timestamp($workshop->assessmentendyear, $workshop->assessmentendmonth, $workshop->assessmentendday, $workshop->assessmentendhour, $workshop->assessmentendminute); $workshop->releasegrades = make_timestamp($workshop->releaseyear, $workshop->releasemonth, $workshop->releaseday, $workshop->releasehour, $workshop->releaseminute); if (!workshop_check_dates($workshop)) { return get_string('invaliddates', 'workshop'); } // set the workshop's type $wtype = 0; // 3 phases, no grading grades if ($workshop->includeself or $workshop->ntassessments) { $wtype = 1; } // 3 phases with grading grades if ($workshop->nsassessments) { $wtype = 2; } // 5 phases with grading grades $workshop->wtype = $wtype; // encode password if necessary if (!empty($workshop->password)) { $workshop->password = md5($workshop->password); } else { unset($workshop->password); } $workshop->id = $workshop->instance; if ($returnid = update_record("workshop", $workshop)) { $dates = array('submissionstart' => $workshop->submissionstart, 'submissionend' => $workshop->submissionend, 'assessmentstart' => $workshop->assessmentstart, 'assessmentend' => $workshop->assessmentend); $moduleid = get_field('modules', 'id', 'name', 'workshop'); foreach ($dates as $type => $date) { if ($event = get_record('event', 'modulename', 'workshop', 'instance', $workshop->id, 'eventtype', $type)) { $event->name = get_string($type . 'event', 'workshop', $workshop->name); $event->description = $workshop->description; $event->eventtype = $type; $event->timestart = $date; update_event($event); } else { if ($date) { $event = NULL; $event->name = get_string($type . 'event', 'workshop', $workshop->name); $event->description = $workshop->description; $event->courseid = $workshop->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'workshop'; $event->instance = $workshop->instance; $event->eventtype = $type; $event->timestart = $date; $event->timeduration = 0; $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id); add_event($event); } } } } if (time() > $workshop->assessmentstart) { // regrade all the submissions... set_field("workshop_submissions", "nassessments", 0, "workshopid", $workshop->id); workshop_grade_assessments($workshop); } return $returnid; }
$event_result = $conn->query(add_event($username, "added", $_POST['special_mailer_types'])); } elseif ($_POST['change_special_mailers'] == 'remove_special_mailer') { $remove_mailers_result = $conn->query(remove_item("special_mailers", "daily_lead_data")); $remove_mailers_code_result = $conn->query(remove_item($_POST['special_mailer_types'], "daily_special_mailers")); $event_result = $conn->query(add_event($username, "removed", $_POST['special_mailer_types'])); } } /* Logic for adding web apps */ if (isset($_POST['change_web_apps'])) { if ($_POST['change_web_apps'] == "add_web_app") { $add_web_apps_result = $conn->query(add_item("web_apps", "daily_lead_data")); $drop_web_result = $conn->query(drop_rank("web")); $event_result = $conn->query(add_event($username, "added", "web app")); } elseif ($_POST['change_web_apps'] == "remove_web_app") { $remove_web_apps_result = $conn->query(remove_item("web_apps", "daily_lead_data")); $raise_web_result = $conn->query(raise_rank("web_apps")); $event_result = $conn->query(add_event($username, "removed", "web apps")); } } /* Logic for adding abandoned web apps */ if (isset($_POST['change_abandoned_web_apps'])) { if ($_POST['change_abandoned_web_apps'] == 'add_abandoned_web_app') { $add_abandoned_web_result = $conn->query(add_item("abandoned_web_apps", "daily_lead_data")); $event_result = $conn->query(add_event($username, "added", "abandoned web apps")); } elseif ($_POST['change_abandoned_web_apps'] == 'remove_abandoned_web_app') { $remove_abandoned_web_result = $conn->query(remove_item("abandoned_web_apps", "daily_lead_data")); $event_result = $conn->query(add_event($username, "removed", "abandoned web apps")); } } unset($_POST); header('Location: index.php');
/** * Updates a new assignment activity * * Given an object containing all the necessary data, * (defined by the form in mod_form.php) this function * will update the assignment instance and return the id number * The due date is updated in the calendar * This is common to all assignment types. * * @global object * @global object * @param object $assignment The data from the form on mod_form.php * @return int The assignment id */ function update_instance($assignment) { global $COURSE, $DB; $assignment->timemodified = time(); $assignment->id = $assignment->instance; $assignment->courseid = $assignment->course; $DB->update_record('assignment', $assignment); if ($assignment->timedue) { $event = new object(); if ($event->id = $DB->get_field('event', 'id', array('modulename' => 'assignment', 'instance' => $assignment->id))) { $event->name = $assignment->name; $event->description = format_module_intro('assignment', $assignment, $assignment->coursemodule); $event->timestart = $assignment->timedue; update_event($event); } else { $event = new object(); $event->name = $assignment->name; $event->description = format_module_intro('assignment', $assignment, $assignment->coursemodule); $event->courseid = $assignment->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'assignment'; $event->instance = $assignment->id; $event->eventtype = 'due'; $event->timestart = $assignment->timedue; $event->timeduration = 0; add_event($event); } } else { $DB->delete_records('event', array('modulename' => 'assignment', 'instance' => $assignment->id)); } // get existing grade item assignment_grade_item_update($assignment); return true; }
function parse_user($str, $game_id, $client_id, $options) { global $fhs; global $fhe; global $events; global $parms; debugger("Memory Usage: parse_user: "******"\n"); $json = json_decode($str); if ($json != FALSE) { foreach ($json as $key => $value) { switch ($key) { case 'u': $user = $value; break; case 'v': $version = $value; break; case 'dv': $device = $value; break; case 't': $epoch = round($value / 1000); $datetime = new DateTime("@{$epoch}", new DateTimeZone('EST')); break; case 'l': $event = parse_events($epoch, $value); break; } } //SESSION $record = "{$game_id},{$client_id},'" . $user . "','" . $version . "','" . $device . "','" . $datetime->format('Y-m-d H:i:s') . "'\n"; fwrite($fhs, $record); //EVENTS if (!isset($options['u'])) { foreach ($event as $key => $value) { if (array_key_exists(strtolower($value['event']), $events)) { $record = "{$game_id},{$client_id},'" . $user . "','" . $version . "','" . $device . "','" . $value['time'] . "'," . $events[strtolower($value['event'])] . ","; } else { $events = add_event(strtolower($value['event'])); $record = "{$game_id},{$client_id},'" . $user . "','" . $version . "','" . $device . "','" . $value['time'] . "'," . $events[strtolower($value['event'])] . ","; } if (count($value['parameters']) > 0) { foreach ($value['parameters'] as $parameter_key => $parameter_value) { if (array_key_exists(strtolower($parameter_key), $parms)) { fwrite($fhe, $record . "'" . $parms[strtolower($parameter_key)] . "','" . $parameter_value . "'\n"); } else { $parms = add_parm(strtolower($parameter_key)); fwrite($fhe, $record . "'" . $parms[strtolower($parameter_key)] . "','" . $parameter_value . "'\n"); } } } else { fwrite($fhe, $record . ",\n"); } } } unset($datetime); } unset($json); }
/** * Updates a new assignment activity * * Given an object containing all the necessary data, * (defined by the form in mod.html) this function * will update the assignment instance and return the id number * The due date is updated in the calendar * This is common to all assignment types. * * @param $assignment object The data from the form on mod.html * @return int The assignment id */ function update_instance($assignment) { global $COURSE; $assignment->timemodified = time(); $assignment->id = $assignment->instance; $assignment->courseid = $assignment->course; if (!update_record('assignment', $assignment)) { return false; } if ($assignment->timedue) { $event = new object(); if ($event->id = get_field('event', 'id', 'modulename', 'assignment', 'instance', $assignment->id)) { $event->name = $assignment->name; $event->description = $assignment->description; $event->timestart = $assignment->timedue; update_event($event); } else { $event = new object(); $event->name = $assignment->name; $event->description = $assignment->description; $event->courseid = $assignment->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'assignment'; $event->instance = $assignment->id; $event->eventtype = 'due'; $event->timestart = $assignment->timedue; $event->timeduration = 0; add_event($event); } } else { delete_records('event', 'modulename', 'assignment', 'instance', $assignment->id); } // get existing grade item $assignment = stripslashes_recursive($assignment); assignment_grade_item_update($assignment); return true; }
public static function generateEvents($events, $sorted = true) { $event_list = []; function add_event(&$event_list, $time, $event, $sorted) { $event = clone $event; $event['event_date'] = date('Y-m-d H:i:s', $time); if ($sorted === TRUE) { $year = intval(date("Y", $time)); $month = intval(date("m", $time)); $day = intval(date("d", $time)); if (isset($event_list[$year][$month][$day])) { $event_list[$year][$month][$day][] = $event; } else { $event_list[$year][$month][$day] = [$event]; } } else { $event_list[] = $event; } } foreach ($events as $event) { $time = strtotime($event->event_date); add_event($event_list, $time, $event, $sorted); $to_time = strtotime($event->repeat_to_date); if ($time < $to_time && $event->repeat_frequency !== 'none') { switch ($event->repeat_frequency) { case 'zilnic': $add_time = 86400; while ($time + $add_time <= $to_time) { $time += $add_time; add_event($event_list, $time, $event, $sorted); } break; case 'saptaminal': $add_time = 86400 * 7; while ($time + $add_time <= $to_time) { $time += $add_time; add_event($event_list, $time, $event, $sorted); } break; case 'lunar': $day = date("d", $time); while ($time <= $to_time) { $calc_time = strtotime(date("Y-m-{$day} H:i:s", strtotime("+1 months", $time))); if ($calc_time) { $time = $calc_time; if ($time > $to_time) { break; } add_event($event_list, $time, $event, $sorted); } else { $time = strtotime("+1 months", $time); } } break; case 'anual': $day = date("d", $time); $month = date("m", $time); while ($time <= $to_time) { $calc_time = strtotime(date("Y-{$month}-{$day} H:i:s", strtotime("+1 years", $time))); if ($calc_time) { $time = $calc_time; if ($time > $to_time) { break; } add_event($event_list, $time, $event, $sorted); } else { $time = strtotime("+1 years", $time); } } break; } } } return $event_list; }
print '<h3> <center> Please select the quarter in which you will be Teaching </center></h3>'; if (isset($_POST['submit1'])) { $_SESSION['dept'] = $_POST['dept']; } if (isset($_POST['submit2'])) { $_SESSION['course'] = $_POST['course']; } if (isset($_POST['submit3'])) { $_SESSION['section'] = $_POST['section']; //then find events, check for conflicts, add to calendar. $error = add_event($_SESSION['section'], "section", $_SESSION['year'], $_SESSION['season'], $_SESSION['ta_id']); } if (isset($_POST['submit'])) { $_SESSION['crn'] = $_POST['crn']; //get section id from CRN or return NOT FOUND $error = add_event($_SESSION['crn'], "crn", $_SESSION['year'], $_SESSION['season'], $_SESSION['ta_id']); } if (isset($_POST['drop'])) { //drop this section from db //the value comes in as dept|course|section $s = explode("|", $_POST['assigned']); drop_section($s[2], $s[1], $s[0], $_SESSION['year'], $_SESSION['season'], $_SESSION['ta_id']); } ?> <form name="quarter_form" id="quarter_form" action="quarter.php" method="post"> <p style="margin-left: 20px">Select a quarter: <select name="quarter" id="quarter"> <?php populate_quarters(); ?> </select> </p> <input class="button blue" style="padding: 5px; font-size:small; float:right" type="submit" name="submit" id="submit" value="Submit"/> </form>
/** * Make sure up-to-date events are created for all webquestscorm instances * * This standard function will check all instances of this module * and make sure there are up-to-date events created for each of them. * If courseid = 0, then every webquestscorm event in the site is checked, else * only webquestscorm events belonging to the course specified are checked. * This function is used, in its new format, by restore_refresh_events() * * @param $courseid int optional If zero then all webquestscorms for all courses are covered * @return boolean Always returns true */ function webquestscorm_refresh_events($courseid = 0) { if ($courseid == 0) { if (!($webquestscorms = get_records("webquestscorm"))) { return true; } } else { if (!($webquestscorms = get_records("webquestscorm", "course", $courseid))) { return true; } } $moduleid = get_field('modules', 'id', 'name', 'webquestscorm'); foreach ($webquestscorms as $webquestscorm) { $event = NULL; $event->name = addslashes($webquestscorm->name); $event->description = addslashes($webquestscorm->name); $event->timestart = $webquestscorm->timedue; if ($event->id = get_field('event', 'id', 'modulename', 'webquestscorm', 'instance', $webquestscorm->id)) { update_event($event); } else { $event->courseid = $webquestscorm->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'webquestscorm'; $event->instance = $webquestscorm->id; $event->eventtype = 'due'; $event->timeduration = 0; $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $webquestscorm->id); add_event($event); } } return true; }