<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Helen</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Helen"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Helen"/>
	<updated>2026-06-09T20:22:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Anthonycox&amp;diff=23254</id>
		<title>User talk:Anthonycox</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Anthonycox&amp;diff=23254"/>
		<updated>2006-02-16T20:15:07Z</updated>

		<summary type="html">&lt;p&gt;Helen: copyrighted work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Copyrighted work==&lt;br /&gt;
&lt;br /&gt;
Anthony, please remember not to submit copyrighted work without permission. --[[User:Helen|Helen]] 04:15, 17 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Koen_roggemans&amp;diff=19556</id>
		<title>User:Koen roggemans</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Koen_roggemans&amp;diff=19556"/>
		<updated>2006-02-14T23:50:55Z</updated>

		<summary type="html">&lt;p&gt;Helen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Clever Translation Coordinator!&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Roles&amp;diff=2834</id>
		<title>Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Roles&amp;diff=2834"/>
		<updated>2006-02-14T14:41:55Z</updated>

		<summary type="html">&lt;p&gt;Helen: see also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category: Developer]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Davidds&amp;diff=23241</id>
		<title>User talk:Davidds</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Davidds&amp;diff=23241"/>
		<updated>2006-02-11T18:47:33Z</updated>

		<summary type="html">&lt;p&gt;Helen: thank you&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any comments will be welcomed. :-)&lt;br /&gt;
&lt;br /&gt;
==Thank you==&lt;br /&gt;
&lt;br /&gt;
Hi David, a big THANK YOU for your contributions to MoodleDocs. --[[User:Helen|Helen]] 02:47, 12 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Moorejon&amp;diff=23251</id>
		<title>User talk:Moorejon</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Moorejon&amp;diff=23251"/>
		<updated>2006-02-11T18:01:53Z</updated>

		<summary type="html">&lt;p&gt;Helen: thanks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Thanks==&lt;br /&gt;
&lt;br /&gt;
Hi Jonathan, thanks for documenting [[Security]] and for your excellent presentation at the Savannah Moodle Moot. --[[User:Helen|Helen]] 02:01, 12 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User:Stronk7&amp;diff=19527</id>
		<title>User:Stronk7</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User:Stronk7&amp;diff=19527"/>
		<updated>2006-02-10T19:20:41Z</updated>

		<summary type="html">&lt;p&gt;Helen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Moodle&#039;s Knight in Shining Armour&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Roadmap&amp;diff=26094</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Roadmap&amp;diff=26094"/>
		<updated>2006-02-05T21:38:38Z</updated>

		<summary type="html">&lt;p&gt;Helen: link edits&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;
* [[MoodleDocs development|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 a repository of NLN materials&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;
* [[Chameleon|Chameleon theme]] - Andy Walker and Urs Hunkler &lt;br /&gt;
:: An interactive Moodle theme&lt;br /&gt;
* [[Multi Authentication]] - Iñaki Arenaza?&lt;br /&gt;
* [[Multi Enrolment]] - Catalyst&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&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 information&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;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Outcomes&amp;diff=26911</id>
		<title>Talk:Outcomes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Outcomes&amp;diff=26911"/>
		<updated>2006-02-05T14:37:12Z</updated>

		<summary type="html">&lt;p&gt;Helen: metadata reply&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;br /&gt;
&lt;br /&gt;
:Hi Dan, please would you consider starting a metadata discussion in the Using Moodle [http://moodle.org/mod/forum/view.php?f=33 General developer forum]. Thanks :-) --[[User:Helen|Helen]] 22:37, 5 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22947</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22947"/>
		<updated>2006-02-03T20:22:21Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* Documentation for different versions */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. --[[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Yes, the [[Special:Recentchanges|Recent changes]] page is very useful. You can tell that I have never used a wiki intensively before. Thanks for your tips. --[[User:Gustav|Gustav]] 18:35, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:::Hey, let&#039;s discover the wiki way together! :-) --[[User:Helen|Helen]] 00:24, 27 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Moodle profile==&lt;br /&gt;
&lt;br /&gt;
Helen- I think you should link to your moodle profile like Martin does (assuming you have one, which I assume &amp;lt;grin&amp;gt;). -- D.I. 29Jan06&lt;br /&gt;
Wow, you&#039;re fast.. .or I&#039;m confused. --D.I. 29Jan06&lt;br /&gt;
&lt;br /&gt;
:Hi D.I. thanks for your suggestion, which [[User:UrsHunkler|someone else]] seem to be following up! ;-) --[[User:Helen|Helen]] 05:00, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German moodle docs possible? ==&lt;br /&gt;
&lt;br /&gt;
Hello Helen,&lt;br /&gt;
&lt;br /&gt;
thank you very much for these nice and structured doc pages.&lt;br /&gt;
When do you plan to launch a german part of the docs.moodle.org pages?&lt;br /&gt;
I ask these question because i can translate some of the english doc pages to german.&lt;br /&gt;
&lt;br /&gt;
Greetings Christoph&lt;br /&gt;
&lt;br /&gt;
:Hi Christoph, thanks for your kind offer of translation. Please email &#039;&#039;docs AT moodle DOT org&#039;&#039; so I may get in touch with you easily when the German Moodle documentation is launched. --[[User:Helen|Helen]] 05:17, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German User Docs ==&lt;br /&gt;
&lt;br /&gt;
Thanks a lot, Helen, for all your work. &lt;br /&gt;
I would also like to help with the German version. &lt;br /&gt;
&lt;br /&gt;
Ulrike&lt;br /&gt;
&lt;br /&gt;
:Hi Ulrike, thanks for your kind offer too. MoodleDocs in other languages will happen soon, for sure! --[[User:Helen|Helen]] 08:30, 31 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Documentation for different versions ==&lt;br /&gt;
&lt;br /&gt;
Helen&lt;br /&gt;
&lt;br /&gt;
Is there a mechanism for specifying which version of Moodle a particular document refers to?  If, for instance, a feature is only available in version 1.6, how would a 1.5.3 user know they couldn&#039;t follow these instructions?&lt;br /&gt;
&lt;br /&gt;
Equally, if something is done differently in two versions, how would we stop an edit war breaking out between 1.5.3 and 1.6 users?&lt;br /&gt;
&lt;br /&gt;
I appreciate this probably isn&#039;t an issue just yet, but it&#039;s possible it may become one in later versions.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:CHRISF|CHRISF]] 19:20, 1 February 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi ChrisF, thanks for highlighting the issue of differences in Moodle versions. Perhaps a [[Template:Moodle 1.6|Moodle 1.6 template]], inserted using the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{1.6 template}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, may be used to show features specific to Moodle 1.6. What do you think? --[[User:Helen|Helen]] 04:22, 4 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Roadmap&amp;diff=26077</id>
		<title>Roadmap</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Roadmap&amp;diff=26077"/>
		<updated>2006-02-02T12:28:46Z</updated>

		<summary type="html">&lt;p&gt;Helen: nav block added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&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>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=698</id>
		<title>Activity modules</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=698"/>
		<updated>2006-02-02T08:58:33Z</updated>

		<summary type="html">&lt;p&gt;Helen: see also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Activity modules&#039;&#039;&#039; reside in the &#039;mod&#039; directory. Each module is in a separate subdirectory and consists of the following mandatory elements (plus extra scripts unique to each module):&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;mod.html&#039;&#039; - a form to set up or update an instance of this module&lt;br /&gt;
* &#039;&#039;version.php&#039;&#039; - defines some meta-info and provides upgrading code&lt;br /&gt;
* &#039;&#039;icon.gif&#039;&#039; - a 16x16 icon for the module&lt;br /&gt;
* &#039;&#039;db/&#039;&#039; - SQL dumps of all the required db tables and data (for each database type)&lt;br /&gt;
* &#039;&#039;index.php&#039;&#039; - a page to list all instances in a course&lt;br /&gt;
* &#039;&#039;view.php&#039;&#039; - a page to view a particular instance&lt;br /&gt;
* &#039;&#039;lib.php&#039;&#039; - any/all functions defined by the module should be in here. If the modulename if called widget, then the required functions include:&lt;br /&gt;
:* widget_add_instance() - code to add a new instance of widget&lt;br /&gt;
:* widget_update_instance() - code to update an existing instance&lt;br /&gt;
:* widget_delete_instance() - code to delete an instance&lt;br /&gt;
:* widget_user_outline() - given an instance, return a summary of a user&#039;s contribution&lt;br /&gt;
:* widget_user_complete() - given an instance, print details of a user&#039;s contribution&lt;br /&gt;
:* To avoid possible conflict, any module functions should be named starting with widget_ and any constants you define should start with WIDGET_&lt;br /&gt;
* Lastly, each module will have some language files that contain strings for that module.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* http://download.moodle.org/download.php/modules/NEWMODULE.zip - new module template for starting module development. Please follow the README instructions inside the zip.&lt;br /&gt;
* Using Moodle [http://moodle.org/course/view.php?id=5 Activity modules] forum&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22945</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22945"/>
		<updated>2006-01-31T00:30:59Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* German User Docs */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. --[[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Yes, the [[Special:Recentchanges|Recent changes]] page is very useful. You can tell that I have never used a wiki intensively before. Thanks for your tips. --[[User:Gustav|Gustav]] 18:35, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:::Hey, let&#039;s discover the wiki way together! :-) --[[User:Helen|Helen]] 00:24, 27 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Moodle profile==&lt;br /&gt;
&lt;br /&gt;
Helen- I think you should link to your moodle profile like Martin does (assuming you have one, which I assume &amp;lt;grin&amp;gt;). -- D.I. 29Jan06&lt;br /&gt;
Wow, you&#039;re fast.. .or I&#039;m confused. --D.I. 29Jan06&lt;br /&gt;
&lt;br /&gt;
:Hi D.I. thanks for your suggestion, which [[User:UrsHunkler|someone else]] seem to be following up! ;-) --[[User:Helen|Helen]] 05:00, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German moodle docs possible? ==&lt;br /&gt;
&lt;br /&gt;
Hello Helen,&lt;br /&gt;
&lt;br /&gt;
thank you very much for these nice and structured doc pages.&lt;br /&gt;
When do you plan to launch a german part of the docs.moodle.org pages?&lt;br /&gt;
I ask these question because i can translate some of the english doc pages to german.&lt;br /&gt;
&lt;br /&gt;
Greetings Christoph&lt;br /&gt;
&lt;br /&gt;
:Hi Christoph, thanks for your kind offer of translation. Please email &#039;&#039;docs AT moodle DOT org&#039;&#039; so I may get in touch with you easily when the German Moodle documentation is launched. --[[User:Helen|Helen]] 05:17, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German User Docs ==&lt;br /&gt;
&lt;br /&gt;
Thanks a lot, Helen, for all your work. &lt;br /&gt;
I would also like to help with the German version. &lt;br /&gt;
&lt;br /&gt;
Ulrike&lt;br /&gt;
&lt;br /&gt;
:Hi Ulrike, thanks for your kind offer too. MoodleDocs in other languages will happen soon, for sure! --[[User:Helen|Helen]] 08:30, 31 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Ankuragarwal&amp;diff=23236</id>
		<title>User talk:Ankuragarwal</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Ankuragarwal&amp;diff=23236"/>
		<updated>2006-01-30T16:51:08Z</updated>

		<summary type="html">&lt;p&gt;Helen: reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi&lt;br /&gt;
Plz guide me with the installation procedure as i am new to it.&lt;br /&gt;
Thanx&lt;br /&gt;
Ankur Agarwal&lt;br /&gt;
&lt;br /&gt;
:Hi, please check [[Installing Moodle]]. --[[User:Helen|Helen]] 00:51, 31 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22943</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22943"/>
		<updated>2006-01-29T21:17:03Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* German moodle docs possible? */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. --[[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Yes, the [[Special:Recentchanges|Recent changes]] page is very useful. You can tell that I have never used a wiki intensively before. Thanks for your tips. --[[User:Gustav|Gustav]] 18:35, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:::Hey, let&#039;s discover the wiki way together! :-) --[[User:Helen|Helen]] 00:24, 27 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Moodle profile==&lt;br /&gt;
&lt;br /&gt;
Helen- I think you should link to your moodle profile like Martin does (assuming you have one, which I assume &amp;lt;grin&amp;gt;). -- D.I. 29Jan06&lt;br /&gt;
Wow, you&#039;re fast.. .or I&#039;m confused. --D.I. 29Jan06&lt;br /&gt;
&lt;br /&gt;
:Hi D.I. thanks for your suggestion, which [[User:UrsHunkler|someone else]] seem to be following up! ;-) --[[User:Helen|Helen]] 05:00, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German moodle docs possible? ==&lt;br /&gt;
&lt;br /&gt;
Hello Helen,&lt;br /&gt;
&lt;br /&gt;
thank you very much for these nice and structured doc pages.&lt;br /&gt;
When do you plan to launch a german part of the docs.moodle.org pages?&lt;br /&gt;
I ask these question because i can translate some of the english doc pages to german.&lt;br /&gt;
&lt;br /&gt;
Greetings Christoph&lt;br /&gt;
&lt;br /&gt;
:Hi Christoph, thanks for your kind offer of translation. Please email &#039;&#039;docs AT moodle DOT org&#039;&#039; so I may get in touch with you easily when the German Moodle documentation is launched. --[[User:Helen|Helen]] 05:17, 30 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22942</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22942"/>
		<updated>2006-01-29T21:00:34Z</updated>

		<summary type="html">&lt;p&gt;Helen: moodle profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. --[[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Yes, the [[Special:Recentchanges|Recent changes]] page is very useful. You can tell that I have never used a wiki intensively before. Thanks for your tips. --[[User:Gustav|Gustav]] 18:35, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:::Hey, let&#039;s discover the wiki way together! :-) --[[User:Helen|Helen]] 00:24, 27 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Moodle profile==&lt;br /&gt;
&lt;br /&gt;
Helen- I think you should link to your moodle profile like Martin does (assuming you have one, which I assume &amp;lt;grin&amp;gt;). -- D.I. 29Jan06&lt;br /&gt;
Wow, you&#039;re fast.. .or I&#039;m confused. --D.I. 29Jan06&lt;br /&gt;
&lt;br /&gt;
:Hi D.I. thanks for your suggestion, which [[User:UrsHunkler|someone else]] seem to be following up! ;-) --[[User:Helen|Helen]] 05:00, 30 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== German moodle docs possible? ==&lt;br /&gt;
&lt;br /&gt;
Hello Helen,&lt;br /&gt;
&lt;br /&gt;
thank you very much for these nice and structured doc pages.&lt;br /&gt;
When do you plan to launch a german part of the docs.moodle.org pages?&lt;br /&gt;
I ask these question because i can translate some of the english doc pages to german.&lt;br /&gt;
&lt;br /&gt;
Greetings Christoph&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Arulvivek&amp;diff=23229</id>
		<title>User talk:Arulvivek</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Arulvivek&amp;diff=23229"/>
		<updated>2006-01-29T20:23:34Z</updated>

		<summary type="html">&lt;p&gt;Helen: how to use this wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi i am a New User Tell me How to use this Fourm&lt;br /&gt;
&lt;br /&gt;
:Hi Arulvivek, please note that MoodleDocs is a wiki, not a forum. Please see [[Help:Contents]] and the [[Guidelines for Contributors|guidelines for contributors]] for information on how to use this wiki. --[[User:Helen|Helen]] 04:23, 30 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Latest_release_notes&amp;diff=25051</id>
		<title>Latest release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Latest_release_notes&amp;diff=25051"/>
		<updated>2006-01-28T21:53:03Z</updated>

		<summary type="html">&lt;p&gt;Helen: category change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
==Moodle 1.5.3 (11th November, 2005)==&lt;br /&gt;
&lt;br /&gt;
(Because this release contains important security fixes, we highly advise that sites using any previous version of Moodle upgrade to this version as soon as possible.)&lt;br /&gt;
&lt;br /&gt;
===A few new things===&lt;br /&gt;
&lt;br /&gt;
* We now have SCORM 1.3 (SCORM 2004) support!&lt;br /&gt;
* Much improved Assignment grading interface, including &amp;quot;quick grading&amp;quot; options&lt;br /&gt;
* A new Single-Sign-On API is available&lt;br /&gt;
&lt;br /&gt;
===Various fixes===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Contains warnings when Moodle is used on an PHP configuration known to be insecure&lt;br /&gt;
* Contains fixes for some recently reported security problems (see [http://security.moodle.org/ security.moodle.org])&lt;br /&gt;
* Backups now runs a lot faster medium/large installs. Many issues fixed in this area&lt;br /&gt;
* Listing of directory sizes can be made much faster on Linux/Unix servers, thanks to a performance fix you can enable from Admin-&amp;gt;Variables: &amp;quot;path_to_du&amp;quot;&lt;br /&gt;
* We now log more meaningful IP addresses when the server or the clients are working behind a proxy&lt;br /&gt;
* Fixed some issues with PHP accelerators&lt;br /&gt;
* Upgrade scripts have been refined and work much better for PostgreSQL installations&lt;br /&gt;
* General PostgreSQL port code cleanup&lt;br /&gt;
* Upgrading to 1.5.3 will fix any legacy Journal to Online Assignment upgrade issues&lt;br /&gt;
* RSS libraries now support RSS 2.0 categories, see bug 3654&lt;br /&gt;
* Better accesibilty in file uploads, see bug 3662&lt;br /&gt;
* Better support for site-wide HTTPS, see bug 3848&lt;br /&gt;
* We now send away bots (like Googlebot) from that try mangled URLs, see bug 3958&lt;br /&gt;
* Better DST support for non-logged-in users&lt;br /&gt;
* Better DST support for repeat events in Calendar&lt;br /&gt;
* Small fixes to the lesson, choice and grade modules&lt;br /&gt;
* Minor CSS improvements to formal_white and orangewhite themes&lt;br /&gt;
* Better pagination in course listing and loglive pages&lt;br /&gt;
* Fixed an IE-only bug related to HTMLArea content where user-edited tables could float and hide part of the UI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authentication&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Fixes to change password/forgotten password with external auth&lt;br /&gt;
* Data fetched from external DB or LDAP is now truncated correctly&lt;br /&gt;
* Fixed bug 4305 -- better login block behaviour when using secureforms&lt;br /&gt;
* Better support for utf-8 user data from external auth&lt;br /&gt;
* LDAP: General fixes covering sync_users script and logging of errors&lt;br /&gt;
* LDAP: Fixed bug 3141 - Can&#039;t update external data with LDAP authentication&lt;br /&gt;
* LDAP: Fixed bug 3992 - LDAP password including a quote does not work - credits go to Kita&lt;br /&gt;
* LDAP: Better support for ActiveDirectory.&lt;br /&gt;
* LDAP: Fixed bug #3594&lt;br /&gt;
* LDAP: Better handling of multi-source field mapping&lt;br /&gt;
* LDAP: Fix for using DN as idnumber - thanks fo Jeff Graham - http://moodle.org/mod/forum/discuss.php?d=28840&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enrolment and metacourses&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Metacourses: Prevent normal users to gain access to meta courses via manual enrolment&lt;br /&gt;
* Metacourses: better support for MySQL v3.23.x&lt;br /&gt;
* DB: Enrolment lookups now work reliably with Moodle on MySQL and Postgres&lt;br /&gt;
* DB: Non-MySQL databases work again as external enrolment databases&lt;br /&gt;
* LDAP: Fixed a wrong call to add_teacher in LDAP plugin.&lt;br /&gt;
* LDAP: Servers being down or unavailable no longer prevent logins&lt;br /&gt;
* LDAP: Course auto-creation works again&lt;br /&gt;
* LDAP: Fixed several bugs reported by Jeff Graham and Barron Koralesky -- including bugs 3912 and 3974&lt;br /&gt;
* LDAP: We can now bind non-anonymously to LDAP&lt;br /&gt;
* Authorize.net: several fixes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Avoid linking to empty or unlinkable activity names&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Big and small optimizations to tracking of read/unread messages, specially for PostgreSQL&lt;br /&gt;
* Fixed some PostgreSQL bugs&lt;br /&gt;
* Some more actions are now supported by backup/restore when processing log records, see bug 3582&lt;br /&gt;
* Now message forum RSS feeds are including category data -- useful under some RSS agregators able to group messages, see bug 3654&lt;br /&gt;
* Fixed paging on forum search&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Several performance improvements&lt;br /&gt;
* Fixes to the upgrade process, including PostgreSQL syntax and lower memory usage&lt;br /&gt;
* Brought in several bugfixes from 1.6dev&lt;br /&gt;
* Fixed bug 3478: Cannot add RSS feed as course creator&lt;br /&gt;
* Fixed bug 3793: Prevent warning message when configuring a glossary_random block in a course which has no glossaries&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quiz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Some CSS style fixes&lt;br /&gt;
* Better compatibility with themes that contain forms in the headers&lt;br /&gt;
* Highlighting of correct answers can now be turned off&lt;br /&gt;
* Fixed bug 3986: Too many random questions. (mindforge)&lt;br /&gt;
* Fixed missing action icons&lt;br /&gt;
* Fixed bug 3899 and removed some &#039;missing course object&#039; messages&lt;br /&gt;
* Fixed bug 3950: Ee-attempt button inconsistency for multi-attempt quizzes&lt;br /&gt;
* Fixed bug 3953: Quiz/report.php pagesize can be set to 0, credits to Jean-Michel&lt;br /&gt;
* Fixed potential data data corruption bug 3915&lt;br /&gt;
* Fixed bug 3884: Quiz correct highlights missing for 2 of 3 options.&lt;br /&gt;
* Fix for the Student review highlight doesn&#039;t seem to work bug&lt;br /&gt;
* Fixed bug 3804: Differences in question types between 1.5 and 1.6&lt;br /&gt;
* Fixed bug 3822: don&#039;t count previews as attempts&lt;br /&gt;
* Fixed bug 3807: Question numbering issue&lt;br /&gt;
* Fixes for the item analysis plug-in, assembled by Jean-Michel&lt;br /&gt;
* Now we reset the timeout counter to avoid timeouts&lt;br /&gt;
* Several improvements contributed by Jean-Michel Vedrine. You can now change the number of attempts per page displayed on screen, and download results to Excel/text file, including detailed grades&lt;br /&gt;
* Fixed export bug with non-English languages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SCORM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* We now support SCORM 1.3 (SCORM 2004)!&lt;br /&gt;
* Fixed a bug with next and prev SCO search&lt;br /&gt;
* Fixed bugs related to masteryscore&lt;br /&gt;
* Fixed a problem in AICC course tracking&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wiki&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Now paging of older versions is showed and working properly, see bug 3750&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Mediaplugin filter now finds multi-line links in HTML code&lt;br /&gt;
* Censor filter: Added original word as title to the blacked-out version. The filter can obscure actual important words by mistake (eg Dickens) and there needs to be some way to recover the meaning&lt;br /&gt;
&lt;br /&gt;
==Moodle 1.5.2 (16th July, 2005) ==&lt;br /&gt;
&lt;br /&gt;
=== Various fixes ===&lt;br /&gt;
&lt;br /&gt;
*  Journal -&amp;gt; Assignment upgrade now works properly :-/&lt;br /&gt;
* Assignment submodules now upgrade as expected&lt;br /&gt;
* Various other bugs with new Assignments fixed&lt;br /&gt;
* Journal module is now disabled by default on new installations&lt;br /&gt;
* Login page is now 100% HTTPS if required&lt;br /&gt;
* Various small standard theme tweaks&lt;br /&gt;
* Fix for recent matching questions display bug in Quiz&lt;br /&gt;
* Language editor no longer creates empty files when not necessary (caused country list bug)&lt;br /&gt;
* Fixed some manifest parsing problems in SCORM module&lt;br /&gt;
* Multilang filter now deals with pack names that contain numbers&lt;br /&gt;
* Files are now force-downloaded (fixes IE problems and some security issues)&lt;br /&gt;
* Relinking debugging output is escaped&lt;br /&gt;
* Large MP3 player now displays ID3 tags properly again&lt;br /&gt;
* Some chat daemon improvements&lt;br /&gt;
&lt;br /&gt;
=== Some new things ===&lt;br /&gt;
&lt;br /&gt;
* Orangewhite theme optimised for use on PDA&lt;br /&gt;
* Forum user posts page can be called without userid&lt;br /&gt;
* Altavista BabelFish now allowed in as guest when Google is&lt;br /&gt;
&lt;br /&gt;
==Moodle 1.5.1 (8th July, 2005) ==&lt;br /&gt;
&lt;br /&gt;
===Various fixes===&lt;br /&gt;
&lt;br /&gt;
* Several potential security problems solved&lt;br /&gt;
* Allowobjectembed setting now works correctly&lt;br /&gt;
* Speed problem on IE, caused by tab hover fixed.&lt;br /&gt;
* Cut and paste in editor on Firefox has a more helpful warning message&lt;br /&gt;
* Fixed a session problem when logged on as admin during upgrade from very old Moodle version&lt;br /&gt;
* Fixed editing problem in Main menu of site&lt;br /&gt;
* Minor CSS display problems in a few areas were fixed&lt;br /&gt;
* Fixed the adding of a single discussion forum&lt;br /&gt;
* Fixed Lesson problems with calculating grades, and dates&lt;br /&gt;
* Fixed Lesson problems with entering a cluster after a page&lt;br /&gt;
* Censor filter was fixed to make it work better with old themes&lt;br /&gt;
&lt;br /&gt;
===Some new things===&lt;br /&gt;
&lt;br /&gt;
* New theme: Wood&lt;br /&gt;
* Metal theme updated for 1.5&lt;br /&gt;
* Many language updates for most languages, including a new language: Khmer&lt;br /&gt;
* Block classes can now run custom code when an instance is created/deleted (this is useful for blocks that need to set up non-trivial data structures)&lt;br /&gt;
* Wizard for Calculated Questions in Quiz was rewritten&lt;br /&gt;
* Backup/Restore module selection is now improved and much easier&lt;br /&gt;
* Backup/Restore module has much improved relinking support, it&#039;s now faster and easier to implement in new modules&lt;br /&gt;
&lt;br /&gt;
==Moodle 1.5 (5th June, 2005) ==&lt;br /&gt;
&lt;br /&gt;
Here you can find the release notes of the current stable version of Moodle. &#039;&#039;&#039;If you experience any bugs in this release, please report them at [http://moodle.org/bugs moodle.org/bugs] so we can fix them in the next release.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Headline features ===&lt;br /&gt;
&lt;br /&gt;
* Web pages are compliant with XHTML Transitional 1.0&lt;br /&gt;
* Improved &#039;&#039;&#039;Accessibility&#039;&#039;&#039;, aiming for compliance with WAI (W3C), SENDA (UK) and Section 508 (US) criteria.&lt;br /&gt;
* Very strong &#039;&#039;&#039;new Themes system&#039;&#039;&#039;, allowing cascading themes, user themes, course themes, with very fine control of every page in Moodle via CSS.&lt;br /&gt;
* Integrated &#039;&#039;&#039;Messaging&#039;&#039;&#039; feature for direct communication between all users in the site, featuring realtime popup windows, notification, email copies, blocking, history, WYSIWYG editor, etc&lt;br /&gt;
* Forum read/unread tracking with highlights allows you to see new postings at a glance and to control how these are displayed (per forum, per user or per site).&lt;br /&gt;
* New &#039;&#039;&#039;Blocks&#039;&#039;&#039; system, allowing multiple copies of blocks and better block configuration&lt;br /&gt;
* Full support for &#039;&#039;&#039;Daylight Savings Time&#039;&#039;&#039; in every locality around the globe, so everyone always see the correct local time for all events.&lt;br /&gt;
* New &#039;&#039;&#039;extended gradebook&#039;&#039;&#039; allowing custom weighting of different activities, setting extra grades (or taking out others) and improved display and sorting options&lt;br /&gt;
* Users can be required to agree to a &#039;&#039;&#039;Site Policy&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Other major system-wide improvements ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* New &amp;quot;maintenance mode&amp;quot; allows the admin to temporarily disable a site (during upgrades, for example).&lt;br /&gt;
* Moodle can automatically download a new list of timezones from moodle.org or elsewhere and install it to the database (Olson files are supported too)&lt;br /&gt;
* New version of Moodle MySQL Admin module (available separately)&lt;br /&gt;
* New calendar options page provides user interface to configure the behavior of the calendar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authentication&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* New Shibboleth Support&lt;br /&gt;
* New CAS Support&lt;br /&gt;
* New PAM Support&lt;br /&gt;
* Improved LDAP integration, so that LDAP can now control course creation, group assignments. Increased performance and scalability performing user synchronisation.&lt;br /&gt;
* Certain user fields can be locked by the admin when using external authentication&lt;br /&gt;
* Improved session handling now detects &amp;quot;crossover&amp;quot; sessions that we have found in some buggy PHP installations and prevents them&lt;br /&gt;
* Sessions can now be stored in the database (good for clustered installations!)&lt;br /&gt;
* Users can be forced to change their password&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Standardised file browsing in all areas&lt;br /&gt;
* Improved uploading, with support for automated Virus scanning of new documents using ClamAV.&lt;br /&gt;
* Slasharguments now work also on IIS (upgrade to PHP 4.3.11 needed for ISAPI)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Standardised filter library makes it trivial to write new filters that require searching and highlighting of text.&lt;br /&gt;
* Huge efficiency improvements for complex filters like the Glossary filter&lt;br /&gt;
* New Tidy filter uses the W3C Tidy program to (optionally) clean all user-entered texts throughout the site and convert it to valid XHTML code&lt;br /&gt;
* Improved censorship filter, now &amp;quot;blacks out&amp;quot; words using styles and uses a word list from the language packs.&lt;br /&gt;
* Improved Flash MP3 player, now shows progress bar while downloading and playing&lt;br /&gt;
* Improved Multi-language filter is faster, more forgiving of syntax errors, and uses new editor-friendly syntax: &amp;lt;span lang=&amp;quot;en&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Auto-linking filters (glossary, activities) can work to link all the occurrences (old behaviour), once for each text block or only once for the whole page ($CFG-&amp;gt;filtermatchonepertext, $CFG-&amp;gt;filtermatchoneperpage).&lt;br /&gt;
* More text can now be filtered in Moodle, including activity names, headings and other such small texts. This makes it possible to design completely multi-lingual sites in Moodle that fully appears in the user&#039;s chosen language.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Themes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Modules can provide standard styles&lt;br /&gt;
* Themes can override required styles of other themes&lt;br /&gt;
* Users and courses can choose their own themes if the admin allows it&lt;br /&gt;
* Implementation of tabs interface on many pages&lt;br /&gt;
* Modules, Blocks and Languages can define their own standard styles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HTML Editor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The toolbuttons offered in the editor toolbar are now configurable by the admin&lt;br /&gt;
* Search and Replace text within the editor text area (with optional use of regular expressions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course management&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Transparent Blackboard 5.5 course importing (partial 6.0 support)&lt;br /&gt;
* The new meta-courses allow to get users automatically enroled in a general course (the metacourse) when enroled in any of the metacourse-linked courses&lt;br /&gt;
* New tool to copy content from a course to other.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* HTML block: allowing to place arbitrary content (text, images links) in any course mainpage&lt;br /&gt;
* Remote RSS feed: allows to display external news channels inside a Moodle course&lt;br /&gt;
* Glossary Selection: to choose and display content from a Moodle glossary in course mainpage&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Calendar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Major speed improvements for sites with a large number of courses using groups&lt;br /&gt;
* Repeating events can now be modified or deleted all at the same time or separately as before&lt;br /&gt;
* New &amp;quot;remember filter settings&amp;quot; preference that allows calendar filters to remember their status between logins&lt;br /&gt;
&lt;br /&gt;
=== Activity module improvements ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Completely refactored into a new class-based design, allowing new plugin-assignment types&lt;br /&gt;
* New Online Text assignment type that doesn&#039;t require files and allows inline comments when grading - this new type effectively replaces the old Journal module&lt;br /&gt;
* Vastly improved grading interface for handling large classes&lt;br /&gt;
* New configuration options to disable late submission and to e-mail alerts to teachers when students submit new work&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chat&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Streamlined interface looks smoother, works faster, even without using the optional server daemon&lt;br /&gt;
* Blocks can now be added to chat pages (e.g. for additional information)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Choice&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rewritten to allow any number of choices&lt;br /&gt;
* The number of users per choice can be limited, which allows it to be used as tool for &amp;quot;signing up&amp;quot; to an array of options.&lt;br /&gt;
* You can now download the results of the choice to XLS or a TXT file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Powerful new Google-like forum searching tools&lt;br /&gt;
* Forum read/unread tracking - unread messages are highlighted on the course page, forum page, discussion listing and the discussion view&lt;br /&gt;
* The tracking system may be disabled by teachers/users&lt;br /&gt;
* User profiles show all posts by a user, as well as all discussions&lt;br /&gt;
* When admins edit user messages, a notice is attached&lt;br /&gt;
* Discussion listing shows the last user who posted to each discussion and when it was, with a direct link to that post&lt;br /&gt;
* In group-enabled forums the discussion listing shows the group the thread applies to, with a link to the group description page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Glossary&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* New setting to enable/disable the print view of each glossary.&lt;br /&gt;
* New search system looks for words everywhere (instead of doing exact phrase match).&lt;br /&gt;
* More information is sent to logs to be able to track activity better.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Journal&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The Journal module has not changed since 1.4, and is now deprecated. The upgrade procedure will convert all your Journal activities into Online Assignments, and hide all the old Journal activities. If you don&#039;t want this to happen, then define this in your config.php: $CFG-&amp;gt;noconvertjournals = true;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lesson&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Now supports timed Lessons&lt;br /&gt;
* Can create practice Lessons (grades are not stored)&lt;br /&gt;
* Option for students to view points earned while taking the Lesson&lt;br /&gt;
* Allow students to review their answers before submitting the Lesson&lt;br /&gt;
* New Slide Show Mode (only branch tables are displayed as slides)&lt;br /&gt;
* New Left Menu (for enabled branch tables only)&lt;br /&gt;
* Lessons can now be Password Protected&lt;br /&gt;
* A Tree View can be used for the Lesson creation screen&lt;br /&gt;
* Students can post their high scores&lt;br /&gt;
* New option to save a Lesson&#039;s settings as defaults for new lessons in the same course&lt;br /&gt;
* Can delete a student&#039;s attempts&lt;br /&gt;
* New page Jumps:&lt;br /&gt;
** Previous Page&lt;br /&gt;
** Unseen question within a branch&lt;br /&gt;
** Random question within a branch&lt;br /&gt;
** Unseen question within a cluster&lt;br /&gt;
* Added functionality to view Lesson statistics&lt;br /&gt;
* New question type: Essay. Teachers can view each essay and write comments, assign a grade, and then email it all to the student&lt;br /&gt;
* New question creation interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quiz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Can handle adaptive questions, i.e., questions that allow the student to interact with them repeatedly within the same quiz attempt and that can change in response to student answers.&lt;br /&gt;
* Student can be allowed to try a question again immediately within the same quiz attempt until they get the answer right.&lt;br /&gt;
* There is a penalty mechanism that deducts a specified fraction of the mark for each wrong attempt at a question.&lt;br /&gt;
* Allows questions rendered and scored externally (e.g., by mathematical assessment engines) to be integrated seamlessly into Moodle quizzes via the RQP web services protocol.&lt;br /&gt;
* Is prepared for the handling of IMS QTI questions once web services for these become available.&lt;br /&gt;
* New tabbed teacher interface for previewing, editing, and reviewing quizzes.&lt;br /&gt;
* New &amp;quot;improved security&amp;quot; mode shows quiz in a separate full-screen window, with many browser features disabled&lt;br /&gt;
* Quizzes can be presented to students in several pages. The number of questions per page is selectable by the teacher.&lt;br /&gt;
* Blocks can now be added to quiz pages (to show results table, or additional information etc)&lt;br /&gt;
* Better and cleaner interface for question selection and management in the database. Selected questions can be added to quiz, moved to other categories or deleted en mass.&lt;br /&gt;
* Random questions are now added to the quiz question list with a dedicated button, leaving a cleaner interface at questions database without phantom placeholders&lt;br /&gt;
* Final grade can be a fractional number, with teacher-defined decimal figures&lt;br /&gt;
* Improved results page with user-selectable display of columns, cleaner sorting and new mark display options&lt;br /&gt;
* Questions can be edited with one click from the improved quiz preview and question preview screens.&lt;br /&gt;
* Questions can be copied with one click, to allow question variations to be created with ease.&lt;br /&gt;
* Revamped question categories structures and editing interface.&lt;br /&gt;
* Categories now can contain nested subcategories and can be re-ordered.&lt;br /&gt;
* It is possible to select whether questions from categories, and or their subcategories are displayed on the question edit page.&lt;br /&gt;
* It is now possible to select whether to add random questions from a parent category alone, or from a parent category and its sub-categories.&lt;br /&gt;
* Quiz creators are prevented from changing the question set of quizes that have had student responses.&lt;br /&gt;
* Recognition, and rejection, of overlapping/redundant questions has been improved.&lt;br /&gt;
* The display of questions in longer quiz categories on the quiz editing page is now paginated.&lt;br /&gt;
* New export types - IMS QTI (2.0) and xhtml. Improvements &amp;amp; fixes to others.&lt;br /&gt;
* New import type - Hot Potato. Improvements &amp;amp; fixes to others.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scorm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The module is now fully conformant with the SCORM 1.2 standard.&lt;br /&gt;
* User result data storage and reporting was improved.&lt;br /&gt;
* AICC packages can now be imported.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Survey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Graph formatting has been improved (labels are more readable)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wiki&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Changes to wiki pages are now monitored and displayed in Recent Activity block&lt;br /&gt;
* Several under the hood improvements to backup/restore and other routines that enhance the reliability of wikis&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Old releases|1.4.5 release notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=License&amp;diff=29023</id>
		<title>License</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=License&amp;diff=29023"/>
		<updated>2006-01-28T21:48:55Z</updated>

		<summary type="html">&lt;p&gt;Helen: category change&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:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Future&amp;diff=26355</id>
		<title>Future</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Future&amp;diff=26355"/>
		<updated>2006-01-28T21:44:25Z</updated>

		<summary type="html">&lt;p&gt;Helen: category change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
As Moodle gains in maturity, its directions are increasingly influenced by the community of developers and users. A dynamic database of proposed features and their status can be found at [http://moodle.org/bugs/ moodle.org/bugs]. Your [[Credits|contributions]] in the form of ideas, code, feedback and promotion are all very welcome - see the [[Documentation for Developers|Developers manual]] and the [http://moodle.org/help community forums] for more details. You can also pay to have certain features developed sooner- see [http://moodle.com/development/ moodle.com/development] for information and a quote.&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;
* 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>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=424</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=424"/>
		<updated>2006-01-28T21:37:56Z</updated>

		<summary type="html">&lt;p&gt;Helen: added Category:Core&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
&lt;br /&gt;
[[Category:Core]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Credits&amp;diff=28913</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Credits&amp;diff=28913"/>
		<updated>2006-01-28T21:33:36Z</updated>

		<summary type="html">&lt;p&gt;Helen: category change&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 (&#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>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Coding&amp;diff=897</id>
		<title>Coding</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Coding&amp;diff=897"/>
		<updated>2006-01-28T21:32:25Z</updated>

		<summary type="html">&lt;p&gt;Helen: added Category:Core&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any collaborative project needs consistency and stability to stay strong.&lt;br /&gt;
&lt;br /&gt;
These &#039;&#039;&#039;coding guidelines&#039;&#039;&#039; are to provide a goal for all Moodle code to strive to. It&#039;s true that some of the older existing code falls short in a few areas, but it will all be fixed eventually. All new code definitely must adhere to these standards as closely as possible.&lt;br /&gt;
&lt;br /&gt;
==General rules==&lt;br /&gt;
&lt;br /&gt;
# All code files should use the .php extension.&lt;br /&gt;
# All template files should use the .html extension.&lt;br /&gt;
# All text files should use Unix-style text format (most text editors have this as an option).&lt;br /&gt;
# All php tags must be &#039;full&#039; tags like &amp;lt;?php ?&amp;gt; ... not &#039;short&#039; tags like &amp;lt;? ?&amp;gt;.&lt;br /&gt;
# All existing copyright notices must be retained. You can add your own if necessary.&lt;br /&gt;
# Each file should include the main config.php file.&lt;br /&gt;
# Each file should check that the user is authenticated correctly, using require_login() and isadmin(), isteacher(), iscreator() or isstudent().&lt;br /&gt;
# All access to databases should use the functions in &#039;&#039;lib/datalib.php&#039;&#039; whenever possible - this allows compatibility across a wide range of databases. You should find that almost anything is possible using these functions. If you must write SQL code then make sure it is: cross-platform; restricted to specific functions within your code (usually a lib.php file); and clearly marked.&lt;br /&gt;
# Don&#039;t create or use global variables except for the standard $CFG, $SESSION, $THEME and $USER.&lt;br /&gt;
# All variables should be initialised or at least tested for existence using isset() or empty() before they are used.&lt;br /&gt;
# All strings should be translatable - create new texts in the &amp;quot;lang/en&amp;quot; files with concise English lowercase names and retrieve them from your code using get_string() or print_string().&lt;br /&gt;
# All help files should be translatable - create new texts in the &amp;quot;en/help&amp;quot; directory and call them using helpbutton(). If you need to update a help file:&lt;br /&gt;
#* with a minor change, where an old translation of the file would still make sense, then it&#039;s OK to make the change but you should notify translation AT moodle DOT org.&lt;br /&gt;
#* for a major change you should create a new file by adding an incrementing number (eg filename2.html) so that translators can easily see it&#039;s a new version of the file. Obviously the new code and the help index files should also be modified to point to the newest versions.&lt;br /&gt;
# Incoming data from the browser (sent via GET or POST) automatically has magic_quotes applied (regardless of the PHP settings) so that you can safely insert it straight into the database. All other raw data (from files, or from databases) must be escaped with addslashes() before inserting it into the database.&lt;br /&gt;
# IMPORTANT: All texts within Moodle, especially those that have come from users, should be printed using the format_text() function. This ensures that text is filtered and cleaned correctly.&lt;br /&gt;
 &lt;br /&gt;
==Coding style==&lt;br /&gt;
&lt;br /&gt;
I know it can be a little annoying to change your style if you&#039;re used to something else, but balance that annoyance against the annoyance of all the people trying later on to make sense of Moodle code with mixed styles. There are obviously many good points for and against any style that people use, but the current style just is, so please stick to it.&lt;br /&gt;
&lt;br /&gt;
1. Indenting should be consistently 4 spaces. Don&#039;t use tabs AT ALL.&lt;br /&gt;
&lt;br /&gt;
2. Variable names should always be easy-to-read, meaningful lowercase English words. If you really need more than one word then run them together, but keep them short as possible. Use plural names for arrays of objects.&lt;br /&gt;
&lt;br /&gt;
      GOOD: $quiz&lt;br /&gt;
      GOOD: $errorstring&lt;br /&gt;
      GOOD: $assignments (for an array of objects)&lt;br /&gt;
      GOOD: $i (but only in little loops)&lt;br /&gt;
&lt;br /&gt;
      BAD: $Quiz&lt;br /&gt;
      BAD: $aReallyLongVariableNameWithoutAGoodReason&lt;br /&gt;
      BAD: $error_string&lt;br /&gt;
&lt;br /&gt;
3. Constants should always be in upper case, and always start with the name of the module. They should have words separated by underscores.&lt;br /&gt;
&lt;br /&gt;
      define(&amp;quot;FORUM_MODE_FLATOLDEST&amp;quot;, 1);&lt;br /&gt;
4. Function names should be simple English lowercase words, and start with the name of the module to avoid conflicts between modules. Words should be separated by underscores. Parameters should always have sensible defaults if possible. Note there is no space between the function name and the following (brackets).&lt;br /&gt;
&lt;br /&gt;
      function forum_set_display_mode($mode=0) {&lt;br /&gt;
          global $USER, $CFG;&lt;br /&gt;
&lt;br /&gt;
          if ($mode) {&lt;br /&gt;
              $USER-&amp;gt;mode = $mode;&lt;br /&gt;
          } else if (empty($USER-&amp;gt;mode)) {&lt;br /&gt;
              $USER-&amp;gt;mode = $CFG-&amp;gt;forum_displaymode;&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
5. Blocks must always be enclosed in curly braces (even if there is only one line). Moodle uses this style:&lt;br /&gt;
&lt;br /&gt;
      if ($quiz-&amp;gt;attempts) {&lt;br /&gt;
          if ($numattempts &amp;gt; $quiz-&amp;gt;attempts) {&lt;br /&gt;
              error($strtoomanyattempts, &amp;quot;view.php?id=$cm-&amp;gt;id&amp;quot;);&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
6. Strings should be defined using single quotes where possible, for increased speed.&lt;br /&gt;
&lt;br /&gt;
      $var = &#039;some text without any variables&#039;;&lt;br /&gt;
      $var = &amp;quot;with special characters like a new line \n&amp;quot;;&lt;br /&gt;
      $var = &#039;a very, very long string with a &#039;.$single.&#039; variable in it&#039;;&lt;br /&gt;
      $var = &amp;quot;some $text with $many variables $within it&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
7. Comments should be added as much as is practical, to explain the code flow and the purpose of functions and variables.&lt;br /&gt;
&lt;br /&gt;
* Every function (and class) should use the popular [http://www.phpdoc.org/ phpDoc format]. This allows code documentation to be generated automatically.&lt;br /&gt;
* Inline comments should use the // style, laid out neatly so that it fits among the code and lines up with it.&lt;br /&gt;
&lt;br /&gt;
      /**&lt;br /&gt;
      * The description should be first, with asterisks laid out exactly&lt;br /&gt;
      * like this example. If you want to refer to a another function,&lt;br /&gt;
      * do it like this: {@link clean_param()}. Then, add descriptions&lt;br /&gt;
      * for each parameter as follows.&lt;br /&gt;
      *&lt;br /&gt;
      * @param int $postid The PHP type is followed by the variable name&lt;br /&gt;
      * @param array $scale The PHP type is followed by the variable name&lt;br /&gt;
      * @param array $ratings The PHP type is followed by the variable name&lt;br /&gt;
      * @return mixed&lt;br /&gt;
      */&lt;br /&gt;
      function forum_get_ratings_mean($postid, $scale, $ratings=NULL) {&lt;br /&gt;
          if (!$ratings) {&lt;br /&gt;
              $ratings = array();     // Initialize the empty array&lt;br /&gt;
              if ($rates = get_records(&amp;quot;forum_ratings&amp;quot;, &amp;quot;post&amp;quot;, $postid)) {&lt;br /&gt;
                  // Process each rating in turn&lt;br /&gt;
                  foreach ($rates as $rate) {&lt;br /&gt;
      ....etc&lt;br /&gt;
&lt;br /&gt;
8. Space should be used liberally - don&#039;t be afraid to spread things out a little to gain some clarity. Generally, there should be one space between brackets and normal statements, but no space between brackets and variables or functions:&lt;br /&gt;
&lt;br /&gt;
      foreach ($objects as $key =&amp;gt; $thing) {&lt;br /&gt;
          process($thing);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      if ($x == $y) {&lt;br /&gt;
          $a = $b;&lt;br /&gt;
      } else if ($x == $z) {&lt;br /&gt;
          $a = $c;&lt;br /&gt;
      } else {&lt;br /&gt;
          $a = $d;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
==Database structures==&lt;br /&gt;
&lt;br /&gt;
# Every table must have an auto-incrementing id field (INT10) as primary index. (see [[IdColumnReasons]])&lt;br /&gt;
# The main table containing instances of each module must have the same name as the module (eg widget) and contain the following minimum fields:&lt;br /&gt;
#* id - as described above&lt;br /&gt;
#* course - the id of the course that each instance belongs to&lt;br /&gt;
#* name - the full name of each instance of the module&lt;br /&gt;
# Other tables associated with a module that contain information about &#039;things&#039; should be named widget_things (note the plural).&lt;br /&gt;
# Column names should be simple and short, following the same rules as for variable names.&lt;br /&gt;
# Where possible, columns that contain a reference to the id field of another table (eg widget) should be called widgetid. (Note that this convention is newish and not followed in some older tables)&lt;br /&gt;
# Boolean fields should be implemented as small integer fields (eg INT4) containing 0 or 1, to allow for later expansion of values if necessary.&lt;br /&gt;
# Most tables should have a timemodified field (INT10) which is updated with a current timestamp obtained with the PHP time() function.&lt;br /&gt;
&lt;br /&gt;
==Security issues (and handling form and URL data)==&lt;br /&gt;
&lt;br /&gt;
# Do not rely on &#039;register_globals&#039;. Every variable must be properly initialised in every code file. It must be obvious where the variable came from&lt;br /&gt;
# Initialise all arrays and objects, even if empty. $a = array() or $obj = new stdClass();.&lt;br /&gt;
# Do not use the optional_variable() function. Use the optional_param() function instead. Pick the correct PARAM_XXXX value for the data type you expect. To check and set an optional value for a variable, use the set_default() function.&lt;br /&gt;
# Do not use the require_variable() function. Use the required_param() function instead. Pick the correct PARAM_XXXX value for the data type you expect.&lt;br /&gt;
# Use data_submitted(), with care. Data must still be cleaned before use.&lt;br /&gt;
# Do not use $_GET, $_POST or $_REQUEST. Use the appropriate required_param() or optional_param() appropriate to your need.&lt;br /&gt;
# Do not check for an action using something like if (isset($_GET[&#039;something&#039;])). Use, e.g., $something = optional_param( &#039;something&#039;,-1,PARAM_INT ) and then perform proper test for it being in its expected range of values e.g., if ($something&amp;gt;=0) {....&lt;br /&gt;
# Wherever possible group all your required_param(), optional_param() and other variables initialisation at the beginning of each file to make them easy to find.&lt;br /&gt;
# Use &#039;sesskey&#039; mechanism to protect form handling routines from attack. Basic example of use: when form is generated, include &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;sesskey&amp;quot; value=&amp;quot;&amp;lt;?php echo sesskey(); ?&amp;gt;&amp;quot; /&amp;gt;. When you process the form check with if (!confirm_sesskey()) {error(&#039;Bad Session Key&#039;);}.&lt;br /&gt;
# All filenames must be &#039;cleaned&#039; using the clean_filename() function, if this has not been done already by appropriate use of required_param() or optional_param()&lt;br /&gt;
# Any data read from the database must have addslashes() applied to it before it can be written back. A whole object of data can be hit at once with addslashes_object().&lt;br /&gt;
# Wherever possible, data to be stored in the database must come from POST data (from a form with method=&amp;quot;POST&amp;quot;) as opposed to GET data (ie, data from the URL line).&lt;br /&gt;
# Do not use data from $_SERVER if you can avoid it. This has portability issues.&lt;br /&gt;
# If it hasn&#039;t been done somewhere else, make sure all data written to the database has been through the clean_param() function using the appropriate PARAM_XXXX for the datatype.&lt;br /&gt;
# If you write custom SQL code, make very sure it is correct. In particular watch out for missing quotes around values. Possible SQL &#039;injection&#039; exploit.&lt;br /&gt;
# Check all data (particularly that written to the database) in every file it is used. Do not expect or rely on it being done somewhere else.&lt;br /&gt;
# Blocks of code to be included should contain a definite PHP structure (e.g, a class declaration, function definition(s) etc.) - straight blocks of code promote uninitialised variable usage.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=746</id>
		<title>Developer notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=746"/>
		<updated>2006-01-28T18:59:36Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* Other */ link removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=85% align=center style=&amp;quot;background: #F8EABA; border: 1px solid #aaa; margin-bottom: 10px;&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; This area is for developers to work on various bits of code and documentation as necessary. Initial text has been taken from [http://moodle.org/course/view.php?id=5 Using Moodle] Developer Wiki. If you find any text missing, please email docs AT moodle DOT org.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==1.6 plans==&lt;br /&gt;
&lt;br /&gt;
*[[Forum development|Forum functional upgrade]]&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Other lang issues|Other language issues (non UTF related)]] &lt;br /&gt;
*[[Developer conference|Next developer conference]]&lt;br /&gt;
*[[MoodleDocs development]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Usability]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Blogs and forums|Blogs, forums and the nature of discussion]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Filters schema]]&lt;br /&gt;
*[[Filterall support]]&lt;br /&gt;
*[[Application/session variables]]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Wiki development|Wiki module development]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Developer documentation]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Credits&amp;diff=28912</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Credits&amp;diff=28912"/>
		<updated>2006-01-28T15:38:26Z</updated>

		<summary type="html">&lt;p&gt;Helen: email amendments, category&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 (&#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:Moodle]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Gustav_Delius&amp;diff=23225</id>
		<title>User talk:Gustav Delius</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Gustav_Delius&amp;diff=23225"/>
		<updated>2006-01-28T14:02:28Z</updated>

		<summary type="html">&lt;p&gt;Helen: reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developer wiki quiz pages==&lt;br /&gt;
&lt;br /&gt;
Hi Gustav, please let me know whether it would be helpful if the quiz pages from the Using Moodle developer wiki should be moved into [[Developer notes]]. --[[User:Helen|Helen]] 07:04, 28 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Helen, I had indeed been looking for those pages. They are of course outdated but would be a good starting point for a more up-to-date version. If you let me know where I can find them then I can copy them over myself. --[[User:Gustav|Gustav]] 07:08, 28 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
Thanks very much for working on these, Gustav, it will help a lot of future quiz programmers.  --[[User:Martin|Martin]] 28 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Yes, I am very sorry that I neglected the quiz module the way I did in the past months. Ideally I would like to be able to hand over of the module to the OU team, perhaps when I see Jason Cole in Savannah. --[[User:Gustav|Gustav]] 17:02, 28 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Gustav, you have absolutely nothing to be sorry about. Your huge contribution to Moodle is greatly appreciated. --[[User:Helen|Helen]] 22:02, 28 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Gustav_Delius&amp;diff=23220</id>
		<title>User talk:Gustav Delius</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Gustav_Delius&amp;diff=23220"/>
		<updated>2006-01-27T23:04:52Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki quiz pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developer wiki quiz pages==&lt;br /&gt;
&lt;br /&gt;
Hi Gustav, please let me know whether it would be helpful if the quiz pages from the Using Moodle developer wiki should be moved into [[Developer notes]]. -- [[User:Helen|Helen]] 07:04, 28 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22937</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22937"/>
		<updated>2006-01-26T16:24:40Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* Do you monitor all talk pages? */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
::Yes, the [[Special:Recentchanges|Recent changes]] page is very useful. You can tell that I have never used a wiki intensively before. Thanks for your tips. --[[User:Gustav|Gustav]] 18:35, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:::Hey, let&#039;s discover the wiki way together! :-) -- [[User:Helen|Helen]] 00:24, 27 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22935</id>
		<title>User talk:Helen Foster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Helen_Foster&amp;diff=22935"/>
		<updated>2006-01-26T10:26:05Z</updated>

		<summary type="html">&lt;p&gt;Helen: replies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== More hierarchy ==&lt;br /&gt;
&lt;br /&gt;
Hi Helen, I think this wiki is very useful and I would like to thank you for the work you are putting into it. I like your navigation boxes on the module pages. I have a suggestion for extending these: I think it would be nice to have an extra link that allows one to go higher up in the hierarcy to [[Teacher_documentation]]. What do you think? --[[User:Delius|Delius]] 17:48, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, thanks for your kind words. Your contributions to the documentation are most welcome. Please feel free to edit [[Template:Quizzes]] or any other template page. You may also wish to consider further use of category pages e.g. [[:Category:Teacher]] for navigation. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
== Do you monitor all talk pages? ==&lt;br /&gt;
&lt;br /&gt;
Helen, I have posted another question for you on [[Talk:mod/quiz/index]]. Do you get alerted to anything I put on any talk page or should I post on this page if I want you to see it? --[[User:Delius|Delius]] 18:01, 26 January 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
:Hi Gustav, please note that I often check [[Special:Recentchanges|Recent changes]] or the rss feed. -- [[User:Helen|Helen]] 18:26, 26 January 2006 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_DB&amp;diff=1871</id>
		<title>UTF-8 DB</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_DB&amp;diff=1871"/>
		<updated>2006-01-24T20:49:27Z</updated>

		<summary type="html">&lt;p&gt;Helen: pre tag formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Database conversion&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page is under construction!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Only some preliminary ideas have been defined. &lt;br /&gt;
&lt;br /&gt;
==Differences between MySQL and PostgreSQL==&lt;br /&gt;
&lt;br /&gt;
Required 4.1! Detect how dabase/tables/columns have been created (charset...)&lt;br /&gt;
How the set_names affect everything (from PHP to MySQL)&lt;br /&gt;
&lt;br /&gt;
A big XML file will map all the required information to make the upgrade for global tables (like course, user etc)&lt;br /&gt;
&lt;br /&gt;
Both modules and blocks will have their own XML file. (like those in /db *.sql)&lt;br /&gt;
e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;TABLE name=&amp;quot;lesson_answers&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;FIELDS&amp;gt;&lt;br /&gt;
        &amp;lt;FIELD name=&amp;quot;answer&amp;quot; method=&amp;quot;PLAIN_SQL_UPDATE&amp;quot; type&amp;quot;text&amp;quot; length=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
           SELECT l.course&lt;br /&gt;
           FROM {$CFG-&amp;gt;prefix}lesson l,&lt;br /&gt;
                {$CFG-&amp;gt;prefix}lesson_answers la&lt;br /&gt;
           WHERE l.id = la.lessonid&lt;br /&gt;
                 AND la.id = RECORDID&lt;br /&gt;
          &amp;lt;/SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
        &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
        &amp;lt;FIELD name=&amp;quot;response&amp;quot; method=&amp;quot;PLAIN_SQL_UPDATE&amp;quot; type&amp;quot;text&amp;quot; length=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
           SELECT l.course&lt;br /&gt;
           FROM {$CFG-&amp;gt;prefix}lesson l,&lt;br /&gt;
                {$CFG-&amp;gt;prefix}lesson_answers la&lt;br /&gt;
           WHERE l.id = la.lessonid&lt;br /&gt;
                 AND la.id = RECORDID&lt;br /&gt;
          &amp;lt;/SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
        &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
      &amp;lt;/FIELDS&amp;gt;&lt;br /&gt;
    &amp;lt;/TABLE&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The XML file will specify how to locate the course and the user every field belongs to, because translation will be done from course-&amp;gt;lang or user-&amp;gt;lang or site-&amp;gt;lang to utf-8.&lt;br /&gt;
&lt;br /&gt;
Those XML files will be read by one processor. This processor will pre-check that there is XML info available for each table in the DB. The processor will annotate the exact point it is, allowing to resume on crash!&lt;br /&gt;
&lt;br /&gt;
It will be a two-stages process. 1st to convert all the texts, then to convert tables and column encodings (a possible alternative is to duplicate the entire DB with empty tables and then, move all contents to the new one) ?&lt;br /&gt;
&lt;br /&gt;
It&#039;s highly possible that we need to increase DB requirements to MySQL 4.1 (great for the future!). Other users should stick at 1.5.&lt;br /&gt;
&lt;br /&gt;
Collation support inside MySQL is great so we could specify different collations per lang and, dynamicaly sort query results differently.&lt;br /&gt;
&lt;br /&gt;
As postgresql is quite different, an alternate DB migration must be performed for it.&lt;br /&gt;
&lt;br /&gt;
Indexes could break under MySQL (because utf strings are 3x in size). Don&#039;t forget it!&lt;br /&gt;
&lt;br /&gt;
create it able to run under different methods:&lt;br /&gt;
- Under PHP application mode.&lt;br /&gt;
- Processing items in chunks, saving the latest performed table and record to be able of resume in the exact point of break.&lt;br /&gt;
- Able to be skipped for sites in only one encoding (making manual iconv to the database dump and importing again.&lt;br /&gt;
&lt;br /&gt;
two stages, the conversion and the altering schema.&lt;br /&gt;
&lt;br /&gt;
Check that the XML contains information for each $CFG-&amp;gt;prefix table.&lt;br /&gt;
&lt;br /&gt;
Try to convert table and column encoding following the XML too (reading metadata?)&lt;br /&gt;
&lt;br /&gt;
Indexes to long. It&#039;s going to be a problem, sure!!&lt;br /&gt;
&lt;br /&gt;
Modify all the DB creation scripts inside Moodle to specify encoding!!&lt;br /&gt;
&lt;br /&gt;
All the fields in a table at the same time, record by record.&lt;br /&gt;
&lt;br /&gt;
Deactivate the cron (creating a new $CFG-&amp;gt;stopcron variable) and check that the site in under single-user mode (maintenance mode enabled). &lt;br /&gt;
&lt;br /&gt;
==List of tables and fields that need to be converted==&lt;br /&gt;
&lt;br /&gt;
(?) = in progress, not sure yet&lt;br /&gt;
(x) = quite sure =P&lt;br /&gt;
&lt;br /&gt;
Please let me know any table that I don&#039;t need to worry about.&lt;br /&gt;
&lt;br /&gt;
adodb_logsql (?)&lt;br /&gt;
&lt;br /&gt;
assignment (x)&lt;br /&gt;
- name, description&lt;br /&gt;
- course-&amp;gt;lang = select c.lang from course c left join assignment a on c.id = a.course where a.id = a.id&lt;br /&gt;
- user-&amp;gt;lang = - &lt;br /&gt;
&lt;br /&gt;
assignment_submissions (x)&lt;br /&gt;
- comment, data1, data2&lt;br /&gt;
- course-&amp;gt;lang = select c.lang from course c left join assignement a on c.id = a.course left join assignment_submissions as ass on a.id = ass.assignment where ass.id = ass.id&lt;br /&gt;
- user-&amp;gt;lang = select u.lang from user u left join assignment_submissions as ass on u.id = ass.userid where ass.id=ass.id&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
backup_config (?)&lt;br /&gt;
&lt;br /&gt;
backup_courses (x)&lt;br /&gt;
&lt;br /&gt;
backup_files (x)&lt;br /&gt;
&lt;br /&gt;
backup_ids (?)&lt;br /&gt;
&lt;br /&gt;
backup_log (?)&lt;br /&gt;
&lt;br /&gt;
block (x)&lt;br /&gt;
&lt;br /&gt;
block_instance (?)&lt;br /&gt;
-configdata (all empty?)&lt;br /&gt;
&lt;br /&gt;
block_pinned (?)&lt;br /&gt;
-configdata (?)&lt;br /&gt;
&lt;br /&gt;
block_rss_client (?)&lt;br /&gt;
-title, preferredtitle, description(?)&lt;br /&gt;
&lt;br /&gt;
cache_filters (?)&lt;br /&gt;
&lt;br /&gt;
cache_text (?)&lt;br /&gt;
&lt;br /&gt;
chat (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
chat_messages (x)&lt;br /&gt;
-message&lt;br /&gt;
&lt;br /&gt;
chat_users (x)&lt;br /&gt;
&lt;br /&gt;
choice (x)&lt;br /&gt;
-name, text&lt;br /&gt;
&lt;br /&gt;
choice_answers (x)&lt;br /&gt;
&lt;br /&gt;
choice_options (x)&lt;br /&gt;
-text&lt;br /&gt;
&lt;br /&gt;
config (x)&lt;br /&gt;
-value see hokudai page 2 in db, chars embedded in tags&lt;br /&gt;
&lt;br /&gt;
config_plugins (?)&lt;br /&gt;
&lt;br /&gt;
course (x)&lt;br /&gt;
password(raw string, see koniv database), fullname, shortname, idnumber, summary, teacher, teachers, student, students&lt;br /&gt;
&lt;br /&gt;
course_allowed_modules (x)&lt;br /&gt;
&lt;br /&gt;
course_categories (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
course_display (x)&lt;br /&gt;
&lt;br /&gt;
course_meta (x)&lt;br /&gt;
&lt;br /&gt;
course_modules (x)&lt;br /&gt;
&lt;br /&gt;
course_request (?)&lt;br /&gt;
&lt;br /&gt;
course_sections (x)&lt;br /&gt;
-summary&lt;br /&gt;
&lt;br /&gt;
data (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
data_comments (x)&lt;br /&gt;
&lt;br /&gt;
data_content (x)&lt;br /&gt;
-conent(composite)&lt;br /&gt;
&lt;br /&gt;
data_fields (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
data_ratings (x)&lt;br /&gt;
&lt;br /&gt;
data_records (x)&lt;br /&gt;
&lt;br /&gt;
dialogue (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
dialogue_conversations (x)&lt;br /&gt;
-subject&lt;br /&gt;
&lt;br /&gt;
dialogue_entries (x)&lt;br /&gt;
-text;&lt;br /&gt;
&lt;br /&gt;
downloads (?)&lt;br /&gt;
&lt;br /&gt;
enrol_authorize (?)&lt;br /&gt;
&lt;br /&gt;
enrol_paypal (?)&lt;br /&gt;
&lt;br /&gt;
event (x)&lt;br /&gt;
-name(composite!), description&lt;br /&gt;
&lt;br /&gt;
exercise (x)&lt;br /&gt;
-name, md5(password?)&lt;br /&gt;
&lt;br /&gt;
exercise_assessments (x)&lt;br /&gt;
-generalcomment, teachercomment&lt;br /&gt;
&lt;br /&gt;
exercise_elements (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
exercise_grades (x)&lt;br /&gt;
-feedback&lt;br /&gt;
&lt;br /&gt;
exercise_rubrics (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
exercise_submissions (x)&lt;br /&gt;
-title&lt;br /&gt;
&lt;br /&gt;
forum (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
forum_discussions (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
forum_posts (x)&lt;br /&gt;
-subject, message, attachment (stripeed &amp;amp;#, no need to convert?)&lt;br /&gt;
&lt;br /&gt;
forum_queue (x)&lt;br /&gt;
&lt;br /&gt;
forum_ratings (x)&lt;br /&gt;
&lt;br /&gt;
forum_read (x)&lt;br /&gt;
&lt;br /&gt;
forum_subscriptions (x)&lt;br /&gt;
&lt;br /&gt;
forum_track_prefs (x)&lt;br /&gt;
&lt;br /&gt;
glossary (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
glossary_alias (x)&lt;br /&gt;
-alias&lt;br /&gt;
&lt;br /&gt;
glossary_categories (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
glossary_comments (x)&lt;br /&gt;
-comment&lt;br /&gt;
&lt;br /&gt;
glossary_entries (x)&lt;br /&gt;
-concept, definition&lt;br /&gt;
&lt;br /&gt;
glossary_entries_categories (x)&lt;br /&gt;
&lt;br /&gt;
glossary_formats (x)&lt;br /&gt;
&lt;br /&gt;
glossary_ratings (x)&lt;br /&gt;
&lt;br /&gt;
grade_category (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
grade_exceptions (x)&lt;br /&gt;
&lt;br /&gt;
grade_item (x)&lt;br /&gt;
&lt;br /&gt;
grade_letter (x)&lt;br /&gt;
-letter&lt;br /&gt;
&lt;br /&gt;
grade_preferences (x)&lt;br /&gt;
&lt;br /&gt;
groups&lt;br /&gt;
-name, description, password(stripped), theme(?)&lt;br /&gt;
&lt;br /&gt;
groups_members (x)&lt;br /&gt;
&lt;br /&gt;
hotpot(x)&lt;br /&gt;
-name, summary&lt;br /&gt;
&lt;br /&gt;
hotpot_attempts (x)&lt;br /&gt;
&lt;br /&gt;
hotpot_details (x)&lt;br /&gt;
-details&lt;br /&gt;
&lt;br /&gt;
hotpot_questions (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
hotpot_responses (?)&lt;br /&gt;
&lt;br /&gt;
hotpot_strings (x)&lt;br /&gt;
-string&lt;br /&gt;
&lt;br /&gt;
journal (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
journal_entries (x)&lt;br /&gt;
-comment, text&lt;br /&gt;
&lt;br /&gt;
label (x)&lt;br /&gt;
name, content (with html)&lt;br /&gt;
&lt;br /&gt;
lams (???)&lt;br /&gt;
&lt;br /&gt;
lesson (x)&lt;br /&gt;
-name, password is (md5(NCR))?&lt;br /&gt;
&lt;br /&gt;
lesson_answers (x)&lt;br /&gt;
-answer, response&lt;br /&gt;
&lt;br /&gt;
lesson_attempts (?)&lt;br /&gt;
-useranswer(?)&lt;br /&gt;
&lt;br /&gt;
lesson_branch (x)&lt;br /&gt;
&lt;br /&gt;
lesson_default (x)&lt;br /&gt;
-password(md5(NCR))?&lt;br /&gt;
&lt;br /&gt;
lesson_grades (x)&lt;br /&gt;
&lt;br /&gt;
lesson_high_scores&lt;br /&gt;
&lt;br /&gt;
lesson_pages (x)&lt;br /&gt;
-title, content&lt;br /&gt;
&lt;br /&gt;
lesson_timer (x)&lt;br /&gt;
&lt;br /&gt;
log (x)&lt;br /&gt;
-info (hokai as well)&lt;br /&gt;
&lt;br /&gt;
log_display (x)&lt;br /&gt;
&lt;br /&gt;
message (x)&lt;br /&gt;
-message (not NCR!)&lt;br /&gt;
&lt;br /&gt;
message_contacts (x)&lt;br /&gt;
&lt;br /&gt;
message_read (x)&lt;br /&gt;
-message (not NCR!)&lt;br /&gt;
&lt;br /&gt;
modules (x)&lt;br /&gt;
&lt;br /&gt;
quiz (x)&lt;br /&gt;
-name, intro, password(md5)?&lt;br /&gt;
&lt;br /&gt;
quiz_answers (x)&lt;br /&gt;
-answer, feedback&lt;br /&gt;
&lt;br /&gt;
quiz_attemptonlast_datasets (x)&lt;br /&gt;
&lt;br /&gt;
quiz_attempts (x)&lt;br /&gt;
&lt;br /&gt;
quiz_calculated (x)&lt;br /&gt;
&lt;br /&gt;
quiz_categories (x)&lt;br /&gt;
-name, info&lt;br /&gt;
&lt;br /&gt;
quiz_dataset_definitions (?)&lt;br /&gt;
&lt;br /&gt;
quiz_dataset_items (?)&lt;br /&gt;
&lt;br /&gt;
quiz_essay (x)&lt;br /&gt;
&lt;br /&gt;
quiz_essay_states (??)&lt;br /&gt;
&lt;br /&gt;
quiz_grades (x)&lt;br /&gt;
&lt;br /&gt;
quiz_match (x)&lt;br /&gt;
&lt;br /&gt;
quiz_match_sub (x)&lt;br /&gt;
-questiontext, answertext&lt;br /&gt;
&lt;br /&gt;
quiz_multianswers (x)&lt;br /&gt;
&lt;br /&gt;
quiz_multichoice (x)&lt;br /&gt;
&lt;br /&gt;
quiz_newest_states (x)&lt;br /&gt;
&lt;br /&gt;
quiz_numerical (x)&lt;br /&gt;
&lt;br /&gt;
quiz_numerical_units (x)&lt;br /&gt;
-unit&lt;br /&gt;
&lt;br /&gt;
quiz_question_datasets (x)&lt;br /&gt;
&lt;br /&gt;
quiz_question_instances (x)&lt;br /&gt;
&lt;br /&gt;
quiz_question_versions (x)&lt;br /&gt;
&lt;br /&gt;
quiz_questions (x)&lt;br /&gt;
-name, questiontext&lt;br /&gt;
&lt;br /&gt;
quiz_randomsamatch (x)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_servers (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_states (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_types (?)&lt;br /&gt;
&lt;br /&gt;
quiz_shortanswer (x)&lt;br /&gt;
&lt;br /&gt;
quiz_states (x)&lt;br /&gt;
answer - composite!&lt;br /&gt;
&lt;br /&gt;
quiz_truefalse (x)&lt;br /&gt;
&lt;br /&gt;
registry (x)&lt;br /&gt;
-sitename, adminname&lt;br /&gt;
&lt;br /&gt;
registry_votes (?)&lt;br /&gt;
&lt;br /&gt;
resource (x)&lt;br /&gt;
-name, summary, alltext&lt;br /&gt;
&lt;br /&gt;
scale (x)&lt;br /&gt;
-name, description, scale&lt;br /&gt;
&lt;br /&gt;
scorm (?)&lt;br /&gt;
-name, summary&lt;br /&gt;
&lt;br /&gt;
scorm_scoes (?)&lt;br /&gt;
&lt;br /&gt;
scorm_scoes_track (?)&lt;br /&gt;
&lt;br /&gt;
sessions (?)&lt;br /&gt;
&lt;br /&gt;
stats_daily (x)&lt;br /&gt;
&lt;br /&gt;
stats_monthly (x)&lt;br /&gt;
&lt;br /&gt;
stats_user_daily (?)&lt;br /&gt;
-stattype&lt;br /&gt;
&lt;br /&gt;
stats_user_monthly (x)&lt;br /&gt;
&lt;br /&gt;
stats_user_weekly (x)&lt;br /&gt;
&lt;br /&gt;
stats_weekly(x)&lt;br /&gt;
&lt;br /&gt;
survey (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
survey_analysis (x)&lt;br /&gt;
-notes&lt;br /&gt;
&lt;br /&gt;
survey_answers (?)&lt;br /&gt;
-answerone, answertwo??&lt;br /&gt;
&lt;br /&gt;
survey_questions (?)&lt;br /&gt;
&lt;br /&gt;
timezone(x)&lt;br /&gt;
&lt;br /&gt;
user (x)&lt;br /&gt;
-firstname, lastname, department, institution, address, city, description, secret(?)&lt;br /&gt;
&lt;br /&gt;
user_admins (x)&lt;br /&gt;
&lt;br /&gt;
user_coursecreators (x)&lt;br /&gt;
&lt;br /&gt;
user_preferences (x)&lt;br /&gt;
&lt;br /&gt;
user_students (x)&lt;br /&gt;
&lt;br /&gt;
user_teachers (x)&lt;br /&gt;
&lt;br /&gt;
wiki (x)&lt;br /&gt;
-name, summary, pagename, initialcontent&lt;br /&gt;
&lt;br /&gt;
wiki_entries (x)&lt;br /&gt;
-pagename&lt;br /&gt;
&lt;br /&gt;
wiki_pages (x)&lt;br /&gt;
-pagename, content, author, ref&lt;br /&gt;
&lt;br /&gt;
workshop (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
workshop_assessments (x)&lt;br /&gt;
-generalcomment, teachercomment&lt;br /&gt;
&lt;br /&gt;
workshop_comments (x)&lt;br /&gt;
-comments&lt;br /&gt;
&lt;br /&gt;
workshop_elements (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
workshop_grades (x)&lt;br /&gt;
-feedback&lt;br /&gt;
&lt;br /&gt;
workshop_rubrics (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
workshop_stockcomments (x)&lt;br /&gt;
-comments&lt;br /&gt;
&lt;br /&gt;
workshop_submissions (x)&lt;br /&gt;
-title&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Database]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=745</id>
		<title>Developer notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=745"/>
		<updated>2006-01-21T18:02:48Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* 1.6 plans */ link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=85% align=center style=&amp;quot;background: #F8EABA; border: 1px solid #aaa; margin-bottom: 10px;&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; This area is for developers to work on various bits of code and documentation as necessary. Initial text has been taken from [http://moodle.org/course/view.php?id=5 Using Moodle] Developer Wiki. If you find any text missing, please email docs AT moodle DOT org.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==1.6 plans==&lt;br /&gt;
&lt;br /&gt;
*[[Forum development|Forum functional upgrade]]&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Other lang issues|Other language issues (non UTF related)]] &lt;br /&gt;
*[[Developer conference|Next developer conference]]&lt;br /&gt;
*[[MoodleDocs development]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Usability]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Blogs and forums|Blogs, forums and the nature of discussion]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Filters schema]]&lt;br /&gt;
*[[Filterall support]]&lt;br /&gt;
*[[Application/session variables]]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Quiz development|Quiz module development]]&lt;br /&gt;
*[[Wiki development|Wiki module development]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Developer documentation]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=User_talk:Starsand&amp;diff=22932</id>
		<title>User talk:Starsand</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=User_talk:Starsand&amp;diff=22932"/>
		<updated>2006-01-17T11:59:29Z</updated>

		<summary type="html">&lt;p&gt;Helen: reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am trying to install moodle. I installed Apache, PHP, MySQL. I created a database called &#039;moodle&#039; and a user called &#039;moodleuser&#039; having all rights for the database. When I try to run install.php from my browser, it goes smoothly till the page where database details are asked. Then it gives a error &amp;quot;We could not connect to the database you specified. Please check your database settings.&amp;quot;&lt;br /&gt;
I have been stuck here since 12 days. Please help.&lt;br /&gt;
&lt;br /&gt;
:Please refer to the database connection failed FAQ in [[Installation FAQ]] -- [[User:Helen|Helen]] 17 January 2006 11:59 (WST)&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_1.5_schema&amp;diff=1941</id>
		<title>SCORM 1.5 schema</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_1.5_schema&amp;diff=1941"/>
		<updated>2006-01-13T12:26:37Z</updated>

		<summary type="html">&lt;p&gt;Helen: insert and update, view an activity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Insert and update an activity==&lt;br /&gt;
&lt;br /&gt;
[[Image:Scorm insert update.png]]&lt;br /&gt;
&lt;br /&gt;
==View an activity==&lt;br /&gt;
&lt;br /&gt;
[[Image:Scorm view.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=417</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=417"/>
		<updated>2006-01-13T11:50:54Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* How you can contribute */ scorm link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
===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;
* [[SCORM schema|SCORM module schema]]&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;
*[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;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=744</id>
		<title>Developer notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=744"/>
		<updated>2006-01-10T08:07:48Z</updated>

		<summary type="html">&lt;p&gt;Helen: contact email&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=85% align=center style=&amp;quot;background: #F8EABA; border: 1px solid #aaa; margin-bottom: 10px;&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; This area is for developers to work on various bits of code and documentation as necessary. Initial text has been taken from [http://moodle.org/course/view.php?id=5 Using Moodle] Developer Wiki. If you find any text missing, please email docs AT moodle DOT org.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==1.6 plans==&lt;br /&gt;
&lt;br /&gt;
*[[Forum development|Forum functional upgrade]]&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Other lang issues|Other language issues (non UTF related)]] &lt;br /&gt;
*[[Developer conference|Next developer conference]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Usability]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Blogs and forums|Blogs, forums and the nature of discussion]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Filters schema]]&lt;br /&gt;
*[[Filterall support]]&lt;br /&gt;
*[[Application/session variables]]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Quiz development|Quiz module development]]&lt;br /&gt;
*[[Wiki development|Wiki module development]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Developer documentation]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_introduction&amp;diff=1826</id>
		<title>UTF-8 introduction</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_introduction&amp;diff=1826"/>
		<updated>2006-01-09T20:46:52Z</updated>

		<summary type="html">&lt;p&gt;Helen: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; [[UTF-8 justification]] &amp;gt; UTF-8 introduction&lt;br /&gt;
&lt;br /&gt;
==Characters, charsets and encodings==&lt;br /&gt;
&lt;br /&gt;
For historical reasons out of the scope of this text, people in the world use different languages to communicate. And every language uses its own group of characters (charset). Although some characters are shared between different languages, each one has its own, particular and unique graphemes or symbols (from simple diacritics and particular letters to completely different alphabets).&lt;br /&gt;
&lt;br /&gt;
All these differences between charsets have been in the past (remaining today!) a big headache in our technological world, where our electronic devices have to send and receive information in interaction with others (devices or persons).&lt;br /&gt;
&lt;br /&gt;
Along the years, a lot of initiatives (from governments, international organizations, private companies...) have been performed to solve this problem. Each one has developed their own way to represent characters electronically. Each group of pairs between the character representation (how it looks) and how it&#039;s stored internally by electronic devices is commonly called [http://en.wikipedia.org/wiki/Character_encoding character encoding].&lt;br /&gt;
&lt;br /&gt;
Some of these encodings are widely used today by computers and all sort of devices, including support for more that one language and has been adopted by the international community (for example, the [http://en.wikipedia.org/wiki/ISO/IEC_8859-1 ISO-8859-1] encoding, also called ISO-Latin1, is shared by a lot of latin based languages: English, French, Spanish... You can see a [http://en.wikipedia.org/wiki/Character_encoding good list here].&lt;br /&gt;
&lt;br /&gt;
But practically all these encodings lack some features:&lt;br /&gt;
&lt;br /&gt;
* They encode a &#039;&#039;&#039;limited&#039;&#039;&#039; range of characters: A lot of them use only one byte to store the representation of the character. While this is good in terms of space used, it restricts the number of characters that can be encoded (only 256 theoretical different values).&lt;br /&gt;
&lt;br /&gt;
* They are &#039;&#039;&#039;not compatible&#039;&#039;&#039; at all between them: Different encodings use the same electronic representation to show different characters. This force applications trying to work with different encodings at the same time to perform a lot of conversions and checks to know what encoding is being used in every place.&lt;br /&gt;
&lt;br /&gt;
* They are &#039;&#039;&#039;exclusive&#039;&#039;&#039;: Although some of them support more than one language, their audience isn&#039;t universal but is really limited (well, some of them are used by millions of people, but that isn&#039;t enough!).&lt;br /&gt;
&lt;br /&gt;
* They are &#039;&#039;&#039;too many&#039;&#039;&#039;: If you have seen the list above and investigated a bit under some of the encodings, it&#039;s easy to see that there are more than one encoding for the same language (see the Windows-XXXX, being minor supersets of the ISO-XXXX encodings, or the different Japanese alternatives available...).&lt;br /&gt;
&lt;br /&gt;
Centering us in the computer world, all these problems are absolutely real, for either the final user or the developer perspective. All the components of any actual application (database, programming language, keyboard...) have different levels of acceptance (support) for each encoding.&lt;br /&gt;
&lt;br /&gt;
As you can see, this is a nightmare! And the solution seems to be, after a quick thought, really simple: Let&#039;s use one encoding big enough to represent any character in any language and use it everywhere! Easy!&lt;br /&gt;
&lt;br /&gt;
By using it, every piece of textual information (one book, one phrase...) will be stored in the computer, displayed, printed and transmitted following some common rules (the encoding itself) without the need to translate (re-encode) all that information continuously. Something like a worldwide Esperanto, but for electronic devices.&lt;br /&gt;
&lt;br /&gt;
Does it exist? Sure, it&#039;s [[UTF-8 unicode|Unicode]]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Introduction]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=416</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_documentation&amp;diff=416"/>
		<updated>2006-01-09T15:35:08Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* How you can contribute */ link edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== 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;
*[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;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=697</id>
		<title>Activity modules</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=697"/>
		<updated>2006-01-09T15:33:50Z</updated>

		<summary type="html">&lt;p&gt;Helen: category, formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Activity modules&#039;&#039;&#039; reside in the &#039;mod&#039; directory. Each module is in a separate subdirectory and consists of the following mandatory elements (plus extra scripts unique to each module):&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;mod.html&#039;&#039; - a form to set up or update an instance of this module&lt;br /&gt;
* &#039;&#039;version.php&#039;&#039; - defines some meta-info and provides upgrading code&lt;br /&gt;
* &#039;&#039;icon.gif&#039;&#039; - a 16x16 icon for the module&lt;br /&gt;
* &#039;&#039;db/&#039;&#039; - SQL dumps of all the required db tables and data (for each database type)&lt;br /&gt;
* &#039;&#039;index.php&#039;&#039; - a page to list all instances in a course&lt;br /&gt;
* &#039;&#039;view.php&#039;&#039; - a page to view a particular instance&lt;br /&gt;
* &#039;&#039;lib.php&#039;&#039; - any/all functions defined by the module should be in here. If the modulename if called widget, then the required functions include:&lt;br /&gt;
:* widget_add_instance() - code to add a new instance of widget&lt;br /&gt;
:* widget_update_instance() - code to update an existing instance&lt;br /&gt;
:* widget_delete_instance() - code to delete an instance&lt;br /&gt;
:* widget_user_outline() - given an instance, return a summary of a user&#039;s contribution&lt;br /&gt;
:* widget_user_complete() - given an instance, print details of a user&#039;s contribution&lt;br /&gt;
:* To avoid possible conflict, any module functions should be named starting with widget_ and any constants you define should start with WIDGET_&lt;br /&gt;
* Lastly, each module will have some language files that contain strings for that module.&lt;br /&gt;
&lt;br /&gt;
The easiest way to start a new activity module is to use the template in &#039;&#039;mod/newmodule_template.zip&#039;&#039;. Unzip it and follow the README inside.&lt;br /&gt;
&lt;br /&gt;
You may also like to browse the [http://moodle.org/course/view.php?id=5 Activity modules forum] on Using Moodle.&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=696</id>
		<title>Activity modules</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Activity_modules&amp;diff=696"/>
		<updated>2006-01-09T15:28:18Z</updated>

		<summary type="html">&lt;p&gt;Helen: LearningActivities moved to Activity modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are by far the most important modules, and reside in the &#039;mod&#039; directory. There are seven default modules: assignment, choice, forum, quiz, resource, and survey. Each module is in a separate subdirectory and consists of the following mandatory elements (plus extra scripts unique to each module):&lt;br /&gt;
&lt;br /&gt;
* mod.html: a form to set up or update an instance of this module&lt;br /&gt;
* version.php: defines some meta-info and provides upgrading code&lt;br /&gt;
* icon.gif: a 16x16 icon for the module&lt;br /&gt;
* db/: SQL dumps of all the required db tables and data (for each database type)&lt;br /&gt;
* index.php: a page to list all instances in a course&lt;br /&gt;
* view.php: a page to view a particular instance&lt;br /&gt;
* lib.php: any/all functions defined by the module should be in here. If the modulename if called widget, then the required functions include:&lt;br /&gt;
:* widget_add_instance() - code to add a new instance of widget&lt;br /&gt;
:* widget_update_instance() - code to update an existing instance&lt;br /&gt;
:* widget_delete_instance() - code to delete an instance&lt;br /&gt;
:* widget_user_outline() - given an instance, return a summary of a user&#039;s contribution&lt;br /&gt;
:* widget_user_complete() - given an instance, print details of a user&#039;s contribution&lt;br /&gt;
:* To avoid possible conflict, any module functions should be named starting with widget_ and any constants you define should start with WIDGET_&lt;br /&gt;
* Lastly, each module will have some language files that contain strings for that module. See below.&lt;br /&gt;
&lt;br /&gt;
The easiest way to start a new learning activity module is to use the template in mod/newmodule_template.zip. Unzip it and follow the README inside.&lt;br /&gt;
&lt;br /&gt;
You might also like to post first in the Activities modules forum on Using Moodle.&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=743</id>
		<title>Developer notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Developer_notes&amp;diff=743"/>
		<updated>2006-01-09T15:27:01Z</updated>

		<summary type="html">&lt;p&gt;Helen: see also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=85% align=center style=&amp;quot;background: #F8EABA; border: 1px solid #aaa; margin-bottom: 10px;&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; This area is for developers to work on various bits of code and documentation as necessary. Initial text has been taken from [http://moodle.org/course/view.php?id=5 Using Moodle] Developer Wiki.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==1.6 plans==&lt;br /&gt;
&lt;br /&gt;
*[[Forum development|Forum functional upgrade]]&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Other lang issues|Other language issues (non UTF related)]] &lt;br /&gt;
*[[Developer conference|Next developer conference]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Usability]]&lt;br /&gt;
*[[Interface guidelines]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Blogs and forums|Blogs, forums and the nature of discussion]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Filters schema]]&lt;br /&gt;
*[[Filterall support]]&lt;br /&gt;
*[[Application/session variables]]&lt;br /&gt;
*[[Unmerged files|1.4 and 1.5 un-merged files]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Quiz development|Quiz module development]]&lt;br /&gt;
*[[Wiki development|Wiki module development]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Developer documentation]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_problems&amp;diff=1934</id>
		<title>UTF-8 problems</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_problems&amp;diff=1934"/>
		<updated>2006-01-09T14:51:05Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Problems&lt;br /&gt;
&lt;br /&gt;
==Problems (and solutions!)==&lt;br /&gt;
&lt;br /&gt;
* Password field(s) can be encoded in anything, and it is encrypted using a one way md5 hash. This means that we can not reverse the md5, thus if a string was encoded in an arbitrary language, we can not do the proper DB migration for that. Possible solution: auto generate new password and send to all users?&lt;br /&gt;
* Exercise - password - md5&lt;br /&gt;
* Lesson, lesson_default - password - md5&lt;br /&gt;
* Workshop - password - md5&lt;br /&gt;
* Quiz module, the use of field &amp;quot;uniqueid&amp;quot; in attempts - uniqueid is used to link to quiz_states table which is in turn linked to many quiz tables. dev - linked using uniqueid? stable - linked using id?? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Problems]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_scripts&amp;diff=1876</id>
		<title>UTF-8 scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_scripts&amp;diff=1876"/>
		<updated>2006-01-09T14:45:41Z</updated>

		<summary type="html">&lt;p&gt;Helen: /* De-UTF8-ing for client side applications */ formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Recoding PHP scripts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page is under construction!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Only some preliminary ideas have been defined.&lt;br /&gt;
&lt;br /&gt;
==Recoding PHP scripts==&lt;br /&gt;
&lt;br /&gt;
Build one &amp;quot;check for 1.6 upgrade&amp;quot; utility under 1.5! (it should check for software present and lang packs used).&lt;br /&gt;
&lt;br /&gt;
datalib.php to support collations under MySQL&lt;br /&gt;
&lt;br /&gt;
textlib.class to handle all those utf-compliant functions&lt;br /&gt;
&lt;br /&gt;
XML import/export (scorm, ims, backup/restore, glossary, quizzes...)&lt;br /&gt;
&lt;br /&gt;
excel export&lt;br /&gt;
&lt;br /&gt;
htmlentities() ---&amp;gt; s() migration 1.5 and 1.6&lt;br /&gt;
&lt;br /&gt;
uses of substr, strlen, strpos, regexp (both posix and perl), htmlspecialchars and htmlentities.&lt;br /&gt;
&lt;br /&gt;
potentially filters...&lt;br /&gt;
&lt;br /&gt;
modify documentation to let users know how they MUST create their DB before installing Moodle.&lt;br /&gt;
&lt;br /&gt;
Modify creation scripts to use the UTF-8 encoding? Perhaps not necessary if DB has it defined as default? Test it.&lt;br /&gt;
&lt;br /&gt;
1) The wiki module - this is due to the use of htmlentities() without specifying the character set. DFWiki does not have any known problems apparently. Solved! 1.1) Pressing the edit button leads to a blank page, perhaps because double byte characters do nto work in the URL (see the source of the below)&lt;br /&gt;
http://www.contiento.com/moodle_utf8/mod/wiki/view.php?id=12&amp;amp;page=edit/このWikiは文字化けしますね。&lt;br /&gt;
&lt;br /&gt;
2) Japanese can&#039;t be used in paths/foldernames. This is not a Moodle problem but simply the limitations of the server I presume.&lt;br /&gt;
&lt;br /&gt;
3) I have not testsed GD and Japanese fonts but I guess that this may have problems as well.&lt;br /&gt;
&lt;br /&gt;
4) I have found what I think is a small bug. When I backed up and restored the course (choosing to add data to this course, and only restoring the quiz) I found that the quiz discription had added the remains of some html tags on at the beginning and end.&lt;br /&gt;
&lt;br /&gt;
5) Also the News feed of the Asahi Newspaper (asahi.com - Japan&#039;s most famous newspaper, perhaps) is garbling. The reason is the use of break_up_long_words(). The current fix&lt;br /&gt;
http://moodle.org/bugs/bug.php?op=show&amp;amp;bugid=2105&amp;amp;pos=1&lt;br /&gt;
will not work since all languages are now utf8 languages.&lt;br /&gt;
Over at the Japanese forums there are two suggestions&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=6831&amp;amp;parent=32225&lt;br /&gt;
One is to carefully calculate the position of inserted space so that it is inserted between multibyte characters. The final suggestion from Prof Nakayama is at&lt;br /&gt;
http://moodle.org/file.php/14/moddata/forum/164/32822/break_up_long_words.txt&lt;br /&gt;
However, this relies on the use of mbstring php extensions. Multibyte languages (using Kanji at least, but perhaps not Korean) can be wrapped onto the next line at any point, so if mbstring extensions are used, then, as prof Kariya suggests it is usually safe simply NOT to add any spaces into the string at all, so he recommends&lt;br /&gt;
if(extension_loaded(&#039;mbstring&#039;)) return $string;&lt;br /&gt;
SOLVED!&lt;br /&gt;
&lt;br /&gt;
6) The language list drop down menu does not display properly. I am not sure if it should, and I don&#039;t really care (since I normally limit my site to a few languages) but it looks like this&lt;br /&gt;
http://ds21.cc.yamaguchi-u.ac.jp/~econo/temp/languagemenu.jpg&lt;br /&gt;
&lt;br /&gt;
7) The Assingment module says that 0 Words have been submitted after a Japanese language submission, because there are no spaces in Japanese.&lt;br /&gt;
&lt;br /&gt;
==De-UTF8-ing for client side applications==&lt;br /&gt;
&lt;br /&gt;
One of the biggest problems which remains after the move to UTF-8 is that while UTF-8 is great on the web a lot of client side software in Japan and China is *NOT* UTF-8 compatible.&lt;br /&gt;
&lt;br /&gt;
The Japanese community&#039;s solution to this (provided originally by Mr. Kashiwagi, below) is:&lt;br /&gt;
1) At the inferface between Moodle and client side software (particularly email clients and spread sheet programs) Moodle checks to see if there is a /lib folder in the current language.&lt;br /&gt;
2) If a lang/xyx/lib folder is present, then the routines in that folder are used to convert the encoding to formats compatible with client side software. ( E.g. Even outlook expresses is not compatible with UTF8 in the subject line, and Excel can not deal with UTF8 either, so the lang/lib/ files contains code to covert the UTF8 to a client readable format. ) Contact with client side software occurs at the following points.&lt;br /&gt;
2.1) Email sent to Email clients&lt;br /&gt;
2.2) Grade Files export to Excel&lt;br /&gt;
2.3) Quizes and lessons imported from text editors&lt;br /&gt;
&lt;br /&gt;
3) If the lang/xyz/lib folder is not present, then UTF8 encoding is used to talk to the client software as normal.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
&lt;br /&gt;
Patches to allow Japanese Language Moodles that function without garbling have been prepared and are available at at the following sites.&lt;br /&gt;
&lt;br /&gt;
These patches are explained here&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=13558&lt;br /&gt;
&lt;br /&gt;
Mr. Kashiwagi&#039;s &amp;quot;Supertak&amp;quot; Patch (described in the thread above)&lt;br /&gt;
http://www.supertak.com/down/sample.htm&lt;br /&gt;
&lt;br /&gt;
Prof Kita&#039;s patches and rpms (based in part on Mr. Kashiwagi&#039;s)&lt;br /&gt;
http://t-kita.net/rpm/FC/moodle/&amp;lt;br/&amp;gt; A read me file in English describing the rpm&lt;br /&gt;
http://t-kita.net/rpm/moodle/README-rpm-en.txt&lt;br /&gt;
A patch describing all the things that need to be done&lt;br /&gt;
http://t-kita.net/rpm/FC/moodle/patches/moodle-t-kita.patch&lt;br /&gt;
Many, or even most end-users (including myself = Tim) are not sufficiently confident making extensive patches, so our Moodles have been garbling in important areas (email/excel).&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
1) Solved - tests in progress.&lt;br /&gt;
&lt;br /&gt;
5) Has been solved by the use of a new multi-byte character compatible break_up_long_words(). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Scripts]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_scripts&amp;diff=1875</id>
		<title>UTF-8 scripts</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_scripts&amp;diff=1875"/>
		<updated>2006-01-09T14:43:33Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Recoding PHP scripts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page is under construction!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Only some preliminary ideas have been defined.&lt;br /&gt;
&lt;br /&gt;
==Recoding PHP scripts==&lt;br /&gt;
&lt;br /&gt;
Build one &amp;quot;check for 1.6 upgrade&amp;quot; utility under 1.5! (it should check for software present and lang packs used).&lt;br /&gt;
&lt;br /&gt;
datalib.php to support collations under MySQL&lt;br /&gt;
&lt;br /&gt;
textlib.class to handle all those utf-compliant functions&lt;br /&gt;
&lt;br /&gt;
XML import/export (scorm, ims, backup/restore, glossary, quizzes...)&lt;br /&gt;
&lt;br /&gt;
excel export&lt;br /&gt;
&lt;br /&gt;
htmlentities() ---&amp;gt; s() migration 1.5 and 1.6&lt;br /&gt;
&lt;br /&gt;
uses of substr, strlen, strpos, regexp (both posix and perl), htmlspecialchars and htmlentities.&lt;br /&gt;
&lt;br /&gt;
potentially filters...&lt;br /&gt;
&lt;br /&gt;
modify documentation to let users know how they MUST create their DB before installing Moodle.&lt;br /&gt;
&lt;br /&gt;
Modify creation scripts to use the UTF-8 encoding? Perhaps not necessary if DB has it defined as default? Test it.&lt;br /&gt;
&lt;br /&gt;
1) The wiki module - this is due to the use of htmlentities() without specifying the character set. DFWiki does not have any known problems apparently. Solved! 1.1) Pressing the edit button leads to a blank page, perhaps because double byte characters do nto work in the URL (see the source of the below)&lt;br /&gt;
http://www.contiento.com/moodle_utf8/mod/wiki/view.php?id=12&amp;amp;page=edit/このWikiは文字化けしますね。&lt;br /&gt;
&lt;br /&gt;
2) Japanese can&#039;t be used in paths/foldernames. This is not a Moodle problem but simply the limitations of the server I presume.&lt;br /&gt;
&lt;br /&gt;
3) I have not testsed GD and Japanese fonts but I guess that this may have problems as well.&lt;br /&gt;
&lt;br /&gt;
4) I have found what I think is a small bug. When I backed up and restored the course (choosing to add data to this course, and only restoring the quiz) I found that the quiz discription had added the remains of some html tags on at the beginning and end.&lt;br /&gt;
&lt;br /&gt;
5) Also the News feed of the Asahi Newspaper (asahi.com - Japan&#039;s most famous newspaper, perhaps) is garbling. The reason is the use of break_up_long_words(). The current fix&lt;br /&gt;
http://moodle.org/bugs/bug.php?op=show&amp;amp;bugid=2105&amp;amp;pos=1&lt;br /&gt;
will not work since all languages are now utf8 languages.&lt;br /&gt;
Over at the Japanese forums there are two suggestions&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=6831&amp;amp;parent=32225&lt;br /&gt;
One is to carefully calculate the position of inserted space so that it is inserted between multibyte characters. The final suggestion from Prof Nakayama is at&lt;br /&gt;
http://moodle.org/file.php/14/moddata/forum/164/32822/break_up_long_words.txt&lt;br /&gt;
However, this relies on the use of mbstring php extensions. Multibyte languages (using Kanji at least, but perhaps not Korean) can be wrapped onto the next line at any point, so if mbstring extensions are used, then, as prof Kariya suggests it is usually safe simply NOT to add any spaces into the string at all, so he recommends&lt;br /&gt;
if(extension_loaded(&#039;mbstring&#039;)) return $string;&lt;br /&gt;
SOLVED!&lt;br /&gt;
&lt;br /&gt;
6) The language list drop down menu does not display properly. I am not sure if it should, and I don&#039;t really care (since I normally limit my site to a few languages) but it looks like this&lt;br /&gt;
http://ds21.cc.yamaguchi-u.ac.jp/~econo/temp/languagemenu.jpg&lt;br /&gt;
&lt;br /&gt;
7) The Assingment module says that 0 Words have been submitted after a Japanese language submission, because there are no spaces in Japanese.&lt;br /&gt;
&lt;br /&gt;
==De-UTF8-ing for client side applications==&lt;br /&gt;
&lt;br /&gt;
One of the biggest problems which remains after the move to UTF-8 is that while UTF-8 is great on the web a lot of client side software in Japan and China is *NOT* UTF-8 compatible.&lt;br /&gt;
&lt;br /&gt;
The Japanese community&#039;s solution to this (provided originally by Mr. Kashiwagi, below) is:&lt;br /&gt;
1) At the inferface between Moodle and client side software (particularly email clients and spread sheet programs) Moodle checks to see if there is a /lib folder in the current language.&lt;br /&gt;
2) If a lang/xyx/lib folder is present, then the routines in that folder are used to convert the encoding to formats compatible with client side software. ( E.g. Even outlook expresses is not compatible with UTF8 in the subject line, and Excel can not deal with UTF8 either, so the lang/lib/ files contains code to covert the UTF8 to a client readable format. ) Contact with client side software occurs at the following points.&lt;br /&gt;
2.1) Email sent to Email clients&lt;br /&gt;
2.2) Grade Files export to Excel&lt;br /&gt;
2.3) Quizes and lessons imported from text editors&lt;br /&gt;
&lt;br /&gt;
3) If the lang/xyz/lib folder is not present, then UTF8 encoding is used to talk to the client software as normal.&lt;br /&gt;
Patches To Allow Japanese Language Moodles that Function without Garbling have been prepared and are available at at the following sites&lt;br /&gt;
&lt;br /&gt;
These patches are explained here&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=13558&lt;br /&gt;
&lt;br /&gt;
Mr. Kashiwagi&#039;s &amp;quot;Supertak&amp;quot; Patch (described in the thread above)&lt;br /&gt;
http://www.supertak.com/down/sample.htm&lt;br /&gt;
&lt;br /&gt;
Prof Kita&#039;s patches and rpms (based in part on Mr. Kashiwagi&#039;s)&lt;br /&gt;
http://t-kita.net/rpm/FC/moodle/&amp;lt;br/&amp;gt; A read me file in English describing the rpm&lt;br /&gt;
http://t-kita.net/rpm/moodle/README-rpm-en.txt&lt;br /&gt;
A patch describing all the things that need to be done&lt;br /&gt;
http://t-kita.net/rpm/FC/moodle/patches/moodle-t-kita.patch&lt;br /&gt;
Many, or even most end-users (including myself = Tim) are not sufficiently confident making extensive patches, so our Moodles have been garbling in important areas (email/excel).&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
1) Solved - tests in progress.&lt;br /&gt;
&lt;br /&gt;
5) Has been solved by the use of a new multi-byte character compatible break_up_long_words(). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Scripts]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_DB&amp;diff=1869</id>
		<title>UTF-8 DB</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_DB&amp;diff=1869"/>
		<updated>2006-01-09T14:36:42Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Databse conversion&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This page is under construction!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Only some preliminary ideas have been defined. &lt;br /&gt;
&lt;br /&gt;
==Differences between MySQL and PostgreSQL==&lt;br /&gt;
&lt;br /&gt;
Required 4.1! Detect how dabase/tables/columns have been created (charset...)&lt;br /&gt;
How the set_names affect everything (from PHP to MySQL)&lt;br /&gt;
&lt;br /&gt;
A big XML file will map all the required information to make the upgrade for global tables (like course, user etc)&lt;br /&gt;
&lt;br /&gt;
Both modules and blocks will have their own XML file. (like those in /db *.sql)&lt;br /&gt;
e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;TABLE name=&amp;quot;lesson_answers&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;FIELDS&amp;gt;&lt;br /&gt;
        &amp;lt;FIELD name=&amp;quot;answer&amp;quot; method=&amp;quot;PLAIN_SQL_UPDATE&amp;quot; type&amp;quot;text&amp;quot; length=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
           SELECT l.course&lt;br /&gt;
           FROM {$CFG-&amp;gt;prefix}lesson l,&lt;br /&gt;
                {$CFG-&amp;gt;prefix}lesson_answers la&lt;br /&gt;
           WHERE l.id = la.lessonid&lt;br /&gt;
                 AND la.id = RECORDID&lt;br /&gt;
          &amp;lt;/SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
        &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
        &amp;lt;FIELD name=&amp;quot;response&amp;quot; method=&amp;quot;PLAIN_SQL_UPDATE&amp;quot; type&amp;quot;text&amp;quot; length=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
           SELECT l.course&lt;br /&gt;
           FROM {$CFG-&amp;gt;prefix}lesson l,&lt;br /&gt;
                {$CFG-&amp;gt;prefix}lesson_answers la&lt;br /&gt;
           WHERE l.id = la.lessonid&lt;br /&gt;
                 AND la.id = RECORDID&lt;br /&gt;
          &amp;lt;/SQL_DETECT_COURSE&amp;gt;&lt;br /&gt;
        &amp;lt;/FIELD&amp;gt;&lt;br /&gt;
      &amp;lt;/FIELDS&amp;gt;&lt;br /&gt;
    &amp;lt;/TABLE&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The XML file will specify how to locate the course and the user every field belongs to, because translation will be done from course-&amp;gt;lang or user-&amp;gt;lang or site-&amp;gt;lang to utf-8.&lt;br /&gt;
&lt;br /&gt;
Those XML files will be read by one processor. This processor will pre-check that there is XML info available for each table in the DB. The processor will annotate the exact point it is, allowing to resume on crash!&lt;br /&gt;
&lt;br /&gt;
It will be a two-stages process. 1st to convert all the texts, then to convert tables and column encodings (a possible alternative is to duplicate the entire DB with empty tables and then, move all contents to the new one) ?&lt;br /&gt;
&lt;br /&gt;
It&#039;s highly possible that we need to increase DB requirements to MySQL 4.1 (great for the future!). Other users should stick at 1.5.&lt;br /&gt;
&lt;br /&gt;
Collation support inside MySQL is great so we could specify different collations per lang and, dynamicaly sort query results differently.&lt;br /&gt;
&lt;br /&gt;
As postgresql is quite different, an alternate DB migration must be performed for it.&lt;br /&gt;
&lt;br /&gt;
Indexes could break under MySQL (because utf strings are 3x in size). Don&#039;t forget it!&lt;br /&gt;
&lt;br /&gt;
create it able to run under different methods:&lt;br /&gt;
- Under PHP application mode.&lt;br /&gt;
- Processing items in chunks, saving the latest performed table and record to be able of resume in the exact point of break.&lt;br /&gt;
- Able to be skipped for sites in only one encoding (making manual iconv to the database dump and importing again.&lt;br /&gt;
&lt;br /&gt;
two stages, the conversion and the altering schema.&lt;br /&gt;
&lt;br /&gt;
Check that the XML contains information for each $CFG-&amp;gt;prefix table.&lt;br /&gt;
&lt;br /&gt;
Try to convert table and column encoding following the XML too (reading metadata?)&lt;br /&gt;
&lt;br /&gt;
Indexes to long. It&#039;s going to be a problem, sure!!&lt;br /&gt;
&lt;br /&gt;
Modify all the DB creation scripts inside Moodle to specify encoding!!&lt;br /&gt;
&lt;br /&gt;
All the fields in a table at the same time, record by record.&lt;br /&gt;
&lt;br /&gt;
Deactivate the cron (creating a new $CFG-&amp;gt;stopcron variable) and check that the site in under single-user mode (maintenance mode enabled). &lt;br /&gt;
&lt;br /&gt;
tables needing XML left to do: 98 =(&lt;br /&gt;
&lt;br /&gt;
==List of tables and fields that need to be converted==&lt;br /&gt;
&lt;br /&gt;
(?) = in progress, not sure yet&lt;br /&gt;
(x) = quite sure =P&lt;br /&gt;
&lt;br /&gt;
Please let me know any table that I don&#039;t need to worry about.&lt;br /&gt;
&lt;br /&gt;
adodb_logsql (?)&lt;br /&gt;
&lt;br /&gt;
assignment (x)&lt;br /&gt;
- name, description&lt;br /&gt;
- course-&amp;gt;lang = select c.lang from course c left join assignment a on c.id = a.course where a.id = a.id&lt;br /&gt;
- user-&amp;gt;lang = - &lt;br /&gt;
&lt;br /&gt;
assignment_submissions (x)&lt;br /&gt;
- comment, data1, data2&lt;br /&gt;
- course-&amp;gt;lang = select c.lang from course c left join assignement a on c.id = a.course left join assignment_submissions as ass on a.id = ass.assignment where ass.id = ass.id&lt;br /&gt;
- user-&amp;gt;lang = select u.lang from user u left join assignment_submissions as ass on u.id = ass.userid where ass.id=ass.id&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
backup_config (?)&lt;br /&gt;
&lt;br /&gt;
backup_courses (x)&lt;br /&gt;
&lt;br /&gt;
backup_files (x)&lt;br /&gt;
&lt;br /&gt;
backup_ids (?)&lt;br /&gt;
&lt;br /&gt;
backup_log (?)&lt;br /&gt;
&lt;br /&gt;
block (x)&lt;br /&gt;
&lt;br /&gt;
block_instance (?)&lt;br /&gt;
-configdata (all empty?)&lt;br /&gt;
&lt;br /&gt;
block_pinned (?)&lt;br /&gt;
-configdata (?)&lt;br /&gt;
&lt;br /&gt;
block_rss_client (?)&lt;br /&gt;
-title, preferredtitle, description(?)&lt;br /&gt;
&lt;br /&gt;
cache_filters (?)&lt;br /&gt;
&lt;br /&gt;
cache_text (?)&lt;br /&gt;
&lt;br /&gt;
chat (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
chat_messages (x)&lt;br /&gt;
-message&lt;br /&gt;
&lt;br /&gt;
chat_users (x)&lt;br /&gt;
&lt;br /&gt;
choice (x)&lt;br /&gt;
-name, text&lt;br /&gt;
&lt;br /&gt;
choice_answers (x)&lt;br /&gt;
&lt;br /&gt;
choice_options (x)&lt;br /&gt;
-text&lt;br /&gt;
&lt;br /&gt;
config (x)&lt;br /&gt;
-value see hokudai page 2 in db, chars embedded in tags&lt;br /&gt;
&lt;br /&gt;
config_plugins (?)&lt;br /&gt;
&lt;br /&gt;
course (x)&lt;br /&gt;
password(raw string, see koniv database), fullname, shortname, idnumber, summary, teacher, teachers, student, students&lt;br /&gt;
&lt;br /&gt;
course_allowed_modules (x)&lt;br /&gt;
&lt;br /&gt;
course_categories (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
course_display (x)&lt;br /&gt;
&lt;br /&gt;
course_meta (x)&lt;br /&gt;
&lt;br /&gt;
course_modules (x)&lt;br /&gt;
&lt;br /&gt;
course_request (?)&lt;br /&gt;
&lt;br /&gt;
course_sections (x)&lt;br /&gt;
-summary&lt;br /&gt;
&lt;br /&gt;
data (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
data_comments (x)&lt;br /&gt;
&lt;br /&gt;
data_content (x)&lt;br /&gt;
-conent(composite)&lt;br /&gt;
&lt;br /&gt;
data_fields (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
data_ratings (x)&lt;br /&gt;
&lt;br /&gt;
data_records (x)&lt;br /&gt;
&lt;br /&gt;
dialogue (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
dialogue_conversations (x)&lt;br /&gt;
-subject&lt;br /&gt;
&lt;br /&gt;
dialogue_entries (x)&lt;br /&gt;
-text;&lt;br /&gt;
&lt;br /&gt;
downloads (?)&lt;br /&gt;
&lt;br /&gt;
enrol_authorize (?)&lt;br /&gt;
&lt;br /&gt;
enrol_paypal (?)&lt;br /&gt;
&lt;br /&gt;
event (x)&lt;br /&gt;
-name(composite!), description&lt;br /&gt;
&lt;br /&gt;
exercise (x)&lt;br /&gt;
-name, md5(password?)&lt;br /&gt;
&lt;br /&gt;
exercise_assessments (x)&lt;br /&gt;
-generalcomment, teachercomment&lt;br /&gt;
&lt;br /&gt;
exercise_elements (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
exercise_grades (x)&lt;br /&gt;
-feedback&lt;br /&gt;
&lt;br /&gt;
exercise_rubrics (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
exercise_submissions (x)&lt;br /&gt;
-title&lt;br /&gt;
&lt;br /&gt;
forum (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
forum_discussions (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
forum_posts (x)&lt;br /&gt;
-subject, message, attachment (stripeed &amp;amp;#, no need to convert?)&lt;br /&gt;
&lt;br /&gt;
forum_queue (x)&lt;br /&gt;
&lt;br /&gt;
forum_ratings (x)&lt;br /&gt;
&lt;br /&gt;
forum_read (x)&lt;br /&gt;
&lt;br /&gt;
forum_subscriptions (x)&lt;br /&gt;
&lt;br /&gt;
forum_track_prefs (x)&lt;br /&gt;
&lt;br /&gt;
glossary (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
glossary_alias (x)&lt;br /&gt;
-alias&lt;br /&gt;
&lt;br /&gt;
glossary_categories (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
glossary_comments (x)&lt;br /&gt;
-comment&lt;br /&gt;
&lt;br /&gt;
glossary_entries (x)&lt;br /&gt;
-concept, definition&lt;br /&gt;
&lt;br /&gt;
glossary_entries_categories (x)&lt;br /&gt;
&lt;br /&gt;
glossary_formats (x)&lt;br /&gt;
&lt;br /&gt;
glossary_ratings (x)&lt;br /&gt;
&lt;br /&gt;
grade_category (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
grade_exceptions (x)&lt;br /&gt;
&lt;br /&gt;
grade_item (x)&lt;br /&gt;
&lt;br /&gt;
grade_letter (x)&lt;br /&gt;
-letter&lt;br /&gt;
&lt;br /&gt;
grade_preferences (x)&lt;br /&gt;
&lt;br /&gt;
groups&lt;br /&gt;
-name, description, password(stripped), theme(?)&lt;br /&gt;
&lt;br /&gt;
groups_members (x)&lt;br /&gt;
&lt;br /&gt;
hotpot(x)&lt;br /&gt;
-name, summary&lt;br /&gt;
&lt;br /&gt;
hotpot_attempts (x)&lt;br /&gt;
&lt;br /&gt;
hotpot_details (x)&lt;br /&gt;
-details&lt;br /&gt;
&lt;br /&gt;
hotpot_questions (x)&lt;br /&gt;
-name&lt;br /&gt;
&lt;br /&gt;
hotpot_responses (?)&lt;br /&gt;
&lt;br /&gt;
hotpot_strings (x)&lt;br /&gt;
-string&lt;br /&gt;
&lt;br /&gt;
journal (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
journal_entries (x)&lt;br /&gt;
-comment, text&lt;br /&gt;
&lt;br /&gt;
label (x)&lt;br /&gt;
name, content (with html)&lt;br /&gt;
&lt;br /&gt;
lams (???)&lt;br /&gt;
&lt;br /&gt;
lesson (x)&lt;br /&gt;
-name, password is (md5(NCR))?&lt;br /&gt;
&lt;br /&gt;
lesson_answers (x)&lt;br /&gt;
-answer, response&lt;br /&gt;
&lt;br /&gt;
lesson_attempts (?)&lt;br /&gt;
-useranswer(?)&lt;br /&gt;
&lt;br /&gt;
lesson_branch (x)&lt;br /&gt;
&lt;br /&gt;
lesson_default (x)&lt;br /&gt;
-password(md5(NCR))?&lt;br /&gt;
&lt;br /&gt;
lesson_grades (x)&lt;br /&gt;
&lt;br /&gt;
lesson_high_scores&lt;br /&gt;
&lt;br /&gt;
lesson_pages (x)&lt;br /&gt;
-title, content&lt;br /&gt;
&lt;br /&gt;
lesson_timer (x)&lt;br /&gt;
&lt;br /&gt;
log (x)&lt;br /&gt;
-info (hokai as well)&lt;br /&gt;
&lt;br /&gt;
log_display (x)&lt;br /&gt;
&lt;br /&gt;
message (x)&lt;br /&gt;
-message (not NCR!)&lt;br /&gt;
&lt;br /&gt;
message_contacts (x)&lt;br /&gt;
&lt;br /&gt;
message_read (x)&lt;br /&gt;
-message (not NCR!)&lt;br /&gt;
&lt;br /&gt;
modules (x)&lt;br /&gt;
&lt;br /&gt;
quiz (x)&lt;br /&gt;
-name, intro, password(md5)?&lt;br /&gt;
&lt;br /&gt;
quiz_answers (x)&lt;br /&gt;
-answer, feedback&lt;br /&gt;
&lt;br /&gt;
quiz_attemptonlast_datasets (x)&lt;br /&gt;
&lt;br /&gt;
quiz_attempts (x)&lt;br /&gt;
&lt;br /&gt;
quiz_calculated (x)&lt;br /&gt;
&lt;br /&gt;
quiz_categories (x)&lt;br /&gt;
-name, info&lt;br /&gt;
&lt;br /&gt;
quiz_dataset_definitions (?)&lt;br /&gt;
&lt;br /&gt;
quiz_dataset_items (?)&lt;br /&gt;
&lt;br /&gt;
quiz_essay (x)&lt;br /&gt;
&lt;br /&gt;
quiz_essay_states (??)&lt;br /&gt;
&lt;br /&gt;
quiz_grades (x)&lt;br /&gt;
&lt;br /&gt;
quiz_match (x)&lt;br /&gt;
&lt;br /&gt;
quiz_match_sub (x)&lt;br /&gt;
-questiontext, answertext&lt;br /&gt;
&lt;br /&gt;
quiz_multianswers (x)&lt;br /&gt;
&lt;br /&gt;
quiz_multichoice (x)&lt;br /&gt;
&lt;br /&gt;
quiz_newest_states (x)&lt;br /&gt;
&lt;br /&gt;
quiz_numerical (x)&lt;br /&gt;
&lt;br /&gt;
quiz_numerical_units (x)&lt;br /&gt;
-unit&lt;br /&gt;
&lt;br /&gt;
quiz_question_datasets (x)&lt;br /&gt;
&lt;br /&gt;
quiz_question_instances (x)&lt;br /&gt;
&lt;br /&gt;
quiz_question_versions (x)&lt;br /&gt;
&lt;br /&gt;
quiz_questions (x)&lt;br /&gt;
-name, questiontext&lt;br /&gt;
&lt;br /&gt;
quiz_randomsamatch (x)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_servers (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_states (?)&lt;br /&gt;
&lt;br /&gt;
quiz_rqp_types (?)&lt;br /&gt;
&lt;br /&gt;
quiz_shortanswer (x)&lt;br /&gt;
&lt;br /&gt;
quiz_states (x)&lt;br /&gt;
answer - composite!&lt;br /&gt;
&lt;br /&gt;
quiz_truefalse (x)&lt;br /&gt;
&lt;br /&gt;
registry (x)&lt;br /&gt;
-sitename, adminname&lt;br /&gt;
&lt;br /&gt;
registry_votes (?)&lt;br /&gt;
&lt;br /&gt;
resource (x)&lt;br /&gt;
-name, summary, alltext&lt;br /&gt;
&lt;br /&gt;
scale (x)&lt;br /&gt;
-name, description, scale&lt;br /&gt;
&lt;br /&gt;
scorm (?)&lt;br /&gt;
-name, summary&lt;br /&gt;
&lt;br /&gt;
scorm_scoes (?)&lt;br /&gt;
&lt;br /&gt;
scorm_scoes_track (?)&lt;br /&gt;
&lt;br /&gt;
sessions (?)&lt;br /&gt;
&lt;br /&gt;
stats_daily (x)&lt;br /&gt;
&lt;br /&gt;
stats_monthly (x)&lt;br /&gt;
&lt;br /&gt;
stats_user_daily (?)&lt;br /&gt;
-stattype&lt;br /&gt;
&lt;br /&gt;
stats_user_monthly (x)&lt;br /&gt;
&lt;br /&gt;
stats_user_weekly (x)&lt;br /&gt;
&lt;br /&gt;
stats_weekly(x)&lt;br /&gt;
&lt;br /&gt;
survey (x)&lt;br /&gt;
-name, intro&lt;br /&gt;
&lt;br /&gt;
survey_analysis (x)&lt;br /&gt;
-notes&lt;br /&gt;
&lt;br /&gt;
survey_answers (?)&lt;br /&gt;
-answerone, answertwo??&lt;br /&gt;
&lt;br /&gt;
survey_questions (?)&lt;br /&gt;
&lt;br /&gt;
timezone(x)&lt;br /&gt;
&lt;br /&gt;
user (x)&lt;br /&gt;
-firstname, lastname, department, institution, address, city, description, secret(?)&lt;br /&gt;
&lt;br /&gt;
user_admins (x)&lt;br /&gt;
&lt;br /&gt;
user_coursecreators (x)&lt;br /&gt;
&lt;br /&gt;
user_preferences (x)&lt;br /&gt;
&lt;br /&gt;
user_students (x)&lt;br /&gt;
&lt;br /&gt;
user_teachers (x)&lt;br /&gt;
&lt;br /&gt;
wiki (x)&lt;br /&gt;
-name, summary, pagename, initialcontent&lt;br /&gt;
&lt;br /&gt;
wiki_entries (x)&lt;br /&gt;
-pagename&lt;br /&gt;
&lt;br /&gt;
wiki_pages (x)&lt;br /&gt;
-pagename, content, author, ref&lt;br /&gt;
&lt;br /&gt;
workshop (x)&lt;br /&gt;
-name, description&lt;br /&gt;
&lt;br /&gt;
workshop_assessments (x)&lt;br /&gt;
-generalcomment, teachercomment&lt;br /&gt;
&lt;br /&gt;
workshop_comments (x)&lt;br /&gt;
-comments&lt;br /&gt;
&lt;br /&gt;
workshop_elements (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
workshop_grades (x)&lt;br /&gt;
-feedback&lt;br /&gt;
&lt;br /&gt;
workshop_rubrics (x)&lt;br /&gt;
-description&lt;br /&gt;
&lt;br /&gt;
workshop_stockcomments (x)&lt;br /&gt;
-comments&lt;br /&gt;
&lt;br /&gt;
workshop_submissions (x)&lt;br /&gt;
-title&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Database]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_lang_files&amp;diff=1861</id>
		<title>UTF-8 lang files</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_lang_files&amp;diff=1861"/>
		<updated>2006-01-09T13:47:42Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Moving language files&lt;br /&gt;
&lt;br /&gt;
==Moving Language files==&lt;br /&gt;
&lt;br /&gt;
Some preliminary premises:&lt;br /&gt;
&lt;br /&gt;
# Moodle will run both under Unicode DBs and without them.&lt;br /&gt;
# Unicode transition will be recommended intensively a well explained documentation about the DB conversion will be available. But won&#039;t be mandatory.&lt;br /&gt;
# Old lang packs will be located where they are now ([http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/lang/ cvs_moodle/moodle/lang]), although they will be out from the distros.&lt;br /&gt;
# New lang packs will be located under [http://cvs.sourceforge.net/viewcvs.py/moodle/lang/ cvs_moodle/lang].&lt;br /&gt;
# Lang packs (old and new) could run both from &amp;lt;code&amp;gt;$dirroot-&amp;gt;lang&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$moodledata-&amp;gt;lang&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==The plan==&lt;br /&gt;
&lt;br /&gt;
# 1.6 lang packs will be easily recognized by having one langconfig.php file where all those problematic strings will reside (thischarset, parentlang...). For now, we&#039;ll maintain it in moodle.php, until all the 1.6 code was modified. This langconfig.php file won&#039;t be editable from the lang interface to avoid some common errors in the past. It will be created by Koen when the lang pack is committed initially to CVS.&lt;br /&gt;
# One new global variable (CFG-&amp;gt;unicodedb) will be created ONLY once the DB migration was performed. Some parts of Moodle (backup/restore, mail...) will work slightly different depending upon this flag.&lt;br /&gt;
# Sites with CFG-&amp;gt;unicodedb not set, only will be able to use 1.5 lang packs.&lt;br /&gt;
# Sites with CFG-&amp;gt;unicodedb set, only will be able to use 1.6 lang packs.&lt;br /&gt;
# The &amp;quot;old&amp;quot; CFG-&amp;gt;unicode setting only will affect sites with CFG-&amp;gt;unicodedb not set. By having both this two variables we&#039;ll be able to detect 1.5 sites with unicode contents (easier to migrate). The old $CFG-&amp;gt;unicode variable is currently used to a few things, but basically to set the Content-Type header to UTF-8 (force). Also it&#039;s used to perform some specific UTF-8 string manipulation, if I&#039;m not wrong (I cannot remember where it&#039;s). But I think it&#039;s better to have a new variable to save the migration status and, definitively, to decide a bunch of things:&lt;br /&gt;
#* With $CFG-&amp;gt;unicodedb set:&lt;br /&gt;
#** Only 1.6 lang packs will be allowed.&lt;br /&gt;
#** HTTP headers will be UTF-8.&lt;br /&gt;
#** Specialized UTF8 functions (library/textlib.php) will be used here and there.&lt;br /&gt;
#* Without it:&lt;br /&gt;
#** Only 1.5 lang packs will be allowed.&lt;br /&gt;
#** Everything will work as it was before 1.6 (relaying in the old $CFG-&amp;gt;unicode).&lt;br /&gt;
# All the new 1.6 created sites ONLY will be created under Unicode. We&#039;ll check if it fits all the conditions before proceed with installation (DB version, encoding..).&lt;br /&gt;
# Translators will have two alternatives:&lt;br /&gt;
#* Maintain the old lang packs and relay in the automatic process to have their 1.6 lang packs updated.&lt;br /&gt;
#* Maintain both lang packs manually.&lt;br /&gt;
#* Only maintain 1.6 language pack. The old (1.5) language pack doesn&#039;t change anymore!&lt;br /&gt;
# The lang edition interface will show to the translator one popup to switch between old and new lang packs. Obviously it&#039;s his responsibility to send everything properly to the correct lang directory.&lt;br /&gt;
# ONLY the new en_utf8 lang pack (and the old en) will be included in the distro.&lt;br /&gt;
# We&#039;ll maintain the new lang pack names as &amp;quot;xx_utf8&amp;quot; to avoid problems to translators but strip such suffix from the lang menu to make it transparent for the rest of users. If finally we decide to hide the pack name under 1.6, the &amp;quot;thislanguage&amp;quot; string should be a bit more self-explanatory.&lt;br /&gt;
# All the langconfig.php and install.php files will be included under install/lang/xx for distro, although they will reside under cvs_moodle/lang really. With this, translators will be able to work with the install.php file normally. Only we have to add it to the install dir when building Moodle packages. People installing from CVS will be forced to English (because they haven&#039;t the necessary install/lang/xx/php files. People upgrading won&#039;t have this problem because they aren&#039;t going to install and it&#039;s highly possible that they had other lang packs installed and running in the server. This lang files are ONLY used by the initial installer.&lt;br /&gt;
# A new method to download and install ONLY 1.6 lang packs must be available soon (is available in head now). I think we can start to package them in some days without publicity until the download method was stable. This download feature will be available ONLY after installation, but not before it. At install time, only the install/lang/xx/php will be available (and needed). Else, English (see point k). The download should support both install, uninstall and check for update. That download/install lang packs feature should be ONLY available for 1.6 lang packs. Main points are here:&lt;br /&gt;
#* They will be in a separate dir at download.moodle.org (/lang16). It&#039;s easy to create one sh script to do the work.&lt;br /&gt;
#* Apart from the lang packs (one zip file for each one) we&#039;ll maintain a text file with some info inside it (languages.md5):&lt;br /&gt;
#** Package name (en_utf8...)&lt;br /&gt;
#** Lang national name (&amp;quot;thislangname&amp;quot; string).&lt;br /&gt;
#** MD5 of the zip file.&lt;br /&gt;
#** Last mofification date of the package.&lt;br /&gt;
#* So, the download utility will get that file and check it against the latest downloaded one (that will be stored in one xx_utf8.md5 file). It will show the changes and allow to download the changed packages.&lt;br /&gt;
#* Downloaded packages will be unzipped and their new md5 file will be created.&lt;br /&gt;
#* People without file(URL) access (why not to use Snoopy?) will download, copy and expand such packages under moodledata/lang manually. Obviously one new page at downloads.moodle.org should be available for them. There, they will be able to check the latest modification date for each lang pack to decide if they need to download it.&lt;br /&gt;
#* The automatic download and install feature only will check and work for $CFG-&amp;gt;dataroot/lang 1.6 lang packs, and only when the new CFG-&amp;gt;unicodedb was set.&lt;br /&gt;
&lt;br /&gt;
Go to the next document: [[UTF-8 DB|Converting the database]]&lt;br /&gt;
&lt;br /&gt;
==Known changes to implement==&lt;br /&gt;
&lt;br /&gt;
Changes to support 100% the moodledata/lang dir (only 1.6!).&lt;br /&gt;
&lt;br /&gt;
SESSION-&amp;gt;lang lang menu other places&lt;br /&gt;
&lt;br /&gt;
Language editing: New directory only under 1.6 (forced!). Old directory 1.5 only.&lt;br /&gt;
&lt;br /&gt;
Download of lang packs directly to moodledata/lang&lt;br /&gt;
&lt;br /&gt;
Automatic generation of install.php lang files.&lt;br /&gt;
&lt;br /&gt;
Where are we going to store all that stuff and how is Moodle distribution going to handle it?&lt;br /&gt;
&lt;br /&gt;
All hardcoded ocurrences of &amp;quot;/en/&amp;quot; should be checked and transformed depending of CFG-&amp;gt;unicodedb&lt;br /&gt;
&lt;br /&gt;
One link explaining the &amp;quot;vendors branches&amp;quot; thing (it&#039;s being used to automatically create the 1.6 lang packs): http://efault.net/npat/docs_and_postings/cvs-tracking/cvs-tracking.txt&lt;br /&gt;
&lt;br /&gt;
Discuss in [http://moodle.org/mod/forum/view.php?f=26 Languages forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8|Language files]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_info_gathering&amp;diff=1858</id>
		<title>UTF-8 info gathering</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_info_gathering&amp;diff=1858"/>
		<updated>2006-01-09T13:29:54Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; Gathering information&lt;br /&gt;
&lt;br /&gt;
==Gathering detailed information==&lt;br /&gt;
&lt;br /&gt;
To have a comprehensive set of how the UTF-8 migration is going to work under different server configurations (OS / PHP / DB / encoding...) one small test has been developed to be able to gather information from any Moodle server worldwide. Receiving this anticipated feedback from real Moodle servers we&#039;ll be able to solve reported problems from the initial stages of development, instead of having all this feedback too much later.&lt;br /&gt;
&lt;br /&gt;
The test package, called, &amp;quot;testutf&amp;quot;, is self-contained and both its installation and use are near trivial. Just, download it from ????? and unzip it under the main directory where Moodle is installed in your server. Once installed, logged as admin, you will see a new option (both in the Admin block and in the Admin Page): UTF-Test.&lt;br /&gt;
&lt;br /&gt;
The test is easy to perform, and it gathers a lot of information about the environment it&#039;s being executed (OS, web server, PHP, Database...). It will request the admin to select his natural language, to perform one string translation manually, and to answer to some yes/no questions about how the test is working in his computer. Also, it&#039;s possible to fill comments along all the test with any type of meaningful information that the admin considers important.&lt;br /&gt;
&lt;br /&gt;
At the end of the test, the admin will be prompted to send the information gathered about his system, with all the answers and comments performed, to Moodle HQ. If the HTTP transmission fails, always it&#039;ll be possible to send the results (one small zip file) to a special email account (utf8 AT moodle DOT org).&lt;br /&gt;
&lt;br /&gt;
Once received at Moodle HQ, those results will be used to detect potential problems with the new text library of Moodle that is the core where all the UTF stuff is going to be programmed. We&#039;ll be able to test different server configurations where the test has run under problems, helping us to find the causes and to solve them.&lt;br /&gt;
&lt;br /&gt;
These test results can be executed and sent as many times as the admin wants although it&#039;s highly recommended to submit new results only if there is some important change in the server that affect how the test run. Please, don&#039;t send the same test repeatedly if they don&#039;t include new useful information.&lt;br /&gt;
&lt;br /&gt;
Of course, admins are completely free to use the test to check their own strings but we need to prevent them to send all those info to Moodle HQ. Forums should be used instead for punctual problems with certain strings/characters. Only the &amp;quot;catapult&amp;quot; phrase must be sent to Moodle HQ.&lt;br /&gt;
&lt;br /&gt;
So, please, help us executing the test in your Moodle server. The information provided will be very important to make the transition to UTF-8 better and to improve how Moodle will work after it. TIA!&lt;br /&gt;
&lt;br /&gt;
(You can get the test code from [http://cvs.sourceforge.net/viewcvs.py/moodle/contrib/testutf/ cvs:contrib/testutf]. It&#039;s OpenSource too!) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Other_lang_issues&amp;diff=1855</id>
		<title>Other lang issues</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Other_lang_issues&amp;diff=1855"/>
		<updated>2006-01-09T13:24:54Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Other language support issues (non-UTF-8 related)==&lt;br /&gt;
&lt;br /&gt;
;Problem:&lt;br /&gt;
: Paging for languages (e.g in list of users, page by first name or last name), is nearly impossible for foreign languages such as Japanese.&lt;br /&gt;
&lt;br /&gt;
;Proposal:&lt;br /&gt;
: To support the paging of foreign languages, we propose to use additional field(s) in the database. For example, a user can have a first name initial and a last name initial, and every glossary will have an initial depending on the name of the glossary entry. A function, in lang/xx.php will be needed to do this paging. When a new entry is created, e.g. a new user is added, the additional fields, such as first name initial and last name initial is precalculated prior to inserting the entry into the database. Apparently a mapping is required to do the paging calculation, for every language.&lt;br /&gt;
&lt;br /&gt;
Idea/patch from chinese forum (Chinese language only):&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=37090&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=23666&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=23887&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UFT-8_initial_steps&amp;diff=1843</id>
		<title>UFT-8 initial steps</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UFT-8_initial_steps&amp;diff=1843"/>
		<updated>2006-01-09T12:20:53Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; [[UTF-8 justification]] &amp;gt; Initial steps&lt;br /&gt;
&lt;br /&gt;
==Initial steps==&lt;br /&gt;
&lt;br /&gt;
Stabilising min requirements for Moodle 1.6&lt;br /&gt;
&lt;br /&gt;
Since Moodle 1.0 release, the LAMP environment has evolved continuously. Both PHP and MySQL are now better products (more functionalities, safer, following standards, faster...) than some years ago. Current Moodle 1.5 works with any PHP (&amp;gt;=4.1.x) and MySQL (&amp;gt;=3.23.x) version released in the last 5 years.&lt;br /&gt;
&lt;br /&gt;
Although this has been considered a feature up to now (Moodle running in near every LAMP environment), since some time ago the reality is telling (shouting!) us that it&#039;s time to change such min requirements:&lt;br /&gt;
&lt;br /&gt;
* PHP has evolved positively, with extended support to so many features (better OOP, unicode support, speed...). In the real world near every host is running, at least, PHP 4.3.x (released in December 2002!), so it shouldn&#039;t be crazy to stabilise PHP 4.3 as a minimum requirement. Read more about PHP details below.&lt;br /&gt;
&lt;br /&gt;
* MySQL, currently in version 5.x, raised a lot of interesting changes in the 4.1.2 release (boolean queries, sub-queries, caching of results, unicode support...). Today, to support pre 4.1 versions force us to build a lot of workarounds inside Moodle code, making things more difficult to maintain, adding a lot of alternative pieces of code based upon the DB being used. The target MySQL version (MySQL 4.1.2) was released on May 2004 and it has been adopted near everywhere.&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL...&lt;br /&gt;
&lt;br /&gt;
==PHP details==&lt;br /&gt;
&lt;br /&gt;
A good list of mandatory/recomended configuration options for the webserver and PHP is defined in the Installation Documentation. Also, in order to make things easier under Moodle 1.6 due to the transition to UTF-8, there are some libraries that are highly recommended and, depending of the langs being used, mandatory. This libraries (PHP extensions) are:&lt;br /&gt;
&lt;br /&gt;
* iconv&lt;br /&gt;
* mbstring&lt;br /&gt;
* recode&lt;br /&gt;
&lt;br /&gt;
Although there are a lot of languages whose conversion to UTF-8 don&#039;t require them (you will learn more about this below), those extensions will be automatically detected by Moodle and used if present, so having them installed and enabled is absolutely recommended (and mandatory to upgrade some sites, don&#039;t forget it!). In the next topic you&#039;ll find why these extensions are so important and when they are a must.&lt;br /&gt;
&lt;br /&gt;
==Creating a common text library to be used everywhere==&lt;br /&gt;
&lt;br /&gt;
libraries-&amp;gt;Typo3 wrapper (for conversion, handle...) mbstring and iconv highly recommended current table of langs&lt;br /&gt;
&lt;br /&gt;
==To do==&lt;br /&gt;
&lt;br /&gt;
Build one pre-check script under 1.5 to verify if the site is upgradeable (analysing langs being used, PHP, MySQL...). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_migration&amp;diff=1812</id>
		<title>UTF-8 migration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_migration&amp;diff=1812"/>
		<updated>2006-01-09T12:17:34Z</updated>

		<summary type="html">&lt;p&gt;Helen: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The goal for this pages is to have a real roadmap for the migration of Moodle to UTF-8. This includes both language packages and DB contents. Every step in the roadmap must be documented to explain all the alternatives and potential problems we find and their solutions.&lt;br /&gt;
&lt;br /&gt;
Note: This page is under construction. Just a mix of text and ideas have been annotated for now!&lt;br /&gt;
&lt;br /&gt;
==Moodle migration to UTF-8 - General roadmap and detailed implementation plan==&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 justification|Justification and preliminary work]] - Why we must start the migration to an UTF-8 environment and how we are going to organise the whole thing.&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 info gathering|Gathering detailed information]] - How we can obtain detailed information form moodlers around the world and how to use it.&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 lang files|Moving language files]] - How to do the work with current lang files, new structures and strings, downloads...&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 DB|Converting the DB]] - The long process of converting all the structures and contents inside Moodle DB to UTF-8.&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 scripts|Recoding PHP scripts]] - Functionalities and scripts to modify in order to work under UTF-8.&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 problems|Problems]] - Outline big problems during db migration, and possible solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_solution&amp;diff=1839</id>
		<title>UTF-8 solution</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_solution&amp;diff=1839"/>
		<updated>2006-01-09T12:16:21Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; [[UTF-8 justification]] &amp;gt; The solution&lt;br /&gt;
&lt;br /&gt;
==The solution==&lt;br /&gt;
&lt;br /&gt;
Once explained all the problems with the schema used until now and viewing the benefits (immediate and future) of the migration to UTF-8, in this page we are going to organise a bit the whole process of the conversion. Every required step will be defined briefly (you will be able to know more about each one in next chapters). Here it&#039;s:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Documenting and discussing plans&#039;&#039;&#039;: All the stuff you have read up to now and the rest of this Wiki page, plus active discussions in the [http://moodle.org/mod/forum/view.php?id=55 Developer forum] will be the sources to understand the whole process. Aren&#039;t them enough?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[UTF-8 info gathering|Gathering detailed information from the community]]&#039;&#039;&#039;: To have a real perception of how the UTF utilities are going to work under different configurations, one simple test has been created. By running it against as many Moodle servers as possible we will be able to detect potential problems before release.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stabilising min requirements for Moodle 1.6&#039;&#039;&#039;: With the information gathered in the previous step and based in the LAMP platform evolution current Moodle requirements have to change. Not only the UTF-8 migration but everything will be benefited with the use of new versions of LAMP. Details are available in the next page.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Creating a common text library to be used everywhere&#039;&#039;&#039;: A lot of PHP functions are not UTF-8 safe and we must provide Moodle with their UTF-8 compliant alternatives. All these specialised functions will grouped in a new library to maintain it easier. More information in the next page.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[UTF-8 lang files|Moving language files]]&#039;&#039;&#039;: Every language pack needs to be converted to UTF-8 plus other adjustments to run smoothly under Moodle 1.6. To maintain everything working and trying to make things easier to translators (isolating them from technical and complex CVS operations) there is a plan. Just read it and, if you want, discuss it too in the [http://moodle.org/mod/forum/view.php?f=26 Languages forum].&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 DB|DB migration]]: All the contents stored at Database level must be converted, from their original charset to UTF-8. This conversion can be performed following different paths, depending of the type of site (mono or multilang), its original charset and the DB backend (MySQL or PostgreSQL).&lt;br /&gt;
&lt;br /&gt;
* [[UTF-8 scripts|Recoding PHP scripts]]: Moodle code itself needs to be modified to use new string manipulation functions and to work properly under an UTF-8 environment. A list of changes and their level of implementation. The [http://moodle.org/mod/forum/view.php?id=55 Developer forum] is, once again, a good place to discuss all this stuff.&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s see the [[UFT-8 initial steps|initial steps]] of the process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=UTF-8_current&amp;diff=1834</id>
		<title>UTF-8 current</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=UTF-8_current&amp;diff=1834"/>
		<updated>2006-01-09T12:09:14Z</updated>

		<summary type="html">&lt;p&gt;Helen: developer wiki transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[UTF-8 migration]] &amp;gt; [[UTF-8 justification]] &amp;gt; Current situation&lt;br /&gt;
&lt;br /&gt;
==Current situation==&lt;br /&gt;
&lt;br /&gt;
Up to series 1.5.x Moodle has been able to run under a lot of different languages. Each of them is provided in the form of a &amp;quot;Language Pack&amp;quot; where all the strings and help files are translated properly.&lt;br /&gt;
&lt;br /&gt;
Each of this languages has the ability to define the character encoding that is going to be used when any page is sent to the browser. Furthermore such encoding is used when the user submits any form info back to Moodle. Finally, such info in manipulated by Moodle and sent to the database backend.&lt;br /&gt;
&lt;br /&gt;
As languages can be determined and/or forced by Moodle at user level, course level and site level, the application knows, at any time, the encoding it has to stamp in the web page sent to the browser.&lt;br /&gt;
&lt;br /&gt;
Although this schema is working relatively fine since some time ago, some important limitations are currently present and they need to be solved:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Multilingual Sites&#039;&#039;&#039; (or, more properly, multiencoding sites): As we have seen above, each web page have one - only one! - character encoding. As traditional encodings were &amp;quot;exclusive&amp;quot; because they didn&#039;t support all the characters in the world, it&#039;s absolutely impossible to mix contents from different encodings unless we use one universal encoding. UTF-8 for example.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PHP&#039;s Difficulties&#039;&#039;&#039;: PHP has offered, in the past, a good support for different encodings, specially for those that are using only one byte per character. Support for multibyte encodings was less than perfect and some commonly used functions don&#039;t work against those encodings. Trying to add support for all the currently used encodings could be really difficult because each one has its own characteristics. So, once more, we need to go to only one multibyte encoding. UTF-8 can be it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Lack of Collation&#039;&#039;&#039;: One important characteristic of every language are they collation rules. Basically such rules define how to sort alphabetically different strings. And those rules go from the simplest ASCII ordering to complex norms where uppercase letters are different than lowercase (in terms of graphemes or sorting) or a collection of characters have a specific place when they are together. All these strategies must be supported from Database and recent versions of both MySQL and PostgreSQL have some powerful features around this. More yet, the UTF-8 encoding defines some universal collations that can de used by default everywhere and we have the possibility to be more precise at DB level using some specialized collations too.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Exchange of Information&#039;&#039;&#039;: Moodle has a lot of features related to this. From loading users and enrolments, the import and export of glossaries, pools of questions... to the backup and restore of courses functionality, a lot of files are loaded and saved when working with Moodle. Generating all those files under different encodings can be really hard to maintain and, worse, will break compatibility between files generated under exclusive encodings. Again, we need to homogenize how all those files are handled. The solution, UTF-8, yep!&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Adoption of Standards&#039;&#039;&#039;: With the arrive of a plethora of new standards (XHTML, Scorm, IMS Content Package, IMS Learning Design, SOAP, XML-RPC...) a new way to work is becoming more and more important every day: [http://en.wikipedia.org/wiki/XML XML] files. All the modern specifications about storing and sending information use this markup language internally. And, although other are supported, one encoding is the king of this documents. Do you guess which one? Of course, UTF-8, once more.&lt;br /&gt;
&lt;br /&gt;
All these problem have been more obvious for people using encodings different from the ISO-8859-1 that is shared by a lot of Latin-based languages (English, French, Spanish, German, Italian...), mainly because both the web technology used (browsers), the programming environment (PHP) and the database backend (MySQL, PostgreSQL...) had a very limited support for the rest of encodings.&lt;br /&gt;
&lt;br /&gt;
But nowadays, things have changed a lot. From browsers supporting different encodings to both PHP (with alternatives like [http://uk2.php.net/mbstring mbstring] or [http://uk.php.net/iconv iconv]) and Database improvements, make it practicable to tackle the problems above with high possibilities of success.&lt;br /&gt;
&lt;br /&gt;
And, here, the proposed [[UTF-8 solution|solution]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>Helen</name></author>
	</entry>
</feed>