Note:

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

Developer documentation: Difference between revisions

From MoodleDocs
Line 67: Line 67:
This section is for documentation of specific components of the existing core Moodle code. Discussion of components that are under discussion or in development can be found in the [[Developer notes]] or on the [[Roadmap]].
This section is for documentation of specific components of the existing core Moodle code. Discussion of components that are under discussion or in development can be found in the [[Developer notes]] or on the [[Roadmap]].


*[[Migration to Role-driven model|Migration to Role-driven model]] @ v[[1.7]]
===Core components that affect everything===
 
* lib/moodlelib.php
* lib/weblib.php for outputting stuff.  
*[[XMLDB_Documentation|Database abstraction layer]] @ v[[1.7]]
*[[XMLDB_Documentation|Database abstraction layer]] @ v[[1.7]]
*[[Roles|Roles and Capabilities system]] @ v[[1.7]] for controlling who can do what.
*[[lib/formslib.php|Forms library]] @ v[[1.8]] for creating accessible and secure HTML forms that let users edit things.
===Core libraries with a more specific uses===
*[[Authentication API]]
*[[Cookieless Sessions]]
*[[Moodle Network|Moodle Network]]
*[[Email processing]]
*[[Environment checking|Environment checking]] before install, check the user's server to ensure Moodle will work there.
*[[Question engine]]
*[[Stats package]]
*[[UTF-8 migration|Migration to UTF-8]] @ v[[:Category:Moodle 1.6|1.6]]
*[[UTF-8 migration|Migration to UTF-8]] @ v[[:Category:Moodle 1.6|1.6]]
*[[Question engine]]
 
===Modules included in the standard distribution===
 
*[[Quiz developer docs|Quiz module]]
*[[Quiz developer docs|Quiz module]]
*[[SCORM schema|SCORM module 1.5 schema]]
*[[SCORM schema|SCORM module 1.5 schema]]
*[[Authentication API]]
*[[Stats package]]
*[[Email processing]]
*[[Cookieless Sessions]]
*[[lib/formslib.php|Formslib]] for quickly writing code to display and process more accessible and secure forms.
*[[Moodle Network|Moodle Network]]


==Documentation for contributed code==
==Documentation for contributed code==

Revision as of 10:38, 26 April 2007

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.

Guidelines

The following guidelines are crucial reading for anyone wanting to contribute to the Moodle code base:

Resources and tools

How you can contribute

The M in Moodle stands for 'Modular'. There are many different types of components that you can contribute that can be plugged into Moodle to provide additional functionality. When you have developed a new component please publish it in the database of Moodle modules and plugins. The following types of plugins currently exist (in alphabetical order):

There are also ways you can contribute that don't involve PHP programming:

You can also help a lot by

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 crystalize 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.

Documentation for core components

This section is for documentation of specific components of the existing core Moodle code. Discussion of components that are under discussion or in development can be found in the Developer notes or on the Roadmap.

Core components that affect everything

Core libraries with a more specific uses

Modules included in the standard distribution

Documentation for contributed code

Many Moodle users contribute code for the benefit of other Moodle users. This can take the form of new activity modules, blocks, themes, resource plug-ins, assignment plug-ins, question type plug-ins, question import/export formats, quiz report plug-ins, course formats, ... This code is initially posted on the forums in the Using Moodle course and then often goes into the contrib area of the Moodle CVS repository. When you have developed a new component please publish it in the database of Moodle modules and plugins. Developer documentation for these components should be listed here.

See also

zh:开发者文档