Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/assignment/type/offline/assignment.class.php
Go to the documentation of this file.
00001 <?php
00002 
00007 class assignment_offline extends assignment_base {
00008 
00009     function assignment_offline($cmid='staticonly', $assignment=NULL, $cm=NULL, $course=NULL) {
00010         parent::assignment_base($cmid, $assignment, $cm, $course);
00011         $this->type = 'offline';
00012     }
00013 
00014     function display_lateness($timesubmitted) {
00015         return '';
00016     }
00017     function print_student_answer($studentid){
00018         return '';//does nothing!
00019     }
00020 
00021     function prepare_new_submission($userid) {
00022         $submission = new stdClass();
00023         $submission->assignment   = $this->assignment->id;
00024         $submission->userid       = $userid;
00025         $submission->timecreated  = time(); // needed for offline assignments
00026         $submission->timemodified = $submission->timecreated;
00027         $submission->numfiles     = 0;
00028         $submission->data1        = '';
00029         $submission->data2        = '';
00030         $submission->grade        = -1;
00031         $submission->submissioncomment      = '';
00032         $submission->format       = 0;
00033         $submission->teacher      = 0;
00034         $submission->timemarked   = 0;
00035         $submission->mailed       = 0;
00036         return $submission;
00037     }
00038 
00039     // needed for the timemodified override
00040     function process_feedback() {
00041         global $CFG, $USER, $DB;
00042         require_once($CFG->libdir.'/gradelib.php');
00043 
00044         if (!$feedback = data_submitted() or !confirm_sesskey()) {      // No incoming data?
00045             return false;
00046         }
00047 
00051         if ((int)$feedback->saveuserid !== -1){
00052             $feedback->userid = $feedback->saveuserid;
00053         }
00054 
00055         if (!empty($feedback->cancel)) {          // User hit cancel button
00056             return false;
00057         }
00058 
00059         $grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $feedback->userid);
00060 
00061         // store outcomes if needed
00062         $this->process_outcomes($feedback->userid);
00063 
00064         $submission = $this->get_submission($feedback->userid, true);  // Get or make one
00065 
00066         if (!$grading_info->items[0]->grades[$feedback->userid]->locked and
00067             !$grading_info->items[0]->grades[$feedback->userid]->overridden) {
00068 
00069             $submission->grade      = $feedback->xgrade;
00070             $submission->submissioncomment    = $feedback->submissioncomment_editor['text'];
00071             $submission->teacher    = $USER->id;
00072             $mailinfo = get_user_preferences('assignment_mailinfo', 0);
00073             if (!$mailinfo) {
00074                 $submission->mailed = 1;       // treat as already mailed
00075             } else {
00076                 $submission->mailed = 0;       // Make sure mail goes out (again, even)
00077             }
00078             $submission->timemarked = time();
00079 
00080             unset($submission->data1);  // Don't need to update this.
00081             unset($submission->data2);  // Don't need to update this.
00082 
00083             if (empty($submission->timemodified)) {   // eg for offline assignments
00084                 $submission->timemodified = time();
00085             }
00086 
00087             $DB->update_record('assignment_submissions', $submission);
00088 
00089             // trigger grade event
00090             $this->update_grade($submission);
00091 
00092             add_to_log($this->course->id, 'assignment', 'update grades',
00093                        'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id);
00094         }
00095 
00096         return $submission;
00097 
00098     }
00099 
00100 }
00101 
00102 
 All Data Structures Namespaces Files Functions Variables Enumerations