diff --git a/mod/forum/lib.php b/mod/forum/lib.php
index 812172a567b..3ded48ce8cf 100644
--- a/mod/forum/lib.php
+++ b/mod/forum/lib.php
@@ -3177,6 +3177,14 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa
$post->course = $course->id;
$post->forum = $forum->id;
$post->message = file_rewrite_pluginfile_urls($post->message, 'pluginfile.php', $modcontext->id, 'mod_forum', 'post', $post->id);
+ if (!empty($CFG->enableplagiarism)) {
+ require_once($CFG->libdir.'/plagiarismlib.php');
+ $post->message .= plagiarism_get_links(array('userid' => $post->userid,
+ 'content' => $post->message,
+ 'cmid' => $cm->id,
+ 'course' => $post->course,
+ 'forum' => $post->forum));
+ }
// caching
if (!isset($cm->cache)) {
@@ -4022,6 +4030,16 @@ function forum_print_attachments($post, $cm, $type) {
$output .= '
';
}
}
+
+ if (!empty($CFG->enableplagiarism)) {
+ require_once($CFG->libdir.'/plagiarismlib.php');
+ $output .= plagiarism_get_links(array('userid' => $post->userid,
+ 'file' => $file,
+ 'cmid' => $cm->id,
+ 'course' => $post->course,
+ 'forum' => $post->forum));
+ $output .= '
';
+ }
}
}
@@ -4279,6 +4297,9 @@ function forum_add_new_post($post, $mform, &$message) {
forum_tp_mark_post_read($post->userid, $post, $post->forum);
}
+ // Let Moodle know that assessable content is uploaded (eg for plagiarism detection)
+ forum_trigger_content_uploaded_event($post, $cm, 'forum_add_new_post');
+
return $post->id;
}
@@ -4325,6 +4346,9 @@ function forum_update_post($post, $mform, &$message) {
forum_tp_mark_post_read($post->userid, $post, $post->forum);
}
+ // Let Moodle know that assessable content is uploaded (eg for plagiarism detection)
+ forum_trigger_content_uploaded_event($post, $cm, 'forum_update_post');
+
return true;
}
@@ -4402,6 +4426,9 @@ function forum_add_discussion($discussion, $mform=null, &$message=null, $userid=
forum_tp_mark_post_read($post->userid, $post, $post->forum);
}
+ // Let Moodle know that assessable content is uploaded (eg for plagiarism detection)
+ forum_trigger_content_uploaded_event($post, $cm, 'forum_add_discussion');
+
return $post->discussion;
}
@@ -4524,6 +4551,33 @@ function forum_delete_post($post, $children, $course, $cm, $forum, $skipcompleti
return false;
}
+/**
+ * Sends post content to plagiarism plugin
+ * @param object $post Forum post object
+ * @param object $cm Course-module
+ * @param string $name
+ * @return bool
+*/
+function forum_trigger_content_uploaded_event($post, $cm, $name) {
+ $context = context_module::instance($cm->id);
+ $fs = get_file_storage();
+ $files = $fs->get_area_files($context->id, 'mod_forum', 'attachment', $post->id, "timemodified", false);
+ $eventdata = new stdClass();
+ $eventdata->modulename = 'forum';
+ $eventdata->name = $name;
+ $eventdata->cmid = $cm->id;
+ $eventdata->itemid = $post->id;
+ $eventdata->courseid = $post->course;
+ $eventdata->userid = $post->userid;
+ $eventdata->content = $post->message;
+ if ($files) {
+ $eventdata->pathnamehashes = array_keys($files);
+ }
+ events_trigger('assessable_content_uploaded', $eventdata);
+
+ return true;
+}
+
/**
* @global object
* @param object $post
diff --git a/mod/forum/mod_form.php b/mod/forum/mod_form.php
index eb2d03ccb9c..ac62ec57962 100644
--- a/mod/forum/mod_form.php
+++ b/mod/forum/mod_form.php
@@ -139,6 +139,9 @@ class mod_forum_mod_form extends moodleform_mod {
$mform->addHelpButton('warnafter', 'warnafter', 'forum');
$mform->disabledIf('warnafter', 'blockperiod', 'eq', 0);
+ $coursecontext = context_course::instance($COURSE->id);
+ plagiarism_get_form_elements_module($mform, $coursecontext);
+
//-------------------------------------------------------------------------------
$this->standard_grading_coursemodule_elements();
diff --git a/mod/forum/post.php b/mod/forum/post.php
index 20528d0307c..1162e6aea95 100644
--- a/mod/forum/post.php
+++ b/mod/forum/post.php
@@ -877,6 +877,11 @@ if (!empty($parent)) {
} else {
if (!empty($forum->intro)) {
echo $OUTPUT->box(format_module_intro('forum', $forum, $cm->id), 'generalbox', 'intro');
+
+ if (!empty($CFG->enableplagiarism)) {
+ require_once($CFG->libdir.'/plagiarismlib.php');
+ echo plagiarism_print_disclosure($cm->id);
+ }
}
}