<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gzmask</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gzmask"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Gzmask"/>
	<updated>2026-10-09T07:42:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:File_API&amp;diff=35301</id>
		<title>Talk:File API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:File_API&amp;diff=35301"/>
		<updated>2012-09-04T22:54:16Z</updated>

		<summary type="html">&lt;p&gt;Gzmask: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gzmask</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:File_API&amp;diff=35269</id>
		<title>Talk:File API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:File_API&amp;diff=35269"/>
		<updated>2012-09-04T20:07:25Z</updated>

		<summary type="html">&lt;p&gt;Gzmask: Created page with &amp;quot;this is very lacking. what should &amp;#039;filepath&amp;#039; starts with? is it including the domain name/filearea/etc.? at least give an example!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this is very lacking. what should &#039;filepath&#039; starts with? is it including the domain name/filearea/etc.? at least give an example!&lt;/div&gt;</summary>
		<author><name>Gzmask</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Using_the_File_API_in_Moodle_forms&amp;diff=35266</id>
		<title>Talk:Using the File API in Moodle forms</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Using_the_File_API_in_Moodle_forms&amp;diff=35266"/>
		<updated>2012-09-04T17:52:25Z</updated>

		<summary type="html">&lt;p&gt;Gzmask: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I honestly don&#039;t know what this doc is saying in regards of how to use the file api. Should give more details on how to handle the mform file data. &lt;br /&gt;
&lt;br /&gt;
The two code examples in the middle of the document seem a bit random. Some explanation of what&#039;s going on in them would be really useful --[[User:Howard Miller|Howard Miller]] 08:32, 7 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Choosing whether an external resource should be copied into Moodle or referenced by Moodle ==&lt;br /&gt;
&lt;br /&gt;
With most Add Resource and Add Activity options, the file picker automatically copies the file from the external repository into Moodle&#039;s draft area by calling getFile(UUID) on the repository plug-in.&lt;br /&gt;
&lt;br /&gt;
This can be problematic for customers that require (for copyright or security reasons) that all content reside within the repository.  It is particularly tricky when the remote content is changing through a version control or workflow process as the Moodle copy will be out of sync with the repository original.  These are common requirements for users of HarvestRoad Hive(tm).&lt;br /&gt;
&lt;br /&gt;
Long term Moodle-Hive customers were familiar with this model from a custom integration HarvestRoad built with Moodle 1.9.  When the content is updated in Hive, Moodle users see the updated content. Furthermore, no sync process or cron job is required.&lt;br /&gt;
&lt;br /&gt;
The file picker behaves differently when launched with the &amp;quot;Add Resource &amp;gt; URL&amp;quot; option.  The file picker calls getUrl(UUID) on the repository plug-in instead, which is pretty much what Hive customers would like to do.&lt;br /&gt;
&lt;br /&gt;
Proposed solutions:&lt;br /&gt;
&lt;br /&gt;
1) Quick: Rather than always copying the file into Moodle, offer a choice in the file picker of copying the resource, or creating an URL to the external location of the resource. You could have two radio buttons under &amp;quot;Choose licence&amp;quot; on the file picker screen perhaps. This solution might not work if the repository does not support direct URL access or requires authentication.&lt;br /&gt;
&lt;br /&gt;
[[File:Ref type.png]]&lt;br /&gt;
&lt;br /&gt;
2) More elaborate: offer a choice in the file picker of copying the resource, or creating a reference to the external resource. The reference in this case would be the UUID returned by the file picker. If the user chooses to create a reference then the call to getFile(UUID) would be omitted when using the file picker, and is instead invoked every time the item is viewed. If the item retrieval requires authentication then the repository plugin will perform the authentication.&lt;br /&gt;
&lt;br /&gt;
The Hive team have partially implemented solution number 2, however the resource has to be added as a URL which is not ideal. In our solution our getUrl(UUID) creates an URL which actually points back to our Moodle repository plug-in which in turn streams the file from Hive. That is how we solved the authentication issue.&lt;br /&gt;
&lt;br /&gt;
eg: http://hive43demo.harvestroad.com.au/moodle2/repository/hive/view.php/5/50/812/peugeot.jpg&lt;br /&gt;
&lt;br /&gt;
In the above URL we have&lt;br /&gt;
&lt;br /&gt;
 * http://hive43demo.harvestroad.com.au/moodle2 =&amp;gt; moodle server&lt;br /&gt;
 * /repository/hive =&amp;gt; Hive repository plug-in&lt;br /&gt;
 * /view.php =&amp;gt; Hive repository plug-in stream.er It streams the content from Hive and then re-streams it back to the client. Authentication is performed implicitly if required.&lt;br /&gt;
 * /5/50/812 =&amp;gt; Hive proprietary UUID&lt;br /&gt;
 * /peugeot.jpg =&amp;gt; just a filename&lt;br /&gt;
&lt;br /&gt;
Bear in mind that Moodle itself should be agnostic about the UUID. The UUID is given by the getListing() method in the repository plug-in and it just needs to be passed back to getURL(UUID) or getFile(UUID)&lt;br /&gt;
&lt;br /&gt;
To summarise, it would be useful if Moodle could store the UUID of the picked resource rather than downloading the resouce per se. The UUID can then be used at request time in order to stream the resource via getFile or to create an Url to it via getUrl.&lt;/div&gt;</summary>
		<author><name>Gzmask</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:lib/formslib.php_Form_Definition&amp;diff=30034</id>
		<title>Talk:lib/formslib.php Form Definition</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:lib/formslib.php_Form_Definition&amp;diff=30034"/>
		<updated>2011-10-18T22:15:02Z</updated>

		<summary type="html">&lt;p&gt;Gzmask: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There&#039;s items on here (e.g. &#039;duration&#039;) that are 2.0 only. Please can people adding them mark them as such to avoid confusion. Ta --[[User:Howard Miller|Howard Miller]] 11:42, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Hi Howard, You can just add &amp;lt;nowiki&amp;gt;{{Moodle 2.0}}&amp;lt;/nowiki&amp;gt; to those items. I did that for &#039;duration&#039;. --[[User:Frank Ralf|Frank Ralf]] 11:54, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==No default value attribute for editor??==&lt;br /&gt;
tried the context key but doesn&#039;t work.&lt;br /&gt;
&lt;br /&gt;
== Use Static elements with care? ==&lt;br /&gt;
&lt;br /&gt;
Why are static elements listed as being used with care?&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Please do not create conditional elements in definition(), the definition() should not directly depend on the submitted data.&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m really not sure what this means. Does it actually mean &amp;quot;do not create elements that are conditional upon the values of other submitted elements&amp;quot; as opposed to not creating conditional elements at all? Lots of forms have conditional elements --[[User:Howard Miller|Howard Miller]] 13:06, 6 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, it means don&#039;t create things that are conditional on the data that the form will be editing. It is OK to condition on admin settings (e.g. if conditional activities are turned off, those options do not appear on the mod_edit forms. Or, perhaps, on capabilities. However, in that case you have to be careful. If someone without the capability uses the form, you have to make sure that when they submit, you don&#039;t overwrite the correct value in the database with blank from the form. In that situation, it may be better to use hardFreeze on those form elements, instead of conditionally omitting them.--[[User:Tim Hunt|Tim Hunt]] 15:14, 6 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Very disappointing, that nested fieldsets are not supported :( ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;$mform-&amp;gt;addElement(&#039;header&#039;, &#039;nameforyourheaderelement&#039;, get_string(&#039;titleforlegened&#039;, &#039;modulename&#039;));&#039;&#039;&lt;br /&gt;
&#039;&#039;You can&#039;t yet nest these visible fieldsets unfortunately. But in fact groups of elements are wrapped in invisible fieldsets.&#039;&#039;&lt;br /&gt;
&#039;&#039;You close a fieldset with moodle_form&#039;s closeHeaderBefore method. You tell closeHeaderBefore the element before you wish to end the fieldset. A fieldset is automatically closed if you open a new one.&amp;quot;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Should be possible to nest fieldsets!&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Please add this feature!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As I know this feature was already added to QuickForms.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;See example QuickForm solution of nested fieldset here:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[http://pear.saltybeagle.com/HTML_QuickForm_Renderer_Tableless/stack.php http://pear.saltybeagle.com/HTML_QuickForm_Renderer_Tableless/stack.php]&amp;lt;br&amp;gt;&lt;br /&gt;
Konrad Lorinczi [[User:- -|- -]] 18:02, 23 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiple file uploads? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If one has multiple files to be uploaded using the form and all files are to go in different location. It feels like, the below code does not satisfy the needs to do anything of this sort.&lt;br /&gt;
------------------------------------------&lt;br /&gt;
after form submission and validation use&lt;br /&gt;
&lt;br /&gt;
if ($data = $mform-&amp;gt;get_data()) {&lt;br /&gt;
      ...&lt;br /&gt;
    $mform-&amp;gt;save_files($destination_directory);&lt;br /&gt;
      ...&lt;br /&gt;
}&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
How this can be done?&lt;br /&gt;
Thanks.&lt;/div&gt;</summary>
		<author><name>Gzmask</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=29064</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=29064"/>
		<updated>2011-08-05T15:38:29Z</updated>

		<summary type="html">&lt;p&gt;Gzmask: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dev docs are currently being split from the User docs. During this time you will see quite a red links.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:moodle-development-logo.jpg|right|400px]]&lt;br /&gt;
&lt;br /&gt;
This Developer section of Moodle Docs is aimed at developers who contribute to the Moodle code, plugins, themes, and so on.&lt;br /&gt;
&lt;br /&gt;
If you manage a Moodle site, or if you teach using Moodle, try the [[:en:Main_page|User docs]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How Moodle development works==&lt;br /&gt;
&lt;br /&gt;
The [[Overview|overview of the Moodle development process]] explains how Moodle development occurs and how people become Moodle developers. Current plans are listed on the [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
You can also enrol in one of the [http://dev.moodle.org Moodle Developer Courses].&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
The following guidelines are crucial reading for anyone wanting to contribute to the Moodle code base:&lt;br /&gt;
*[[Coding|Coding guidelines]] have to be followed by all Moodle developers&lt;br /&gt;
*[[Moodle architecture]] gives an overview of how the Moodle code works&lt;br /&gt;
*[[Process]] explains how changes are incorporated into Moodle&lt;br /&gt;
*[[Tracker]] explains the Moodle Tracker for keeping track of bugs, issues, feature requests etc&lt;br /&gt;
*[[Working with the Community|Working with the Community]] explains how to engage with the dev community and discuss changes&lt;br /&gt;
*[[Unit tests|Unit tests]] explains how to run the unit tests, and how to write new test cases.&lt;br /&gt;
*[[Profiling PHP|Profiling PHP]] how to analyse your code to find out why it is slow.&lt;br /&gt;
*[[Fast portable SQL]] shows SQL techniques that are fast, efficient, and known to work on all supported DBs.&lt;br /&gt;
*[[Development hints and tips]] a (developing) list of general wisdom to help with your Moodle projects.&lt;br /&gt;
&lt;br /&gt;
==Documentation for core components==&lt;br /&gt;
&lt;br /&gt;
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|developer notes]] or on the [[Roadmap|roadmap]].&lt;br /&gt;
&lt;br /&gt;
The documents below give a general overview. For detailed function-by-function documentation, see the [http://phpdocs.moodle.org/ phpDocumentor] documentation that is automatically generated from the comments in the code. &lt;br /&gt;
&lt;br /&gt;
And don&#039;t forget that the most up-to-date and detailed description of how the code works is the code itself, and you can [http://xref.moodle.org/nav.html?index.html browse the code online] using [[PHPXref|PHPXref]].&lt;br /&gt;
&lt;br /&gt;
===Core components ===&lt;br /&gt;
&lt;br /&gt;
*[[XMLDB_Documentation|Database abstraction layer]]&lt;br /&gt;
*[[Roles|Roles and Capabilities system]] for controlling who can do what&lt;br /&gt;
*[[lib/formslib.php|Forms library]] for creating accessible and secure HTML forms that let users edit things&lt;br /&gt;
*[[Using_the_file_API|File API]] for managing files stored by Moodle&lt;br /&gt;
*[[Database schema introduction|The database schema]]&lt;br /&gt;
*[[What happens when you require config.php|What happens when you require config.php]]&lt;br /&gt;
*[[lib/moodlelib.php|lib/moodlelib.php]]&lt;br /&gt;
*[[lib/weblib.php|lib/weblib.php]] for outputting stuff&lt;br /&gt;
&lt;br /&gt;
===Core libraries with a more specific uses===&lt;br /&gt;
&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[:en:Cookieless Sessions|Cookieless Sessions]]&lt;br /&gt;
*[[:en:Email processing|Email processing]]&lt;br /&gt;
*[[Environment checking|Environment checking]] before install, check the user&#039;s server to ensure Moodle will work there.&lt;br /&gt;
*[[Groups|Groups system]]&lt;br /&gt;
*[[Grades|Gradebook]]&lt;br /&gt;
*[[Moodle Network|Moodle Network]]&lt;br /&gt;
*[[Question engine]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]] @ v[[:Category:Moodle 1.6|1.6]]&lt;br /&gt;
*[http://developer.yahoo.com/yui YUI JavaScript library] - YUI was selected as the official AJAX library for Moodle.&lt;br /&gt;
*[[lib/graphlib|lib/graphlib]]&lt;br /&gt;
*[[Admin settings|Admin settings]]&lt;br /&gt;
&lt;br /&gt;
===Modules included in the standard distribution===&lt;br /&gt;
&lt;br /&gt;
*[[Lesson Specification|Lesson Specification]]&lt;br /&gt;
*[[Quiz|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
&lt;br /&gt;
==How you can contribute==&lt;br /&gt;
&lt;br /&gt;
===Make a new plugin===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
*[[Modules|Activity modules]], see also [[NEWMODULE Documentation]] (work in progress)&lt;br /&gt;
**and [[Subplugins|Sub-Plugins]] (2.0 Onwards)&lt;br /&gt;
*[[Admin reports|Admin reports]]&lt;br /&gt;
*[[Assignment types|Assignment types]]&lt;br /&gt;
*[[Authentication plugins|Authentication plugins]]&lt;br /&gt;
*[[Blocks|Blocks]]&lt;br /&gt;
*Content editors (2.0 onwards)&lt;br /&gt;
*[[:en:Course formats]]&lt;br /&gt;
*[[Course Report Plugins|Course reports]]&lt;br /&gt;
*Course importers (2.0 onwards)&lt;br /&gt;
*[[Database fields|Database fields]]&lt;br /&gt;
*[[:en:Database presets|Database presets]]&lt;br /&gt;
*[[Enrolment plugins|Enrolment plugins]]&lt;br /&gt;
*[[Filters|Filters]]&lt;br /&gt;
*[[Gradebook_Report_Tutorial|Gradebook report]]&lt;br /&gt;
*[[Gradebook export|Gradebook export]]&lt;br /&gt;
*[[Gradebook import|Gradebook import]]&lt;br /&gt;
*Message senders (2.0 onwards)&lt;br /&gt;
*Mnet services&lt;br /&gt;
*Plagiarism detection plugins (2.0 onwards)&lt;br /&gt;
*[[Writing_a_Portfolio_Plugin|Portfolio plugins]] (2.0 onwards)&lt;br /&gt;
*[[Question_type_plugin_how_to|Question types]]&lt;br /&gt;
*[[Question import/export formats|Question import/export formats]]&lt;br /&gt;
*[[How to write a quiz report plugin|Quiz reports]]&lt;br /&gt;
*[[Repository plugins|Repository plugins]] (2.0 onwards)&lt;br /&gt;
*[[Resource types|Resource types]]&lt;br /&gt;
*[[Search engine adapters|Search engine adapters]]&lt;br /&gt;
*Themes which are different in [[Themes_2.0|Moodle 2.0]], and [[Theme_basics|earlier versions]].&lt;br /&gt;
*User profile fields&lt;br /&gt;
*[[Web services (2.0 onwards)|Web services (2.0 onwards)]]&lt;br /&gt;
*Workshop allocators (2.0 onwards)&lt;br /&gt;
*Workshop forms (2.0 onwards)&lt;br /&gt;
*Workshop evaluators (2.0 onwards)&lt;br /&gt;
&lt;br /&gt;
General information that applies to all types of plugins&lt;br /&gt;
*[[Places to search for lang strings|Where to put language strings for your plugin]]&lt;br /&gt;
*[[Installing and upgrading plugin database tables|Defining the database tables for your plugin]]&lt;br /&gt;
&lt;br /&gt;
Please see the [[Guidelines for contributed code|Guidelines for contributed code]] for an overview of how to contribute to the Moodle code.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Change core code===&lt;br /&gt;
&lt;br /&gt;
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|tracker]], and attach your change as a [[How_to_create_a_patch|patch]]. It is also a good idea to discuss your ideas in the forums first.  See [[Overview#Major_Development]] for more details.&lt;br /&gt;
&lt;br /&gt;
===Ways to contribute that do not involve PHP programming===&lt;br /&gt;
&lt;br /&gt;
*[[Theme development|Create Moodle themes]]&lt;br /&gt;
*[[:en:Translation|Translate Moodle into other languages]]&lt;br /&gt;
*[[:en:MoodleDocs:Guidelines for contributors|Help document Moodle]]&lt;br /&gt;
*[[Tests|Join the testing effort]], which involves [[Tracker|participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
==Plans for the future==&lt;br /&gt;
&lt;br /&gt;
Ideas for and details of planned future features of Moodle are initially discussed on the forums in the [http://moodle.org/course/view.php?id=5 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.&lt;br /&gt;
&lt;br /&gt;
Once ideas begin to crystallize on the forums they can be summarized in this wiki, either as part of the [[Roadmap|roadmap]] or in the form of [[Developer notes|developer notes]]. These pages then form the basis for further discussion in the forums.&lt;br /&gt;
&lt;br /&gt;
*[[Roadmap]]&lt;br /&gt;
*[[Developer notes|Developer notes]]&lt;br /&gt;
*[[Student projects]]&lt;br /&gt;
*[[Developer meetings]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
*[[Developer FAQ]] - frequently asked questions, especially useful for newcomers to Moodle&lt;br /&gt;
*[[Finding_your_way_into_the_Moodle_code|Finding your way into the Moodle code]] - also aimed at newcomers&lt;br /&gt;
*[http://tracker.moodle.org/ Moodle tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
**[[Firefox tracker search]] - How to setup a firefox quicksearch to easily navigate to moodle bugs&lt;br /&gt;
**[[Firefox tracker search#Firefox Search Plugins|Firefox Search Plugins]] - Find tracked issues even more easily&lt;br /&gt;
*[[Unmerged files]] - changes on the stable branch in CVS that have not been merged to [[HEAD]]&lt;br /&gt;
*Browse the code online:&lt;br /&gt;
**[http://cvs.moodle.org/moodle/ the code with a complete change history from CVS]&lt;br /&gt;
**[http://xref.moodle.org/index.html the code, with links generated by PHPXref]&lt;br /&gt;
*[http://phpdocs.moodle.org/ Moodle PHP doc reference] - compiled nightly from the comment attached to each class and function in the code.  &lt;br /&gt;
*[[Database Schema|Database Schema]] - for recent releases&lt;br /&gt;
*[http://moodle.org/course/view.php?id=5#4 Development news and discussion] section of Using Moodle course&lt;br /&gt;
**especially the [http://moodle.org/mod/forum/view.php?id=55 General developer forum]&lt;br /&gt;
**[[:en:Filters used on the Moodle.org forums|cool tricks you can use in the moodle.org forums]]&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Some tools people use when working on Moodle code:&lt;br /&gt;
&lt;br /&gt;
=== IDEs ===&lt;br /&gt;
&lt;br /&gt;
* [[Setting_up_Netbeans|Setting up NetBeans for Moodle development]] - NetBeans for PHP is a great out-of-the-box editor.&lt;br /&gt;
* [[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.&lt;br /&gt;
* [[vim|Setting up Vim for Moodle development]]&lt;br /&gt;
* [http://www.aptana.com/ Aptana Studio 2]&lt;br /&gt;
&lt;br /&gt;
=== Browser add-ons ===&lt;br /&gt;
*[http://getfirebug.com Firebug], see [[Firebug]] for details.&lt;br /&gt;
* [[Web developer extension]]&lt;br /&gt;
* [https://addons.mozilla.org/en-US/firefox/addon/394 ViewSourceWith] - The main goal is to view page source with external applications, but you can do a lot of other things as well.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous === &lt;br /&gt;
*[[ctags|Ctags]] - Using a tags file to navigate code&lt;br /&gt;
*[[W3C_validation|W3C HTML validator]] - Moodle has built in support to make using it easier.&lt;br /&gt;
*[[Windows Installer|Windows Installer]] - Windows Installer documentation for developer.&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/security/ Moodle Security Announcements]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
*[[Migrating contrib code to 2.0]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer tools]]&lt;/div&gt;</summary>
		<author><name>Gzmask</name></author>
	</entry>
</feed>