public function execute() { global $CFG, $DB; require_once $CFG->dirroot . "/mod/turnitintooltwo/lib.php"; require_once $CFG->dirroot . "/mod/turnitintooltwo/turnitintooltwo_view.class.php"; $data = (array) $this->get_custom_data(); // Make sure we are still wanted. $submission = $DB->get_record('turnitintooltwo_submissions', array('id' => $data['submissionid'])); if (!$submission) { return true; } cli_writeln("Processing Turnitintooltwo submission: " . $data['submissionid']); $user = $DB->get_record('user', array('id' => $data['userid'])); \core\session\manager::set_user($user); $turnitintooltwo = $DB->get_record('turnitintooltwo', array('id' => $data['tiiid'])); list($course, $cm) = get_course_and_cm_from_instance($turnitintooltwo, 'turnitintooltwo'); try { $turnitintooltwoassignment = new \turnitintooltwo_assignment($turnitintooltwo->id, $turnitintooltwo); $turnitintooltwosubmission = new \turnitintooltwo_submission($data['submissionid'], "moodle", $turnitintooltwoassignment); $parts = $turnitintooltwoassignment->get_parts(); $tiisubmission = $turnitintooltwosubmission->do_tii_submission($cm, $turnitintooltwoassignment); // Update submission. $DB->update_record('turnitintooltwo_submissions', array('id' => $data['submissionid'], 'submission_modified' => $data['subtime'])); } catch (\Exception $e) { $tiisubmission = array('success' => false, 'message' => $e->getMessage()); cli_writeln($e->getMessage()); } $digitalreceipt = $tiisubmission; $digitalreceipt['is_manual'] = 0; $digitalreceipt = json_encode($digitalreceipt); $this->update_sub_status($data['submissionid'], $tiisubmission['success'], $digitalreceipt); if ($tiisubmission['success'] === true) { $lockedassignment = new \stdClass(); $lockedassignment->id = $turnitintooltwoassignment->turnitintooltwo->id; $lockedassignment->submitted = 1; $DB->update_record('turnitintooltwo', $lockedassignment); $lockedpart = new \stdClass(); $lockedpart->id = $data['submissionpart']; $lockedpart->submitted = 1; // Disable anonymous marking if post date has passed. if ($parts[$data['submissionpart']]->dtpost <= time()) { $lockedpart->unanon = 1; } $DB->update_record('turnitintooltwo_parts', $lockedpart); cli_writeln("Finished processing successful submission: " . $data['submissionid']); } else { turnitintooltwo_add_to_log($course->id, "errored submission", 'view.php?id=' . $cm->id, "Failed to submit '" . $turnitintooltwosubmission->submission_title . "'", $cm->id, $user->id, array('submissionid' => $data['submissionid'])); cli_writeln("Finished processing unsuccessful submission: " . $data['submissionid']); } \core\session\manager::set_user(get_admin()); return $tiisubmission['success']; }
$extraparams = array(); unset($_SESSION['form_data']); } } } $params = array_merge(array('id' => $id, 'do' => $do, 'view_context' => $viewcontext), $extraparams); redirect(new moodle_url('/mod/turnitintooltwo/view.php', $params)); exit; break; case "manualsubmission": if (!confirm_sesskey()) { throw new moodle_exception('invalidsesskey', 'error'); } $submissionid = required_param('sub', PARAM_INT); $turnitintooltwosubmission = new turnitintooltwo_submission($submissionid, "moodle", $turnitintooltwoassignment); $digitalreceipt = $turnitintooltwosubmission->do_tii_submission($cm, $turnitintooltwoassignment); $_SESSION["digital_receipt"] = $digitalreceipt; redirect(new moodle_url('/mod/turnitintooltwo/view.php', array('id' => $id, 'do' => 'submissions'))); exit; break; case "deletesubmission": if (!confirm_sesskey()) { throw new moodle_exception('invalidsesskey', 'error'); } $submissionid = required_param('sub', PARAM_INT); $turnitintooltwosubmission = new turnitintooltwo_submission($submissionid, "moodle", $turnitintooltwoassignment); // Allow instructors to delete submission and students to delete if the submission hasn't gone to Turnitin. if ($istutor && $submissionid != 0 || !$istutor && empty($turnitintooltwosubmission->submission_objectid)) { $_SESSION["notice"] = $turnitintooltwosubmission->delete_submission(); } redirect(new moodle_url('/mod/turnitintooltwo/view.php', array('id' => $id, 'do' => 'submissions')));