assignment.class.php

来自「很棒的在线教学系统」· PHP 代码 · 共 106 行

PHP
106
字号
<?php // $Id: assignment.class.php,v 1.12.2.2 2008/02/20 17:49:59 skodak Exp $/** * Extend the base assignment class for offline assignments * */class assignment_offline extends assignment_base {    function assignment_offline($cmid='staticonly', $assignment=NULL, $cm=NULL, $course=NULL) {        parent::assignment_base($cmid, $assignment, $cm, $course);        $this->type = 'offline';    }    function display_lateness($timesubmitted) {        return '';    }    function print_student_answer($studentid){        return '';//does nothing!    }    function prepare_new_submission($userid) {        $submission = new Object;        $submission->assignment   = $this->assignment->id;        $submission->userid       = $userid;        $submission->timecreated  = time(); // needed for offline assignments        $submission->timemodified = $submission->timecreated;        $submission->numfiles     = 0;        $submission->data1        = '';        $submission->data2        = '';        $submission->grade        = -1;        $submission->submissioncomment      = '';        $submission->format       = 0;        $submission->teacher      = 0;        $submission->timemarked   = 0;        $submission->mailed       = 0;        return $submission;    }    // needed for the timemodified override    function process_feedback() {        global $CFG, $USER;        require_once($CFG->libdir.'/gradelib.php');        if (!$feedback = data_submitted()) {      // No incoming data?            return false;        }        ///For save and next, we need to know the userid to save, and the userid to go        ///We use a new hidden field in the form, and set it to -1. If it's set, we use this        ///as the userid to store        if ((int)$feedback->saveuserid !== -1){            $feedback->userid = $feedback->saveuserid;        }        if (!empty($feedback->cancel)) {          // User hit cancel button            return false;        }        $grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $feedback->userid);        // store outcomes if needed        $this->process_outcomes($feedback->userid);        $submission = $this->get_submission($feedback->userid, true);  // Get or make one        if (!$grading_info->items[0]->grades[$feedback->userid]->locked and            !$grading_info->items[0]->grades[$feedback->userid]->overridden) {            $submission->grade      = $feedback->grade;            $submission->submissioncomment    = $feedback->submissioncomment;            $submission->format     = $feedback->format;            $submission->teacher    = $USER->id;            $mailinfo = get_user_preferences('assignment_mailinfo', 0);            if (!$mailinfo) {                $submission->mailed = 1;       // treat as already mailed            } else {                $submission->mailed = 0;       // Make sure mail goes out (again, even)            }            $submission->timemarked = time();            unset($submission->data1);  // Don't need to update this.            unset($submission->data2);  // Don't need to update this.            if (empty($submission->timemodified)) {   // eg for offline assignments                $submission->timemodified = time();            }            if (! update_record('assignment_submissions', $submission)) {                return false;            }            // triger grade event            $this->update_grade($submission);            add_to_log($this->course->id, 'assignment', 'update grades',                       'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id);        }        return $submission;    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?