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
(→‎Tools: sub-headings added)
Line 142: Line 142:
== Tools ==
== Tools ==
Some tools people use when working on Moodle code:
Some tools people use when working on Moodle code:
=== IDEs ===
*[[Setting_up_Eclipse|Setting up Eclipse for Moodle development]] - Eclipse is a great editor to use for php development, if you can work out how to set it up.
*[[Setting_up_Eclipse|Setting up Eclipse for Moodle development]] - Eclipse is a great editor to use for php development, if you can work out how to set it up.
*[[vim|Setting up Vim for Moodle development]]
*[[vim|Setting up Vim for Moodle development]]
*[[Setting_up_Netbeans|Setting up NetBeans for Moodle development]] - NetBeans for PHP is a great out-of-the-box editor.
*[[Setting_up_Netbeans|Setting up NetBeans for Moodle development]] - NetBeans for PHP is a great out-of-the-box editor.
=== Browser add-ons ===
*[http://getfirebug.com Firebug] add-on for Firefox.
: Some enhancements to make Firebug even more powerful: [http://www.drweb.de/magazin/mehr-power-fur-firebug/ Mehr Power für Firebug] (list of 10 enhancements, in German, but you can follow the links)
: Firebug now got it's own page: [[Firebug]]
* [[Web developer extension]]
=== Miscellaneous ===
*[[ctags|Ctags]] - Using a tags file to navigate code
*[[ctags|Ctags]] - Using a tags file to navigate code
*[[W3C_validation|W3C HTML validator]] - Moodle has built in support to make using it easier.
*[[W3C_validation|W3C HTML validator]] - Moodle has built in support to make using it easier.
*[http://getfirebug.com Firebug] add-on for Firefox.
** Some enhancements to make Firebug even more powerful: [http://www.drweb.de/magazin/mehr-power-fur-firebug/ Mehr Power für Firebug] (list of 10 enhancements, in German, but you can follow the links)
** Firebug now got it's own page: [[Firebug]]
*[[Windows Installer|Windows Installer]] - Windows Installer documentation for developer.
*[[Windows Installer|Windows Installer]] - Windows Installer documentation for developer.


* See also: [http://dev.moodle.org/mod/forum/view.php?id=18 Useful Development Tools forum]in the [http://dev.moodle.org/course/view.php?id=2 Introduction to Moodle Programming course]
See also: [http://dev.moodle.org/mod/forum/view.php?id=18 Useful Development Tools forum]in the [http://dev.moodle.org/course/view.php?id=2 Introduction to Moodle Programming course]


==See also==
==See also==

Revision as of 19:08, 15 April 2009

The Developer section of Moodle Docs is aimed at developers who contribute to the Moodle code, plugins, themes, and so on. (If you manage a Moodle site, Administrator documentation may suit your needs better. If you teach using Moodle, try Teacher documentation.)

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.

How Moodle development works

The overview of the Moodle development process explains how Moodle development occurs and how people become Moodle developers. Current plans are listed on the Roadmap.

You can also enrol in one of the Moodle Developer Courses.

Guidelines

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

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.

The documents below give a general overview. For detailed function-by-function documentation, see the phpDocumentor documentation that is automatically generated from the comments in the code.

And don't forget that the most up-to-date and detailed description of how the code works is the code itself, and you can browse the code online using PHPXref.

Core components that affect everything

Core libraries with a more specific uses

Modules included in the standard distribution

How you can contribute

Make a new plugin

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:

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.

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

Some enhancements to make Firebug even more powerful: Mehr Power für Firebug (list of 10 enhancements, in German, but you can follow the links)
Firebug now got it's own page: Firebug

Miscellaneous

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

See also