Plagiarism API

From MoodleDocs
Revision as of 11:49, 7 May 2010 by Dan Marsden (talk | contribs) (New page: {{Moodle_2.0}} ==Overview== The Plagiarism API is a core set of functions that all Moodle code can use to send user submitted content to Plagiarism Prevention systems A typical user story...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Moodle 2.0


The Plagiarism API is a core set of functions that all Moodle code can use to send user submitted content to Plagiarism Prevention systems

A typical user story:

  1. When Plagiarism tools are enabled, every module that allows it will have a group of settings added to allow management of sending the user content to a plagiarism service.
  2. A user enters some content/submits a file inside a module that a teacher/Admin has configured the tool to be used.
  3. An Event is triggered which contains details about the user, module and submission they have made
  4. Event handlers in the Plagiarism API are triggered and pass across the information to any enabled Plagiarism Plugins.
  5. Hooks for displaying information returned from the Plagiarism tools to both the user and teacher (controlled by the plugin)

Supported Modules

  • Single Upload Assignment
  • Advanced Assignment


all the global functions are contained within /plagiarism/lib.php and each plagiarism tool has it's own plugin directory with db folder for capabilities/database tables required.

Plugins and libraries

Each Plagiarism Tool will have it's own plugin directory - eg /plagiarism/turnitin/

Abstract Baseclass : plagiarism_plugin

Each Plagiarism plugin must subclass this in a file called plagiarism/pluginname/lib.php - the subclass must be named using the plugin directory as a suffix - eg: class plagiarism_plugin_turnitin extends plagiarism_plugin {

Class methods

Here are the methods that each Plagiarism Plugin can override.


This function is triggered by modules whenever the module is updated, or a user submits content.


This function is triggered by Cron to allow any scheduled tasks to be processed.


This function allows the addition of any Plagiarism specific settings to an mform inside a module settings page.


This function is triggered when a teacher saves the settings on a module page to allows storing of any Plagiarism specific settings.


This function provides a hook to allow information to be displayed beside a users submission - for example the grading page for teachers to display an originality score/link to more information or to allow a student to see the same information.


This function allows the plugin to display a message to users inside the submission page to let them know that the submission will be passed to a plagiarism prevention system.


This function is called on pages that display a full list of users eg grading pages to allow the status of any submissions to be checked. This function is called every time the report page is loaded so it should perform appropriate caching.

Event Triggers

Modules that support the Plagiarism API should have appropriate event triggers in their module/db/events.php which point to specific handlers in /plagiarism/lib.php