<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martin"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/Special:Contributions/Martin"/>
	<updated>2026-04-10T08:29:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=License&amp;diff=6721</id>
		<title>License</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=License&amp;diff=6721"/>
		<updated>2006-03-02T06:50:22Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Copyright License for Moodle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Copyright License for Moodle==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;name&#039;&#039; &#039;&#039;&#039;Moodle™&#039;&#039;&#039; is a registered trademark of Moodle Pty Ltd.&lt;br /&gt;
If you are intending to use the name to promote commercial Moodle services,&lt;br /&gt;
then you must seek permission from the Trust via the [http://moodle.com/helpdesk/ moodle.com helpdesk], in accordance with normal trademark restrictions. There are no restrictions&lt;br /&gt;
on how you use the name in other contexts.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;software&#039;&#039; &#039;&#039;&#039;Moodle&#039;&#039;&#039; is Copyright © 1999 onwards, [http://dougiamas.com/ Martin Dougiamas].&lt;br /&gt;
&lt;br /&gt;
This program is free software; you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation; either version 2 of the License, or&lt;br /&gt;
(at your option) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;br /&gt;
GNU General Public License below for more details.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;b&amp;gt;GNU GENERAL PUBLIC LICENCE&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;Version 2, June 1991&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 1989, 1991 Free Software Foundation, Inc.&lt;br /&gt;
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
Everyone is permitted to copy and distribute verbatim copies&lt;br /&gt;
of this license document, but changing it is not allowed.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The licenses for most software are designed to take away your&lt;br /&gt;
freedom to share and change it.  By contrast, the GNU General Public&lt;br /&gt;
License is intended to guarantee your freedom to share and change free&lt;br /&gt;
software--to make sure the software is free for all its users.  This&lt;br /&gt;
General Public License applies to most of the Free Software&lt;br /&gt;
Foundation&#039;s software and to any other program whose authors commit to&lt;br /&gt;
using it.  (Some other Free Software Foundation software is covered by&lt;br /&gt;
the GNU Library General Public License instead.)  You can apply it to&lt;br /&gt;
your programs, too.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;When we speak of free software, we are referring to freedom, not&lt;br /&gt;
price.  Our General Public Licenses are designed to make sure that you&lt;br /&gt;
have the freedom to distribute copies of free software (and charge for&lt;br /&gt;
this service if you wish), that you receive source code or can get it&lt;br /&gt;
if you want it, that you can change the software or use pieces of it&lt;br /&gt;
in new free programs; and that you know you can do these things.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;To protect your rights, we need to make restrictions that forbid&lt;br /&gt;
anyone to deny you these rights or to ask you to surrender the rights.&lt;br /&gt;
These restrictions translate to certain responsibilities for you if you&lt;br /&gt;
distribute copies of the software, or if you modify it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;For example, if you distribute copies of such a program, whether&lt;br /&gt;
gratis or for a fee, you must give the recipients all the rights that&lt;br /&gt;
you have.  You must make sure that they, too, receive or can get the&lt;br /&gt;
source code.  And you must show them these terms so they know their&lt;br /&gt;
rights.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;We protect your rights with two steps: (1) copyright the software, and&lt;br /&gt;
(2) offer you this license which gives you legal permission to copy,&lt;br /&gt;
distribute and/or modify the software.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Also, for each author&#039;s protection and ours, we want to make certain&lt;br /&gt;
that everyone understands that there is no warranty for this free&lt;br /&gt;
software.  If the software is modified by someone else and passed on, we&lt;br /&gt;
want its recipients to know that what they have is not the original, so&lt;br /&gt;
that any problems introduced by others will not reflect on the original&lt;br /&gt;
authors&#039; reputations.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Finally, any free program is threatened constantly by software&lt;br /&gt;
patents.  We wish to avoid the danger that redistributors of a free&lt;br /&gt;
program will individually obtain patent licenses, in effect making the&lt;br /&gt;
program proprietary.  To prevent this, we have made it clear that any&lt;br /&gt;
patent must be licensed for everyone&#039;s free use or not licensed at all.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The precise terms and conditions for copying, distribution and&lt;br /&gt;
modification follow.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;GNU GENERAL PUBLIC LICENSE&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;0. This License applies to any program or other work which contains&lt;br /&gt;
a notice placed by the copyright holder saying it may be distributed&lt;br /&gt;
under the terms of this General Public License.  The &amp;quot;Program&amp;quot;, below,&lt;br /&gt;
refers to any such program or work, and a &amp;quot;work based on the Program&amp;quot;&lt;br /&gt;
means either the Program or any derivative work under copyright law:&lt;br /&gt;
that is to say, a work containing the Program or a portion of it,&lt;br /&gt;
either verbatim or with modifications and/or translated into another&lt;br /&gt;
language.  (Hereinafter, translation is included without limitation in&lt;br /&gt;
the term &amp;quot;modification&amp;quot;.)  Each licensee is addressed as &amp;quot;you&amp;quot;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Activities other than copying, distribution and modification are not&lt;br /&gt;
covered by this License; they are outside its scope.  The act of&lt;br /&gt;
running the Program is not restricted, and the output from the Program&lt;br /&gt;
is covered only if its contents constitute a work based on the&lt;br /&gt;
Program (independent of having been made by running the Program).&lt;br /&gt;
Whether that is true depends on what the Program does.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;1. You may copy and distribute verbatim copies of the Program&#039;s&lt;br /&gt;
source code as you receive it, in any medium, provided that you&lt;br /&gt;
conspicuously and appropriately publish on each copy an appropriate&lt;br /&gt;
copyright notice and disclaimer of warranty; keep intact all the&lt;br /&gt;
notices that refer to this License and to the absence of any warranty;&lt;br /&gt;
and give any other recipients of the Program a copy of this License&lt;br /&gt;
along with the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;You may charge a fee for the physical act of transferring a copy, and&lt;br /&gt;
you may at your option offer warranty protection in exchange for a fee.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;2. You may modify your copy or copies of the Program or any portion&lt;br /&gt;
of it, thus forming a work based on the Program, and copy and&lt;br /&gt;
distribute such modifications or work under the terms of Section 1&lt;br /&gt;
above, provided that you also meet all of these conditions:&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;a) You must cause the modified files to carry prominent notices&lt;br /&gt;
stating that you changed the files and the date of any change.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;b) You must cause any work that you distribute or publish, that in&lt;br /&gt;
whole or in part contains or is derived from the Program or any&lt;br /&gt;
part thereof, to be licensed as a whole at no charge to all third&lt;br /&gt;
parties under the terms of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;c) If the modified program normally reads commands interactively&lt;br /&gt;
when run, you must cause it, when started running for such&lt;br /&gt;
interactive use in the most ordinary way, to print or display an&lt;br /&gt;
announcement including an appropriate copyright notice and a&lt;br /&gt;
notice that there is no warranty (or else, saying that you provide&lt;br /&gt;
a warranty) and that users may redistribute the program under&lt;br /&gt;
these conditions, and telling the user how to view a copy of this&lt;br /&gt;
License.  (Exception: if the Program itself is interactive but&lt;br /&gt;
does not normally print such an announcement, your work based on&lt;br /&gt;
the Program is not required to print an announcement.)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;These requirements apply to the modified work as a whole.  If&lt;br /&gt;
identifiable sections of that work are not derived from the Program,&lt;br /&gt;
and can be reasonably considered independent and separate works in&lt;br /&gt;
themselves, then this License, and its terms, do not apply to those&lt;br /&gt;
sections when you distribute them as separate works.  But when you&lt;br /&gt;
distribute the same sections as part of a whole which is a work based&lt;br /&gt;
on the Program, the distribution of the whole must be on the terms of&lt;br /&gt;
this License, whose permissions for other licensees extend to the&lt;br /&gt;
entire whole, and thus to each and every part regardless of who wrote it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Thus, it is not the intent of this section to claim rights or contest&lt;br /&gt;
your rights to work written entirely by you; rather, the intent is to&lt;br /&gt;
exercise the right to control the distribution of derivative or&lt;br /&gt;
collective works based on the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;In addition, mere aggregation of another work not based on the Program&lt;br /&gt;
with the Program (or with a work based on the Program) on a volume of&lt;br /&gt;
a storage or distribution medium does not bring the other work under&lt;br /&gt;
the scope of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;3. You may copy and distribute the Program (or a work based on it,&lt;br /&gt;
under Section 2) in object code or executable form under the terms of&lt;br /&gt;
Sections 1 and 2 above provided that you also do one of the following:&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;a) Accompany it with the complete corresponding machine-readable&lt;br /&gt;
source code, which must be distributed under the terms of Sections&lt;br /&gt;
1 and 2 above on a medium customarily used for software interchange; or,&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;b) Accompany it with a written offer, valid for at least three&lt;br /&gt;
years, to give any third party, for a charge no more than your&lt;br /&gt;
cost of physically performing source distribution, a complete&lt;br /&gt;
machine-readable copy of the corresponding source code, to be&lt;br /&gt;
distributed under the terms of Sections 1 and 2 above on a medium&lt;br /&gt;
customarily used for software interchange; or,&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;c) Accompany it with the information you received as to the offer&lt;br /&gt;
to distribute corresponding source code.  (This alternative is&lt;br /&gt;
allowed only for noncommercial distribution and only if you&lt;br /&gt;
received the program in object code or executable form with such&lt;br /&gt;
an offer, in accord with Subsection b above.)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The source code for a work means the preferred form of the work for&lt;br /&gt;
making modifications to it.  For an executable work, complete source&lt;br /&gt;
code means all the source code for all modules it contains, plus any&lt;br /&gt;
associated interface definition files, plus the scripts used to&lt;br /&gt;
control compilation and installation of the executable.  However, as a&lt;br /&gt;
special exception, the source code distributed need not include&lt;br /&gt;
anything that is normally distributed (in either source or binary&lt;br /&gt;
form) with the major components (compiler, kernel, and so on) of the&lt;br /&gt;
operating system on which the executable runs, unless that component&lt;br /&gt;
itself accompanies the executable.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If distribution of executable or object code is made by offering&lt;br /&gt;
access to copy from a designated place, then offering equivalent&lt;br /&gt;
access to copy the source code from the same place counts as&lt;br /&gt;
distribution of the source code, even though third parties are not&lt;br /&gt;
compelled to copy the source along with the object code.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;4. You may not copy, modify, sublicense, or distribute the Program&lt;br /&gt;
except as expressly provided under this License.  Any attempt&lt;br /&gt;
otherwise to copy, modify, sublicense or distribute the Program is&lt;br /&gt;
void, and will automatically terminate your rights under this License.&lt;br /&gt;
However, parties who have received copies, or rights, from you under&lt;br /&gt;
this License will not have their licenses terminated so long as such&lt;br /&gt;
parties remain in full compliance.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;5. You are not required to accept this License, since you have not&lt;br /&gt;
signed it.  However, nothing else grants you permission to modify or&lt;br /&gt;
distribute the Program or its derivative works.  These actions are&lt;br /&gt;
prohibited by law if you do not accept this License.  Therefore, by&lt;br /&gt;
modifying or distributing the Program (or any work based on the&lt;br /&gt;
Program), you indicate your acceptance of this License to do so, and&lt;br /&gt;
all its terms and conditions for copying, distributing or modifying&lt;br /&gt;
the Program or works based on it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;6. Each time you redistribute the Program (or any work based on the&lt;br /&gt;
Program), the recipient automatically receives a license from the&lt;br /&gt;
original licensor to copy, distribute or modify the Program subject to&lt;br /&gt;
these terms and conditions.  You may not impose any further&lt;br /&gt;
restrictions on the recipients&#039; exercise of the rights granted herein.&lt;br /&gt;
You are not responsible for enforcing compliance by third parties to&lt;br /&gt;
this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;7. If, as a consequence of a court judgment or allegation of patent&lt;br /&gt;
infringement or for any other reason (not limited to patent issues),&lt;br /&gt;
conditions are imposed on you (whether by court order, agreement or&lt;br /&gt;
otherwise) that contradict the conditions of this License, they do not&lt;br /&gt;
excuse you from the conditions of this License.  If you cannot&lt;br /&gt;
distribute so as to satisfy simultaneously your obligations under this&lt;br /&gt;
License and any other pertinent obligations, then as a consequence you&lt;br /&gt;
may not distribute the Program at all.  For example, if a patent&lt;br /&gt;
license would not permit royalty-free redistribution of the Program by&lt;br /&gt;
all those who receive copies directly or indirectly through you, then&lt;br /&gt;
the only way you could satisfy both it and this License would be to&lt;br /&gt;
refrain entirely from distribution of the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If any portion of this section is held invalid or unenforceable under&lt;br /&gt;
any particular circumstance, the balance of the section is intended to&lt;br /&gt;
apply and the section as a whole is intended to apply in other&lt;br /&gt;
circumstances.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;It is not the purpose of this section to induce you to infringe any&lt;br /&gt;
patents or other property right claims or to contest validity of any&lt;br /&gt;
such claims; this section has the sole purpose of protecting the&lt;br /&gt;
integrity of the free software distribution system, which is&lt;br /&gt;
implemented by public license practices.  Many people have made&lt;br /&gt;
generous contributions to the wide range of software distributed&lt;br /&gt;
through that system in reliance on consistent application of that&lt;br /&gt;
system; it is up to the author/donor to decide if he or she is willing&lt;br /&gt;
to distribute software through any other system and a licensee cannot&lt;br /&gt;
impose that choice.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;This section is intended to make thoroughly clear what is believed to&lt;br /&gt;
be a consequence of the rest of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;8. If the distribution and/or use of the Program is restricted in&lt;br /&gt;
certain countries either by patents or by copyrighted interfaces, the&lt;br /&gt;
original copyright holder who places the Program under this License&lt;br /&gt;
may add an explicit geographical distribution limitation excluding&lt;br /&gt;
those countries, so that distribution is permitted only in or among&lt;br /&gt;
countries not thus excluded.  In such case, this License incorporates&lt;br /&gt;
the limitation as if written in the body of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;9. The Free Software Foundation may publish revised and/or new versions&lt;br /&gt;
of the General Public License from time to time.  Such new versions will&lt;br /&gt;
be similar in spirit to the present version, but may differ in detail to&lt;br /&gt;
address new problems or concerns.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Each version is given a distinguishing version number.  If the Program&lt;br /&gt;
specifies a version number of this License which applies to it and &amp;quot;any&lt;br /&gt;
later version&amp;quot;, you have the option of following the terms and conditions&lt;br /&gt;
either of that version or of any later version published by the Free&lt;br /&gt;
Software Foundation.  If the Program does not specify a version number of&lt;br /&gt;
this License, you may choose any version ever published by the Free Software&lt;br /&gt;
Foundation.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;10. If you wish to incorporate parts of the Program into other free&lt;br /&gt;
programs whose distribution conditions are different, write to the author&lt;br /&gt;
to ask for permission.  For software which is copyrighted by the Free&lt;br /&gt;
Software Foundation, write to the Free Software Foundation; we sometimes&lt;br /&gt;
make exceptions for this.  Our decision will be guided by the two goals&lt;br /&gt;
of preserving the free status of all derivatives of our free software and&lt;br /&gt;
of promoting the sharing and reuse of software generally.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;NO WARRANTY&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY&lt;br /&gt;
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN&lt;br /&gt;
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES&lt;br /&gt;
PROVIDE THE PROGRAM &amp;quot;AS IS&amp;quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED&lt;br /&gt;
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS&lt;br /&gt;
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE&lt;br /&gt;
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,&lt;br /&gt;
REPAIR OR CORRECTION.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING&lt;br /&gt;
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR&lt;br /&gt;
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,&lt;br /&gt;
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING&lt;br /&gt;
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED&lt;br /&gt;
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY&lt;br /&gt;
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER&lt;br /&gt;
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE&lt;br /&gt;
POSSIBILITY OF SUCH DAMAGES.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;END OF TERMS AND CONDITIONS&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
&lt;br /&gt;
[[es:Licencia]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=6621</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=6621"/>
		<updated>2006-02-28T03:29:54Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How you can contribute==&lt;br /&gt;
&lt;br /&gt;
The M in Moodle stands for &#039;Modular&#039;. There are many different types of components that you can contribute that can be plugged into Moodle to provide additional funtionality. Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Blocks Howto|Blocks]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation|Translations]]&lt;br /&gt;
*[[Text filters]]&lt;br /&gt;
*[[Resource types]]&lt;br /&gt;
*[[Assignment types]]&lt;br /&gt;
*[[Question types]]&lt;br /&gt;
*[[Question import/export formats]]&lt;br /&gt;
*[[Quiz reports]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
You can also help a lot by&lt;br /&gt;
*[[Tests|Testing]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
==Guides for developers==&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[CVS (developer)|Moodle CVS for developers]]&lt;br /&gt;
&lt;br /&gt;
==Plans for the future==&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 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.&lt;br /&gt;
*[[Roadmap]]&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for core components==&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]] or on the [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Cookieless Sessions]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for contributed code==&lt;br /&gt;
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 [http://moodle.org/course/view.php?id=5 Using Moodle] course and then often go into the [http://cvs.sourceforge.net/viewcvs.py/moodle/contrib/ contrib area] of the Moodle [[CVS]] repository. Developer documentation for these components should be listed here.&lt;br /&gt;
&lt;br /&gt;
== Developer resources and tools ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[es:Documentación para Desarrolladores]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Tests&amp;diff=6620</id>
		<title>Development:Tests</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Tests&amp;diff=6620"/>
		<updated>2006-02-28T03:29:13Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Tests/Assignment]]&lt;br /&gt;
* [[Tests/Chat]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=6619</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=6619"/>
		<updated>2006-02-28T03:24:41Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* How you can contribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How you can contribute==&lt;br /&gt;
&lt;br /&gt;
The M in Moodle stands for &#039;Modular&#039;. There are many different types of components that you can contribute that can be plugged into Moodle to provide additional funtionality. Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Blocks Howto|Blocks]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation|Translations]]&lt;br /&gt;
*[[Text filters]]&lt;br /&gt;
*[[Resource types]]&lt;br /&gt;
*[[Assignment types]]&lt;br /&gt;
*[[Question types]]&lt;br /&gt;
*[[Question import/export formats]]&lt;br /&gt;
*[[Quiz reports]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
You can also help a lot by&lt;br /&gt;
*[[Testing]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
==Guides for developers==&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[CVS (developer)|Moodle CVS for developers]]&lt;br /&gt;
&lt;br /&gt;
==Plans for the future==&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 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.&lt;br /&gt;
*[[Roadmap]]&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for core components==&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]] or on the [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Cookieless Sessions]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for contributed code==&lt;br /&gt;
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 [http://moodle.org/course/view.php?id=5 Using Moodle] course and then often go into the [http://cvs.sourceforge.net/viewcvs.py/moodle/contrib/ contrib area] of the Moodle [[CVS]] repository. Developer documentation for these components should be listed here.&lt;br /&gt;
&lt;br /&gt;
== Developer resources and tools ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[es:Documentación para Desarrolladores]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MediaWiki:Sidebar&amp;diff=5285</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MediaWiki:Sidebar&amp;diff=5285"/>
		<updated>2006-02-13T16:46:38Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** helppage|help&lt;br /&gt;
&lt;br /&gt;
* Documentation&lt;br /&gt;
** About Moodle|About Moodle&lt;br /&gt;
** Teacher documentation|Teacher&lt;br /&gt;
** Administrator documentation|Administrator&lt;br /&gt;
** Developer documentation|Developer&lt;br /&gt;
** Martin Testing&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Blocks&amp;diff=5141</id>
		<title>Development:Blocks</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Blocks&amp;diff=5141"/>
		<updated>2006-02-11T04:24:21Z</updated>

		<summary type="html">&lt;p&gt;Martin: First version, pasted from original html page, needs cleaning up still&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Needs cleaning up - I only did the first page or so.)&lt;br /&gt;
&lt;br /&gt;
Original Author: Jon Papaioannou (pj@uom.gr)&lt;br /&gt;
&lt;br /&gt;
A Step-by-step Guide To Creating Blocks&lt;br /&gt;
&lt;br /&gt;
1. Summary&lt;br /&gt;
&lt;br /&gt;
The present document serves as a guide to developers who want to create their own blocks for use in Moodle. It applies to the 1.5 development version of Moodle (and any newer) only, as the blocks subsystem was rewritten and expanded for the 1.5 release. However, you can also find it useful if you want to modify blocks written for Moodle 1.3 and 1.4 to work with the latest versions (look at Appendix B).&lt;br /&gt;
&lt;br /&gt;
The guide is written as an interactive course which aims to develop a configurable, multi-purpose block that displays arbitrary HTML. It&#039;s targeted mainly at people with little experience with Moodle or programming in general and aims to show how easy it is to create new blocks for Moodle. A certain small amount of PHP programming knowledge is still required, though. Experienced developers and those who just want a reference text should refer to Appendix A because the main guide has a rather low concentration of pure information in the text.&lt;br /&gt;
&lt;br /&gt;
2. Basic Concepts&lt;br /&gt;
&lt;br /&gt;
Through this guide, we will be following the creation of an &amp;quot;HTML&amp;quot; block from scratch in order to demonstrate most of the block features at our disposal. Our block will be named &amp;quot;SimpleHTML&amp;quot;. This does not constrain us regarding the name of the actual directory on the server where the files for our block will be stored, but for consistency we will follow the practice of using the lowercased form &amp;quot;simplehtml&amp;quot; in any case where such a name is required. Whenever we refer to a file or directory name which contains &amp;quot;simplehtml&amp;quot;, it&#039;s important to remember that only the &amp;quot;simplehtml&amp;quot; part is up to us to change; the rest is standardized and essential for Moodle to work correctly.&lt;br /&gt;
&lt;br /&gt;
Whenever a file&#039;s path is mentioned in this guide, it will always start with a slash. This refers to the Moodle home directory; all files and directories will be referred to with respect to that directory.&lt;br /&gt;
&lt;br /&gt;
3. Ready, Set, Go!&lt;br /&gt;
&lt;br /&gt;
To define a &amp;quot;block&amp;quot; in Moodle, in the most basic case we need to provide just one source code file. We start by creating the directory /blocks/simplehtml/ and creating a file named /blocks/simplehtml/block_simplehtml.php which will hold our code. We then begin coding the block:&lt;br /&gt;
&lt;br /&gt;
      class block_simplehtml extends block_base {&lt;br /&gt;
          function init() {&lt;br /&gt;
              $this-&amp;gt;title = get_string(&#039;simplehtml&#039;, &#039;block_simplehtml&#039;);&lt;br /&gt;
              $this-&amp;gt;version = 2004111200;&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
The first line is our block class definition; it must be named exactly in the manner shown. Again, only the &amp;quot;simplehtml&amp;quot; part can (and indeed must) change; everything else is standardized.&lt;br /&gt;
&lt;br /&gt;
Our class is then given a small method: init. This is essential for all blocks, and its purpose is to set the two class member variables listed inside it. But what do these values actually mean? Here&#039;s a more detailed description.&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;title is the title displayed in the header of our block. We can set it to whatever we like; in this case it&#039;s set to read the actual title from a language file we are presumably distributing together with the block. I &#039;ll skip ahead a bit here and say that if you want your block to display no title at all, then you should set this to any descriptive value you want (but not make it an empty string). We will later see how to disable the title&#039;s display.&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;version is the version of our block. This actually would only make a difference if your block wanted to keep its own data in special tables in the database (i.e. for very complex blocks). In that case the version number is used exactly as it&#039;s used in activities; an upgrade script uses it to incrementally upgrade an &amp;quot;old&amp;quot; version of the block&#039;s data to the latest. We will outline this process further ahead, since blocks tend to be relatively simple and not hold their own private data. In our example, this is certainly the case so we just set $this-&amp;gt;version to YYYYMMDD00 and forget about it.&lt;br /&gt;
&lt;br /&gt;
UPDATING: Prior to version 1.5, the basic structure of each block class was slightly different. Refer to Appendix B for more information on the changes that old blocks have to make to conform to the new standard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. I Just Hear Static&lt;br /&gt;
&lt;br /&gt;
In order to get our block to actually display something on screen, we need to add one more method to our class (before the final closing brace in our file). The new code is:&lt;br /&gt;
&lt;br /&gt;
      function get_content() {&lt;br /&gt;
          if ($this-&amp;gt;content !== NULL) {&lt;br /&gt;
              return $this-&amp;gt;content;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          $this-&amp;gt;content = new stdClass;&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;text = &#039;The content of our SimpleHTML block!&#039;;&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;footer = &#039;Footer here...&#039;;&lt;br /&gt;
&lt;br /&gt;
          return $this-&amp;gt;content;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It can&#039;t get any simpler than that, can it? Let&#039;s dissect this method to see what&#039;s going on...&lt;br /&gt;
&lt;br /&gt;
First of all, there is a check that returns the current value of $this-&amp;gt;content if it&#039;s not NULL; otherwise we proceed with &amp;quot;computing&amp;quot; it. Since the computation is potentially a time-consuming operation and it will be called several times for each block (Moodle works that way internally), we take a precaution and include this time-saver.&lt;br /&gt;
&lt;br /&gt;
Supposing the content had not been computed before (it was NULL), we then define it from scratch. The code speaks for itself there, so there isn&#039;t much to say. Just keep in mind that we can use HTML both in the text and in the footer, if we want to.&lt;br /&gt;
&lt;br /&gt;
At this point our block should be capable of being automatically installed in Moodle and added to courses; visit your administration page to install it and after seeing it in action come back to continue our tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Configure That Out&lt;br /&gt;
&lt;br /&gt;
The current version of our block doesn&#039;t really do much; it just displays a fixed message, which is not very useful. What we &#039;d really like to do is allow the teachers to customize what goes into the block. This, in block-speak, is called &amp;quot;instance configuration&amp;quot;. So let&#039;s give our block some instance configuration...&lt;br /&gt;
&lt;br /&gt;
First of all, we need to tell Moodle that we want it to provide instance-specific configuration amenities to our block. That&#039;s as simple as adding one more method to our block class:&lt;br /&gt;
&lt;br /&gt;
      function instance_allow_config() {&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
This small change is enough to make Moodle display an &amp;quot;Edit...&amp;quot; icon in our block&#039;s header when we turn editing mode on in any course. However, if you try to click on that icon you will be presented with a notice that complains about the block&#039;s configuration not being implemented correctly. Try it, it&#039;s harmless.&lt;br /&gt;
&lt;br /&gt;
Moodle&#039;s complaints do make sense. We told it that we want to have configuration, but we didn&#039;t say what kind of configuration we want, or how it should be displayed. To do that, we need to create one more file: /blocks/simplehtml/config_instance.html (which has to be named exactly like that). For the moment, copy paste the following into it and save:&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;table cellpadding=&amp;quot;9&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;?php print_string(&#039;configcontent&#039;, &#039;block_simplehtml&#039;); ?&amp;gt;:&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
              &amp;lt;?php print_textarea(true, 10, 50, 0, 0, &#039;text&#039;, $this-&amp;gt;config-&amp;gt;text); ?&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;&amp;lt;?php print_string(&#039;savechanges&#039;) ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;?php use_html_editor(); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It isn&#039;t difficult to see that the above code just provides us with a wysiwyg-editor-enabled textarea to write our block&#039;s desired content in and a submit button to save. But... what&#039;s $this-&amp;gt;config-&amp;gt;text? Well...&lt;br /&gt;
&lt;br /&gt;
Moodle goes a long way to make things easier for block developers. Did you notice that the textarea is actually named &amp;quot;text&amp;quot;? When the submit button is pressed, Moodle saves each and every field it can find in our config_instance.html file as instance configuration data. We can then access that data as $this-&amp;gt;config-&amp;gt;variablename, where variablename is the actual name we used for our field; in this case, &amp;quot;text&amp;quot;. So in essence, the above form just pre-populates the textarea with the current content of the block (as indeed it should) and then allows us to change it.&lt;br /&gt;
&lt;br /&gt;
You also might be surprised by the presence of a submit button and the absence of any &amp;lt;form&amp;gt; element at the same time. But the truth is, we don&#039;t need to worry about that at all; Moodle goes a really long way to make things easier for developers! We just print the configuration options we want, in any format we want; include a submit button, and Moodle will handle all the rest itself. The instance configuration variables are automatically at our disposal to access from any of the class methods except init.&lt;br /&gt;
&lt;br /&gt;
      In the event where the default behavior is not satisfactory, we can still override it. However, this requires advanced modifications to our block class and will not be covered here; refer to Appendix A for more details.&lt;br /&gt;
&lt;br /&gt;
      Having now the ability to refer to this instance configuration data through $this-&amp;gt;config, the final twist is to tell our block to actually display what is saved in is configuration data. To do that, find this snippet in /blocks/simplehtml/block_simplehtml.php:&lt;br /&gt;
&lt;br /&gt;
      $this-&amp;gt;content = new stdClass;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;text = &#039;The content of our SimpleHTML block!&#039;;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;footer = &#039;Footer here...&#039;;&lt;br /&gt;
&lt;br /&gt;
      and change it to:&lt;br /&gt;
&lt;br /&gt;
      $this-&amp;gt;content = new stdClass;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;text = $this-&amp;gt;config-&amp;gt;text;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;footer = &#039;Footer here...&#039;;&lt;br /&gt;
&lt;br /&gt;
      Oh, and since the footer isn&#039;t really exciting at this point, we remove it from our block because it doesn&#039;t contribute anything. We could just as easily have decided to make the footer configurable in the above way, too. So for our latest code, the snippet becomes:&lt;br /&gt;
&lt;br /&gt;
      $this-&amp;gt;content = new stdClass;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;text = $this-&amp;gt;config-&amp;gt;text;&lt;br /&gt;
      $this-&amp;gt;content-&amp;gt;footer = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
      After this discussion, our block is ready for prime time! Indeed, if you now visit any course with a SimpleHTML block, you will see that modifying its contents is now a snap.&lt;br /&gt;
   6.&lt;br /&gt;
      The Specialists&lt;br /&gt;
&lt;br /&gt;
      Implementing instance configuration for the block&#039;s contents was good enough to whet our apetite, but who wants to stop there? Why not customize the block&#039;s title, too?&lt;br /&gt;
&lt;br /&gt;
      Why not, indeed. Well, our first attempt to achieve this is natural enough: let&#039;s add another field to /blocks/simplehtml/config_instance.html. Here goes:&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;?php print_string(&#039;configtitle&#039;, &#039;block_simplehtml&#039;); ?&amp;gt;:&amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;&amp;lt;?php echo $this-&amp;gt;config-&amp;gt;title; ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      We save the edited file, go to a course, edit the title of the block and... nothing happens! The instance configuration is saved correctly, all right (editing it once more proves that) but it&#039;s not being displayed. All we get is just the simple &amp;quot;SimpleHTML&amp;quot; title.&lt;br /&gt;
&lt;br /&gt;
      That&#039;s not too wierd, if we think back a bit. Do you remember that init method, where we set $this-&amp;gt;title? We didn&#039;t actually change its value from then, and $this-&amp;gt;title is definitely not the same as $this-&amp;gt;config-&amp;gt;title (to Moodle, at least). What we need is a way to update $this-&amp;gt;title with the value in the instance configuration. But as we said a bit earlier, we can use $this-&amp;gt;config in all methods except init! So what can we do?&lt;br /&gt;
&lt;br /&gt;
      Let&#039;s pull out another ace from our sleeve, and add this small method to our block class:&lt;br /&gt;
&lt;br /&gt;
      function specialization() {&lt;br /&gt;
          $this-&amp;gt;title = $this-&amp;gt;config-&amp;gt;title;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      Aha, here&#039;s what we wanted to do all along! But what&#039;s going on with the specialization method?&lt;br /&gt;
&lt;br /&gt;
      This &amp;quot;magic&amp;quot; method has actually a very nice property: it&#039;s guaranteed to be automatically called by Moodle as soon as our instance configuration is loaded and available (that is, immediately after init is called). That means before the block&#039;s content is computed for the first time, and indeed before anything else is done with the block. Thus, providing a specialization method is the natural choice for any configuration data that needs to be acted upon &amp;quot;as soon as possible&amp;quot;, as in this case.&lt;br /&gt;
   7.&lt;br /&gt;
      Now You See Me, Now You Don&#039;t&lt;br /&gt;
&lt;br /&gt;
      Now would be a good time to mention another nifty technique that can be used in blocks, and which comes in handy quite often. Specifically, it may be the case that our block will have something interesting to display some of the time; but in some other cases, it won&#039;t have anything useful to say. (An example here would be the &amp;quot;Recent Activity&amp;quot; block, in the case where no recent activity in fact exists. However in that case the block chooses to explicitly inform you of the lack of said activity, which is arguably useful). It would be nice, then, to be able to have our block &amp;quot;disappear&amp;quot; if it&#039;s not needed to display it.&lt;br /&gt;
&lt;br /&gt;
      This is indeed possible, and the way to do it is to make sure that after the get_content method is called, the block is completely void of content. Specifically, &amp;quot;void of content&amp;quot; means that both $this-&amp;gt;content-&amp;gt;text and $this-&amp;gt;content-&amp;gt;footer are each equal to the empty string (&#039;&#039;). Moodle performs this check by calling the block&#039;s is_empty() method, and if the block is indeed empty then it is not displayed at all.&lt;br /&gt;
&lt;br /&gt;
      Note that the exact value of the block&#039;s title and the presence or absence of a hide_header method do not affect this behavior. A block is considered empty if it has no content, irrespective of anything else.&lt;br /&gt;
   8.&lt;br /&gt;
      We Are Legion&lt;br /&gt;
&lt;br /&gt;
      Right now our block is fully configurable, both in title and content. It&#039;s so versatile, in fact, that we could make pretty much anything out of it. It would be really nice to be able to add multiple blocks of this type to a single course. And, as you might have guessed, doing that is as simple as adding another small method to our block class:&lt;br /&gt;
&lt;br /&gt;
      function instance_allow_multiple() {&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      This tells Moodle that it should allow any number of instances of the SimpleHTML block in any course. After saving the changes to our file, Moodle immediately allows us to add multiple copies of the block without further ado!&lt;br /&gt;
&lt;br /&gt;
      There are a couple more of interesting points to note here. First of all, even if a block itself allows multiple instances in the same page, the administrator still has the option of disallowing such behavior. This setting can be set separately for each block from the Administration / Configuration / Blocks page.&lt;br /&gt;
&lt;br /&gt;
      And finally, a nice detail is that as soon as we defined an instance_allow_multiple method, the method instance_allow_config that was already defined became obsolete. Moodle assumes that if a block allows multiple instances of itself, those instances will want to be configured (what is the point of same multiple instances in the same page if they are identical?) and thus automatically provides an &amp;quot;Edit&amp;quot; icon. So, we can also remove the whole instance_allow_config method now without harm. We had only needed it when multiple instances of the block were not allowed.&lt;br /&gt;
   9.&lt;br /&gt;
      The Effects of Globalization&lt;br /&gt;
&lt;br /&gt;
      Configuring each block instance with its own personal data is cool enough, but sometimes administrators need some way to &amp;quot;touch&amp;quot; all instances of a specific block at the same time. In the case of our SimpleHTML block, a few settings that would make sense to apply to all instances aren&#039;t that hard to come up with. For example, we might want to limit the contents of each block to only so many characters, or we might have a setting that filters HTML out of the block&#039;s contents, only allowing pure text in. Granted, such a feature wouldn&#039;t win us any awards for naming our block &amp;quot;SimpleHTML&amp;quot; but some tormented administrator somewhere might actually find it useful.&lt;br /&gt;
&lt;br /&gt;
      This kind of configuration is called &amp;quot;global configuration&amp;quot; and applies only to a specific block type (all instances of that block type are affected, however). Implementing such configuration for our block is quite similar to implementing the instance configuration. We will now see how to implement the second example, having a setting that only allows text and not HTML in the block&#039;s contents.&lt;br /&gt;
&lt;br /&gt;
      First of all, we need to tell Moodle that we want our block to provide global configuration by, what a surprise, adding a small method to our block class:&lt;br /&gt;
&lt;br /&gt;
      function has_config() {&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      Then, we need to create a HTML file that actually prints out the configuration screen. In our case, we &#039;ll just print out a checkbox saying &amp;quot;Do not allow HTML in the content&amp;quot; and a &amp;quot;submit&amp;quot; button. Let&#039;s create the file /blocks/simplehtml/config_global.html which again must be named just so, and copy paste the following into it:&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;block_simplehtml_strict&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;block_simplehtml_strict&amp;quot; value=&amp;quot;1&amp;quot; &lt;br /&gt;
        &amp;lt;?php if(!empty($CFG-&amp;gt;block_simplehtml_strict)) echo &#039;checked=&amp;quot;checked&amp;quot;&#039;; ?&amp;gt; /&amp;gt;&lt;br /&gt;
      &amp;lt;?php print_string(&#039;donotallowhtml&#039;, &#039;block_simplehtml&#039;); ?&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;&amp;lt;?php print_string(&#039;savechanges&#039;); ?&amp;gt;&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      True to our block&#039;s name, this looks simple enough. What it does is that it displays a checkbox named &amp;quot;block_simplehtml_strict&amp;quot; and if the Moodle configuration variable with the same name (i.e., $CFG-&amp;gt;block_simplehtml_strict) is set and not empty (that means it&#039;s not equal to an empty string, to zero, or to boolean false) it displays the box as pre-checked (reflecting the current status). Why does it check the configuration setting with the same name? Because the default implementation of the global configuration saving code takes all the variables we have in our form and saves them as Moodle configuration options with the same name. Thus, it&#039;s good practice to use a descriptive name and also one that won&#039;t possibly conflict with the name of another setting. &amp;quot;block_simplehtml_strict&amp;quot; clearly satisfies both requirements.&lt;br /&gt;
&lt;br /&gt;
      The astute reader may have noticed that we actually have two input fields named &amp;quot;block_simplehtml_strict&amp;quot; in our configuration file. One is hidden and its value is always 0; the other is the checkbox and its value is 1. What gives? Why have them both there?&lt;br /&gt;
&lt;br /&gt;
      Actually, this is a small trick we use to make our job as simple as possible. HTML forms work this way: if a checkbox in a form is not checked, its name does not appear at all in the variables passed to PHP when the form is submitted. That effectively means that, when we uncheck the box and click submit, the variable is not passed to PHP at all. Thus, PHP does not know to update its value to &amp;quot;0&amp;quot;, and our &amp;quot;strict&amp;quot; setting cannot be turned off at all once we turn it on for the first time. Not the behavior we want, surely.&lt;br /&gt;
&lt;br /&gt;
      However, when PHP handles received variables from a form, the variables are processed in the order in which they appear in the form. If a variable comes up having the same name with an already-processed variable, the new value overwrites the old one. Taking advantage of this, our logic runs as follows: the variable &amp;quot;block_simplehtml_strict&amp;quot; is first unconditionally set to &amp;quot;0&amp;quot;. Then, if the box is checked, it is set to &amp;quot;1&amp;quot;, overwriting the previous value as discussed. The net result is that our configuration setting behaves as it should.&lt;br /&gt;
&lt;br /&gt;
      To round our bag of tricks up, notice that the use of if(!empty($CFG-&amp;gt;block_simplehtml_strict)) in the test for &amp;quot;should the box be checked by default?&amp;quot; is quite deliberate. The first time this script runs, the variable $CFG-&amp;gt;block_simplehtml_strict will not exist at all. After it&#039;s set for the first time, its value can be either &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot;. Given that both &amp;quot;not set&amp;quot; and the string &amp;quot;0&amp;quot; evaluate as empty while the sting &amp;quot;1&amp;quot; does not, we manage to avoid any warnings from PHP regarding the variable not being set at all, and have a nice human-readable representation for its two possible values (&amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
      Now that we have managed to cram a respectable amount of tricks into a few lines of HTML, we might as well discuss the alternative in case that tricks are not enough for a specific configuration setup we have in mind. Saving the data is done in the method config_save, the default implementation of which is as follows:&lt;br /&gt;
&lt;br /&gt;
      function config_save($data) {&lt;br /&gt;
          // Default behavior: save all variables as $CFG properties&lt;br /&gt;
          foreach ($data as $name =&amp;gt; $value) {&lt;br /&gt;
              set_config($name, $value);&lt;br /&gt;
          }&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      As can be clearly seen, Moodle passes this method an associative array $data which contains all the variables coming in from our configuration screen. If we wanted to do the job without the &amp;quot;hidden variable with the same name&amp;quot; trick we used above, one way to do it would be by overriding this method with the following:&lt;br /&gt;
&lt;br /&gt;
      function config_save($data) {&lt;br /&gt;
          if(isset($data[&#039;block_simplehtml_strict&#039;])) {&lt;br /&gt;
              set_config(&#039;block_simplehtml_strict&#039;, &#039;1&#039;);&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
              set_config(&#039;block_simplehtml_strict&#039;, &#039;0&#039;);&lt;br /&gt;
          }&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      Quite straightfoward: if the variable &amp;quot;block_simplehtml_strict&amp;quot; is passed to us, then it can only mean that the user has checked it, so set the configuration variable with the same name to &amp;quot;1&amp;quot;. Otherwise, set it to &amp;quot;0&amp;quot;. Of course, this version would need to be updated if we add more configuration options because it doesn&#039;t respond to them as the default implementation does. Still, it&#039;s useful to know how we can override the default implementation if it does not fit our needs (for example, we might not want to save the variable as part of the Moodle configuration but do something else with it).&lt;br /&gt;
&lt;br /&gt;
      So, we are now at the point where we know if the block should allow HTML tags in its content or not. How do we get the block to actually respect that setting?&lt;br /&gt;
&lt;br /&gt;
      We could decide to do one of two things: either have the block &amp;quot;clean&amp;quot; HTML out from the input before saving it in the instance configuration and then display it as-is (the &amp;quot;eager&amp;quot; approach); or have it save the data &amp;quot;as is&amp;quot; and then clean it up each time just before displaying it (the &amp;quot;lazy&amp;quot; approach). The eager approach involves doing work once when saving the configuration; the lazy approach means doing work each time the block is displayed and thus it promises to be worse performance-wise. We shall hence go with the eager approach.&lt;br /&gt;
&lt;br /&gt;
      Much as we did just before with overriding config_save, what is needed here is overriding the method instance_config_save which handles the instance configuration. The default implementation is as follows:&lt;br /&gt;
&lt;br /&gt;
      function instance_config_save($data) {&lt;br /&gt;
          $data = stripslashes_recursive($data);&lt;br /&gt;
          $this-&amp;gt;config = $data;&lt;br /&gt;
          return set_field(&#039;block_instance&#039;, &#039;configdata&#039;, base64_encode(serialize($data)), &lt;br /&gt;
                           &#039;id&#039;, $this-&amp;gt;instance-&amp;gt;id);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      This may look intimidating at first (what&#039;s all this stripslashes_recursive() and base64_encode() and serialize() stuff?) but do not despair; we won&#039;t have to touch any of it. We will only add some extra validation code in the beginning and then instruct Moodle to additionally call this default implementation to do the actual storing of the data. Specifically, we will add a method to our class which goes like this:&lt;br /&gt;
&lt;br /&gt;
      function instance_config_save($data) {&lt;br /&gt;
          // Clean the data if we have to&lt;br /&gt;
          global $CFG;&lt;br /&gt;
          if(!empty($CFG-&amp;gt;block_simplehtml_strict)) {&lt;br /&gt;
              $data[&#039;text&#039;] = strip_tags($data[&#039;text&#039;]);&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          // And now forward to the default implementation defined in the parent class&lt;br /&gt;
          return parent::instance_config_save($data);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      At last! Now the administrator has absolute power of life and death over what type of content is allowed in our &amp;quot;SimpleHTML&amp;quot; block! Absolute? Well... not exactly. In fact, if we think about it for a while, it will become apparent that if at some point in time HTML is allowed and some blocks have saved their content with HTML included, and afterwards the administrator changes the setting to &amp;quot;off&amp;quot;, this will only prevent subsequent content changes from including HTML. Blocks which already had HTML in their content would continue to display it!&lt;br /&gt;
&lt;br /&gt;
      Following that train of thought, the next stop is realizing that we wouldn&#039;t have this problem if we had chosen the lazy approach a while back, because in that case we would &amp;quot;sanitize&amp;quot; each block&#039;s content just before it was displayed. The only thing we can do with the eager approach is strip all the tags from the content of all SimpleHTML instances as soon as the admin setting is changed to &amp;quot;HTML off&amp;quot;; but even then, turning the setting back to &amp;quot;HTML on&amp;quot; won&#039;t bring back the tags we stripped away. On the other hand, the lazy approach might be slower, but it&#039;s more versatile; we can choose whether to strip or keep the HTML before displaying the content, and we won&#039;t lose it at all if the admin toggles the setting off and on again. Isn&#039;t the life of a developer simple and wonderful?&lt;br /&gt;
&lt;br /&gt;
      We will let this part of the tutorial come to a close with the obligatory excercise for the reader: in order to have the SimpleHTML block work &amp;quot;correctly&amp;quot;, find out how to strengthen the eager approach to strip out all tags from the existing configuration of all instances of our block, or go back and implement the lazy approach instead. (Hint: do that in the get_content method)&lt;br /&gt;
&lt;br /&gt;
      UPDATING: Prior to version 1.5, the file config_global.html was named simply config.html. Also, the methods config_save and config_print were named handle_config and print_config respectively. Upgrading a block to work with Moodle 1.5 involves updating these aspects; refer to Appendix B for more information.&lt;br /&gt;
  10.&lt;br /&gt;
      Eye Candy&lt;br /&gt;
&lt;br /&gt;
      Our block is just about complete functionally, so now let&#039;s take a look at some of the tricks we can use to make its behavior customized in a few more useful ways.&lt;br /&gt;
&lt;br /&gt;
      First of all, there are a couple of ways we can adjust the visual aspects of our block. For starters, it might be useful to create a block that doesn&#039;t display a header (title) at all. You can see this effect in action in the Course Description block that comes with Moodle. This behavior is achieved by, you guessed it, adding one more method to our block class:&lt;br /&gt;
&lt;br /&gt;
      function hide_header() {&lt;br /&gt;
          return true;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      One more note here: we cannot just set an empty title inside the block&#039;s init method; it&#039;s necessary for each block to have a unique, non-empty title after init is called so that Moodle can use those titles to differentiate between all of the installed blocks.&lt;br /&gt;
&lt;br /&gt;
      Another adjustment we might want to do is instruct our block to take up a certain amount of width on screen. Moodle handles this as a two-part process: first, it queries each block about its preferred width and takes the maximum number as the desired value. Then, the page that&#039;s being displayed can choose to use this value or, more probably, bring it within some specific range of values if it isn&#039;t already. That means that the width setting is a best-effort settlement; your block can request a certain width and Moodle will try to provide it, but there&#039;s no guarantee whatsoever about the end result. As a concrete example, all standard Moodle course formats will deliver any requested width between 180 and 210 pixels, inclusive.&lt;br /&gt;
&lt;br /&gt;
      To instruct Moodle about our block&#039;s preferred width, we add one more method to the block class:&lt;br /&gt;
&lt;br /&gt;
      function preferred_width() {&lt;br /&gt;
          // The preferred value is in pixels&lt;br /&gt;
          return 200;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      This will make our block (and all the other blocks displayed at the same side of the page) a bit wider than standard.&lt;br /&gt;
&lt;br /&gt;
      Finally, we can also affect some properties of the actual HTML that will be used to print our block. Each block is fully contained within a &amp;lt;table&amp;gt; element, inside which all the HTML for that block is printed. We can instruct Moodle to add HTML attributes with specific values to that container. This would be done to either a) directly affect the end result (if we say, assign bgcolor=&amp;quot;black&amp;quot;), or b) give us freedom to customize the end result using CSS (this is in fact done by default as we &#039;ll see below).&lt;br /&gt;
&lt;br /&gt;
      The default behavior of this feature in our case will assign to our block&#039;s container the class HTML attribute with the value &amp;quot;sideblock block_simplehtml&amp;quot; (the prefix &amp;quot;block_&amp;quot; followed by the name of our block, lowercased). We can then use that class to make CSS selectors in our theme to alter this block&#039;s visual style (for example, &amp;quot;.sideblock.block_simplehtml { border: 1px black solid}&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
      To change the default behavior, we will need to define a method which returns an associative array of attribute names and values. For example, the version&lt;br /&gt;
&lt;br /&gt;
      function html_attributes() {&lt;br /&gt;
          return array(&lt;br /&gt;
              &#039;class&#039;       =&amp;gt; &#039;sideblock block_&#039;. $this-&amp;gt;name(),&lt;br /&gt;
              &#039;onmouseover&#039; =&amp;gt; &#039;alert(&amp;quot;Mouseover on our block!&amp;quot;);&#039;&lt;br /&gt;
          );&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      will result in a mouseover event being added to our block using JavaScript, just as if we had written the onmouseover=&amp;quot;alert(...)&amp;quot; part ourselves in HTML. Note that we actually duplicate the part which sets the class attribute (we want to keep that, and since we override the default behavior it&#039;s our responsibility to emulate it if required). And the final elegant touch is that we don&#039;t set the class to the hard-coded value &amp;quot;block_simplehtml&amp;quot; but instead use the name method to make it dynamically match our block&#039;s name.&lt;br /&gt;
  11.&lt;br /&gt;
      Authorized Personnel Only&lt;br /&gt;
&lt;br /&gt;
      It&#039;s not difficult to imagine a block which is very useful in some circumstances but it simply cannot be made meaningful in others. An example of this would be the &amp;quot;Social Activities&amp;quot; block which is indeed useful in a course with the social format, but doesn&#039;t do anything useful in a course with the weeks format. There should be some way of allowing the use of such blocks only where they are indeed meaningful, and not letting them confuse users if they are not.&lt;br /&gt;
&lt;br /&gt;
      Moodle allows us to declare which course formats each block is allowed to be displayed in, and enforces these restrictions as set by the block developers at all times. The information is given to Moodle as a standard associative array, with each key corresponding to a page format and defining a boolean value (true/false) that declares whether the block should be allowed to appear in that page format.&lt;br /&gt;
&lt;br /&gt;
      Notice the deliberate use of the term page instead of course in the above paragraph. This is because in Moodle 1.5 and onwards, blocks can be displayed in any page that supports them. The best example of such pages are the course pages, but we are not restricted to them. For instance, the quiz view page (the first one we see when we click on the name of the quiz) also supports blocks.&lt;br /&gt;
&lt;br /&gt;
      The format names we can use for the pages derive from the name of the script which is actually used to display that page. For example, when we are looking at a course, the script is /course/view.php (this is evident from the browser&#039;s address line). Thus, the format name of that page is course-view. It follows easily that the format name for a quiz view page is mod-quiz-view. This rule of thumb does have a few exceptions, however:&lt;br /&gt;
          * The format name for the front page of Moodle is site-index.&lt;br /&gt;
          * The format name for courses is actually not just course-view; it is course-view-weeks, course-view-topics, etc.&lt;br /&gt;
          * Even though there is no such page, the format name all can be used as a catch-all option.&lt;br /&gt;
&lt;br /&gt;
      We can include as many format names as we want in our definition of the applicable formats. Each format can be allowed or disallowed, and there are also three more rules that help resolve the question &amp;quot;is this block allowed into this page or not?&amp;quot;:&lt;br /&gt;
          * Prefixes of a format name will match that format name; for example, mod will match all the activity modules. course-view will match any course, regardless of the course format. And finally, site will also match the front page (remember that its full format name is site-index).&lt;br /&gt;
          * The more specialized a format name that matches our page is, the higher precedence it has when deciding if the block will be allowed. For example, mod, mod-quiz and mod-quiz-view all match the quiz view page. But if all three are present, mod-quiz-view will take precedence over the other two because it is a better match.&lt;br /&gt;
          * The character * can be used in place of any word. For example, mod and mod-* are equivalent. At the time of this document&#039;s writing, there is no actual reason to utilize this &amp;quot;wildcard matching&amp;quot; feature, but it exists for future usage.&lt;br /&gt;
          * The order that the format names appear does not make any difference.&lt;br /&gt;
&lt;br /&gt;
      All of the above are enough to make the situation sound complex, so let&#039;s look at some specific examples. First of all, to have our block appear only in the site front page, we would use:&lt;br /&gt;
&lt;br /&gt;
      function applicable_formats() {&lt;br /&gt;
          return array(&#039;site&#039; =&amp;gt; true);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      Since all is missing, the block is disallowed from appearing in any course format; but then site is set to true, so it&#039;s explicitly allowed to appear in the site front page (remember that site matches site-index because it&#039;s a prefix).&lt;br /&gt;
&lt;br /&gt;
      For another example, if we wanted to allow the block to appear in all course formats except social, and also to not be allowed anywhere but in courses, we would use:&lt;br /&gt;
&lt;br /&gt;
      function applicable_formats() {&lt;br /&gt;
          return array(&#039;course-view&#039; =&amp;gt; true, &#039;course-view-social&#039; =&amp;gt; false);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      This time, we first allow the block to appear in all courses and then we explicitly disallow the social format.&lt;br /&gt;
&lt;br /&gt;
      For our final, most complicated example, suppose that a block can be displayed in the site front page, in courses (but not social courses) and also when we are viewing any activity module, except quiz. This would be:&lt;br /&gt;
&lt;br /&gt;
      function applicable_formats() {&lt;br /&gt;
          return array(&#039;site-index&#039; =&amp;gt; true,&lt;br /&gt;
                       &#039;course-view&#039; =&amp;gt; true, &#039;course-view-social&#039; =&amp;gt; false,&lt;br /&gt;
                       &#039;mod&#039; =&amp;gt; true, &#039;mod-quiz&#039; =&amp;gt; false);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      It is not difficult to realize that the above accomplishes the objective if we remember that there is a &amp;quot;best match&amp;quot; policy to determine the end result.&lt;br /&gt;
&lt;br /&gt;
      UPDATING: Prior to version 1.5, blocks were only allowed in courses (and in Moodle 1.4, in the site front page). Also, the keywords used to describe the valid course formats at the time were slightly different and had to be changed in order to allow for a more open architecture. Refer to Appendix B for more information on the changes that old blocks have to make to conform to the new standard.&lt;br /&gt;
  12.&lt;br /&gt;
      Lists and Icons&lt;br /&gt;
&lt;br /&gt;
      In this final part of the guide we will briefly discuss an additional capability of Moodle&#039;s block system, namely the ability to very easily create blocks that display a list of choices to the user. This list is displayed with one item per line, and an optional image (icon) next to the item. An example of such a list block is the standard Moodle &amp;quot;admin&amp;quot; block, which illustrates all the points discussed in this section.&lt;br /&gt;
&lt;br /&gt;
      As we have seen so far, blocks of use two properties of $this-&amp;gt;content: &amp;quot;text&amp;quot; and &amp;quot;footer&amp;quot;. The text is displayed as-is as the block content, and the footer is displayed below the content in a smaller font size. List blocks use $this-&amp;gt;content-&amp;gt;footer in the exact same way, but they ignore $this-&amp;gt;content-&amp;gt;text.&lt;br /&gt;
&lt;br /&gt;
      Instead, Moodle expects such blocks to set two other properties when the get_content method is called: $this-&amp;gt;content-&amp;gt;items and $this-&amp;gt;content-&amp;gt;icons. $this-&amp;gt;content-&amp;gt;items should be a numerically indexed array containing elements that represent the HTML for each item in the list that is going to be displayed. Usually these items will be HTML anchor tags which provide links to some page. $this-&amp;gt;content-&amp;gt;icons should also be a numerically indexed array, with exactly as many items as $this-&amp;gt;content-&amp;gt;items has. Each of these items should be a fully qualified HTML &amp;lt;img&amp;gt; tag, with &amp;quot;src&amp;quot;, &amp;quot;height&amp;quot;, &amp;quot;width&amp;quot; and &amp;quot;alt&amp;quot; attributes. Obviously, it makes sense to keep the images small and of a uniform size.&lt;br /&gt;
&lt;br /&gt;
      In order to tell Moodle that we want to have a list block instead of the standard text block, we need to make a small change to our block class declaration. Instead of extending class block_base, our block will extend class block_list. For example:&lt;br /&gt;
&lt;br /&gt;
      class block_my_menu extends block_list {&lt;br /&gt;
          // The init() method does not need to change at all&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      In addition to making this change, we must of course also modify the get_content method to construct the $this-&amp;gt;content variable as discussed above:&lt;br /&gt;
&lt;br /&gt;
      function get_content() {&lt;br /&gt;
          if ($this-&amp;gt;content !== NULL) {&lt;br /&gt;
              return $this-&amp;gt;content;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          $this-&amp;gt;content = new stdClass;&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;items = array();&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;icons = array();&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;footer = &#039;Footer here...&#039;;&lt;br /&gt;
&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;items[] = &#039;&amp;lt;a href=&amp;quot;some_file.php&amp;quot;&amp;gt;Menu Option 1&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
          $this-&amp;gt;content-&amp;gt;icons[] = &#039;&amp;lt;img src=&amp;quot;images/icons/1.gif&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
          // Add more list items here&lt;br /&gt;
&lt;br /&gt;
          return $this-&amp;gt;content;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      To summarize, if we want to create a list block instead of a text block, we just need to change the block class declaration and the get_content method. Adding the mandatory init method as discussed earlier will then give us our first list block in no time!&lt;br /&gt;
&lt;br /&gt;
Appendix A: Reference&lt;br /&gt;
&lt;br /&gt;
This Appendix will discuss the base class block_base from which all other block classes derive, and present each and every method that can be overridden by block developers in detail. Methods that should not be overridden are explicitly referred to as such. After reading this Appendix, you will have a clear understanding of every method which you should or could override to implement functionality for your block.&lt;br /&gt;
&lt;br /&gt;
The methods are divided into three categories: those you may use and override in your block, those that you may not override but might want to use, and those internal methods that should neither be used nor overridden. In each category, methods are presented in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
      Methods you can freely use and override:&lt;br /&gt;
          o&lt;br /&gt;
            applicable_formats&lt;br /&gt;
&lt;br /&gt;
            function applicable_formats() {&lt;br /&gt;
                // Default case: the block can be used in courses and site index, but not in activities&lt;br /&gt;
                return array(&#039;all&#039; =&amp;gt; true, &#039;mod&#039; =&amp;gt; false);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method allows you to control which pages your block can be added to. Page formats are formulated from the full path of the script that is used to display that page. You should return an array with the keys being page format names and the values being booleans (true or false). Your block is only allowed to appear in those formats where the value is true.&lt;br /&gt;
&lt;br /&gt;
            Example format names are: course-view, site-index (this is an exception, referring front page of the Moodle site), course-format-weeks (referring to a specific course format), mod-quiz (referring to the quiz module) and all (this will be used for those formats you have not explicitly allowed or disallowed).&lt;br /&gt;
&lt;br /&gt;
            The full matching rules are:&lt;br /&gt;
                + Prefixes of a format name will match that format name; for example, mod will match all the activity modules. course-view will match any course, regardless of the course format. And finally, site will also match the front page (remember that its full format name is site-index).&lt;br /&gt;
                + The more specialized a format name that matches our page is, the higher precedence it has when deciding if the block will be allowed. For example, mod, mod-quiz and mod-quiz-view all match the quiz view page. But if all three are present, mod-quiz-view will take precedence over the other two because it is a better match.&lt;br /&gt;
                + The character * can be used in place of any word. For example, mod and mod-* are equivalent. At the time of this document&#039;s writing, there is no actual reason to utilize this &amp;quot;wildcard matching&amp;quot; feature, but it exists for future usage.&lt;br /&gt;
                + The order that the format names appear does not make any difference.&lt;br /&gt;
&lt;br /&gt;
          o&lt;br /&gt;
            config_print&lt;br /&gt;
&lt;br /&gt;
            function config_print() {&lt;br /&gt;
                // Default behavior: print the config_global.html file&lt;br /&gt;
                // You don&#039;t need to override this if you&#039;re satisfied with the above&lt;br /&gt;
                if (!$this-&amp;gt;has_config()) {&lt;br /&gt;
                    return false;&lt;br /&gt;
                }&lt;br /&gt;
                global $CFG, $THEME;&lt;br /&gt;
                print_simple_box_start(&#039;center&#039;, &#039;&#039;, $THEME-&amp;gt;cellheading);&lt;br /&gt;
                include($CFG-&amp;gt;dirroot.&#039;/blocks/&#039;. $this-&amp;gt;name() .&#039;/config_global.html&#039;);&lt;br /&gt;
                print_simple_box_end();&lt;br /&gt;
                return true;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method allows you to choose how to display the global configuration screen for your block. This is the screen that the administrator is presented with when he chooses &amp;quot;Settings...&amp;quot; for a specific block. Override it if you need something much more complex than the default implementation allows you to do. However, keep these points in mind:&lt;br /&gt;
               1. If you save your configuration options in $CFG, you will probably need to use global $CFG; before including any HTML configuration screens.&lt;br /&gt;
               2. The HTML &amp;lt;input&amp;gt; elements that you include in your method&#039;s output will be automatically enclosed in a &amp;lt;form&amp;gt; element. You do not need to worry about where and how that form is submitted; however, you must provide a way to submit it (i.e., an &amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
            You should return a boolean value denoting the success or failure of your method&#039;s actions.&lt;br /&gt;
          o&lt;br /&gt;
            config_save&lt;br /&gt;
&lt;br /&gt;
            function config_save($data) {&lt;br /&gt;
                // Default behavior: save all variables as $CFG properties&lt;br /&gt;
                // You don&#039;t need to override this if you &#039;re satisfied with the above&lt;br /&gt;
                foreach ($data as $name =&amp;gt; $value) {&lt;br /&gt;
                    set_config($name, $value);&lt;br /&gt;
                }&lt;br /&gt;
                return true;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method allows you to override the storage mechanism for your global configuration data. The received argument is an associative array, with the keys being setting names and the values being setting values. The default implementation saves everything as Moodle $CFG variables.&lt;br /&gt;
&lt;br /&gt;
            Note that $data does not hold all of the submitted POST data because Moodle adds some hidden fields to the form in order to be able to process it. However, before calling this method it strips the hidden fields from the received data and so when this method is called only the &amp;quot;real&amp;quot; configuration data remain.&lt;br /&gt;
&lt;br /&gt;
            You should return a boolean value denoting the success or failure of your method&#039;s actions.&lt;br /&gt;
          o&lt;br /&gt;
            get_content&lt;br /&gt;
&lt;br /&gt;
            function get_content() {&lt;br /&gt;
                // This should be implemented by the derived class.&lt;br /&gt;
                return NULL;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should, when called, populate the $this-&amp;gt;content variable of your block. Populating the variable means:&lt;br /&gt;
&lt;br /&gt;
            EITHER&lt;br /&gt;
            defining $this-&amp;gt;content-&amp;gt;text and $this-&amp;gt;content-&amp;gt;footer if your block derives from block_base. Both of these should be strings, and can contain arbitrary HTML.&lt;br /&gt;
&lt;br /&gt;
            OR&lt;br /&gt;
            defining $this-&amp;gt;content-&amp;gt;items, $this-&amp;gt;content-&amp;gt;icons and $this-&amp;gt;content-&amp;gt;footer if your block derives from block_list. The first two should be numerically indexed arrays having the exact same number of elements. $this-&amp;gt;content-&amp;gt;items is an array of strings that can contain arbitrary HTML while $this-&amp;gt;content-&amp;gt;icons also contains should strings, but those must be fully-qualified HTML &amp;lt;img&amp;gt; tags and nothing else. $this-&amp;gt;content-&amp;gt;footer is a string, as above.&lt;br /&gt;
&lt;br /&gt;
            If you set all of these variables to their default &amp;quot;empty&amp;quot; values (empty arrays for the arrays and empty strings for the strings), the block will not be displayed at all except to editing users. This is a good way of having your block hide itself to unclutter the screen if there is no reason to have it displayed.&lt;br /&gt;
&lt;br /&gt;
            Before starting to populate $this-&amp;gt;content, you should also include a simple caching check. If $this-&amp;gt;content is exactly equal to NULL then proceed as normally, while if it is not, return the existing value instead of calculating it once more. If you fail to do this, Moodle will suffer a performance hit.&lt;br /&gt;
&lt;br /&gt;
            In any case, your method should return the fully constructed $this-&amp;gt;content variable.&lt;br /&gt;
          o&lt;br /&gt;
            has_config&lt;br /&gt;
&lt;br /&gt;
            function has_config() {&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return a boolean value that denotes whether your block wants to present a configuration interface to site admins or not. The configuration that this interface offers will impact all instances of the block equally.&lt;br /&gt;
&lt;br /&gt;
            To actually implement the configuration interface, you will either need to rely on the default config_print method or override it. The full guide contains more information on this.&lt;br /&gt;
          o&lt;br /&gt;
            hide_header&lt;br /&gt;
&lt;br /&gt;
            function hide_header() {&lt;br /&gt;
                //Default, false--&amp;gt; the header is shown&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return a boolean value that denotes whether your block wants to hide its header (or title). Thus, if you override it to return true, your block will not display a title unless the current user is in editing mode.&lt;br /&gt;
          o&lt;br /&gt;
            html_attributes&lt;br /&gt;
&lt;br /&gt;
            function html_attributes() {&lt;br /&gt;
                // Default case: an id with the instance and a class with our name in it&lt;br /&gt;
                return array(&#039;id&#039; =&amp;gt; &#039;inst&#039;.$this-&amp;gt;instance-&amp;gt;id, &#039;class&#039; =&amp;gt; &#039;block_&#039;. $this-&amp;gt;name());&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return an associative array of HTML attributes that will be given to your block&#039;s container element when Moodle constructs the output HTML. No sanitization will be performed in these elements at all.&lt;br /&gt;
&lt;br /&gt;
            If you intend to override this method, you should return the default attributes as well as those you add yourself. The recommended way to do this is:&lt;br /&gt;
&lt;br /&gt;
            function html_attributes() {&lt;br /&gt;
                $attrs = parent::html_attributes();&lt;br /&gt;
                // Add your own attributes here, e.g.&lt;br /&gt;
                // $attrs[&#039;width&#039;] = &#039;50%&#039;;&lt;br /&gt;
                return $attrs;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
          o&lt;br /&gt;
            init&lt;br /&gt;
&lt;br /&gt;
            function init() {&lt;br /&gt;
                $this-&amp;gt;title = get_string(&#039;simplehtml&#039;, &#039;block_simplehtml&#039;);&lt;br /&gt;
                $this-&amp;gt;version = 2004111200;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method must be implemented for all blocks. It has to assign meaningful values to the object variables $this-&amp;gt;title and $this-&amp;gt;version (which is used by Moodle for performing automatic updates when available).&lt;br /&gt;
&lt;br /&gt;
            No return value is expected from this method.&lt;br /&gt;
          o&lt;br /&gt;
            instance_allow_config&lt;br /&gt;
&lt;br /&gt;
            function instance_allow_config() {&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return a boolean value. True indicates that your block wants to have per-instance configuration, while false means it does not. If you do want to implement instance configuration, you will need to take some additional steps apart from overriding this method; refer to the full guide for more information.&lt;br /&gt;
&lt;br /&gt;
            This method&#039;s return value is irrelevant if instance_allow_multiple returns true; it is assumed that if you want multiple instances then each instance needs its own configuration.&lt;br /&gt;
          o&lt;br /&gt;
            instance_allow_multiple&lt;br /&gt;
&lt;br /&gt;
            function instance_allow_multiple() {&lt;br /&gt;
                // Are you going to allow multiple instances of each block?&lt;br /&gt;
                // If yes, then it is assumed that the block WILL USE per-instance configuration&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return a boolean value, indicating whether you want to allow multiple instances of this block in the same page or not. If you do allow multiple instances, it is assumed that you will also be providing per-instance configuration for the block. Thus, you will need to take some additional steps apart from overriding this method; refer to the full guide for more information.&lt;br /&gt;
          o&lt;br /&gt;
            instance_config_print&lt;br /&gt;
&lt;br /&gt;
            function instance_config_print() {&lt;br /&gt;
                // Default behavior: print the config_instance.html file&lt;br /&gt;
                // You don&#039;t need to override this if you&#039;re satisfied with the above&lt;br /&gt;
                if (!$this-&amp;gt;instance_allow_multiple() &amp;amp;&amp;amp; !$this-&amp;gt;instance_allow_config()) {&lt;br /&gt;
                    return false;&lt;br /&gt;
                }&lt;br /&gt;
                global $CFG, $THEME;&lt;br /&gt;
&lt;br /&gt;
                if (is_file($CFG-&amp;gt;dirroot .&#039;/blocks/&#039;. $this-&amp;gt;name() .&#039;/config_instance.html&#039;)) {&lt;br /&gt;
                    print_simple_box_start(&#039;center&#039;, &#039;&#039;, $THEME-&amp;gt;cellheading);&lt;br /&gt;
                    include($CFG-&amp;gt;dirroot .&#039;/blocks/&#039;. $this-&amp;gt;name() .&#039;/config_instance.html&#039;);&lt;br /&gt;
                    print_simple_box_end();&lt;br /&gt;
                } else {&lt;br /&gt;
                    notice(get_string(&#039;blockconfigbad&#039;),&lt;br /&gt;
                           str_replace(&#039;blockaction=&#039;, &#039;dummy=&#039;, qualified_me()));&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                return true;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method allows you to choose how to display the instance configuration screen for your block. Override it if you need something much more complex than the default implementation allows you to do. Keep in mind that whatever you do output from config_print, it will be enclosed in a HTML form automatically. You only need to provide a way to submit that form.&lt;br /&gt;
&lt;br /&gt;
            You should return a boolean value denoting the success or failure of your method&#039;s actions.&lt;br /&gt;
          o&lt;br /&gt;
            instance_config_save&lt;br /&gt;
&lt;br /&gt;
            function instance_config_save($data) {&lt;br /&gt;
                $data = stripslashes_recursive($data);&lt;br /&gt;
                $this-&amp;gt;config = $data;&lt;br /&gt;
                return set_field(&#039;block_instance&#039;, &#039;configdata&#039;, base64_encode(serialize($data)), &lt;br /&gt;
                                 &#039;id&#039;, $this-&amp;gt;instance-&amp;gt;id);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method allows you to override the storage mechanism for your instance configuration data. The received argument is an associative array, with the keys being setting names and the values being setting values.&lt;br /&gt;
&lt;br /&gt;
            The configuration must be stored in the &amp;quot;configdata&amp;quot; field of your instance record in the database so that Moodle can auto-load it when your block is constructed. However, you may still want to override this method if you need to take some additional action apart from saving the data. In that case, you really should do what data processing you want and then call parent::instance_config_save($data) with your new $data array. This will keep your block from becoming broken if the default implementation of instance_config_save changes in the future.&lt;br /&gt;
&lt;br /&gt;
            Note that $data does not hold all of the submitted POST data because Moodle adds some hidden fields to the form in order to be able to process it. However, before calling this method it strips the hidden fields from the received data and so when this method is called only the &amp;quot;real&amp;quot; configuration data remain.&lt;br /&gt;
&lt;br /&gt;
            If you want to update the stored copy of the configuration data at run time (for example to persist some changes you made programmatically), you should not use this method. The correct procedure for that purpose is to call instance_config_commit.&lt;br /&gt;
&lt;br /&gt;
            You should return a boolean value denoting the success or failure of your method&#039;s actions.&lt;br /&gt;
          o&lt;br /&gt;
            preferred_width&lt;br /&gt;
&lt;br /&gt;
            function preferred_width() {&lt;br /&gt;
                // Default case: the block wants to be 180 pixels wide&lt;br /&gt;
                return 180;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should return an integer value, which is the number of pixels of width your block wants to take up when displayed. Moodle will try to honor your request, but this is actually up to the implementation of the format of the page your block is being displayed in and therefore no guarantee is given. You might get exactly what you want or any other width the format decides to give you, although obviously an effort to accomodate your block will be made.&lt;br /&gt;
&lt;br /&gt;
            Most display logic at this point allocates the maximum width requested by the blocks that are going to be displayed, bounding it both downwards and upwards to avoid having a bad-behaving block break the format.&lt;br /&gt;
          o&lt;br /&gt;
            refresh_content&lt;br /&gt;
&lt;br /&gt;
            function refresh_content() {&lt;br /&gt;
                // Nothing special here, depends on content()&lt;br /&gt;
                $this-&amp;gt;content = NULL;&lt;br /&gt;
                return $this-&amp;gt;get_content();&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method should cause your block to recalculate its content immediately. If you follow the guidelines for get_content, which say to respect the current content value unless it is NULL, then the default implementation will do the job just fine.&lt;br /&gt;
&lt;br /&gt;
            You should return the new value of $this-&amp;gt;content after refreshing it.&lt;br /&gt;
          o&lt;br /&gt;
            specialization&lt;br /&gt;
&lt;br /&gt;
            function specialization() {&lt;br /&gt;
                // Just to make sure that this method exists.&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method is automatically called by the framework immediately after your instance data (which includes the page type and id and all instance configuration data) is loaded from the database. If there is some action that you need to take as soon as this data becomes available and which cannot be taken earlier, you should override this method.&lt;br /&gt;
&lt;br /&gt;
            The instance data will be available in the variables $this-&amp;gt;instance and $this-&amp;gt;config.&lt;br /&gt;
&lt;br /&gt;
            This method should not return anything at all.&lt;br /&gt;
    *&lt;br /&gt;
      Methods which you should not override but may want to use:&lt;br /&gt;
          o&lt;br /&gt;
            instance_config_commit&lt;br /&gt;
&lt;br /&gt;
            function instance_config_commit() {&lt;br /&gt;
                return set_field(&#039;block_instance&#039;,&lt;br /&gt;
                                 &#039;configdata&#039;, base64_encode(serialize($this-&amp;gt;config)),&lt;br /&gt;
                                 &#039;id&#039;, $this-&amp;gt;instance-&amp;gt;id);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method saves the current contents of $this-&amp;gt;config to the database. If you need to make a change to the configuration settings of a block instance at run time (and not through the usual avenue of letting the user change it), just make the changes you want to $this-&amp;gt;config and then call this method.&lt;br /&gt;
          o&lt;br /&gt;
            get_content_type&lt;br /&gt;
&lt;br /&gt;
            function get_content_type() {&lt;br /&gt;
                return $this-&amp;gt;content_type;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method returns the value of $this-&amp;gt;content_type, and is the preferred way of accessing that variable. It is guaranteed to always work, now and forever. Directly accessing the variable is not recommended; future library changes may break compatibility with code that does so.&lt;br /&gt;
          o&lt;br /&gt;
            get_title&lt;br /&gt;
&lt;br /&gt;
            function get_title() {&lt;br /&gt;
                return $this-&amp;gt;title;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method returns the value of $this-&amp;gt;title, and is the preferred way of accessing that variable. It is guaranteed to always work, now and forever. Directly accessing the variable is not recommended; future library changes may break compatibility with code that does so.&lt;br /&gt;
          o&lt;br /&gt;
            get_version&lt;br /&gt;
&lt;br /&gt;
            function get_version() {&lt;br /&gt;
                return $this-&amp;gt;version;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method returns the value of $this-&amp;gt;version, and is the preferred way of accessing that variable. It is guaranteed to always work, now and forever. Directly accessing the variable is not recommended; future library changes may break compatibility with code that does so.&lt;br /&gt;
          o&lt;br /&gt;
            is_empty&lt;br /&gt;
&lt;br /&gt;
            For blocks that extend class block_base:&lt;br /&gt;
&lt;br /&gt;
            function is_empty() {&lt;br /&gt;
                $this-&amp;gt;get_content();&lt;br /&gt;
                return(empty($this-&amp;gt;content-&amp;gt;text) &amp;amp;&amp;amp; empty($this-&amp;gt;content-&amp;gt;footer));&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            For blocks that extend class block_list:&lt;br /&gt;
&lt;br /&gt;
            function is_empty() {&lt;br /&gt;
                $this-&amp;gt;get_content();&lt;br /&gt;
                return (empty($this-&amp;gt;content-&amp;gt;items) &amp;amp;&amp;amp; empty($this-&amp;gt;content-&amp;gt;footer));&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method returns the a boolean true/false value, depending on whether the block has any content at all to display. Blocks without content are not displayed by the framework.&lt;br /&gt;
          o&lt;br /&gt;
            name&lt;br /&gt;
&lt;br /&gt;
            function name() {&lt;br /&gt;
                static $myname;&lt;br /&gt;
                if ($myname === NULL) {&lt;br /&gt;
                    $myname = strtolower(get_class($this));&lt;br /&gt;
                    $myname = substr($myname, strpos($myname, &#039;_&#039;) + 1);&lt;br /&gt;
                }&lt;br /&gt;
                return $myname;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            This method returns the internal name of your block inside Moodle, without the block_ prefix. Obtaining the name of a block object is sometimes useful because it can be used to write code that is agnostic to the actual block&#039;s name (and thus more generic and reusable). For an example of this technique, see the config_print method.&lt;br /&gt;
    *&lt;br /&gt;
      Methods which you should not override and not use at all:&lt;br /&gt;
          o&lt;br /&gt;
            _self_test&lt;br /&gt;
&lt;br /&gt;
            This is a private method; no description is given.&lt;br /&gt;
          o&lt;br /&gt;
            _add_edit_controls&lt;br /&gt;
&lt;br /&gt;
            This is a private method; no description is given.&lt;br /&gt;
          o&lt;br /&gt;
            _load_instance&lt;br /&gt;
&lt;br /&gt;
            This is a private method; no description is given.&lt;br /&gt;
          o&lt;br /&gt;
            _print_block&lt;br /&gt;
&lt;br /&gt;
            This is a private method; no description is given.&lt;br /&gt;
          o&lt;br /&gt;
            _print_shadow&lt;br /&gt;
&lt;br /&gt;
            This is a private method; no description is given.&lt;br /&gt;
&lt;br /&gt;
The class block_base also has a few standard member variables which its methods manipulate. These variables, the purpose of each and the type of data they are expected to hold is explained in the next section of this Appendix.&lt;br /&gt;
Class variables:&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;config&lt;br /&gt;
&lt;br /&gt;
      This variable holds all the specialized instance configuration data that have been provided for this specific block instance (object). It is an object of type stdClass, with member variables directly corresponding to the HTML &amp;lt;input&amp;gt; elements in the block&#039;s config_instance.html file.&lt;br /&gt;
&lt;br /&gt;
      The variable is initialized just after the block object is constructed, immediately before specialization is called for the object. It is possible that the block has no instance configuration, in which case the variable will be NULL.&lt;br /&gt;
&lt;br /&gt;
      It is obvious that there is a direct relationship between this variable and the configdata field in the mdl_block_instance table. However, it is strongly advised that you refrain from accessing the configdata field yourself. If you absolutely must update its value at any time, it is recommended that you call the method instance_config_commit to do the actual work.&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;content_type&lt;br /&gt;
&lt;br /&gt;
      This variable instructs Moodle on what type of content it should assume the block has, and is used to differentiate text blocks from list blocks. It is essential that it has a meaningful value, as Moodle depends on this for correctly displaying the block on screen. Consequently, this variable is closely tied with the variable $this-&amp;gt;content. The variable is expected to have a valid value after the framework calls the init method for each block.&lt;br /&gt;
&lt;br /&gt;
      The only valid values for this variable are the two named constants BLOCK_TYPE_TEXT and BLOCK_TYPE_LIST.&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;content&lt;br /&gt;
&lt;br /&gt;
      This variable holds all the actual content that is displayed inside each block. Valid values for it are either NULL or an object of class stdClass, which must have specific member variables set as explained below. Normally, it begins life with a value of NULL and it becomes fully constructed (i.e., an object) when get_content is called.&lt;br /&gt;
&lt;br /&gt;
      After it is fully constructed, this object is expected to have certain properties, depending on the value of $this-&amp;gt;content_type. Specifically:&lt;br /&gt;
          o If $this-&amp;gt;content_type is BLOCK_TYPE_TEXT, then $this-&amp;gt;content is expected to have the following member variables:&lt;br /&gt;
                +&lt;br /&gt;
                  text&lt;br /&gt;
                  This is a string of arbitrary length and content. It is displayed inside the main area of the block, and can contain HTML.&lt;br /&gt;
                +&lt;br /&gt;
                  footer&lt;br /&gt;
                  This is a string of arbitrary length and contents. It is displayed below the text, using a smaller font size. It can also contain HTML.&lt;br /&gt;
          o If $this-&amp;gt;content_type is BLOCK_TYPE_LIST, then $this-&amp;gt;content is expected to have the following member variables:&lt;br /&gt;
                +&lt;br /&gt;
                  items&lt;br /&gt;
                  This is a numerically indexed array of strings which holds the title for each item in the list that will be displayed in the block&#039;s area. Since usually such lists function like menus, the title for each item is normally a fully qualified HTML &amp;lt;a&amp;gt; tag.&lt;br /&gt;
                +&lt;br /&gt;
                  icons&lt;br /&gt;
                  This is a numerically indexed array of strings which represent the images displayed before each item of the list. It therefore follows that it should have the exact number of elements as the items member variable. Each item in this array should be a fully qualified HTML &amp;lt;img&amp;gt; tag.&lt;br /&gt;
                +&lt;br /&gt;
                  footer&lt;br /&gt;
                  This is a string of arbitrary length and contents. It is displayed below the text, using a smaller font size. It can also contain HTML.&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;instance&lt;br /&gt;
&lt;br /&gt;
      This member variable holds all the specific information that differentiates one block instance (i.e., the PHP object that embodies it) from another. It is an object of type stdClass retrieved by calling get_record on the table mdl_block_instance. Its member variables, then, directly correspond to the fields of that table. It is initialized immediately after the block object itself is constructed.&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;title&lt;br /&gt;
&lt;br /&gt;
      This variable is a string that contains the human-readable name of the block. It is used to refer to blocks of that type throughout Moodle, for example in the administrator&#039;s block configuration screen and in the editing teacher&#039;s add block menu. It is also the title that is printed when the block is displayed on screen, although blocks can specifically change this title to something else if they wish (see below). The variable is expected to have a valid value after the framework calls the init method for each object.&lt;br /&gt;
&lt;br /&gt;
      In the case of blocks which may want to configure their title dynamically through instance configuration, it is still essential to provide a valid title inside init. This title may then be overridden when the specialization method is called by the framework:&lt;br /&gt;
&lt;br /&gt;
      function specialization() {&lt;br /&gt;
          // At this point, $this-&amp;gt;instance and $this-&amp;gt;config are available&lt;br /&gt;
          // for use. We can now change the title to whatever we want.&lt;br /&gt;
          $this-&amp;gt;title = $this-&amp;gt;config-&amp;gt;variable_holding_the_title;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
      $this-&amp;gt;version&lt;br /&gt;
&lt;br /&gt;
      This variable should hold each block&#039;s version number in the form YYYYMMDDXX, as per the convention throughout Moodle. The version number is used by Moodle to detect when a block has been upgraded and it consequently needs to run the block&#039;s upgrade code to bring the &amp;quot;old&amp;quot; version of the block&#039;s data up to date. The variable is expected to have a valid value after the framework calls the init method for each block.&lt;br /&gt;
&lt;br /&gt;
      Most blocks do not keep complex data of their own in the database the way that modules do, so in most cases nothing actually happens during a block version upgrade. However, the version number is displayed in the administration interface for blocks. It is good practice therefore to change your block&#039;s version number when it gains new functionality or receives important bug fixes, to enable site administrators to easily identify the exact version of the block they are working with.&lt;br /&gt;
&lt;br /&gt;
Appearing throughout the code related to the Blocks API, there is a number of predefined constants that are utilized to avoid the use of &amp;quot;magic numbers&amp;quot; in the code. These constants are:&lt;br /&gt;
Named constants:&lt;br /&gt;
&lt;br /&gt;
    *&lt;br /&gt;
      BLOCK_TYPE_LIST&lt;br /&gt;
&lt;br /&gt;
      This is one of the two valid values for the $this-&amp;gt;content_type member variable of every block. Its value specifies the exact requirements that Moodle will then have for $this-&amp;gt;content.&lt;br /&gt;
    *&lt;br /&gt;
      BLOCK_TYPE_TEXT&lt;br /&gt;
&lt;br /&gt;
      This is one of the two valid values for the $this-&amp;gt;content_type member variable of every block. Its value specifies the exact requirements that Moodle will then have for $this-&amp;gt;content.&lt;br /&gt;
&lt;br /&gt;
Appendix B: Differences in the Blocks API for Moodle versions prior to 1.5&lt;br /&gt;
&lt;br /&gt;
This Appendix will discuss what changes in the Blocks API were introduced by Moodle 1.5 and what steps developers need to take to update their blocks to be fully compatible with Moodle 1.5. Unfortunately, with these changes backward compatibility is broken; this means that blocks from Moodle 1.4 will never work with 1.5 and vice versa.&lt;br /&gt;
&lt;br /&gt;
   1.&lt;br /&gt;
      Class naming conventions changed&lt;br /&gt;
&lt;br /&gt;
      In Moodle 1.4, all block classes were required to have a name like CourseBlock_something and the base class from which the derived was MoodleBlock. This has changed in Moodle 1.5, to bring the naming conventions in line with other object-oriented aspects of Moodle (for example there are classes enrolment_base, resource_base etc). The new block classes should instead be named like block_something and derive from block_base. This means that in order to make a block compatible with Moodle 1.5, you need to change the class definition&lt;br /&gt;
&lt;br /&gt;
      class CourseBlock_online_users extends MoodleBlock { ... }&lt;br /&gt;
&lt;br /&gt;
      to&lt;br /&gt;
&lt;br /&gt;
      class block_online_users extends block_base { ... }&lt;br /&gt;
&lt;br /&gt;
      An exception to the above is the special case where the block is intended to display a list of items instead of arbitrary text; in this case the block class must derive from class block_list instead, like this:&lt;br /&gt;
&lt;br /&gt;
      class block_admin extends block_list { ... }&lt;br /&gt;
&lt;br /&gt;
   2.&lt;br /&gt;
      Constructor versus init()&lt;br /&gt;
&lt;br /&gt;
      In Moodle 1.4, in each block class it was mandatory to define a constructor which accepted a course data record as an argument (the example is from the actual Online Users block):&lt;br /&gt;
&lt;br /&gt;
          function CourseBlock_online_users ($course) {&lt;br /&gt;
              $this-&amp;gt;title = get_string(&#039;blockname&#039;,&#039;block_online_users&#039;);&lt;br /&gt;
              $this-&amp;gt;content_type = BLOCK_TYPE_TEXT;&lt;br /&gt;
              $this-&amp;gt;course = $course;&lt;br /&gt;
              $this-&amp;gt;version = 2004052700;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
      In contrast, Moodle 1.5 does away with the constructor and instead requires you to define an init() method that takes no arguments:&lt;br /&gt;
&lt;br /&gt;
          function init() {&lt;br /&gt;
              $this-&amp;gt;title = get_string(&#039;blockname&#039;,&#039;block_online_users&#039;);&lt;br /&gt;
              $this-&amp;gt;version = 2004111600;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
      Of course, this leaves you without access to the $course object, which you might actually need. Since that&#039;s probably going to be needed inside get_content, the way to retrieve it is by using this code:&lt;br /&gt;
&lt;br /&gt;
          $course = get_record(&#039;course&#039;, &#039;id&#039;, $this-&amp;gt;instance-&amp;gt;pageid);&lt;br /&gt;
&lt;br /&gt;
      If you are going to need access to $course from inside other methods in addition to get_content, you might fetch the $course object inside the specialization method and save it as a class variable for later use, in order to avoid executing the same query multiple times:&lt;br /&gt;
&lt;br /&gt;
          function specialization() {&lt;br /&gt;
              $this-&amp;gt;course = get_record(&#039;course&#039;, &#039;id&#039;, $this-&amp;gt;instance-&amp;gt;pageid);&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
   3.&lt;br /&gt;
      Blocks with configuration&lt;br /&gt;
&lt;br /&gt;
      In Moodle 1.4, blocks could only have what are now (in Moodle 1.5) called &amp;quot;global configuration&amp;quot; options, to differentiate from the new &amp;quot;instance configuration&amp;quot; options. If your block has support for configuration, you will need to take these steps:&lt;br /&gt;
         1. Rename your config.html file to config_global.html.&lt;br /&gt;
         2. Edit the newly renamed file and completely remove the &amp;lt;form&amp;gt; tag (Moodle now wraps your configuration in a form automatically).&lt;br /&gt;
         3. If you are using any HTML &amp;lt;input&amp;gt; tags other than those that directly affect your configuration (for example, &amp;quot;sesskey&amp;quot;), REMOVE those too (Moodle will add them automatically as required).&lt;br /&gt;
         4. If you have overridden print_config, rename your method to config_print.&lt;br /&gt;
         5. If you have overridden handle_config, rename your method to config_save.&lt;br /&gt;
   4.&lt;br /&gt;
      Blocks with customized applicable formats&lt;br /&gt;
&lt;br /&gt;
      The correct way to specify the formats you want to allow or disallow your block to exist has been reworked for Moodle 1.5 to take account of the fact that blocks are no longer restricted to just courses. To have a block retain its intended behavior, you must change these format names (array keys in the return value of applicable_formats) if they are used in your block:&lt;br /&gt;
          * social should become course-view-social&lt;br /&gt;
          * topics should become course-view-topics&lt;br /&gt;
          * weeks should become course-view-weeks&lt;br /&gt;
&lt;br /&gt;
      You should also keep in mind that there is now the possibility of blocks being displayed in other pages too, like the introductory page that users see when they enter an activity module. You might therefore need to make the specification for applicable formats more restrictive to keep your block out of pages it is not supposed to be shown in. Also, there are subtle changes to the way that the final decision to allow or disallow a block is made. For the technical details refer to the definition of applicable_formats, and for a more extended example read the section dedicated to this subject.&lt;br /&gt;
&lt;br /&gt;
      That&#039;s everything; your block will now be ready for use in Moodle 1.5!&lt;br /&gt;
&lt;br /&gt;
The End&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5140</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5140"/>
		<updated>2006-02-11T04:20:38Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Documentation for specific modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[CVS|Moodle CVS for developers]]&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
&lt;br /&gt;
===Documentation for specific modules===&lt;br /&gt;
&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Blocks Howto|Blocks]]&lt;br /&gt;
&lt;br /&gt;
===How you can contribute===&lt;br /&gt;
&lt;br /&gt;
Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/blocks/HOWTO.html A step-by-step guide to creating blocks]&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
*[[Presentations]]&lt;br /&gt;
*[[Moodle manuals]]&lt;br /&gt;
*[[Using Moodle book]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5139</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5139"/>
		<updated>2006-02-11T04:19:24Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Documentation for specific modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[CVS|Moodle CVS for developers]]&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
&lt;br /&gt;
===Documentation for specific modules===&lt;br /&gt;
&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Blocks|Blocks Howto]]&lt;br /&gt;
&lt;br /&gt;
===How you can contribute===&lt;br /&gt;
&lt;br /&gt;
Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/blocks/HOWTO.html A step-by-step guide to creating blocks]&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
*[[Presentations]]&lt;br /&gt;
*[[Moodle manuals]]&lt;br /&gt;
*[[Using Moodle book]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5138</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=5138"/>
		<updated>2006-02-11T04:18:46Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Documentation for specific modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[CVS|Moodle CVS for developers]]&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
&lt;br /&gt;
===Documentation for specific modules===&lt;br /&gt;
&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Blocks]]&lt;br /&gt;
&lt;br /&gt;
===How you can contribute===&lt;br /&gt;
&lt;br /&gt;
Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/blocks/HOWTO.html A step-by-step guide to creating blocks]&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
*[[Presentations]]&lt;br /&gt;
*[[Moodle manuals]]&lt;br /&gt;
*[[Using Moodle book]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Student_Information_API&amp;diff=5133</id>
		<title>Development:Student Information API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Student_Information_API&amp;diff=5133"/>
		<updated>2006-02-10T22:03:40Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some standards&lt;br /&gt;
&lt;br /&gt;
PESC &lt;br /&gt;
&lt;br /&gt;
SIF&lt;br /&gt;
&lt;br /&gt;
IMS Enterprise&lt;br /&gt;
&lt;br /&gt;
Things to pass out&lt;br /&gt;
&lt;br /&gt;
* Grades&lt;br /&gt;
* Outcomes&lt;br /&gt;
* Calendar events&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Student_Information_API&amp;diff=5132</id>
		<title>Development:Student Information API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Student_Information_API&amp;diff=5132"/>
		<updated>2006-02-10T22:01:53Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some standards&lt;br /&gt;
&lt;br /&gt;
PESC &lt;br /&gt;
&lt;br /&gt;
SIF&lt;br /&gt;
&lt;br /&gt;
IMS Enterprise&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MediaWiki:Talk&amp;diff=4806</id>
		<title>MediaWiki:Talk</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MediaWiki:Talk&amp;diff=4806"/>
		<updated>2006-02-06T08:32:49Z</updated>

		<summary type="html">&lt;p&gt;Martin: Trying this out&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Page Comments&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Community_hub&amp;diff=4791</id>
		<title>Development:Community hub</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Community_hub&amp;diff=4791"/>
		<updated>2006-02-06T06:33:54Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Community.png]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Community_hub&amp;diff=4790</id>
		<title>Development:Community hub</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Community_hub&amp;diff=4790"/>
		<updated>2006-02-06T06:33:28Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Community.jpg]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=File:Community.png&amp;diff=4789</id>
		<title>File:Community.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=File:Community.png&amp;diff=4789"/>
		<updated>2006-02-06T06:33:00Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4526</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4526"/>
		<updated>2006-02-03T14:00:46Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Version 1.6 - Beta expected late February 2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
* [[Granularised Backup]] - Catalyst and Eloy Lafuente&lt;br /&gt;
::&lt;br /&gt;
* [[Chameleon]] - &lt;br /&gt;
::&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected end of 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting LD, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Roles]] - moodle.com&lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Accessibility]] - moodle.com &lt;br /&gt;
::Full compliance with all major accessibility standards&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Student Information API]]&lt;br /&gt;
::API for integrating external systems for managing student career&lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
* [[Groups]] &lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Portfolio API]]&lt;br /&gt;
::Interface Moodle activities and repositories to help produce portfolios for internal assessment AND external publication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=4520</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=4520"/>
		<updated>2006-02-03T11:10:42Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Coding|Coding guidelines]]&lt;br /&gt;
*[[CVS|Moodle CVS for developers]]&lt;br /&gt;
*[[Moodle architecture]]&lt;br /&gt;
&lt;br /&gt;
===Documentation for specific modules===&lt;br /&gt;
&lt;br /&gt;
*[[Quiz developer docs|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;
Even if you are not a programmer there are things you can change or help with.&lt;br /&gt;
*[[Activity modules]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/blocks/HOWTO.html A step-by-step guide to creating blocks]&lt;br /&gt;
*[http://moodle.org/bugs/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ CVS code]&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.org/mod/resource/view.php?id=1267 Core API]&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference]&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development_talk:Outcomes&amp;diff=4517</id>
		<title>Development talk:Outcomes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development_talk:Outcomes&amp;diff=4517"/>
		<updated>2006-02-03T11:07:36Z</updated>

		<summary type="html">&lt;p&gt;Martin: Talk:Moodle metadata moved to Talk:Metadata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have designed a simple XML schema to store ISO/IEC XML metadata.  It is not a full implementation but it does have all the metadata structures.  Please let me know if anyone is interested.&lt;br /&gt;
&lt;br /&gt;
You can see a brief description of some of the structures in the paper I am giving at the semantic web technology conference.&lt;br /&gt;
&lt;br /&gt;
http://www.danmccreary.com/presentations/semweb2006/&lt;br /&gt;
&lt;br /&gt;
I know a lot about metadata and semantics but am just learning moodle.  Please forgive me if I am too bold.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Outcomes&amp;diff=4515</id>
		<title>Development:Outcomes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Outcomes&amp;diff=4515"/>
		<updated>2006-02-03T11:07:36Z</updated>

		<summary type="html">&lt;p&gt;Martin: Moodle metadata moved to Metadata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Feature description:&#039;&#039;&#039; Build on the [[Moodle keywords|keywords]] in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula.&lt;br /&gt;
&lt;br /&gt;
This pages is an initial place to discuss options for storing and managing moodle metadata.  These are just suggestions and are made by a person who does not know moodle internals.&lt;br /&gt;
&lt;br /&gt;
There are several steps to managing a complex applications metadata:&lt;br /&gt;
# Document the key &amp;quot;Data Element Concpets&amp;quot; and their structure.  This would include high-level concepts such as Course, Student, Teacher etc.&lt;br /&gt;
# Document data element properties associated with each concept.  Properties should always be associated with a concept.&lt;br /&gt;
# Store this metadata in a metadata &amp;quot;registry&amp;quot;, a centrally managed place to store metadata&lt;br /&gt;
# Create a system that allows users to modify and update metadata&lt;br /&gt;
&lt;br /&gt;
There are several ways to approach this.&lt;br /&gt;
&lt;br /&gt;
* There are metadata registry standards such as ISO/IEC 11179. This standard has a wide number of interpretations.&lt;br /&gt;
* There are other education metadata standards such as IMS global and the School Interoperability Framework (SIF)&lt;br /&gt;
* Once the metadata is stored in a consistant place and format, transforms can be made to extract portions of the metadata using reports or transforms&lt;br /&gt;
* A matadata registry can be the heart of a model-driven architecture&lt;br /&gt;
&lt;br /&gt;
Most systems attempt to seperate the semantics from the representation of metadata.&lt;br /&gt;
# Semantics tell us the meaning of a data element but are free from version or constraints&lt;br /&gt;
# Represtations of the metadata tell us what table and column metadata appears in each version of Moodle and what the limitations are in a specification&lt;br /&gt;
&lt;br /&gt;
Many metadata managment systems use a 3-part data element name:&lt;br /&gt;
&lt;br /&gt;
 ClassPropertyTerm&lt;br /&gt;
&lt;br /&gt;
Were Class is the concept, property is a property of that concept and Term is a Representation term such as Count, Date, ID, Indicator, Text&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 CourseDescriptionText&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
* Where can we get a list of key moodle conceptual data elements and their definitions?&lt;br /&gt;
&lt;br /&gt;
* How do we set up a data stewardship role so individuals take responsiblity for maintaining subsets of all the data elements?&lt;br /&gt;
&lt;br /&gt;
* What should the highest level data elements be?  Course, Enrollment, Organization, Person, Quiz&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Thing]] A root data element of a metadata registry&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Metadata_registry Wikipedia entry for Metadata registry]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/ISO/IEC_11179 Wikipedia entry for ISO/IEC 11179 ]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Data_element Wikipedia entry for Data element]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Representation_term Wikipedia entry for Representation term]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Data_element_name Wikipedia entry for Data element name ]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Data_element_definition Wikipedia entry for Data element definition ]&lt;br /&gt;
&lt;br /&gt;
==Example of a K-12 education metadata registry for ==&lt;br /&gt;
* [http://education.state.mn.us/datadictionary Minnesota (US) Department of Education Data Dictionary]&lt;br /&gt;
&lt;br /&gt;
[[Category:metadata]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4514</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4514"/>
		<updated>2006-02-03T11:05:55Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Version 2.0 - Expected end of 2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected end of 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting LD, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Roles]] - moodle.com&lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Accessibility]] - moodle.com &lt;br /&gt;
::Full compliance with all major accessibility standards&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Student Information API]]&lt;br /&gt;
::API for integrating external systems for managing student career&lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
* [[Groups]] &lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Portfolio API]]&lt;br /&gt;
::Interface Moodle activities and repositories to help produce portfolios for internal assessment AND external publication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4461</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4461"/>
		<updated>2006-02-02T15:46:32Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected end of 2006 ==&lt;br /&gt;
&lt;br /&gt;
(These may be split into two or more releases)&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting LD, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Roles]] - moodle.com&lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Accessibility]] - moodle.com &lt;br /&gt;
::Full compliance with all major accessibility standards&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Student Information API]]&lt;br /&gt;
::API for integrating external systems for managing student career&lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
* [[Groups]] &lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Portfolio API]]&lt;br /&gt;
::Interface Moodle activities and repositories to help produce portfolios for internal assessment AND external publication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4460</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4460"/>
		<updated>2006-02-02T15:38:39Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected end of 2006 ==&lt;br /&gt;
&lt;br /&gt;
(These may be split into two or more releases)&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting this format, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Groups]] - moodle.com&lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Roles]] - moodle.com &lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Accessibility]] - moodle.com &lt;br /&gt;
::Full compliance with all major accessibility standards&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Student Information API]] - moodle.com &lt;br /&gt;
::API for integrating external systems for managing student career&lt;br /&gt;
* [[Portfolio API]]&lt;br /&gt;
::Interface Moodle activities and repositories to help produce portfolios for internal assessment AND external publication&lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4459</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4459"/>
		<updated>2006-02-02T15:25:00Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Version 2.0 - Expected later in 2006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected end of 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting this format, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Groups]] - moodle.com&lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Roles]] - moodle.com &lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Accessibility]] - moodle.com &lt;br /&gt;
::Full compliance with all major accessibility standards&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Student Information API]] - moodle.com &lt;br /&gt;
::API for integrating external systems for managing student career&lt;br /&gt;
* [[Portfolio API]]&lt;br /&gt;
::Interface Moodle activities and repositories to help produce portfolios for assessment AND external &lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4458</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4458"/>
		<updated>2006-02-02T15:09:27Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This roadmap collects the best information about upcoming features in Moodle.   It is not 100% certain - features may change according to available funding and developers.&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 - Beta expected late February 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 - Expected later in 2006 ==&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting this format, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Groups]] - moodle.com&lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Roles]] - moodle.com &lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* [[Web Services API]]&lt;br /&gt;
::Providing remote control and access of Moodle services by other systems, as well as sharing of information between Moodle sites with trust relationships.&lt;br /&gt;
* [[Repository API]] - moodle.com&lt;br /&gt;
::Abstract all file operations to an API that allows plugins for different external repositories.&lt;br /&gt;
* [[Community Hub]] - moodle.com &lt;br /&gt;
::Leverage above improvements into a system to network Moodles together.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4457</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4457"/>
		<updated>2006-02-02T14:52:38Z</updated>

		<summary type="html">&lt;p&gt;Martin: Sorry, Helen, I want this to be more of a developer page, it&amp;#039;s not finished yet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the current roadmap of the future, though this is always subject to change depending on [http://moodle.org/donations/ sponsors] and [[Credits|developers]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [[IMS Learning Design]] - moodle.com&lt;br /&gt;
:: Support for importing/exporting this format, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [[Conditional activities]] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [[Groups]] - moodle.com&lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [[Roles]] - moodle.com &lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [[Metadata]] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* Many of the main pages customisable using HTML templates.&lt;br /&gt;
* Improved Web Services API&lt;br /&gt;
* Integration with some repositories&lt;br /&gt;
* Some exciting developments in making Moodle more network-aware, with a natural evolution of Moodle&#039;s focus on collaboration. More on this here later.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Template:About_Moodle&amp;diff=4456</id>
		<title>Template:About Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Template:About_Moodle&amp;diff=4456"/>
		<updated>2006-02-02T14:50:48Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;float: right; border: 1px solid #aaa; background: #f9f9f9; padding: 5px; margin: 0 0 10px 5px;&amp;quot;&lt;br /&gt;
! style=&amp;quot;padding: 0 5px; background:#e4e4e4&amp;quot; align=&amp;quot;center&amp;quot; | [[About Moodle]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-size: 90%; padding: 0 5px;&amp;quot; |&lt;br /&gt;
*[[Background]]&lt;br /&gt;
*[[Philosophy]]&lt;br /&gt;
*[[License]]&lt;br /&gt;
*[[Features]]&lt;br /&gt;
*[[Release Notes]]&lt;br /&gt;
*[[Future]]&lt;br /&gt;
*[[Credits]]&lt;br /&gt;
*[[Case for Moodle]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4451</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4451"/>
		<updated>2006-02-02T11:20:56Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Version 2.0 */  continuing ...off to dinner :-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the current roadmap of the future, though this is always subject to change depending on [http://moodle.org/donations/ sponsors] and [[Credits|developers]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [IMS Learning Design] - moodle.com&lt;br /&gt;
:: Support for importing/exporting this format, converting Moodle activities and sequences of activities into a standard format for sharing, and importing standard sequences into Moodle courses&lt;br /&gt;
* [Conditional activities] - moodle.com&lt;br /&gt;
::allowing dependencies and forced paths through the content.  It also provides support for &lt;br /&gt;
* [Groups] - moodle.com&lt;br /&gt;
::groups can also be defined at the site level, and activities can be assigned to course groups&lt;br /&gt;
* [Roles] - moodle.com &lt;br /&gt;
::this new system will allow the creation of custom roles at site, course and activity level&lt;br /&gt;
* [Metadata] - moodle.com&lt;br /&gt;
::build on the keywords in 1.6 to provide metadata for all activities and courses, linkable to standard lists of metadata such as State-based learning outomes and curricula&lt;br /&gt;
* Many of the main pages customisable using HTML templates.&lt;br /&gt;
* Improved Web Services API&lt;br /&gt;
* Integration with some repositories&lt;br /&gt;
* Some exciting developments in making Moodle more network-aware, with a natural evolution of Moodle&#039;s focus on collaboration. More on this here later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4450</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4450"/>
		<updated>2006-02-02T09:59:55Z</updated>

		<summary type="html">&lt;p&gt;Martin: Working on 1.6 format etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the current roadmap of the future, though this is always subject to change depending on [http://moodle.org/donations/ sponsors] and [[Credits|developers]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 ==&lt;br /&gt;
&lt;br /&gt;
* [[Unicode]] - Moodle.com, Eloy Lafuente and Koen Roggemans&lt;br /&gt;
::Moodle is now 100% Unicode, which means any language can be mixed together and an end to a number of problems that different character sets caused us.&lt;br /&gt;
* [[Documentation]] - Moodle.com and Helen Foster&lt;br /&gt;
::A new one-stop Wiki site for ALL Moodle documentation, including links from Moodle itself&lt;br /&gt;
* [[Database]] - Moodle.com &lt;br /&gt;
::A new activity module that allows collaborative collection of structured data, useful for many things!&lt;br /&gt;
* [[LAMS]] - LAMS Foundation&lt;br /&gt;
::Integrated via a course format and an activity module&lt;br /&gt;
* [[Blogs]] - Daryl Hawes and Moodle.com&lt;br /&gt;
::Allows reflection on an ongoing basis.  Entries are marked and can be viewed by user, course, group, site etc.  Contains new keyword support.  &lt;br /&gt;
* [[Site Stats]] - Catalyst&lt;br /&gt;
::Provides statistics at a higher level than before (by course etc)&lt;br /&gt;
* [[My Moodle]] - Catalyst&lt;br /&gt;
::A dashboard interface that allows an overview for each user of all their courses etc&lt;br /&gt;
* [[Hive integration]] - Moodle.com and Harvest Road&lt;br /&gt;
::This initial integration with Hive allows teachers to upload, browse, search and select [[mod/resource/index|Resources]] within the external repository.&lt;br /&gt;
* [[Multiple Groups]] - Moodle.com and Arab Open University&lt;br /&gt;
::Users can be part of multiple groups within a course.&lt;br /&gt;
* [[IMS Resource]] - Eloy Lafuente and Alton College&lt;br /&gt;
::Supports the loading of any content package as a Resource, plus special support for NLN repositories.&lt;br /&gt;
* [[Learning Design Export]] - Moodle.com and Open University of The Netherlands&lt;br /&gt;
::We plan to have a very simple export for any Moodle course into IMS LD format, as a proof of concept and to help the community start learning about IMS LD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
* Conditional activities, allowing dependencies and forced paths&lt;br /&gt;
* Complete support for IMS LD standard&lt;br /&gt;
* Improved Groups, allowing groups to be defined at site and activity level&lt;br /&gt;
* Improved Roles implementation, allowing custom roles at site, course and activity level&lt;br /&gt;
* Many of the main pages customisable using HTML templates.&lt;br /&gt;
* Improved Web Services API&lt;br /&gt;
* Integration with some repositories&lt;br /&gt;
* Some exciting developments in making Moodle more network-aware, with a natural evolution of Moodle&#039;s focus on collaboration. More on this here later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4449</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4449"/>
		<updated>2006-02-02T09:27:44Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Key Moodle Positions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder and manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] in Perth, Australia helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Roles==&lt;br /&gt;
&lt;br /&gt;
* Lead Developer - Martin Dougiamas&lt;br /&gt;
* Knight in Shining Armor - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4448</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4448"/>
		<updated>2006-02-02T09:27:19Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder and manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] in Perth, Australia helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Positions==&lt;br /&gt;
&lt;br /&gt;
* Lead Developer - Martin Dougiamas&lt;br /&gt;
* Knight in Shining Armor - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4447</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4447"/>
		<updated>2006-02-02T09:25:14Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder, lead developer, and project manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] in Perth, Australia helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Positions==&lt;br /&gt;
&lt;br /&gt;
* Moodle Knight - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4446</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4446"/>
		<updated>2006-02-02T09:24:47Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder, lead developer, and project manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] in Perth, Australia helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Positions==&lt;br /&gt;
&lt;br /&gt;
* Moodle Knight - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4445</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4445"/>
		<updated>2006-02-02T09:23:50Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Overall guidance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder, lead developer, and project manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] in Perth, Australia helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Positions==&lt;br /&gt;
&lt;br /&gt;
* Moodle Knight - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4444</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4444"/>
		<updated>2006-02-02T09:23:00Z</updated>

		<summary type="html">&lt;p&gt;Martin: just some improvement - I&amp;#039;d like this page to be comprehensive!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the founder, lead developer, and project manager for the whole Moodle project. Since 2005 there is a [http://moodle.com/hq/ team of people] employed over at [http://moodle.com/ Moodle HQ] helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Key Moodle Positions==&lt;br /&gt;
&lt;br /&gt;
* Moodle Knight - Eloy Lafuente&lt;br /&gt;
* Translation Coordinator - Koen Roggemans&lt;br /&gt;
* Security Officer - Petr Škoda (skodak)&lt;br /&gt;
* Documentation Steward - [[User:Helen|Helen Foster]]&lt;br /&gt;
* Themes Manager - Urs Hunkler&lt;br /&gt;
* Stable Release Manager - Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
Endless thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff, Urs Hunkler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain!  Please make your suggestions on the discussion tab for this page.&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
* used our [http://moodle.com commercial Moodle Partner services]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://download.moodle.org/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
Urs Hunkler is our Themes Manager, providing support and development.&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (&#039;&#039;jlim AT natsoft DOT com DOT my&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp (&#039;&#039;hermanV AT mindless DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet (&#039;&#039;vincent AT phpconcept DOT net&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle (&#039;&#039;bmatzelle AT yahoo DOT com&#039;&#039;)&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt (&#039;&#039;monte AT ispi DOT net&#039;&#039;)&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer (&#039;&#039;xnoguer AT rezebra DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan (&#039;&#039;chris AT greatbridge DOT com&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4398</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4398"/>
		<updated>2006-02-01T03:26:48Z</updated>

		<summary type="html">&lt;p&gt;Martin: Copied over old roadmap from &amp;quot;Future&amp;quot; page and about to edit it heavily&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Here is the current roadmap of the future, though this is always subject to change depending on [http://moodle.org/donations/ sponsors] and [[Credits|developers]].&lt;br /&gt;
&lt;br /&gt;
== Version 1.6 ==&lt;br /&gt;
&lt;br /&gt;
* Blogs as the main tool for reflective activities (providing user, course and site feeds).&lt;br /&gt;
* Database module, a general purpose tool for collaborative data entry, searching and browsing&lt;br /&gt;
* Integration with LAMS as an activity or course format&lt;br /&gt;
* Some better statistics&lt;br /&gt;
* Incoming email handling&lt;br /&gt;
* Basic Web Services API&lt;br /&gt;
&lt;br /&gt;
== Version 1.7 ==&lt;br /&gt;
&lt;br /&gt;
* My Moodle page providing a customisable overview of all courses, plus RSS feeds and so on.&lt;br /&gt;
* Improved User Profile page, integrating Blogs, feeds etc in a semi-public home page&lt;br /&gt;
* Preliminary support for IMS LD Level A, allowing import and export&lt;br /&gt;
* Full support for SCORM 2004&lt;br /&gt;
* Improved Web Services API&lt;br /&gt;
* Integration with some repositories&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
* Conditional activities, allowing dependencies and forced paths&lt;br /&gt;
* Complete support for IMS LD standard&lt;br /&gt;
* Improved Groups, allowing groups to be defined at site and activity level&lt;br /&gt;
* Improved Roles implementation, allowing custom roles at site, course and activity level&lt;br /&gt;
* Many of the main pages customisable using HTML templates.&lt;br /&gt;
* Some exciting developments in making Moodle more network-aware, with a natural evolution of Moodle&#039;s focus on collaboration. More on this here later.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=FAQ&amp;diff=4252</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=FAQ&amp;diff=4252"/>
		<updated>2006-01-29T09:24:29Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=FAQ&amp;diff=4251</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=FAQ&amp;diff=4251"/>
		<updated>2006-01-29T09:23:52Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT Category:FAQ&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4187</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4187"/>
		<updated>2006-01-28T15:32:15Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Overall guidance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the originator, lead developer, project manager, and release manager for the whole Moodle project. Since 2005 there is a team of people employed over at [http://moodle.com/ Moodle HQ] helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999 onwards, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
A special thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain! Please email Martin and make your suggestions! :-)&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://moodle.org/download/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (jlim@natsoft.com.my)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp, hermanV@mindless.com&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet &amp;lt;vincent@phpconcept.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle &amp;lt;bmatzelle@yahoo.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt &amp;lt;monte@ispi.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer &amp;lt;xnoguer@rezebra.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan &amp;lt;chris@greatbridge.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4186</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4186"/>
		<updated>2006-01-28T15:31:25Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Overall guidance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the originator, lead developer, project manager, and release manager for the whole Moodle project. Since 2005 there is a team of people employed over at [http://moodle.com/ Moodle HQ] helping him keep on top of things (or at least within sight of the top!).&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999-4999, Moodle Pty Ltd under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
A special thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain! Please email Martin and make your suggestions! :-)&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://moodle.org/download/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (jlim@natsoft.com.my)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp, hermanV@mindless.com&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet &amp;lt;vincent@phpconcept.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle &amp;lt;bmatzelle@yahoo.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt &amp;lt;monte@ispi.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer &amp;lt;xnoguer@rezebra.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan &amp;lt;chris@greatbridge.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=License&amp;diff=4185</id>
		<title>License</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=License&amp;diff=4185"/>
		<updated>2006-01-28T15:24:13Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Copyright License for Moodle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Copyright License for Moodle==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;name&#039;&#039; &#039;&#039;&#039;Moodle™&#039;&#039;&#039; is a registered trademark of Moodle Pty Ltd.&lt;br /&gt;
If you are intending to use the name to promote commercial Moodle services,&lt;br /&gt;
then you must seek permission from the Trust via the [http://moodle.com/helpdesk/ moodle.com helpdesk], in accordance with normal trademark restrictions. There are no restrictions&lt;br /&gt;
on how you use the name in other contexts.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;software&#039;&#039; &#039;&#039;&#039;Moodle&#039;&#039;&#039; is Copyright © 1999 onwards, [http://dougiamas.com/ Martin Dougiamas].&lt;br /&gt;
&lt;br /&gt;
This program is free software; you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation; either version 2 of the License, or&lt;br /&gt;
(at your option) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;br /&gt;
GNU General Public License below for more details.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;GNU GENERAL PUBLIC LICENCE&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;Version 2, June 1991&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 1989, 1991 Free Software Foundation, Inc.&lt;br /&gt;
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
Everyone is permitted to copy and distribute verbatim copies&lt;br /&gt;
of this license document, but changing it is not allowed.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The licenses for most software are designed to take away your&lt;br /&gt;
freedom to share and change it.  By contrast, the GNU General Public&lt;br /&gt;
License is intended to guarantee your freedom to share and change free&lt;br /&gt;
software--to make sure the software is free for all its users.  This&lt;br /&gt;
General Public License applies to most of the Free Software&lt;br /&gt;
Foundation&#039;s software and to any other program whose authors commit to&lt;br /&gt;
using it.  (Some other Free Software Foundation software is covered by&lt;br /&gt;
the GNU Library General Public License instead.)  You can apply it to&lt;br /&gt;
your programs, too.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;When we speak of free software, we are referring to freedom, not&lt;br /&gt;
price.  Our General Public Licenses are designed to make sure that you&lt;br /&gt;
have the freedom to distribute copies of free software (and charge for&lt;br /&gt;
this service if you wish), that you receive source code or can get it&lt;br /&gt;
if you want it, that you can change the software or use pieces of it&lt;br /&gt;
in new free programs; and that you know you can do these things.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;To protect your rights, we need to make restrictions that forbid&lt;br /&gt;
anyone to deny you these rights or to ask you to surrender the rights.&lt;br /&gt;
These restrictions translate to certain responsibilities for you if you&lt;br /&gt;
distribute copies of the software, or if you modify it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;For example, if you distribute copies of such a program, whether&lt;br /&gt;
gratis or for a fee, you must give the recipients all the rights that&lt;br /&gt;
you have.  You must make sure that they, too, receive or can get the&lt;br /&gt;
source code.  And you must show them these terms so they know their&lt;br /&gt;
rights.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;We protect your rights with two steps: (1) copyright the software, and&lt;br /&gt;
(2) offer you this license which gives you legal permission to copy,&lt;br /&gt;
distribute and/or modify the software.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Also, for each author&#039;s protection and ours, we want to make certain&lt;br /&gt;
that everyone understands that there is no warranty for this free&lt;br /&gt;
software.  If the software is modified by someone else and passed on, we&lt;br /&gt;
want its recipients to know that what they have is not the original, so&lt;br /&gt;
that any problems introduced by others will not reflect on the original&lt;br /&gt;
authors&#039; reputations.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Finally, any free program is threatened constantly by software&lt;br /&gt;
patents.  We wish to avoid the danger that redistributors of a free&lt;br /&gt;
program will individually obtain patent licenses, in effect making the&lt;br /&gt;
program proprietary.  To prevent this, we have made it clear that any&lt;br /&gt;
patent must be licensed for everyone&#039;s free use or not licensed at all.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The precise terms and conditions for copying, distribution and&lt;br /&gt;
modification follow.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;GNU GENERAL PUBLIC LICENSE&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;0. This License applies to any program or other work which contains&lt;br /&gt;
a notice placed by the copyright holder saying it may be distributed&lt;br /&gt;
under the terms of this General Public License.  The &amp;quot;Program&amp;quot;, below,&lt;br /&gt;
refers to any such program or work, and a &amp;quot;work based on the Program&amp;quot;&lt;br /&gt;
means either the Program or any derivative work under copyright law:&lt;br /&gt;
that is to say, a work containing the Program or a portion of it,&lt;br /&gt;
either verbatim or with modifications and/or translated into another&lt;br /&gt;
language.  (Hereinafter, translation is included without limitation in&lt;br /&gt;
the term &amp;quot;modification&amp;quot;.)  Each licensee is addressed as &amp;quot;you&amp;quot;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Activities other than copying, distribution and modification are not&lt;br /&gt;
covered by this License; they are outside its scope.  The act of&lt;br /&gt;
running the Program is not restricted, and the output from the Program&lt;br /&gt;
is covered only if its contents constitute a work based on the&lt;br /&gt;
Program (independent of having been made by running the Program).&lt;br /&gt;
Whether that is true depends on what the Program does.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;1. You may copy and distribute verbatim copies of the Program&#039;s&lt;br /&gt;
source code as you receive it, in any medium, provided that you&lt;br /&gt;
conspicuously and appropriately publish on each copy an appropriate&lt;br /&gt;
copyright notice and disclaimer of warranty; keep intact all the&lt;br /&gt;
notices that refer to this License and to the absence of any warranty;&lt;br /&gt;
and give any other recipients of the Program a copy of this License&lt;br /&gt;
along with the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;You may charge a fee for the physical act of transferring a copy, and&lt;br /&gt;
you may at your option offer warranty protection in exchange for a fee.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;2. You may modify your copy or copies of the Program or any portion&lt;br /&gt;
of it, thus forming a work based on the Program, and copy and&lt;br /&gt;
distribute such modifications or work under the terms of Section 1&lt;br /&gt;
above, provided that you also meet all of these conditions:&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;a) You must cause the modified files to carry prominent notices&lt;br /&gt;
stating that you changed the files and the date of any change.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;b) You must cause any work that you distribute or publish, that in&lt;br /&gt;
whole or in part contains or is derived from the Program or any&lt;br /&gt;
part thereof, to be licensed as a whole at no charge to all third&lt;br /&gt;
parties under the terms of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;c) If the modified program normally reads commands interactively&lt;br /&gt;
when run, you must cause it, when started running for such&lt;br /&gt;
interactive use in the most ordinary way, to print or display an&lt;br /&gt;
announcement including an appropriate copyright notice and a&lt;br /&gt;
notice that there is no warranty (or else, saying that you provide&lt;br /&gt;
a warranty) and that users may redistribute the program under&lt;br /&gt;
these conditions, and telling the user how to view a copy of this&lt;br /&gt;
License.  (Exception: if the Program itself is interactive but&lt;br /&gt;
does not normally print such an announcement, your work based on&lt;br /&gt;
the Program is not required to print an announcement.)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;These requirements apply to the modified work as a whole.  If&lt;br /&gt;
identifiable sections of that work are not derived from the Program,&lt;br /&gt;
and can be reasonably considered independent and separate works in&lt;br /&gt;
themselves, then this License, and its terms, do not apply to those&lt;br /&gt;
sections when you distribute them as separate works.  But when you&lt;br /&gt;
distribute the same sections as part of a whole which is a work based&lt;br /&gt;
on the Program, the distribution of the whole must be on the terms of&lt;br /&gt;
this License, whose permissions for other licensees extend to the&lt;br /&gt;
entire whole, and thus to each and every part regardless of who wrote it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Thus, it is not the intent of this section to claim rights or contest&lt;br /&gt;
your rights to work written entirely by you; rather, the intent is to&lt;br /&gt;
exercise the right to control the distribution of derivative or&lt;br /&gt;
collective works based on the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;In addition, mere aggregation of another work not based on the Program&lt;br /&gt;
with the Program (or with a work based on the Program) on a volume of&lt;br /&gt;
a storage or distribution medium does not bring the other work under&lt;br /&gt;
the scope of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;3. You may copy and distribute the Program (or a work based on it,&lt;br /&gt;
under Section 2) in object code or executable form under the terms of&lt;br /&gt;
Sections 1 and 2 above provided that you also do one of the following:&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;a) Accompany it with the complete corresponding machine-readable&lt;br /&gt;
source code, which must be distributed under the terms of Sections&lt;br /&gt;
1 and 2 above on a medium customarily used for software interchange; or,&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;b) Accompany it with a written offer, valid for at least three&lt;br /&gt;
years, to give any third party, for a charge no more than your&lt;br /&gt;
cost of physically performing source distribution, a complete&lt;br /&gt;
machine-readable copy of the corresponding source code, to be&lt;br /&gt;
distributed under the terms of Sections 1 and 2 above on a medium&lt;br /&gt;
customarily used for software interchange; or,&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;c) Accompany it with the information you received as to the offer&lt;br /&gt;
to distribute corresponding source code.  (This alternative is&lt;br /&gt;
allowed only for noncommercial distribution and only if you&lt;br /&gt;
received the program in object code or executable form with such&lt;br /&gt;
an offer, in accord with Subsection b above.)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The source code for a work means the preferred form of the work for&lt;br /&gt;
making modifications to it.  For an executable work, complete source&lt;br /&gt;
code means all the source code for all modules it contains, plus any&lt;br /&gt;
associated interface definition files, plus the scripts used to&lt;br /&gt;
control compilation and installation of the executable.  However, as a&lt;br /&gt;
special exception, the source code distributed need not include&lt;br /&gt;
anything that is normally distributed (in either source or binary&lt;br /&gt;
form) with the major components (compiler, kernel, and so on) of the&lt;br /&gt;
operating system on which the executable runs, unless that component&lt;br /&gt;
itself accompanies the executable.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If distribution of executable or object code is made by offering&lt;br /&gt;
access to copy from a designated place, then offering equivalent&lt;br /&gt;
access to copy the source code from the same place counts as&lt;br /&gt;
distribution of the source code, even though third parties are not&lt;br /&gt;
compelled to copy the source along with the object code.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;4. You may not copy, modify, sublicense, or distribute the Program&lt;br /&gt;
except as expressly provided under this License.  Any attempt&lt;br /&gt;
otherwise to copy, modify, sublicense or distribute the Program is&lt;br /&gt;
void, and will automatically terminate your rights under this License.&lt;br /&gt;
However, parties who have received copies, or rights, from you under&lt;br /&gt;
this License will not have their licenses terminated so long as such&lt;br /&gt;
parties remain in full compliance.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;5. You are not required to accept this License, since you have not&lt;br /&gt;
signed it.  However, nothing else grants you permission to modify or&lt;br /&gt;
distribute the Program or its derivative works.  These actions are&lt;br /&gt;
prohibited by law if you do not accept this License.  Therefore, by&lt;br /&gt;
modifying or distributing the Program (or any work based on the&lt;br /&gt;
Program), you indicate your acceptance of this License to do so, and&lt;br /&gt;
all its terms and conditions for copying, distributing or modifying&lt;br /&gt;
the Program or works based on it.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;6. Each time you redistribute the Program (or any work based on the&lt;br /&gt;
Program), the recipient automatically receives a license from the&lt;br /&gt;
original licensor to copy, distribute or modify the Program subject to&lt;br /&gt;
these terms and conditions.  You may not impose any further&lt;br /&gt;
restrictions on the recipients&#039; exercise of the rights granted herein.&lt;br /&gt;
You are not responsible for enforcing compliance by third parties to&lt;br /&gt;
this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;7. If, as a consequence of a court judgment or allegation of patent&lt;br /&gt;
infringement or for any other reason (not limited to patent issues),&lt;br /&gt;
conditions are imposed on you (whether by court order, agreement or&lt;br /&gt;
otherwise) that contradict the conditions of this License, they do not&lt;br /&gt;
excuse you from the conditions of this License.  If you cannot&lt;br /&gt;
distribute so as to satisfy simultaneously your obligations under this&lt;br /&gt;
License and any other pertinent obligations, then as a consequence you&lt;br /&gt;
may not distribute the Program at all.  For example, if a patent&lt;br /&gt;
license would not permit royalty-free redistribution of the Program by&lt;br /&gt;
all those who receive copies directly or indirectly through you, then&lt;br /&gt;
the only way you could satisfy both it and this License would be to&lt;br /&gt;
refrain entirely from distribution of the Program.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;If any portion of this section is held invalid or unenforceable under&lt;br /&gt;
any particular circumstance, the balance of the section is intended to&lt;br /&gt;
apply and the section as a whole is intended to apply in other&lt;br /&gt;
circumstances.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;It is not the purpose of this section to induce you to infringe any&lt;br /&gt;
patents or other property right claims or to contest validity of any&lt;br /&gt;
such claims; this section has the sole purpose of protecting the&lt;br /&gt;
integrity of the free software distribution system, which is&lt;br /&gt;
implemented by public license practices.  Many people have made&lt;br /&gt;
generous contributions to the wide range of software distributed&lt;br /&gt;
through that system in reliance on consistent application of that&lt;br /&gt;
system; it is up to the author/donor to decide if he or she is willing&lt;br /&gt;
to distribute software through any other system and a licensee cannot&lt;br /&gt;
impose that choice.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;This section is intended to make thoroughly clear what is believed to&lt;br /&gt;
be a consequence of the rest of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;8. If the distribution and/or use of the Program is restricted in&lt;br /&gt;
certain countries either by patents or by copyrighted interfaces, the&lt;br /&gt;
original copyright holder who places the Program under this License&lt;br /&gt;
may add an explicit geographical distribution limitation excluding&lt;br /&gt;
those countries, so that distribution is permitted only in or among&lt;br /&gt;
countries not thus excluded.  In such case, this License incorporates&lt;br /&gt;
the limitation as if written in the body of this License.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;9. The Free Software Foundation may publish revised and/or new versions&lt;br /&gt;
of the General Public License from time to time.  Such new versions will&lt;br /&gt;
be similar in spirit to the present version, but may differ in detail to&lt;br /&gt;
address new problems or concerns.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Each version is given a distinguishing version number.  If the Program&lt;br /&gt;
specifies a version number of this License which applies to it and &amp;quot;any&lt;br /&gt;
later version&amp;quot;, you have the option of following the terms and conditions&lt;br /&gt;
either of that version or of any later version published by the Free&lt;br /&gt;
Software Foundation.  If the Program does not specify a version number of&lt;br /&gt;
this License, you may choose any version ever published by the Free Software&lt;br /&gt;
Foundation.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;10. If you wish to incorporate parts of the Program into other free&lt;br /&gt;
programs whose distribution conditions are different, write to the author&lt;br /&gt;
to ask for permission.  For software which is copyrighted by the Free&lt;br /&gt;
Software Foundation, write to the Free Software Foundation; we sometimes&lt;br /&gt;
make exceptions for this.  Our decision will be guided by the two goals&lt;br /&gt;
of preserving the free status of all derivatives of our free software and&lt;br /&gt;
of promoting the sharing and reuse of software generally.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;NO WARRANTY&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY&lt;br /&gt;
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN&lt;br /&gt;
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES&lt;br /&gt;
PROVIDE THE PROGRAM &amp;quot;AS IS&amp;quot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED&lt;br /&gt;
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;br /&gt;
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS&lt;br /&gt;
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE&lt;br /&gt;
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,&lt;br /&gt;
REPAIR OR CORRECTION.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING&lt;br /&gt;
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR&lt;br /&gt;
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,&lt;br /&gt;
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING&lt;br /&gt;
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED&lt;br /&gt;
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY&lt;br /&gt;
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER&lt;br /&gt;
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE&lt;br /&gt;
POSSIBILITY OF SUCH DAMAGES.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;END OF TERMS AND CONDITIONS&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Features&amp;diff=4184</id>
		<title>Features</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Features&amp;diff=4184"/>
		<updated>2006-01-28T15:21:29Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is an active and evolving product. This page lists just some of the many features it contains:&lt;br /&gt;
&lt;br /&gt;
== Overall design ==&lt;br /&gt;
&lt;br /&gt;
*  Promotes a social constructionist pedagogy (collaboration, activities, critical reflection, etc)&lt;br /&gt;
* Suitable for 100% online classes as well as supplementing face-to-face learning&lt;br /&gt;
* Simple, lightweight, efficient, compatible, low-tech browser interface&lt;br /&gt;
* Easy to install on almost any platform that supports PHP. Requires only one database (and can share it).&lt;br /&gt;
* Full database abstraction supports all major brands of database (except for initial table definition)&lt;br /&gt;
* Course listing shows descriptions for every course on the server, including accessibility to guests.&lt;br /&gt;
* Courses can be categorised and searched - one Moodle site can support thousands of courses&lt;br /&gt;
* Emphasis on strong security throughout. Forms are all checked, data validated, cookies encrypted etc&lt;br /&gt;
* Most text entry areas (resources, forum postings etc) can be edited using an embedded WYSIWYG HTML editor&lt;br /&gt;
&lt;br /&gt;
== Site management ==&lt;br /&gt;
&lt;br /&gt;
*  Site is managed by an admin user, defined during setup&lt;br /&gt;
* Plug-in &amp;quot;themes&amp;quot; allow the admin to customise the site colours, fonts, layout etc to suit local needs&lt;br /&gt;
* Plug-in activity modules can be added to existing Moodle installations&lt;br /&gt;
* Plug-in language packs allow full localisation to any language. These can be edited using a built-in web-based editor. Currently there are language packs for over [http://download.moodle.org/lang/ 70 languages].&lt;br /&gt;
* The code is clearly-written PHP under a GPL license - easy to modify to suit your needs&lt;br /&gt;
&lt;br /&gt;
== User management ==&lt;br /&gt;
&lt;br /&gt;
*  Goals are to reduce admin involvement to a minimum, while retaining high security&lt;br /&gt;
* Supports a range of authentication mechanisms through plug-in authentication modules, allowing easy integration with existing systems.&lt;br /&gt;
* Standard email method: students can create their own login accounts. Email addresses are verified by confirmation.&lt;br /&gt;
* LDAP method: account logins can be checked against an LDAP server. Admin can specify which fields to use.&lt;br /&gt;
* IMAP, POP3, NNTP: account logins are checked against a mail or news server. SSL, certificates and TLS are supported.&lt;br /&gt;
* External database: any database containing at least two fields can be used as an external authentication source.&lt;br /&gt;
* Each person requires only one account for the whole server - each account can have different access&lt;br /&gt;
* An admin account controls the creation of courses and creates teachers by assigning users to courses&lt;br /&gt;
* A course creator account is only allowed to create courses and teach in them&lt;br /&gt;
* Teachers may have editing privileges removed so that they can&#039;t modify the course (e.g. for part-time tutors)&lt;br /&gt;
* Security - teachers can add an &amp;quot;enrolment key&amp;quot; to their courses to keep out non-students. They can give out this key face-to-face or via personal email etc&lt;br /&gt;
* Teachers can enrol students manually if desired&lt;br /&gt;
* Teachers can unenrol students manually if desired, otherwise they are automatically unenrolled after a certain period of inactivity (set by the admin)&lt;br /&gt;
* Students are encouraged to build an online profile including photos, description. Email addresses can be protected from display if required.&lt;br /&gt;
* Every user can specify their own timezone, and every date in Moodle is translated to that timezone (e.g. posting dates, assignment due dates etc)&lt;br /&gt;
* Every user can choose the language used for the Moodle interface (English, French, German, Spanish, Portuguese etc)&lt;br /&gt;
&lt;br /&gt;
== Course management ==&lt;br /&gt;
&lt;br /&gt;
*  A full teacher has full control over all settings for a course, including restricting other teachers&lt;br /&gt;
* Choice of course formats such as by week, by topic or a discussion-focussed social format&lt;br /&gt;
* Flexible array of course activities - Forums, Quizzes, Glossaries, Resources, Choices, Surveys, Assignments, Chats, Workshops&lt;br /&gt;
* Recent changes to the course since the last login can be displayed on the course home page - helps give sense of community&lt;br /&gt;
* Most text entry areas (resources, forum postings etc) can be edited using an embedded WYSIWYG HTML editor&lt;br /&gt;
* All grades for Forums, Quizzes and Assignments can be viewed on one page (and downloaded as a spreadsheet file)&lt;br /&gt;
* Full user logging and tracking - activity reports for each student are available with graphs and details about each module (last access, number of times read) as well as a detailed &amp;quot;story&amp;quot; of each students involvement including postings etc on one page.&lt;br /&gt;
* Mail integration - copies of forum posts, teacher feedback etc can be mailed in HTML or plain text.&lt;br /&gt;
* Custom scales - teachers can define their own scales to be used for grading forums and assignments&lt;br /&gt;
* Courses can be packaged as a single zip file using the Backup function. These can be restored on any Moodle server.&lt;br /&gt;
&lt;br /&gt;
== Assignment Module ==&lt;br /&gt;
&lt;br /&gt;
* Assignments can be specified with a due date and a maximum grade.&lt;br /&gt;
* Students can upload their assignments (any file format) to the server - they are date-stamped.&lt;br /&gt;
* Late assignments are allowed, but the amount of lateness is shown clearly to the teacher&lt;br /&gt;
* For each particular assignment, the whole class can be assessed (grade and comment) on one page in one form.&lt;br /&gt;
* Teacher feedback is appended to the assignment page for each student, and notification is mailed out.&lt;br /&gt;
* The teacher can choose to allow resubmission of assignments after grading (for regrading)&lt;br /&gt;
&lt;br /&gt;
== Chat Module ==&lt;br /&gt;
&lt;br /&gt;
* Allows smooth, synchronous text interaction&lt;br /&gt;
* Includes profile pictures in the chat window&lt;br /&gt;
* Supports URLs, smilies, embedded HTML, images etc&lt;br /&gt;
* All sessions are logged for later viewing, and these can also be made available to students&lt;br /&gt;
&lt;br /&gt;
== Choice Module ==&lt;br /&gt;
&lt;br /&gt;
* Like a poll. Can either be used to vote on something, or to get feedback from every student (eg research consent)&lt;br /&gt;
* Teacher sees intuitive table view of who chose what&lt;br /&gt;
* Students can optionally be allowed to see an up-to-date graph of results&lt;br /&gt;
&lt;br /&gt;
== Forum Module ==&lt;br /&gt;
&lt;br /&gt;
* Different types of forums are available, such as teacher-only, course news, open-to-all, and one-thread-per-user.&lt;br /&gt;
* All postings have the authors photo attached.&lt;br /&gt;
* Discussions can be viewed nested, flat or threaded, oldest or newest first.&lt;br /&gt;
* Individual forums can be subscribed to by each person so that copies are forwarded via email, or the teacher can force subscription for all&lt;br /&gt;
* The teacher can choose not to allow replies (eg for an announcements-only forum)&lt;br /&gt;
* Discussion threads can be easily moved between forums by the teacher&lt;br /&gt;
* Attached images are shown inline&lt;br /&gt;
* If forum ratings are being used, these can be restricted to a range of dates&lt;br /&gt;
&lt;br /&gt;
== Quiz Module ==&lt;br /&gt;
&lt;br /&gt;
* Teachers can define a database of questions for re-use in different quizzes&lt;br /&gt;
* Questions can be stored in categories for easy access, and these categories can be &amp;quot;published&amp;quot; to make them accessible from any course on the site.&lt;br /&gt;
* Quizzes are automatically graded, and can be re-graded if questions are modified&lt;br /&gt;
* Quizzes can have a limited time window outside of which they are not available&lt;br /&gt;
* At the teacher&#039;s option, quizzes can be attempted multiple times, and can show feedback and/or correct answers&lt;br /&gt;
* Quiz questions and quiz answers can be shuffled (randomised) to reduce cheating&lt;br /&gt;
* Questions allow HTML and images&lt;br /&gt;
* Questions can be imported from external text files&lt;br /&gt;
* Quizzes can be attempted multiple times, if desired&lt;br /&gt;
* Attempts can be cumulative, if desired, and finished over several sessions&lt;br /&gt;
* Multiple-choice questions supporting single or multiple answers&lt;br /&gt;
* Short Answer questions (words or phrases)&lt;br /&gt;
* True-False questions&lt;br /&gt;
* Matching questions&lt;br /&gt;
* Random questions&lt;br /&gt;
* Numerical questions (with allowable ranges)&lt;br /&gt;
* Embedded-answer questions (cloze style) with answers within passages of text&lt;br /&gt;
* Embedded descriptive text and graphics&lt;br /&gt;
&lt;br /&gt;
== Resource Module ==&lt;br /&gt;
&lt;br /&gt;
* Supports display of any electronic content, Word, Powerpoint, Flash, Video, Sounds etc&lt;br /&gt;
* Files can be uploaded and managed on the server, or created on the fly using web forms (text or HTML)&lt;br /&gt;
* External content on the web can be linked to or seamlessly included within the course interface.&lt;br /&gt;
* External web applications can be linked in with data passed to them&lt;br /&gt;
&lt;br /&gt;
== Survey Module ==&lt;br /&gt;
&lt;br /&gt;
* Built-in surveys (COLLES, ATTLS) have been proven as instruments for analysing online classes&lt;br /&gt;
* Online survey reports always available, including many graphs. Data is downloadable as an Excel spreadsheet or CSV text file.&lt;br /&gt;
* Survey interface prevents partly-finished surveys.&lt;br /&gt;
* Feedback is provided to the student of their results compared to the class averages&lt;br /&gt;
&lt;br /&gt;
== Workshop Module ==&lt;br /&gt;
&lt;br /&gt;
* Allows peer assessement of documents, and the teacher can manage and grade the assessment.&lt;br /&gt;
* Supports a wide range of possible grading scales&lt;br /&gt;
* Teacher can provide sample documents for students to practice grading&lt;br /&gt;
* Very flexible with many options.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4183</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Credits&amp;diff=4183"/>
		<updated>2006-01-28T15:20:22Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Overall guidance==&lt;br /&gt;
&lt;br /&gt;
[http://dougiamas.com/ Martin Dougiamas] is the originator, lead developer, project manager, and release manager for the whole Moodle project. Since 2005 he has a team of people employed over at [http://moodle.com/ moodle.com] who help him out.&lt;br /&gt;
&lt;br /&gt;
The Moodle software package is [[License|Copyright © 1999-4999, Martin Dougiamas under the GNU GPL]].&lt;br /&gt;
&lt;br /&gt;
==Main developers==&lt;br /&gt;
&lt;br /&gt;
A special thanks from all of us goes to those who have contributed substantial and ongoing amounts of time to writing Moodle code and helping it grow. These are people who &amp;quot;get&amp;quot; what developing Moodle is all about and without whom Moodle would be a far lesser thing:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eloy Lafuente (stronk7), Ray Kingdon, Williams Castillo, Petri Asikainen, Henrik Kaipe, Zbigniew Fiedorowicz, Gustav Delius, Thomas Robb, Janne Mikkonen, Jon Papaioannou (pj), Scott Elliott, Shane Elliott, Roberto Pinna (Bobo), Mike Churchward, Petr Škoda (skodak), Penny Leach, Martin Langhoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Other contributors==&lt;br /&gt;
&lt;br /&gt;
Many other people have contributed (and are still contributing) with constructive discussions, support, testing and various chunks of code and documentation. This list is long and always changing, but some names include (in the order they were added):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Peter C. Taylor, Art Lader, Matt Hope, Tom Murdock, Sébastien Namèche, James Miller, Dustin Rue, Holger Schadeck, Giovanni Tummarello, John Windmueller, Sean Keogh, Mitsuhiro Yoshida, Greg Barnett, Mark Kimes, Mary Hunter, Russell Jungwirth, Przemyslaw Stencel, John &amp;quot;Captain&amp;quot; Eyre, Paula Edmiston, Howard Miller, Claudio Tavares, P. Timothy Ervin, Bob Calder, Ursula Raab, David Delgado, Mad Alex, Gaëtan Frenoy, Bernard Boucher, Bryan Williams, Rob Butner, Koen Roggemans, David Scotson, Torsten Anderson, Eamon Costello, Hannes Gassert, Andrew Walker.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sorry if we&#039;ve forgotten to include your name here - the Moodle community is large and active so this list is difficult to maintain! Please email Martin and make your suggestions! :-)&lt;br /&gt;
&lt;br /&gt;
Thanks also to everyone of you who have&lt;br /&gt;
* donated via the [http://moodle.org/donations Donations page],&lt;br /&gt;
* contributed to the [http://moodle.org/bugs bug tracker], and&lt;br /&gt;
* participated in the [http://moodle.org/community Moodle Community]&lt;br /&gt;
&lt;br /&gt;
==Translators==&lt;br /&gt;
&lt;br /&gt;
One of Moodle&#039;s strengths is the number of translations it has. Each translation takes many hours of work, as there are over 1000 phrases to translate (plus hundreds of help files!). Many of the languages have more than one contributor, sometimes working together and sometimes working serially.&lt;br /&gt;
&lt;br /&gt;
Maintaining a list of all these wonderful people is too difficult, so please look at the [http://moodle.org/download/lang/ Language download page] for names and details.&lt;br /&gt;
&lt;br /&gt;
The Translation Coordinator is Koen Roggemans (translation@moodle.org).&lt;br /&gt;
&lt;br /&gt;
==Themes==&lt;br /&gt;
&lt;br /&gt;
Themes give Moodle sites some colour and life. Here are all the themes carried as part of the Moodle 1.5 distribution, along with their authors:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;standard&#039;&#039;&#039; by Martin Dougiamas&lt;br /&gt;
* &#039;&#039;&#039;orangewhite&#039;&#039;&#039; and &#039;&#039;&#039;orangewhitepda&#039;&#039;&#039; by Urs Hunkler [http://www.unodo.de/ unodo]&lt;br /&gt;
* &#039;&#039;&#039;oceanblue&#039;&#039;&#039; by Mitsuhiro Yoshida http://mitstek.com&lt;br /&gt;
* &#039;&#039;&#039;cornflower&#039;&#039;&#039; by Thomas Murdock http://sand-paper.org&lt;br /&gt;
* &#039;&#039;&#039;formal_white&#039;&#039;&#039; by Andrea Bicciolo&lt;br /&gt;
* &#039;&#039;&#039;metal&#039;&#039;&#039; by A. Chavan (updated for Moodle 1.5 by Martin Dougiamas)&lt;br /&gt;
* &#039;&#039;&#039;wood&#039;&#039;&#039; by Eloy Lafuente&lt;br /&gt;
&lt;br /&gt;
==Moodle libraries==&lt;br /&gt;
&lt;br /&gt;
Some of Moodle&#039;s libraries were written by other people, and are being redistributed as part of Moodle under their respective open source licenses that thankfully allow us to do so. My thanks go out to the authors of all these excellent products - without them Moodle would be missing important functionality. Copyright information for each package is included below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADOdb&#039;&#039;&#039; - lib/adodb&lt;br /&gt;
&lt;br /&gt;
Database abstraction library for MySQL, PostgreSQL, MSSQL, Oracle, Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.&lt;br /&gt;
&lt;br /&gt;
Version: 4.50&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000-2004 John Lim (jlim@natsoft.com.my)&lt;br /&gt;
&lt;br /&gt;
License: Dual LGPL and BSD-style&lt;br /&gt;
&lt;br /&gt;
URL:  http://adodb.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graph Class&#039;&#039;&#039; - lib/graphlib.php&lt;br /&gt;
&lt;br /&gt;
Class to draw line, point, bar, and area graphs, including numeric x-axis and double y-axis.&lt;br /&gt;
&lt;br /&gt;
Version: 1.6.3 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2000  Herman Veluwenkamp, hermanV@mindless.com&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;html2text&#039;&#039;&#039; - lib/html2text.php&lt;br /&gt;
&lt;br /&gt;
PHP script to convert HTML into an approximate text equivalent&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Mark Wilton-Jones&lt;br /&gt;
&lt;br /&gt;
License: HowToCreate script license with written permission&lt;br /&gt;
&lt;br /&gt;
URL: http://www.howtocreate.co.uk/php/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;htmlArea&#039;&#039;&#039; - lib/editor&lt;br /&gt;
&lt;br /&gt;
Javascript/HTML script to put a GUI editor in textareas on Internet Explorer and Mozilla&lt;br /&gt;
&lt;br /&gt;
Version: 3.0 beta (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  interactivetools.com, inc.&lt;br /&gt;
&lt;br /&gt;
License: htmlArea License (based on BSD license)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IP-Atlas&#039;&#039;&#039; - lib/ipatlas&lt;br /&gt;
&lt;br /&gt;
PHP scripts to show the location of an IP address on a map.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002   Ivan Kozik&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.xpenguin.com/ip-atlas.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;kses&#039;&#039;&#039; - lib/kses.php&lt;br /&gt;
&lt;br /&gt;
HTML/XHTML filter that only allows some elements and attributes&lt;br /&gt;
&lt;br /&gt;
Version: 0.2.2&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002, 2003, 2005   Ulf Harnhammar&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://sourceforge.net/projects/kses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mimeTeX&#039;&#039;&#039; - filter/tex&lt;br /&gt;
&lt;br /&gt;
Compiled C program to convert TeX into GIFs&lt;br /&gt;
&lt;br /&gt;
Version: 1.4&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   John Forkosh Associates, Inc&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.forkosh.com/mimetex.html&lt;br /&gt;
&lt;br /&gt;
URL: http://moodle.org/download/mimetex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mp3player&#039;&#039;&#039; - lib/mp3player&lt;br /&gt;
&lt;br /&gt;
Flash movie to play streaming MP3s&lt;br /&gt;
&lt;br /&gt;
Copyright © 2005   Andrew Walker&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;overlibmws&#039;&#039;&#039; - lib/overlib.js&lt;br /&gt;
&lt;br /&gt;
Javascript library to enable DHTML popups, floating windows, events etc&lt;br /&gt;
&lt;br /&gt;
Version: July 2004&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002-2004   Foteos Macrides&lt;br /&gt;
&lt;br /&gt;
Copyright © 1998-2004   Erik Bosrup&lt;br /&gt;
&lt;br /&gt;
License: Artistic Open Source License&lt;br /&gt;
&lt;br /&gt;
URL: http://www.macridesweb.com/oltest/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PclZip&#039;&#039;&#039; - lib/pclzip&lt;br /&gt;
&lt;br /&gt;
Class to create, manage and unpack zip files.&lt;br /&gt;
&lt;br /&gt;
Version: 2.4 RC1&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004  Vincent Blavet &amp;lt;vincent@phpconcept.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU GPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.phpconcept.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP mailer&#039;&#039;&#039; - lib/class.phpmailer.php&lt;br /&gt;
&lt;br /&gt;
Class for sending email using either sendmail, PHP mail(), or SMTP.  Methods are based upon the standard AspEmail(tm) classes.&lt;br /&gt;
&lt;br /&gt;
Version 1.71&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003 Brent R. Matzelle &amp;lt;bmatzelle@yahoo.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL:   http://phpmailer.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PHP Markdown&#039;&#039;&#039; - lib/markdown.php&lt;br /&gt;
&lt;br /&gt;
Functions to convert from the Markdown text format into clean XHTML.&lt;br /&gt;
&lt;br /&gt;
Version: 1.0b9 (with modifications)&lt;br /&gt;
&lt;br /&gt;
Copyright © 2003-2004 , John Gruber&lt;br /&gt;
&lt;br /&gt;
Copyright © 2004 , Michel Fortin&lt;br /&gt;
&lt;br /&gt;
License: LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://www.michelf.com/projects/php-markdown/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Snoopy&#039;&#039;&#039; - lib/snoopy&lt;br /&gt;
&lt;br /&gt;
A PHP net client&lt;br /&gt;
&lt;br /&gt;
Version: 1.0&lt;br /&gt;
&lt;br /&gt;
Copyright © 1999-2000 Monte Ohrt &amp;lt;monte@ispi.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://snoopy.sourceforge.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spreadsheet::WriteExcel&#039;&#039;&#039; - lib/excel&lt;br /&gt;
&lt;br /&gt;
A library for generating Excel Spreadsheets.&lt;br /&gt;
&lt;br /&gt;
Version: 2002-11-28&lt;br /&gt;
&lt;br /&gt;
Copyright © 2002  Xavier Noguer &amp;lt;xnoguer@rezebra.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
License: GNU LGPL&lt;br /&gt;
&lt;br /&gt;
URL: http://jeffn.users.phpclasses.org/browse.html/package/767.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP class&#039;&#039;&#039; - lib/class.smtp.php&lt;br /&gt;
&lt;br /&gt;
Class that can be used to connect and communicate with any SMTP server. It implements all the SMTP functions defined in RFC821 except TURN.&lt;br /&gt;
&lt;br /&gt;
Version: 03/26/2001&lt;br /&gt;
&lt;br /&gt;
Copyright © 2001  Chris Ryan &amp;lt;chris@greatbridge.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation writers ==&lt;br /&gt;
&lt;br /&gt;
Documentation writing is coordinated by [[User:Helen|Helen Foster]]. We would like to thank the many people who have contributed their work to create various parts of Moodle documentation, among others: &#039;&#039;&#039;Przemyslaw Stencel, Matt Riordan, Bryan Williams, Ray Lawrence, Jason Cole, Darren Smith, Sylvia Maciaszczyk and Rafal Morusiewicz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4182</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Roadmap&amp;diff=4182"/>
		<updated>2006-01-28T15:13:37Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Future]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:CVS_for_developers&amp;diff=4161</id>
		<title>Development:CVS for developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:CVS_for_developers&amp;diff=4161"/>
		<updated>2006-01-28T06:35:47Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Joining the project as a developer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CVS&#039;&#039;&#039; is the Concurrent Versioning System, a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing is ever lost, and usage by different people is tracked. It also provides ways to merge code if two or more people are working on the same file. All code and all versions are stored on a central server (in the case of Moodle, at Sourceforge).&lt;br /&gt;
&lt;br /&gt;
If you just want to download Moodle using CVS to run a site, then you probably don&#039;t need this page - just follow the simpler CVS instructions on the [http://moodle.org/download Moodle download] page.&lt;br /&gt;
&lt;br /&gt;
==Joining the project as a developer==&lt;br /&gt;
&lt;br /&gt;
So, you&#039;ve been offered CVS write access to help us develop and maintain Moodle! [http://sourceforge.net/project/memberlist.php?group_id=30935 Welcome aboard]!&lt;br /&gt;
&lt;br /&gt;
To be able to write changes into [http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ Moodle&#039;s CVS archive], you first need to have an account at Sourceforge ([http://sourceforge.net/account/newuser_emailverify.php registration is free and easy]). For the examples on this page, let&#039;s assume your username is myusername and your password is mypassword.&lt;br /&gt;
&lt;br /&gt;
Once you have a working Sourceforge account, contact [http://moodle.com/helpdesk Martin Dougiamas] so he can set up your account with write access to particular Moodle directories.&lt;br /&gt;
&lt;br /&gt;
To avoid being prompted for mypassword every time you run a CVS command, follow [http://sourceforge.net/docman/display_doc.php?docid=761&amp;amp;group_id=1 the Sourceforge directions for using authorized keys]. This step is optional, but it can make your CVS experience a lot nicer.&lt;br /&gt;
&lt;br /&gt;
With that done, you should have all the permissions you need, so you just need to set up your machine and download the current sources so you can start working on them.&lt;br /&gt;
&lt;br /&gt;
==CVS modules==&lt;br /&gt;
&lt;br /&gt;
Within CVS, the word &amp;quot;modules&amp;quot; refers to separate collections of code. In Moodle we have the following modules within our repository:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;moodle&#039;&#039;&#039; - the main Moodle source code&lt;br /&gt;
* &#039;&#039;&#039;contrib&#039;&#039;&#039; - user contributions and other assorted code in development&lt;br /&gt;
* &#039;&#039;&#039;mysql&#039;&#039;&#039; - a customised phpMyAdmin to plug into Moodle for database admin&lt;br /&gt;
* &#039;&#039;&#039;windows-cron&#039;&#039;&#039; - a small package that makes cron possible on Windows systems&lt;br /&gt;
* &#039;&#039;&#039;docs&#039;&#039;&#039; - various extra user-contributed documentation&lt;br /&gt;
&lt;br /&gt;
Most people are working on the existing features in the moodle module, but many are also contributing new ideas in the contrib modules. Once code reaches a certain level of maturity in the contrib area, it can be migrated over into the main moodle tree.&lt;br /&gt;
&lt;br /&gt;
==Basic CVS commands==&lt;br /&gt;
&lt;br /&gt;
===CVS on Unix===&lt;br /&gt;
&lt;br /&gt;
Sourceforge CVS uses ssh as a transport layer for security, so you will have to set a CVS_RSH environment variable in your Unix shell. It&#039;s best to put these commands in your .bashrc or .cshrc so you don&#039;t have to type it all the time:&lt;br /&gt;
        setenv CVS_RSH ssh (for csh, tcsh etc)&lt;br /&gt;
        export CVS_RSH=ssh (for sh, bash etc)&lt;br /&gt;
&lt;br /&gt;
Next, you can check out the latest development version of Moodle using this (all one line):&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
The command is similar for other CVS modules:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co contrib&lt;br /&gt;
&lt;br /&gt;
Don&#039;t try to do run this first CVS command over an existing moodle installation: start fresh with a new directory.&lt;br /&gt;
&lt;br /&gt;
Note that you will be prompted for mypassword for each command unless you set up authorized keys.&lt;br /&gt;
&lt;br /&gt;
Now, you should have a new &#039;moodle&#039; directory. You can rename it and move it around if you like. Go into it:&lt;br /&gt;
        cd moodle&lt;br /&gt;
&lt;br /&gt;
All the latest Moodle files should be in there. You can now change files in your copy. To compare your files and directories against the main CVS copy on the server use cvs diff, e.g.:&lt;br /&gt;
        cvs diff -c config-dist.php&lt;br /&gt;
        cvs diff -c lang&lt;br /&gt;
&lt;br /&gt;
To fetch the latest updates from the server use:&lt;br /&gt;
        cvs update -dP&lt;br /&gt;
&lt;br /&gt;
To copy your new files back to the server you would do something like:&lt;br /&gt;
        cd lang/ca&lt;br /&gt;
        cvs commit&lt;br /&gt;
&lt;br /&gt;
You will be prompted to add some comments (depends on your default text editor) ... add a meaningful comment and close the editor ... the files will be sent to Sourceforge and stored. Done!&lt;br /&gt;
&lt;br /&gt;
To save more time you can put default arguments into a file called .cvsrc in your home directory. For example, mine contains:&lt;br /&gt;
        diff -c&lt;br /&gt;
        update -dP&lt;br /&gt;
&lt;br /&gt;
Try &#039;cvs help&#039; for more details ...&lt;br /&gt;
     &lt;br /&gt;
===CVS on Windows===&lt;br /&gt;
&lt;br /&gt;
First, you need to download a completely fresh copy of Moodle using your developer account.&lt;br /&gt;
&lt;br /&gt;
1. Get TortoiseCVS from tortoisecvs.org and install it, then reboot.&lt;br /&gt;
&lt;br /&gt;
2. Find or create a new folder somewhere where you want Moodle to be downloaded to.&lt;br /&gt;
&lt;br /&gt;
3. Right-mouse-click that folder and choose &amp;quot;CVS Checkout&amp;quot; from the menu. You should see a dialog box.&lt;br /&gt;
&lt;br /&gt;
4. Copy this text into the CVSROOT field (using your own username!):&lt;br /&gt;
&lt;br /&gt;
           :ext:myusername@cvs.sourceforge.net:/cvsroot/moodle&lt;br /&gt;
&lt;br /&gt;
5. Under the &amp;quot;Module&amp;quot; field, type &amp;quot;moodle&amp;quot; to get the latest development version of Moodle, &amp;quot;contrib&amp;quot; to get the contributions directory, or &amp;quot;mysql&amp;quot; to get the MySQL Admin module.&lt;br /&gt;
&lt;br /&gt;
6. Press the button: &amp;quot;OK&amp;quot; and everything should be downloaded.&lt;br /&gt;
&lt;br /&gt;
A dialog box should show all the files being downloaded, and after a while you should have a complete copy of Moodle. After this first checkout, you can fetch the latest updated files from the CVS server:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Update&amp;quot;.&lt;br /&gt;
# Sit back and watch the logs scroll by. Take note of conflicts that may occur if your local code has changes that conflict with the incoming versions - you will need to edit these files and resolve the conflicts manually.&lt;br /&gt;
&lt;br /&gt;
After modifying files (you will notice their icons change from green to red!), you can commit them back to the CVS server like this:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Commit...&amp;quot;.&lt;br /&gt;
# In the dialog box, type a clear description of the changes you are committing.&lt;br /&gt;
# Click &amp;quot;OK&amp;quot;. Your changes will be sent to the server.&lt;br /&gt;
&lt;br /&gt;
==Working with branches==&lt;br /&gt;
&lt;br /&gt;
This diagram shows how the main moodle module branches into different versions over time.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cvstree.png|CVS tree]]&lt;br /&gt;
&lt;br /&gt;
To see all the current tags and branches that are available, use this command on any old file (such as index.php in the top moodle directory):&lt;br /&gt;
    cvs status -v index.php&lt;br /&gt;
&lt;br /&gt;
Some tagging guidelines:&lt;br /&gt;
* Tag and branch names should always be all upper-case.&lt;br /&gt;
* Tags and branches should ALWAYS be applied to the entire module (all of Moodle). Don&#039;t tag individual files or directories.&lt;br /&gt;
* We don&#039;t allow renaming of tags because people may be relying on them, so get them right the first time!&lt;br /&gt;
&lt;br /&gt;
===Trunk development===&lt;br /&gt;
&lt;br /&gt;
The Trunk of CVS is the main development version of Moodle. In CVS it is also known as the HEAD, or default branch.&lt;br /&gt;
&lt;br /&gt;
Moodle developers try to keep this stable as possible, but as it usually contains new code it probably has bugs and small instabilities.&lt;br /&gt;
&lt;br /&gt;
Every now and then we decide the product has enough features to make a release. At this time, the trunk is tagged with a MOODLE_XX_BETA tag (in case we ever want to roll back to that point) and a new branch is formed for the release, called MOODLE_XX_STABLE.&lt;br /&gt;
&lt;br /&gt;
A Beta package is also released at this point - it&#039;s for testers who don&#039;t use CVS but want to test the latest features and report bugs.&lt;br /&gt;
&lt;br /&gt;
===Stable branches for each release===&lt;br /&gt;
&lt;br /&gt;
As soon as the stable branch MOODLE_XX_STABLE is created, development efforts will fork into two streams for a while. Some people may continue working on new features in the trunk for the next release, but most developers should be concentrating on using the current STABLE branch and fixing bugs that are found in it.&lt;br /&gt;
&lt;br /&gt;
You can switch your local copy of Moodle to the STABLE version using the following command in Unix from the root directory:&lt;br /&gt;
    cvs update -dP -r MOODLE_XX_STABLE&lt;br /&gt;
&lt;br /&gt;
After that, all the commands described above will apply to that stable version. To return to the trunk version just issue:&lt;br /&gt;
    cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
On Windows clients you should have a menu from which you can choose the branch.&lt;br /&gt;
&lt;br /&gt;
Once the new STABLE branch really stabilises, a release can be declared. Packages are created for distribution and the branch will be tagged (by Martin) with a tag named: MOODLE_XXX&lt;br /&gt;
&lt;br /&gt;
Periodically, bug fixes in the STABLE branch should be merged into the trunk so that they become available in future versions of Moodle. A floating tag called MOODLE_XX_MERGED will be maintained to keep track of the last merge. The procedure for such a merge is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Get out the very latest trunk version.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
2. Merge everything on the branch since the last merge, into your trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs update -kk -j MOODLE_13_MERGED -j MOODLE_13_STABLE&lt;br /&gt;
&lt;br /&gt;
3. Carefully watch the update logs for conflicts, and fix every file that you see with a conflict&lt;br /&gt;
&lt;br /&gt;
4. Check the merged copy back into CVS trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. Go back to the branch version&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPr MOODLE_13_STABLE&lt;br /&gt;
&lt;br /&gt;
6. Update the floating merge tag so that this process can be repeated next time&lt;br /&gt;
&lt;br /&gt;
          cvs tag -RF MOODLE_13_MERGED&lt;br /&gt;
&lt;br /&gt;
Finally, the values for $version in all the Moodle version.php files within the stable branch should not be updated at all if possible (except the last digit if necessary). The reason is that someone updating from a very stable version to the next very stable version could miss database upgrades that happened on the trunk.&lt;br /&gt;
&lt;br /&gt;
===Feature branches for large changes===&lt;br /&gt;
&lt;br /&gt;
Occasionally, there may be a very large feature that needs to be checked in so several people can work on it, but it is too unstable to be included in the main development trunk.&lt;br /&gt;
&lt;br /&gt;
In these cases a short-term branch can be created to work on the feature, and then merged back into the main trunk as soon as possible. An example called MOODLE_14_WIDGET branch can be seen in the above diagram.&lt;br /&gt;
&lt;br /&gt;
If you need to do this for your new WIDGET feature, follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Discuss with other developers to make sure it&#039;s necessary!&lt;br /&gt;
&lt;br /&gt;
2. Make a new tag on the trunk (for all of moodle) called MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
          cvs tag -R MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
3. Create your branch called MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
          cvs tag -Rb MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
4. Work in that branch until the feature is reasonably stable. Commit as necessary.&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. When ready, merge the whole branch into the trunk, fix conflicts, commit it to the trunk and then abandon the branch.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_WIDGET&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
Good luck, be careful and have fun!&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:CVS_for_developers&amp;diff=4160</id>
		<title>Development:CVS for developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:CVS_for_developers&amp;diff=4160"/>
		<updated>2006-01-28T06:35:13Z</updated>

		<summary type="html">&lt;p&gt;Martin: /* Joining the project as a developer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CVS&#039;&#039;&#039; is the Concurrent Versioning System, a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing is ever lost, and usage by different people is tracked. It also provides ways to merge code if two or more people are working on the same file. All code and all versions are stored on a central server (in the case of Moodle, at Sourceforge).&lt;br /&gt;
&lt;br /&gt;
If you just want to download Moodle using CVS to run a site, then you probably don&#039;t need this page - just follow the simpler CVS instructions on the [http://moodle.org/download Moodle download] page.&lt;br /&gt;
&lt;br /&gt;
==Joining the project as a developer==&lt;br /&gt;
&lt;br /&gt;
So, you&#039;ve been offered CVS write access to help us develop and maintain Moodle! [http://sourceforge.net/project/memberlist.php?group_id=30935 Welcome aboard]!&lt;br /&gt;
&lt;br /&gt;
To be able to write changes into [http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/ Moodle&#039;s CVS archive], you first need to have an account at Sourceforge ([http://sourceforge.net/account/newuser_emailverify.php registration is free and easy]). For the examples on this page, let&#039;s assume your username is myusername and your password is mypassword.&lt;br /&gt;
&lt;br /&gt;
Once you have a working Sourceforge account, contact [mailto:support@moodle.com Martin Dougiamas] so he can set up your account with write access to particular Moodle directories.&lt;br /&gt;
&lt;br /&gt;
To avoid being prompted for mypassword every time you run a CVS command, follow [http://sourceforge.net/docman/display_doc.php?docid=761&amp;amp;group_id=1 the Sourceforge directions for using authorized keys]. This step is optional, but it can make your CVS experience a lot nicer.&lt;br /&gt;
&lt;br /&gt;
With that done, you should have all the permissions you need, so you just need to set up your machine and download the current sources so you can start working on them.&lt;br /&gt;
&lt;br /&gt;
==CVS modules==&lt;br /&gt;
&lt;br /&gt;
Within CVS, the word &amp;quot;modules&amp;quot; refers to separate collections of code. In Moodle we have the following modules within our repository:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;moodle&#039;&#039;&#039; - the main Moodle source code&lt;br /&gt;
* &#039;&#039;&#039;contrib&#039;&#039;&#039; - user contributions and other assorted code in development&lt;br /&gt;
* &#039;&#039;&#039;mysql&#039;&#039;&#039; - a customised phpMyAdmin to plug into Moodle for database admin&lt;br /&gt;
* &#039;&#039;&#039;windows-cron&#039;&#039;&#039; - a small package that makes cron possible on Windows systems&lt;br /&gt;
* &#039;&#039;&#039;docs&#039;&#039;&#039; - various extra user-contributed documentation&lt;br /&gt;
&lt;br /&gt;
Most people are working on the existing features in the moodle module, but many are also contributing new ideas in the contrib modules. Once code reaches a certain level of maturity in the contrib area, it can be migrated over into the main moodle tree.&lt;br /&gt;
&lt;br /&gt;
==Basic CVS commands==&lt;br /&gt;
&lt;br /&gt;
===CVS on Unix===&lt;br /&gt;
&lt;br /&gt;
Sourceforge CVS uses ssh as a transport layer for security, so you will have to set a CVS_RSH environment variable in your Unix shell. It&#039;s best to put these commands in your .bashrc or .cshrc so you don&#039;t have to type it all the time:&lt;br /&gt;
        setenv CVS_RSH ssh (for csh, tcsh etc)&lt;br /&gt;
        export CVS_RSH=ssh (for sh, bash etc)&lt;br /&gt;
&lt;br /&gt;
Next, you can check out the latest development version of Moodle using this (all one line):&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
The command is similar for other CVS modules:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co contrib&lt;br /&gt;
&lt;br /&gt;
Don&#039;t try to do run this first CVS command over an existing moodle installation: start fresh with a new directory.&lt;br /&gt;
&lt;br /&gt;
Note that you will be prompted for mypassword for each command unless you set up authorized keys.&lt;br /&gt;
&lt;br /&gt;
Now, you should have a new &#039;moodle&#039; directory. You can rename it and move it around if you like. Go into it:&lt;br /&gt;
        cd moodle&lt;br /&gt;
&lt;br /&gt;
All the latest Moodle files should be in there. You can now change files in your copy. To compare your files and directories against the main CVS copy on the server use cvs diff, e.g.:&lt;br /&gt;
        cvs diff -c config-dist.php&lt;br /&gt;
        cvs diff -c lang&lt;br /&gt;
&lt;br /&gt;
To fetch the latest updates from the server use:&lt;br /&gt;
        cvs update -dP&lt;br /&gt;
&lt;br /&gt;
To copy your new files back to the server you would do something like:&lt;br /&gt;
        cd lang/ca&lt;br /&gt;
        cvs commit&lt;br /&gt;
&lt;br /&gt;
You will be prompted to add some comments (depends on your default text editor) ... add a meaningful comment and close the editor ... the files will be sent to Sourceforge and stored. Done!&lt;br /&gt;
&lt;br /&gt;
To save more time you can put default arguments into a file called .cvsrc in your home directory. For example, mine contains:&lt;br /&gt;
        diff -c&lt;br /&gt;
        update -dP&lt;br /&gt;
&lt;br /&gt;
Try &#039;cvs help&#039; for more details ...&lt;br /&gt;
     &lt;br /&gt;
===CVS on Windows===&lt;br /&gt;
&lt;br /&gt;
First, you need to download a completely fresh copy of Moodle using your developer account.&lt;br /&gt;
&lt;br /&gt;
1. Get TortoiseCVS from tortoisecvs.org and install it, then reboot.&lt;br /&gt;
&lt;br /&gt;
2. Find or create a new folder somewhere where you want Moodle to be downloaded to.&lt;br /&gt;
&lt;br /&gt;
3. Right-mouse-click that folder and choose &amp;quot;CVS Checkout&amp;quot; from the menu. You should see a dialog box.&lt;br /&gt;
&lt;br /&gt;
4. Copy this text into the CVSROOT field (using your own username!):&lt;br /&gt;
&lt;br /&gt;
           :ext:myusername@cvs.sourceforge.net:/cvsroot/moodle&lt;br /&gt;
&lt;br /&gt;
5. Under the &amp;quot;Module&amp;quot; field, type &amp;quot;moodle&amp;quot; to get the latest development version of Moodle, &amp;quot;contrib&amp;quot; to get the contributions directory, or &amp;quot;mysql&amp;quot; to get the MySQL Admin module.&lt;br /&gt;
&lt;br /&gt;
6. Press the button: &amp;quot;OK&amp;quot; and everything should be downloaded.&lt;br /&gt;
&lt;br /&gt;
A dialog box should show all the files being downloaded, and after a while you should have a complete copy of Moodle. After this first checkout, you can fetch the latest updated files from the CVS server:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Update&amp;quot;.&lt;br /&gt;
# Sit back and watch the logs scroll by. Take note of conflicts that may occur if your local code has changes that conflict with the incoming versions - you will need to edit these files and resolve the conflicts manually.&lt;br /&gt;
&lt;br /&gt;
After modifying files (you will notice their icons change from green to red!), you can commit them back to the CVS server like this:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Commit...&amp;quot;.&lt;br /&gt;
# In the dialog box, type a clear description of the changes you are committing.&lt;br /&gt;
# Click &amp;quot;OK&amp;quot;. Your changes will be sent to the server.&lt;br /&gt;
&lt;br /&gt;
==Working with branches==&lt;br /&gt;
&lt;br /&gt;
This diagram shows how the main moodle module branches into different versions over time.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cvstree.png|CVS tree]]&lt;br /&gt;
&lt;br /&gt;
To see all the current tags and branches that are available, use this command on any old file (such as index.php in the top moodle directory):&lt;br /&gt;
    cvs status -v index.php&lt;br /&gt;
&lt;br /&gt;
Some tagging guidelines:&lt;br /&gt;
* Tag and branch names should always be all upper-case.&lt;br /&gt;
* Tags and branches should ALWAYS be applied to the entire module (all of Moodle). Don&#039;t tag individual files or directories.&lt;br /&gt;
* We don&#039;t allow renaming of tags because people may be relying on them, so get them right the first time!&lt;br /&gt;
&lt;br /&gt;
===Trunk development===&lt;br /&gt;
&lt;br /&gt;
The Trunk of CVS is the main development version of Moodle. In CVS it is also known as the HEAD, or default branch.&lt;br /&gt;
&lt;br /&gt;
Moodle developers try to keep this stable as possible, but as it usually contains new code it probably has bugs and small instabilities.&lt;br /&gt;
&lt;br /&gt;
Every now and then we decide the product has enough features to make a release. At this time, the trunk is tagged with a MOODLE_XX_BETA tag (in case we ever want to roll back to that point) and a new branch is formed for the release, called MOODLE_XX_STABLE.&lt;br /&gt;
&lt;br /&gt;
A Beta package is also released at this point - it&#039;s for testers who don&#039;t use CVS but want to test the latest features and report bugs.&lt;br /&gt;
&lt;br /&gt;
===Stable branches for each release===&lt;br /&gt;
&lt;br /&gt;
As soon as the stable branch MOODLE_XX_STABLE is created, development efforts will fork into two streams for a while. Some people may continue working on new features in the trunk for the next release, but most developers should be concentrating on using the current STABLE branch and fixing bugs that are found in it.&lt;br /&gt;
&lt;br /&gt;
You can switch your local copy of Moodle to the STABLE version using the following command in Unix from the root directory:&lt;br /&gt;
    cvs update -dP -r MOODLE_XX_STABLE&lt;br /&gt;
&lt;br /&gt;
After that, all the commands described above will apply to that stable version. To return to the trunk version just issue:&lt;br /&gt;
    cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
On Windows clients you should have a menu from which you can choose the branch.&lt;br /&gt;
&lt;br /&gt;
Once the new STABLE branch really stabilises, a release can be declared. Packages are created for distribution and the branch will be tagged (by Martin) with a tag named: MOODLE_XXX&lt;br /&gt;
&lt;br /&gt;
Periodically, bug fixes in the STABLE branch should be merged into the trunk so that they become available in future versions of Moodle. A floating tag called MOODLE_XX_MERGED will be maintained to keep track of the last merge. The procedure for such a merge is as follows:&lt;br /&gt;
&lt;br /&gt;
1. Get out the very latest trunk version.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
2. Merge everything on the branch since the last merge, into your trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs update -kk -j MOODLE_13_MERGED -j MOODLE_13_STABLE&lt;br /&gt;
&lt;br /&gt;
3. Carefully watch the update logs for conflicts, and fix every file that you see with a conflict&lt;br /&gt;
&lt;br /&gt;
4. Check the merged copy back into CVS trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. Go back to the branch version&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPr MOODLE_13_STABLE&lt;br /&gt;
&lt;br /&gt;
6. Update the floating merge tag so that this process can be repeated next time&lt;br /&gt;
&lt;br /&gt;
          cvs tag -RF MOODLE_13_MERGED&lt;br /&gt;
&lt;br /&gt;
Finally, the values for $version in all the Moodle version.php files within the stable branch should not be updated at all if possible (except the last digit if necessary). The reason is that someone updating from a very stable version to the next very stable version could miss database upgrades that happened on the trunk.&lt;br /&gt;
&lt;br /&gt;
===Feature branches for large changes===&lt;br /&gt;
&lt;br /&gt;
Occasionally, there may be a very large feature that needs to be checked in so several people can work on it, but it is too unstable to be included in the main development trunk.&lt;br /&gt;
&lt;br /&gt;
In these cases a short-term branch can be created to work on the feature, and then merged back into the main trunk as soon as possible. An example called MOODLE_14_WIDGET branch can be seen in the above diagram.&lt;br /&gt;
&lt;br /&gt;
If you need to do this for your new WIDGET feature, follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Discuss with other developers to make sure it&#039;s necessary!&lt;br /&gt;
&lt;br /&gt;
2. Make a new tag on the trunk (for all of moodle) called MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
          cvs tag -R MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
3. Create your branch called MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
          cvs tag -Rb MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
4. Work in that branch until the feature is reasonably stable. Commit as necessary.&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. When ready, merge the whole branch into the trunk, fix conflicts, commit it to the trunk and then abandon the branch.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_WIDGET&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
Good luck, be careful and have fun!&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Moodle_in_education&amp;diff=4023</id>
		<title>Moodle in education</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Moodle_in_education&amp;diff=4023"/>
		<updated>2006-01-25T08:51:49Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=85% align=center style=&amp;quot;background: #F8EABA; border: 1px solid #aaa;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 90%; padding-right: 4px; padding-left: 4px;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Note for contributors:&#039;&#039;&#039; Design and/or style improvements to this page are welcome :-) Please add additional teacher documentation links to the See also section.&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaa; background: #f9f9f9; padding: 5px; margin: 5px 0 15px 0; width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0 5px 0 5px; background:#e4e4e4;&amp;quot; align=&amp;quot;center&amp;quot; | &amp;lt;h2 style=&amp;quot;border: 0; margin: 0&amp;quot;&amp;gt;Activity modules&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 100%;&amp;quot; | [[mod/assignment/index|Assignments]] | [[mod/chat/index|Chats]] | [[mod/choice/index|Choices]] | [[mod/forum/index|Forums]] | [[mod/glossary/index|Glossaries]] | [[mod/hotpot/index|Hot Potatoes]] | [[mod/lesson/index|Lessons]] | [[mod/quiz/index|Quizzes]] | [[mod/scorm/index|SCORM]] | [[mod/survey/index|Surveys]] | [[mod/wiki/index|Wikis]] | [[mod/workshop/index|Workshops]]&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaa; background: #f9f9f9; padding: 5px; margin: 5px 0 15px 0; width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0 5px 0 5px; background:#e4e4e4&amp;quot; align=&amp;quot;center&amp;quot; | &amp;lt;h2 style=&amp;quot;border: 0; margin: 0&amp;quot;&amp;gt;[[mod/resource/index|Resources]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 100%;&amp;quot; | [[course/mod/text|Text page]] | [[course/mod/html|Web page]] | [[course/mod/file|File or website link]] | [[course/mod/directory|Directory]] | [[course/mod/label|Label]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaa; background: #f9f9f9; padding: 5px; margin: 5px 0 10px 0; width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 0 5px 0 5px; background:#e4e4e4&amp;quot; align=&amp;quot;center&amp;quot; | &amp;lt;h2 style=&amp;quot;border: 0; margin: 0&amp;quot;&amp;gt;[[Blocks]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 100%;&amp;quot; | [[Activities]] | [[Administration]] | [[Calendar]] | [[Courses]] | [[Course/Site Description]] | [[HTML]] | [[Latest News]] | [[Messages]] | [[Online Users]] | [[People]] | [[Quiz Results]] | [[Random Glossary Entry]] | [[Recent Activity]] | [[RSS feeds]] | [[Search Forums]] | [[Section Links]] | [[Upcoming Events]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[course/view|The course homepage]]&lt;br /&gt;
*[[Course sections]]&lt;br /&gt;
*[[Formatting options]]&lt;br /&gt;
*[[HTML in Moodle]]&lt;br /&gt;
*[[Moodle manuals]]&lt;br /&gt;
*[[Adding resources and activities|Adding resources and activities to your course]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=View_profile&amp;diff=4022</id>
		<title>View profile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=View_profile&amp;diff=4022"/>
		<updated>2006-01-25T04:43:07Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Viewing the User Profile==&lt;br /&gt;
&lt;br /&gt;
The user profile page gathers together all the known information about a particular user.&lt;br /&gt;
&lt;br /&gt;
If you are a teacher, or looking at your own profile, then you will see some extra tabs allowing you to edit the profile settings, or providing detailed report and logs about the activity of that user.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=View_profile&amp;diff=4021</id>
		<title>View profile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=View_profile&amp;diff=4021"/>
		<updated>2006-01-25T04:30:18Z</updated>

		<summary type="html">&lt;p&gt;Martin: User profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The user profile page gathers together all the known information about a particular user.&lt;br /&gt;
&lt;br /&gt;
If you are a teacher, or looking at your own profile, then you will see some extra tabs allowing you to edit the profile settings, or providing detailed report and logs about the activity of that user.&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=4020</id>
		<title>MoodleDocs:Guidelines for contributors</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=4020"/>
		<updated>2006-01-25T04:26:55Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You are welcome to contribute to MoodleDocs. Find something that can be improved, either in content, grammar or formatting, and fix it!&lt;br /&gt;
&lt;br /&gt;
== Contributing to MoodleDocs ==&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve not done so already, please [[Special:Userlogin|create an account or login]].&lt;br /&gt;
* Please note that all contributions are released here under [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License 1.2].&lt;br /&gt;
* Moodle 1.6 will have a button on each page that links to pages in the wiki with the same path as the pages in Moodle. You can see this already on [http://moodle.org moodle.org] in fact.  &amp;lt;!--For example, the documentation page &amp;quot;Viewing and grading submissions&amp;quot; explains what can be seen on the page in Moodle where the teacher can view and grade assignment submissions. The URL of that page is something like &amp;lt;code&amp;gt;yourmoodlesite.org/mod/assignment/submissions.php&amp;lt;/code&amp;gt;. When contributing to the documentation, if it contains part of a URL, say &amp;lt;code&amp;gt;mod/assignment/submissions&amp;lt;/code&amp;gt;, it means that this documentation page refers to that page.--&amp;gt;&lt;br /&gt;
* Please note that the [http://moodle.org/help.php?file=index.html Moodle help files] will remain in each language pack and so their text need not be included in this documentation.&lt;br /&gt;
* You are welcome to create pages for additional documentation. Simply type &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[New page]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and follow the link to start editing the new page. Please choose a short name (just one or two words) and capitalize the first word only.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Documentation philosophy]]&lt;br /&gt;
* [[Help:Editing|Editing help]]&lt;br /&gt;
* [[Sandbox]] - for experimenting/playing ;-)&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [http://demo.moodle.com/ Moodle Demo Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=4019</id>
		<title>MoodleDocs:Guidelines for contributors</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=4019"/>
		<updated>2006-01-25T04:26:24Z</updated>

		<summary type="html">&lt;p&gt;Martin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You are welcome to contribute to MoodleDocs. Find something that can be improved, either in content, grammar or formatting, and fix it!&lt;br /&gt;
&lt;br /&gt;
== Contributing to MoodleDocs ==&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve not done so already, please [[Special:Userlogin|create an account or login]].&lt;br /&gt;
* Please note that all contributions are released here under [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License 1.2].&lt;br /&gt;
* Moodle 1.6 will have a button on each page that links to pages in the wiki with the same path as the pages in Moodle. You can see this already on [http://moodle.org] in fact.  &amp;lt;!--For example, the documentation page &amp;quot;Viewing and grading submissions&amp;quot; explains what can be seen on the page in Moodle where the teacher can view and grade assignment submissions. The URL of that page is something like &amp;lt;code&amp;gt;yourmoodlesite.org/mod/assignment/submissions.php&amp;lt;/code&amp;gt;. When contributing to the documentation, if it contains part of a URL, say &amp;lt;code&amp;gt;mod/assignment/submissions&amp;lt;/code&amp;gt;, it means that this documentation page refers to that page.--&amp;gt;&lt;br /&gt;
* Please note that the [http://moodle.org/help.php?file=index.html Moodle help files] will remain in each language pack and so their text need not be included in this documentation.&lt;br /&gt;
* You are welcome to create pages for additional documentation. Simply type &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[New page]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and follow the link to start editing the new page. Please choose a short name (just one or two words) and capitalize the first word only.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Documentation philosophy]]&lt;br /&gt;
* [[Help:Editing|Editing help]]&lt;br /&gt;
* [[Sandbox]] - for experimenting/playing ;-)&lt;br /&gt;
&lt;br /&gt;
== External links==&lt;br /&gt;
* [http://demo.moodle.com/ Moodle Demo Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>