Difference between revisions of "Developer documentation"

Jump to: navigation, search
(Documentation for core components)
(Make a new plugin)
Line 24: Line 24:
 
==How you can contribute==
 
==How you can contribute==
  
===Make a new plugin===
+
== Speaking in English E-Learning Course ==
  
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:
+
Speaking in English E-Learning Course
*[[Modules|Activity modules]], see also [[NEWMODULE Documentation]] (work in progress)
 
**and [[Subplugins|Sub-Plugins]] (2.0 Onwards)
 
*[[Admin reports|Admin reports]]
 
*[[Assignment types|Assignment types]]
 
*[[Authentication plugins|Authentication plugins]]
 
*[[Blocks|Blocks]]
 
*Content editors (2.0 onwards)
 
*[[Course formats]]
 
*[[Course Report Plugins|Course reports]]
 
*Course importers (2.0 onwards)
 
*[[Database fields|Database fields]]
 
*[[Database presets|Database presets]]
 
*[[Enrolment plugins|Enrolment plugins]]
 
*[[Filters|Filters]]
 
*[[Gradebook_Report_Tutorial|Gradebook report]]
 
*[[Gradebook export|Gradebook export]]
 
*[[Gradebook import|Gradebook import]]
 
*Message senders (2.0 onwards)
 
*Mnet services
 
*Plagiarism detection plugins (2.0 onwards)
 
*[[Writing_a_Portfolio_Plugin|Portfolio plugins]] (2.0 onwards)
 
*[[Question_type_plugin_how_to|Question types]]
 
*[[Question import/export formats|Question import/export formats]]
 
*[[How to write a quiz report plugin|Quiz reports]]
 
*[[Repository plugins|Repository plugins]] (2.0 onwards)
 
*[[Resource types|Resource types]]
 
*[[Search engine adapters|Search engine adapters]]
 
*Themes which are different in [[Themes_2.0|Moodle 2.0]], and [[Theme_basics|earlier versions]].
 
*User profile fields
 
*[[Web services (2.0 onwards)|Web services (2.0 onwards)]]
 
*Workshop allocators (2.0 onwards)
 
*Workshop forms (2.0 onwards)
 
*Workshop evaluators (2.0 onwards)
 
 
 
General information that applies to all types of plugins
 
*[[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]]
 
 
 
Please see the [[Guidelines for contributed code|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_customisation|local customisations]] hook.
 
  
 
===Change core code===
 
===Change core code===

Revision as of 21:21, 26 April 2011

moodle-development-logo.jpg

This Developer section of Moodle Docs is aimed at developers who contribute to the Moodle code, plugins, themes, and so on.


Note: New developer documentation pages should be added to the Development namespace by typing

Development:
before the new page name i.e.
[[New page name]]
. If you are a developer, you probably want to change your preferences to include the Development namespace in searches.

A page may be added to the Developer category by adding the template
{{CategoryDeveloper}}
to the bottom of the page. - If required, you can use
[[Category:Sort key]]
to provide a sort key other than the default page name.

Speaking in English E-Learning Course

Speaking in English E-Learning Course

Speaking in English E-Learning Course

Speaking in English E-Learning Course

Speaking in English E-Learning Course

Speaking in English E-Learning Course

How you can contribute

Speaking in English E-Learning Course

Speaking in English E-Learning Course

Change core code

Some types of change can only be made by editing the core Moodle code. Such changes are much harder to maintain than plugins. If you want your core change to be considered for inclusion in the official Moodle release, you need to create an issue in the tracker, and attach your change as a patch. It is also a good idea to discuss your ideas in the forums first. See Overview#Major_Development for more details.

Ways to contribute that do not involve PHP programming

Plans for the future

Ideas for and details of planned future features of Moodle are initially discussed on the forums in the Using Moodle course at moodle.org. That developer discussions are intermixed with user discussions in the same forums may seem strange at first but is one of the reasons for the success of Moodle. It is important that both end-users and developers discuss the future features together.

Once ideas begin to crystallize on the forums they can be summarized in this wiki, either as part of the roadmap or in the form of developer notes. These pages then form the basis for further discussion in the forums.

Resources

Tools

Some tools people use when working on Moodle code:

IDEs

Browser add-ons

Miscellaneous

See also: Useful Development Tools forumin the Introduction to Moodle Programming course

See also