// store the updated values or re-save the new submission (re-saving needed because URLs are now rewritten) $DB->update_record('workshopplus_submissions', $formdata); // send submitted content for plagiarism detection $fs = get_file_storage(); $files = $fs->get_area_files($workshopplus->context->id, 'mod_workshopplus', 'submission_attachment', $submission->id); $params = array('context' => $workshopplus->context, 'objectid' => $submission->id, 'other' => array('content' => $formdata->content, 'pathnamehashes' => array_keys($files))); $event = \mod_workshopplus\event\assessable_uploaded::create($params); $event->set_legacy_logdata($logdata); $event->trigger(); redirect($workshopplus->submission_url($formdata->id)); } } // load the form to override grade and/or publish the submission and process the submitted data eventually if (!$edit and ($canoverride or $canpublish)) { $options = array('editable' => true, 'editablepublished' => $canpublish, 'overridablegrade' => $canoverride); $feedbackform = $workshopplus->get_feedbackauthor_form($PAGE->url, $submission, $options); if ($data = $feedbackform->get_data()) { $data = file_postupdate_standard_editor($data, 'feedbackauthor', array(), $workshopplus->context); $record = new stdclass(); $record->id = $submission->id; if ($canoverride) { $record->gradeover = $workshopplus->raw_grade_value($data->gradeover, $workshopplus->grade); $record->gradeoverby = $USER->id; $record->feedbackauthor = $data->feedbackauthor; $record->feedbackauthorformat = $data->feedbackauthorformat; } if ($canpublish) { $record->published = !empty($data->published); } $DB->update_record('workshopplus_submissions', $record); redirect($workshopplus->view_url());