Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Plugin types

From MoodleDocs
Revision as of 13:57, 22 April 2013 by Helen Foster (talk | contribs) (removing link to obsolete page)

The M in Moodle stands for modular. The easiest and most maintainable way to add new functionality to Moodle is by writing one of these types of plugin. If none of the standardized types fits your needs, you can use the "local" type.

Plugin type Component name Moodle path Description Moodle versions
Activity modules mod /mod Activity modules are the most important type of plugins. They provide activities in courses. For example: Forum, Quiz and Assignment. All
Admin reports report /admin/report Provides useful views of data in a Moodle site, for admins only. Up to 2.1 (for 2.2+ see Reports)
Admin tools tool /admin/tool Provides utility scripts useful for admins to examine and modify a Moodle site 2.2+
Assignment 2.2 types assignment /mod/assignment/type Different forms of assignments to be graded by teachers 1.x - 2.2
Assignment 2.3 submissions assignsubmission /mod/assign/submission Different forms of assignment submissions 2.3+
Assignment 2.3 feedbacks assignfeedback /mod/assign/feedback Different forms of assignment feedbacks 2.3+
Authentication plugins auth /auth Allows connection to external sources of authentication 2.0
Blocks block /blocks Small information-displays or tools that can be moved around pages 2.0+
Course formats format /course/format Different ways of laying out the activities and blocks in a course 1.3+
Course reports coursereport /course/report Reports of activity within the course Up to 2.1 (for 2.2+ see Reports)
Database fields datafield /mod/data/field Different types of data that may be added to the Database activity module 1.6+
Database presets datapreset /mod/data/preset Pre-defined templates for the Database activity module 1.6+
Editors editor /lib/editor Alternative text editors for editing content 2.0+
Enrolment plugins enrol /enrol Ways to control who is enrolled in courses 2.0+
Filters filter /filter Automatically convert, highlight, and transmogrify text posted into Moodle. 1.4+
Gradebook export gradeexport /grade/export Export grades in various formats 1.9+
Gradebook import gradeimport /grade/import Import grades in various formats 1.9+
Gradebook reports gradereport /grade/report Display/edit grades in various layouts and reports 1.9+
Grading methods gradingform /grade/grading/form Interfaces for actually performing grading in activity modules (eg Rubrics). 2.2+
Local plugins local /local Generic plugins for local customisations 2.0+
Messaging consumers message /message/output Send messages to users via different methods (email, sms, jabber, etc) 2.0+
Plagiarism plugins plagiarism /plagiarism Define external services to process submitted files and content 2.0+
Portfolio plugins portfolio /portfolio Connect external portfolio services as destinations for users to store Moodle content 1.9+
Question behaviours qbehaviour /question/behaviour Control how student interact with questions during an attempt 2.1+
Question formats qformat /question/format Import and export question definitions to/from the question bank 1.6+
Question types qtype /question/type Different types of question (e.g. multiple-choice, drag-and-drop) that can be used in quizzes and other activities 1.6+
Quiz access rules quizaccess /mod/quiz/accessrule Add conditions to when or where quizzes can be attempted, for example only from some IP addresses, or student must enter a password first 2.2+
Quiz reports quiz /mod/quiz/report Display and analyse the results of quizzes, or just plug miscellaneous behaviour into the quiz module 1.1+
Reports report /report Provides useful views of data in a Moodle site for admins and teachers 2.2+
Repository plugins repository /repository Connect to external sources of files to use in Moodle 2.0+
SCORM reports scormreport /mod/scorm/report Analysis of SCORM attempts 2.2+
Themes theme /theme Change the look of Moodle by changing the the HTML and the CSS. 2.0+
User profile fields profilefield /user/profile/field Add new types of data to user profiles 1.9+
Webservice protocols webservice /webservice Define new protocols for web service communication (such as SOAP, XML-RPC, JSON, REST ...) 2.0+
Workshop allocation methods workshopallocation /mod/workshop/allocation Define ways how submissions are assigned for assessment in the Workshop module 2.0+
Workshop evaluation methods workshopeval /mod/workshop/eval Implement the calculation of the grade for assessment (grading grade) in the Workshop module 2.0+
Workshop grading strategies workshopform /mod/workshop/form Define the type of the grading form and implement the calculation of the grade for submission in the Workshop module 2.0+


PRO TIP: You can get the most exact list of types in your version of Moodle with the following script:

<?php                                                                                                        
define('CLI_SCRIPT', true);
require('path/to/config.php'); // global moodle config file.
print_object(get_plugin_types());



See also