Plugin types: Difference between revisions
David Mudrak (talk | contribs) m (Protected "Plugin types" ([Edit=Allow only administrators] (expires 08:50, 21 May 2016 (UTC)) [Move=Allow only administrators] (expires 08:50, 21 May 2016 (UTC)))) |
David Mudrak (talk | contribs) (Updating the list of known plugin types. The order now matches the one used by the plugin manager in Moodle.) |
||
Line 15: | Line 15: | ||
| mod | | mod | ||
| /mod | | /mod | ||
| Activity modules are | | Activity modules are essential types of plugins in Moodle as they provide activities in courses. For example: Forum, Quiz and Assignment. | ||
| | | 1.0+ | ||
|- | |- | ||
| [[Assign_submission_plugins|Assignment submission plugins]] | |||
| [[Assign_submission_plugins|Assignment | |||
| assignsubmission | | assignsubmission | ||
| /mod/assign/submission | | /mod/assign/submission | ||
Line 48: | Line 24: | ||
| 2.3+ | | 2.3+ | ||
|- | |- | ||
| [[Assign_feedback_plugins|Assignment | | [[Assign_feedback_plugins|Assignment feedback plugins]] | ||
| assignfeedback | | assignfeedback | ||
| /mod/assign/feedback | | /mod/assign/feedback | ||
Line 54: | Line 30: | ||
| 2.3+ | | 2.3+ | ||
|- | |- | ||
| [[Atto|Atto editor | | [[Book tools]] | ||
| booktool | |||
| /mod/book/tool | |||
| Small information-displays or tools that can be moved around pages | |||
| 2.1+ | |||
|- | |||
| [[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+ | |||
|- | |||
| [[External tool source|LTI sources]] | |||
| ltisource | |||
| /mod/lti/source | |||
| LTI providers can be added to external tools easily through the external tools interface see [https://docs.moodle.org/en/External_tool Documentation on External Tools]. This type of plugin is specific to LTI providers that need a plugin that can register custom handlers to process LTI messages | |||
| 2.7+ | |||
|- | |||
| [[LTI services]] | |||
| ltiservice | |||
| /mod/lti/service | |||
| Allows the implementation of LTI services as described by the IMS LTI specification | |||
| 2.8+ | |||
|- | |||
| [[Quiz reports]] | |||
| quiz | |||
| /mod/quiz/report | |||
| Display and analyse the results of quizzes, or just plug miscellaneous behaviour into the quiz module | |||
| 1.1+ | |||
|- | |||
| [[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+ | |||
|- | |||
| [[SCORM reports]] | |||
| scormreport | |||
| /mod/scorm/report | |||
| Analysis of SCORM attempts | |||
| 2.2+ | |||
|- | |||
| [[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+ | |||
|- | |||
| [[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+ | |||
|- | |||
| [[Blocks]] | |||
| block | |||
| /blocks | |||
| Small information-displays or tools that can be moved around pages | |||
| 2.0+ | |||
|- | |||
| [[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+ | |||
|- | |||
| [[Question behaviours]] | |||
| qbehaviour | |||
| /question/behaviour | |||
| Control how student interact with questions during an attempt | |||
| 2.1+ | |||
|- | |||
| [[Question formats|Question import/export formats]] | |||
| qformat | |||
| /question/format | |||
| Import and export question definitions to/from the question bank | |||
| 1.6+ | |||
|- | |||
| [[Filters|Text filters]] | |||
| filter | |||
| /filter | |||
| Automatically convert, highlight, and transmogrify text posted into Moodle. | |||
| 1.4+ | |||
|- | |||
| [[Editors]] | |||
| editor | |||
| /lib/editor | |||
| Alternative text editors for editing content | |||
| 2.0+ | |||
|- | |||
| [[Atto|Atto editor plugins]] | |||
| atto | | atto | ||
| /lib/editor/atto/plugins | | /lib/editor/atto/plugins | ||
| Extra functionality for the Atto text editor | | Extra functionality for the Atto text editor | ||
| 2.7+ | | 2.7+ | ||
|- | |||
| [[TinyMCE editor plugins]] | |||
| tinymce | |||
| /lib/editor/tinymce/plugins | |||
| Extra functionality for the TinyMCE text editor. | |||
| 2.4+ | |||
|- | |||
| [[Enrolment plugins]] | |||
| enrol | |||
| /enrol | |||
| Ways to control who is enrolled in courses | |||
| 2.0+ | |||
|- | |- | ||
| [[Authentication plugins]] | | [[Authentication plugins]] | ||
Line 65: | Line 155: | ||
| Allows connection to external sources of authentication | | Allows connection to external sources of authentication | ||
| 2.0+ | | 2.0+ | ||
|- | |||
| [[Admin tools]] | |||
| tool | |||
| /admin/tool | |||
| Provides utility scripts useful for various site administration and maintenance tasks | |||
| 2.2+ | |||
|- | |||
| [[Log stores]] | |||
| logstore | |||
| /admin/tool/log/store | |||
| Event logs storage back-ends | |||
| 2.7+ | |||
|- | |||
| [[Antivirus plugins]] | |||
| antivirus | |||
| /lib/antivirus | |||
| Infrastructure for scanning and detecting viruses in user uploaded files | |||
| 3.1+ | |||
|- | |- | ||
| [[Availability conditions]] | | [[Availability conditions]] | ||
Line 70: | Line 178: | ||
| /availability/condition | | /availability/condition | ||
| Conditions to restrict user access to activities and sections. | | Conditions to restrict user access to activities and sections. | ||
| 2.7 | | 2.7+ | ||
|- | |- | ||
| [[Calendar types]] | | [[Calendar types]] | ||
Line 101: | Line 185: | ||
| Defines how dates are displayed throughout Moodle | | Defines how dates are displayed throughout Moodle | ||
| 2.6+ | | 2.6+ | ||
|- | |||
| [[Messaging consumers]] | |||
| message | |||
| /message/output | |||
| Represent various targets where messages and notifications can be sent to (email, sms, jabber, ...) | |||
| 2.0+ | |||
|- | |- | ||
| [[Course formats]] | | [[Course formats]] | ||
Line 108: | Line 198: | ||
| 1.3+ | | 1.3+ | ||
|- | |- | ||
| [[ | | [[Data formats]] | ||
| dataformat | | dataformat | ||
| /dataformat | | /dataformat | ||
| Formats for downloading | | Formats for data exporting and downloading | ||
| 3.1+ | | 3.1+ | ||
|- | |- | ||
| [[ | | [[User profile fields]] | ||
| | | profilefield | ||
| / | | /user/profile/field | ||
| | | Add new types of data to user profiles | ||
| | | 1.9+ | ||
|- | |- | ||
| [[ | | [[Reports]] | ||
| | | report | ||
| / | | /report | ||
| | | Provides useful views of data in a Moodle site for admins and teachers | ||
| 2. | | 2.2+ | ||
|- | |- | ||
| [[ | | [[Course reports]] | ||
| | | coursereport | ||
| / | | /course/report | ||
| | | Reports of activity within the course | ||
| 2. | | Up to 2.1 (for 2.2+ see [[Reports]]) | ||
|- | |- | ||
| [[Gradebook export]] | | [[Gradebook export]] | ||
Line 174: | Line 240: | ||
| 1.9+ | | 1.9+ | ||
|- | |- | ||
| [[Grading methods]] | | [[Grading methods|Advanced grading methods]] | ||
| gradingform | | gradingform | ||
| /grade/grading/form | | /grade/grading/form | ||
| Interfaces for actually performing grading in activity modules (eg Rubrics) | | Interfaces for actually performing grading in activity modules (eg Rubrics) | ||
| 2.2+ | | 2.2+ | ||
|- | |- | ||
| [[ | | [[MNet services]] | ||
| | | mnetservice | ||
| / | | /mnet/service | ||
| | | Allows to implement remote services for the [[MNet]] environment (deprecated, use web services instead) | ||
| 2.0+ | | 2.0+ | ||
|- | |- | ||
| [[ | | [[Webservice protocols]] | ||
| | | webservice | ||
| / | | /webservice | ||
| | | Define new protocols for web service communication (such as SOAP, XML-RPC, JSON, REST ...) | ||
| 2.0+ | | 2.0+ | ||
|- | |- | ||
| [[ | | [[Repository plugins]] | ||
| | | repository | ||
| / | | /repository | ||
| | | Connect to external sources of files to use in Moodle | ||
| 2.0+ | | 2.0+ | ||
|- | |- | ||
Line 203: | Line 269: | ||
| Connect external portfolio services as destinations for users to store Moodle content | | Connect external portfolio services as destinations for users to store Moodle content | ||
| 1.9+ | | 1.9+ | ||
|- | |- | ||
| [[Search engines]] | | [[Search engines]] | ||
Line 257: | Line 275: | ||
| Search engine backends to index Moodle's contents. | | Search engine backends to index Moodle's contents. | ||
| 3.1+ | | 3.1+ | ||
|- | |||
| [[Plagiarism plugins]] | |||
| plagiarism | |||
| /plagiarism | |||
| Define external services to process submitted files and content | |||
| 2.0+ | |||
|- | |||
| [[Cache store]] | |||
| cachestore | |||
| /cache/stores | |||
| Cache storage back-ends. | |||
| 2.4+ | |||
|- | |||
| [[Cache locks]] | |||
| cachelock | |||
| /cache/locks | |||
| Cache lock implementations. | |||
| 2.4+ | |||
|- | |- | ||
| [[Themes]] | | [[Themes]] | ||
Line 264: | Line 300: | ||
| 2.0+ | | 2.0+ | ||
|- | |- | ||
| [[ | | [[Local plugins]] | ||
| local | |||
| /local | |||
| Generic plugins for local customisations | |||
| | |||
| / | |||
| | |||
| 2.0+ | | 2.0+ | ||
|- | |- | ||
| [[ | | [[Assignment types|Legacy assignment types]] | ||
| | | assignment | ||
| /mod/ | | /mod/assignment/type | ||
| | | Different forms of assignments to be graded by teachers | ||
| 2. | | 1.x - 2.2 | ||
|- | |- | ||
| [[ | | [[Admin reports|Legacy admin reports]] | ||
| | | report | ||
| / | | /admin/report | ||
| | | Provides useful views of data in a Moodle site, for admins only. | ||
| 2. | | Up to 2.1 (for 2.2+ see [[Reports]]) | ||
|} | |} | ||
PRO TIP: You can get the most exact list of types in your version of Moodle with the following script: | PRO TIP: You can get the most exact list of types in your version of Moodle with the following script: |
Revision as of 10:10, 20 May 2016
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 (Frankenstyle) | Moodle path | Description | Moodle versions |
---|---|---|---|---|
Activity modules | mod | /mod | Activity modules are essential types of plugins in Moodle as they provide activities in courses. For example: Forum, Quiz and Assignment. | 1.0+ |
Assignment submission plugins | assignsubmission | /mod/assign/submission | Different forms of assignment submissions | 2.3+ |
Assignment feedback plugins | assignfeedback | /mod/assign/feedback | Different forms of assignment feedbacks | 2.3+ |
Book tools | booktool | /mod/book/tool | Small information-displays or tools that can be moved around pages | 2.1+ |
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+ |
LTI sources | ltisource | /mod/lti/source | LTI providers can be added to external tools easily through the external tools interface see Documentation on External Tools. This type of plugin is specific to LTI providers that need a plugin that can register custom handlers to process LTI messages | 2.7+ |
LTI services | ltiservice | /mod/lti/service | Allows the implementation of LTI services as described by the IMS LTI specification | 2.8+ |
Quiz reports | quiz | /mod/quiz/report | Display and analyse the results of quizzes, or just plug miscellaneous behaviour into the quiz module | 1.1+ |
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+ |
SCORM reports | scormreport | /mod/scorm/report | Analysis of SCORM attempts | 2.2+ |
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+ |
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+ |
Blocks | block | /blocks | Small information-displays or tools that can be moved around pages | 2.0+ |
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+ |
Question behaviours | qbehaviour | /question/behaviour | Control how student interact with questions during an attempt | 2.1+ |
Question import/export formats | qformat | /question/format | Import and export question definitions to/from the question bank | 1.6+ |
Text filters | filter | /filter | Automatically convert, highlight, and transmogrify text posted into Moodle. | 1.4+ |
Editors | editor | /lib/editor | Alternative text editors for editing content | 2.0+ |
Atto editor plugins | atto | /lib/editor/atto/plugins | Extra functionality for the Atto text editor | 2.7+ |
TinyMCE editor plugins | tinymce | /lib/editor/tinymce/plugins | Extra functionality for the TinyMCE text editor. | 2.4+ |
Enrolment plugins | enrol | /enrol | Ways to control who is enrolled in courses | 2.0+ |
Authentication plugins | auth | /auth | Allows connection to external sources of authentication | 2.0+ |
Admin tools | tool | /admin/tool | Provides utility scripts useful for various site administration and maintenance tasks | 2.2+ |
Log stores | logstore | /admin/tool/log/store | Event logs storage back-ends | 2.7+ |
Antivirus plugins | antivirus | /lib/antivirus | Infrastructure for scanning and detecting viruses in user uploaded files | 3.1+ |
Availability conditions | availability | /availability/condition | Conditions to restrict user access to activities and sections. | 2.7+ |
Calendar types | calendartype | /calendar/type | Defines how dates are displayed throughout Moodle | 2.6+ |
Messaging consumers | message | /message/output | Represent various targets where messages and notifications can be sent to (email, sms, jabber, ...) | 2.0+ |
Course formats | format | /course/format | Different ways of laying out the activities and blocks in a course | 1.3+ |
Data formats | dataformat | /dataformat | Formats for data exporting and downloading | 3.1+ |
User profile fields | profilefield | /user/profile/field | Add new types of data to user profiles | 1.9+ |
Reports | report | /report | Provides useful views of data in a Moodle site for admins and teachers | 2.2+ |
Course reports | coursereport | /course/report | Reports of activity within the course | Up to 2.1 (for 2.2+ see Reports) |
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+ |
Advanced grading methods | gradingform | /grade/grading/form | Interfaces for actually performing grading in activity modules (eg Rubrics) | 2.2+ |
MNet services | mnetservice | /mnet/service | Allows to implement remote services for the MNet environment (deprecated, use web services instead) | 2.0+ |
Webservice protocols | webservice | /webservice | Define new protocols for web service communication (such as SOAP, XML-RPC, JSON, REST ...) | 2.0+ |
Repository plugins | repository | /repository | Connect to external sources of files to use in Moodle | 2.0+ |
Portfolio plugins | portfolio | /portfolio | Connect external portfolio services as destinations for users to store Moodle content | 1.9+ |
Search engines | search | /search/engine | Search engine backends to index Moodle's contents. | 3.1+ |
Plagiarism plugins | plagiarism | /plagiarism | Define external services to process submitted files and content | 2.0+ |
Cache store | cachestore | /cache/stores | Cache storage back-ends. | 2.4+ |
Cache locks | cachelock | /cache/locks | Cache lock implementations. | 2.4+ |
Themes | theme | /theme | Change the look of Moodle by changing the the HTML and the CSS. | 2.0+ |
Local plugins | local | /local | Generic plugins for local customisations | 2.0+ |
Legacy assignment types | assignment | /mod/assignment/type | Different forms of assignments to be graded by teachers | 1.x - 2.2 |
Legacy 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) |
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());
Things you can find in all plugins
Although there are many different types of plugin, there are some things that work the same way in all plugin types, and we have a page that describes them.
Additionally you probably want to look at the page Plugin files.
Naming conventions
Warning, if you have to choose a plugin (directory) name. The name is validated by the method lib/classes/component.php::is_valid_plugin_name() with a regexp : /^[a-z](?:[a-z0-9_](?!__))*[a-z0-9]+$/ In particular, the minus (-) character is not considered as valid, and the plugin will be silently ignored if the name is not valid.