Plugin types: Difference between revisions
From MoodleDocs
Andrew Davis (talk | contribs) No edit summary |
No edit summary |
||
Line 30: | Line 30: | ||
*[[Repository plugins|Repository plugins]] (2.0 onwards) | *[[Repository plugins|Repository plugins]] (2.0 onwards) | ||
*[[Resource types|Resource types]] | *[[Resource types|Resource types]] | ||
*[[SCORM reports]] | |||
*[[Search engine adapters|Search engine adapters]] | *[[Search engine adapters|Search engine adapters]] | ||
*Themes which are different in [[Themes_2.0|Moodle 2.0]], and [[Theme_basics|earlier versions]]. | *Themes which are different in [[Themes_2.0|Moodle 2.0]], and [[Theme_basics|earlier versions]]. |
Revision as of 02:16, 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:
- Activity modules, see also NEWMODULE Documentation (work in progress)
- and Sub-Plugins (2.0 Onwards)
- Admin reports
- Assignment types
- Authentication plugins
- Blocks
- Content editors (2.0 onwards)
- Course Formats
- Course reports
- Course importers (2.0 onwards)
- Database fields
- Database presets
- Enrolment plugins
- Filters
- Gradebook report
- Gradebook export
- Gradebook import
- Message consumers (2.0 onwards)
- Message senders (2.0 onwards)
- Mnet services
- Plagiarism detection plugins (2.0 onwards)
- Portfolio plugins (2.0 onwards)
- Question types
- Question import/export formats
- Quiz reports
- Repository plugins (2.0 onwards)
- Resource types
- SCORM reports
- Search engine adapters
- Themes which are different in Moodle 2.0, and earlier versions.
- User profile fields
- Web services
- Web service protocols
- Workshop allocators (2.0 onwards)
- Workshop forms (2.0 onwards)
- Workshop evaluators (2.0 onwards)
General 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.