MDL-34131: Plagiarism API - add support for plagiarism api to new online assignment type
This commit is contained in:
@@ -113,20 +113,36 @@ class assign_submission_onlinetext extends assign_submission_plugin {
|
||||
}
|
||||
|
||||
/**
|
||||
* Save data to the database
|
||||
* Save data to the database and trigger plagiarism plugin, if enabled, to scan the uploaded content via events trigger
|
||||
*
|
||||
* @param stdClass $submission
|
||||
* @param stdClass $data
|
||||
* @return bool
|
||||
*/
|
||||
public function save(stdClass $submission, stdClass $data) {
|
||||
global $DB;
|
||||
global $USER, $DB;
|
||||
|
||||
$editoroptions = $this->get_edit_options();
|
||||
|
||||
$data = file_postupdate_standard_editor($data, 'onlinetext', $editoroptions, $this->assignment->get_context(), 'assignsubmission_onlinetext', ASSIGNSUBMISSION_ONLINETEXT_FILEAREA, $submission->id);
|
||||
|
||||
$onlinetextsubmission = $this->get_onlinetext_submission($submission->id);
|
||||
|
||||
$fs = get_file_storage();
|
||||
$files = $fs->get_area_files($this->assignment->get_context()->id, 'assignsubmission_onlinetext', ASSIGNSUBMISSION_ONLINETEXT_FILEAREA, $submission->id, "id", false);
|
||||
// Let Moodle know that an assessable content was uploaded (eg for plagiarism detection)
|
||||
$eventdata = new stdClass();
|
||||
$eventdata->modulename = 'assign';
|
||||
$eventdata->cmid = $this->assignment->get_course_module()->id;
|
||||
$eventdata->itemid = $submission->id;
|
||||
$eventdata->courseid = $this->assignment->get_course()->id;
|
||||
$eventdata->userid = $USER->id;
|
||||
$eventdata->content = trim(format_text($onlinetextsubmission->onlinetext, $onlinetextsubmission->onlineformat, array('context'=>$this->assignment->get_context())));
|
||||
if ($files) {
|
||||
$eventdata->pathnamehashes = array_keys($files);
|
||||
}
|
||||
events_trigger('assessable_content_uploaded', $eventdata);
|
||||
|
||||
if ($onlinetextsubmission) {
|
||||
|
||||
$onlinetextsubmission->onlinetext = $data->onlinetext;
|
||||
@@ -194,6 +210,7 @@ class assign_submission_onlinetext extends assign_submission_plugin {
|
||||
* @return string
|
||||
*/
|
||||
public function view_summary(stdClass $submission, & $showviewlink) {
|
||||
global $CFG;
|
||||
|
||||
$onlinetextsubmission = $this->get_onlinetext_submission($submission->id);
|
||||
// always show the view link
|
||||
@@ -202,10 +219,19 @@ class assign_submission_onlinetext extends assign_submission_plugin {
|
||||
if ($onlinetextsubmission) {
|
||||
$text = format_text($onlinetextsubmission->onlinetext, $onlinetextsubmission->onlineformat, array('context'=>$this->assignment->get_context()));
|
||||
$shorttext = shorten_text($text, 140);
|
||||
$plagiarismlinks = '';
|
||||
if (!empty($CFG->enableplagiarism)) {
|
||||
require_once($CFG->libdir . '/plagiarismlib.php');
|
||||
$plagiarismlinks .= plagiarism_get_links(array('userid' => $submission->userid,
|
||||
'content' => trim(format_text($onlinetextsubmission->onlinetext, $onlinetextsubmission->onlineformat, array('context'=>$this->assignment->get_context()))),
|
||||
'cmid' => $this->assignment->get_course_module()->id,
|
||||
'course' => $this->assignment->get_course()->id,
|
||||
'assignment' => $submission->assignment));
|
||||
}
|
||||
if ($text != $shorttext) {
|
||||
return $shorttext . get_string('numwords', 'assignsubmission_onlinetext', count_words($text));
|
||||
return $shorttext . $plagiarismlinks . get_string('numwords', 'assignsubmission_onlinetext', count_words($text));
|
||||
} else {
|
||||
return $shorttext;
|
||||
return $shorttext . $plagiarismlinks;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
|
||||
Reference in New Issue
Block a user