Note:

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

Plugin types: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 3: Line 3:
There are many '''types''' of plugin you can write:
There are many '''types''' of plugin you can write:


*[[Activity modules]], see also [[NEWMODULE Documentation]] (work in progress)
*[[Activity modules]]
**and [[Subplugins|Sub-Plugins]] (2.0 Onwards)
**and [[Subplugins]] (2.0 Onwards)
*[[Admin reports|Admin reports]]
*[[Admin reports]]
*[[Admin tools]]
*[[Assignment types|Assignment types]]
*[[Assignment types|Assignment types]]
*[[Authentication plugins|Authentication plugins]]
*[[Authentication plugins]]
*[[Blocks|Blocks]]
*[[Blocks]]
*Content editors (2.0 onwards)
*Content editors (2.0 onwards)
*[[Course Format|Course Formats]]
*[[Course formats]]
*[[Course Report Plugins|Course reports]]
*[[Course reports]]
*Course importers (2.0 onwards)
*Course importers (2.0 onwards)
*[[Database fields|Database fields]]
*[[Database fields]]
*[[:en:Database presets|Database presets]]
*[[Database presets]]
*[[Enrolment plugins|Enrolment plugins]]
*[[Editors]]
*[[Filters|Filters]]
*[[Enrolment plugins]]
*[[Gradebook_Report_Tutorial|Gradebook report]]
*[[Filters]]
*[[Gradebook export|Gradebook export]]
*[[Gradebook export]]
*[[Gradebook import|Gradebook import]]
*[[Gradebook import]]
*[[Messaging_consumers|Message consumers]] (2.0 onwards)
*[[Gradebook reports]]
*[[Message_API|Message senders]] (2.0 onwards)
*[[Grading_methods]]
*Mnet services
*[[Local plugins]]
*Plagiarism detection plugins (2.0 onwards)
*[[Messaging consumers]] (2.0 onwards)
*[[Writing_a_Portfolio_Plugin|Portfolio plugins]] (2.0 onwards)
*[[Mnet services]]
*[[Question_type_plugin_how_to|Question types]]
*[[Plagiarism plugins]] (2.0 onwards)
*[[Question import/export formats|Question import/export formats]]
*[[Portfolio plugins]] (2.0 onwards)
*[[How to write a quiz report plugin|Quiz reports]]
*[[Question behaviours]]
*[[Repository plugins|Repository plugins]] (2.0 onwards)
*[[Question formats]]
*[[Resource types|Resource types]]
*[[Question types]] (2.0 and 2.1 onwards)
*[[Quiz reports]]
*[[Repository plugins]] (2.0 onwards)
*[[Resource types]] (1.9 and earlier only)
*[[SCORM reports]]
*[[SCORM reports]]
*[[Search engine adapters|Search engine adapters]]
*[[Themes]] (2.0 onwards) (see [[Theme 1.9]] for older plugins).
*Themes which are different in [[Themes_2.0|Moodle 2.0]], and [[Theme_basics|earlier versions]].
*[[User profile fields]]
*[[User profile fields]]
*[[Creating_a_web_service_and_a_web_service_function|Web services]]
*[[Creating_a_web_service_and_a_web_service_function|Web services]]
*[[Webservice_protocols|Web service protocols]]
*[[Webservice protocols]]
*Workshop allocators (2.0 onwards)
*Workshop allocators (2.0 onwards)
*Workshop forms (2.0 onwards)
*Workshop forms (2.0 onwards)
*Workshop evaluators (2.0 onwards)
*Workshop evaluators (2.0 onwards)


General information that applies to all types of plugins
Other information that applies to all types of plugins:
 
*[[Places to search for lang strings|Where to put language strings for your plugin]]
*[[Places to search for lang strings|Where to put language strings for your plugin]]
*[[Installing and upgrading plugin database tables|Defining the database tables for your plugin]]
*[[Installing and upgrading plugin database tables|Defining the database tables for your plugin]]

Revision as of 06:11, 30 January 2012

The M in Moodle stands for modular, and the easiest, most maintainable way to add new functionality to Moodle is by using one of the many plugin APIs.

There are many types of plugin you can write:

Other information that applies to all types of plugins:

Please see the Guidelines for contributed code for an overview of how to contribute to the Moodle code.

Sometimes it is not possible to write a proper plugin for what you want to do, in which case you may have to resort to using the local customisations hook.