<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>https://docs.moodle.org/2x/ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Poltawski</id>
	<title>MoodleDocs - Contribucions de l&amp;#039;usuari [ca]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/2x/ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Poltawski"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/Especial:Contribucions/Poltawski"/>
	<updated>2026-05-25T15:30:18Z</updated>
	<subtitle>Contribucions de l&amp;#039;usuari</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Category_enrolments&amp;diff=102694</id>
		<title>Discussió:Category enrolments</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Category_enrolments&amp;diff=102694"/>
		<updated>2013-01-09T06:06:33Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Created page with &amp;quot;I desperately tried to make this page more understandable because having just tried to use this plugin I was perplexed by how to use it. I&amp;#039;m afraid I couldn&amp;#039;t think of a way of s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I desperately tried to make this page more understandable because having just tried to use this plugin I was perplexed by how to use it. I&#039;m afraid I couldn&#039;t think of a way of succinctly explaining it. I do know how this plugin works now though, so if anyone would like to know how it works (and improve the documentation) please feel free to ask me. --[[User:Dan Poltawski|Dan Poltawski]] 14:06, 9 January 2013 (WST)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Category_enrolments&amp;diff=102693</id>
		<title>Category enrolments</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Category_enrolments&amp;diff=102693"/>
		<updated>2013-01-09T06:04:11Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
&lt;br /&gt;
The category enrolments plugin allows users to be enrolled in a category as opposed to individual courses. The plugin has to be enabled by the site administrator (see [[Enrolment plugins]]). The category enrolment plugin will synchronise any role assignments at category context with &#039;enrol/category:synchronised&#039; permission set to allow.&lt;br /&gt;
&lt;br /&gt;
Note: It is recommended that [[Cohort sync]] is used in preference to category enrolments.  There are performance issues with category enrolments.  See http://tracker.moodle.org/browse/MDL-23840.&lt;br /&gt;
&lt;br /&gt;
==Settings for category enrolment==&lt;br /&gt;
&lt;br /&gt;
*Go to the category into which you wish to enrol users. &#039;&#039;&#039;Note:&#039;&#039;&#039; You need to have category rights (manager or administrator)&lt;br /&gt;
&lt;br /&gt;
*In the &#039;&#039;Settings&#039;&#039; box,click &#039;&#039;Assign roles&#039;&#039;. The list of possible roles you can assign will appear:&lt;br /&gt;
[[File:Categoryassign.png]]&lt;br /&gt;
&lt;br /&gt;
== Admin settings for category enrolment==&lt;br /&gt;
&lt;br /&gt;
The category enrolment plugin may be enabled or disabled throughout the site in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Enrolments&amp;gt; Manage enrol plugins.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Assigning teachers or students to a category===&lt;br /&gt;
&lt;br /&gt;
*By default, only managers and course creators can be assigned category-wide. If you want to add teachers or students then the site administrator needs to tick the &amp;quot;category&amp;quot; box in their role in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define roles&#039;&#039;.&lt;br /&gt;
*To ensure they will be automatically assigned as teachers/students in any new courses you make, the administrator needs to set to &amp;quot;allow&amp;quot; the capability  &#039;&#039;enrol/category:synchronised&#039;&#039; for the role in question in &#039;&#039;Settings &amp;gt; Site Administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define roles&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Enrolcategorysync.png]]&lt;br /&gt;
&lt;br /&gt;
[[ja:カテゴリ登録]]&lt;br /&gt;
[[de:Kursbereichseinschreibung]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=error/moodle/invalidrecord&amp;diff=102447</id>
		<title>error/moodle/invalidrecord</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=error/moodle/invalidrecord&amp;diff=102447"/>
		<updated>2012-12-14T07:52:38Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This error was probably caused by a record not existing in the database&lt;br /&gt;
&lt;br /&gt;
[[Category:Error|Invalidrecord]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Caching&amp;diff=102376</id>
		<title>Caching</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Caching&amp;diff=102376"/>
		<updated>2012-12-13T04:34:27Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Very basic overview of the cache settings. This is not great. I&amp;#039;ve filled MDL-37145 to improve this further.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}{{New features}}&lt;br /&gt;
&lt;br /&gt;
A cache is a collection of processed data that is kept on hand and re-used in order to avoid costly repeated database queries.&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 saw the implementation of MUC, the Moodle Universal Cache.   This new system allows certain functions of Moodle (eg string fetching) take advantage of different installed cache services (eg files, ram, memcached).&lt;br /&gt;
&lt;br /&gt;
In future versions of Moodle we will continue expanding the number of Moodle functions that use MUC, which will continue improving performance, but you can already start using it to improve your site.&lt;br /&gt;
&lt;br /&gt;
==General approach to performance testing==&lt;br /&gt;
&lt;br /&gt;
Here is the general strategy you should be taking:&lt;br /&gt;
&lt;br /&gt;
# Build a test environment that is as close to your real production instance as possible (eg hardware, software, networking, etc)&lt;br /&gt;
# Make sure to remove as many uncontrolled variables as you can from this environment (eg other services)&lt;br /&gt;
# Use a tool to place a realistic, but simulated and repeatable load upon you server. (eg jmeter or selenium).&lt;br /&gt;
# Decide on a way to measure performance of the server by capturing data (ram, load, time taken, etc)&lt;br /&gt;
# Run your load and measure a baseline performance result.&lt;br /&gt;
# Change one variable at a time, and re-run the load to see if performance gets better or worse.  Repeat as necessary.&lt;br /&gt;
# When you discover settings that result in a consistent performance improvement, apply to your production site.&lt;br /&gt;
&lt;br /&gt;
==How to use the caching settings==&lt;br /&gt;
&lt;br /&gt;
Since Moodle 2.4, Moodle has provided a caching plugin framework to give administrators the ability to control where Moodle stores cached data. For most Moodle sites the default configuration should be sufficient and it is not necessary to change the configuration. For larger Moodle sites with multiple servers, administrators may wish to use memcached, mongodb or other systems to store cache data. The cache plugin screen provides administrators with the ability to configure what cache data is stored where. &lt;br /&gt;
&lt;br /&gt;
=== Types of cache ===&lt;br /&gt;
&lt;br /&gt;
Moodle uses three types of cache to store cached data:&lt;br /&gt;
* Request cache - The request cache is available for the duration of every page request. It is not shared between users and is used and cleared on every Moodle request.&lt;br /&gt;
* Session cache - The session cache is available through a users session in Moodle.  It is not shared between users, but persists for a single user throughout their session (i.e. from when they logon til when they log off)&lt;br /&gt;
* Application cache - The application cache is a shared cache which is available for every request. It can be shared between users and the cached data can be kept indefinitely if required.&lt;br /&gt;
&lt;br /&gt;
===Installed cache stores===&lt;br /&gt;
&lt;br /&gt;
This section of the administrator screen displays cache plugins which are installed on the system. It lists what the capabilities of each plugin, what type of cache they provide and provides allows a cache store to be added to the system.&lt;br /&gt;
&lt;br /&gt;
===Configured store instances===&lt;br /&gt;
 &lt;br /&gt;
This section of the administrator screen displays cache stores which have been added to the system. It gives the ability to change the cache configuration and purge the cached data.&lt;br /&gt;
&lt;br /&gt;
===Known cache definitions===&lt;br /&gt;
&lt;br /&gt;
Known cache definitions displays the caches which are in use by Moodle. Each item is an area of Moodle which is using caching. It gives the administrator the ability to configure an individual area of Moodle to use a different cache backend. For example, an administrator of a Moodle cluster may choose to make language string definitions be cached on a dedicated memcached server by using the memcached cache backend.&lt;br /&gt;
&lt;br /&gt;
==Stores used when no mapping is present==&lt;br /&gt;
&lt;br /&gt;
This section displays the default cache stores which should be used by Moodle for each type of Moodle cache. If a mapping for a cache definition does not exist then this default store will be used instead.&lt;br /&gt;
&lt;br /&gt;
==Other performance testing==&lt;br /&gt;
&lt;br /&gt;
Two links that might be useful to anyone considering testing performance on their own servers:&lt;br /&gt;
&lt;br /&gt;
* [http://www.iteachwithmoodle.com/2012/10/12/moodle-performance-testing-how-much-more-horsepower-do-each-new-versions-of-moodle-require/ Moodle performance testing: how much more horsepower do each new versions of Moodle require?]&lt;br /&gt;
* [http://www.iteachwithmoodle.com/2012/10/11/how-to-stress-test-your-moodle-server-using-loadstorm/ How to load test your Moodle server using Loadstorm]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* Using Moodle [https://moodle.org/mod/forum/discuss.php?d=217195 MUC is here, now what?] forum discussion&lt;br /&gt;
&lt;br /&gt;
Developer documentation:&lt;br /&gt;
* [[:dev:The Moodle Universal Cache (MUC)]]&lt;br /&gt;
* [[:dev:Cache API]]&lt;br /&gt;
* [[:dev:Cache API - Quick reference]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[de:Caching]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=SSL_certificate_for_moodle.org&amp;diff=102313</id>
		<title>SSL certificate for moodle.org</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=SSL_certificate_for_moodle.org&amp;diff=102313"/>
		<updated>2012-12-04T15:24:28Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: added rhel note, as I think the package name is the same&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
Your site may communicate with moodle.org sites - for example when it [[Notifications|checks for available updates]] or when it [[Automatic updates deployment|installs an update]]. This communication is done via the secure HTTPS protocol. Your site validates the SSL certificate of the moodle.org site (such as the [https://moodle.org/plugins Moodle plugins directory]) and verifies its identity. To pass this verification, there must be a certificate (in the PEM format) of the [http://en.wikipedia.org/wiki/Certificate_authority certificate authority (CA)] that issued the certificate for moodle.org installed at your server. &lt;br /&gt;
&lt;br /&gt;
The SSL certificate of moodle.org sites has been issued by the [https://www.digicert.com/digicert-root-certificates.htm DigiCert CA] and signed by their &#039;&#039;DigiCert High Assurance EV Root CA&#039;&#039; certificate.&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
If this CA certificate is missing, the remote site (moodle.org) can not be verified and your Moodle refuses to fetch the data (to protect you against so called man-in-the-middle attack). The exact location of that certificate at your server depends on the OS type and other settings. At Linux servers it may be typically found at &#039;&#039;/usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt&#039;&#039; for example.&lt;br /&gt;
&lt;br /&gt;
Missing CA certificate causes error when checking for available updates and attempting to install them.&lt;br /&gt;
&lt;br /&gt;
== Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== Update your operating system (recommended) ===&lt;br /&gt;
&lt;br /&gt;
The recommended way to fix this problem is to update your server&#039;s operating system so that it contains recent SSL certificates of common certificate authorities. At Debian and RedHat based  distributions, these certificates are distributed in the &#039;&#039;ca-certificates&#039;&#039; package.  Gentoo servers provide them via the &#039;&#039;app-misc/ca-certificates&#039;&#039; ebuild. It&#039;s also a good idea to make sure that the OpenSSL libraries (libssl) and cURL libraries (libcurl) are up-to-date at your server.&lt;br /&gt;
&lt;br /&gt;
=== Provide the CA certificate manually ===&lt;br /&gt;
&lt;br /&gt;
If updating the operating system is not an option for you and the administrator of the server refuses to update the CA certificates at the server (there&#039;s not a good argument for that though), here is a workaround for you. You can download the [https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt DigiCert High Assurance EV Root CA] certificate from [https://www.digicert.com/digicert-root-certificates.htm digicert.com] and put it into your &#039;&#039;moodledata/moodleorgca.crt&#039;&#039; file. If the certificate is found there, Moodle will use it instead of relying on the one provided by the operating system.&lt;br /&gt;
&lt;br /&gt;
It must be highlighted that you really should get the CA certificate to your server&#039;s operating system as described above. The solution based on moodleorgca.crt should be considered as a temporary only.&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Forum_discussion_subscription_plugin&amp;diff=100332</id>
		<title>Forum discussion subscription plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Forum_discussion_subscription_plugin&amp;diff=100332"/>
		<updated>2012-09-04T01:20:58Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: remove duplicate link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
Local plugin for allowing email subscription to discussions (threads) and not the whole forum.&lt;br /&gt;
&lt;br /&gt;
Discussion subscription can works together with full forum subscription, but the user will receive the same emails two times.&lt;br /&gt;
&lt;br /&gt;
Discussion subscription supports also diggest if the user has enabled this option in his profile.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
As a teacher, in the forum activity go to the settings block and click on &amp;quot;Discussion subscriptions&amp;quot; -&amp;gt; &amp;quot;Enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once enabled, the users will be able to click on the &amp;quot;Subscribe to this discussion&amp;quot; in a discussion page.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Juan Leyva &amp;lt;http://twitter.com/#!/jleyvadelgado&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://moodle.org/user/profile.php?id=49568&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
http://moodle.org/plugins/view.php?plugin=local_dsubscription&lt;br /&gt;
&lt;br /&gt;
https://github.com/jleyva/moodle-local_dsubscription&lt;br /&gt;
&lt;br /&gt;
[[Category: Contributed code]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99668</id>
		<title>Database transfer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99668"/>
		<updated>2012-07-31T07:25:16Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Managing a Moodle site}}&lt;br /&gt;
The database transfer tool in Moodle 2.3.2 onwards enables an administrator to migrate their Moodle site from one database to another, for example from MySQL to Postgres. &lt;br /&gt;
&lt;br /&gt;
The tool is currently classed as an experimental feature and may be found in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Development &amp;gt; Experimental &amp;gt; Database migration&#039;&#039;. There is also a command line script in &#039;admin/tool/dbtransfer/cli/migrate.php&#039;.&lt;br /&gt;
&lt;br /&gt;
The dbtransfer tool uses the XMLDB schema definitions  from Moodle and installed plugins to retrieve the data from one database and transfer it another. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* MDL-34441 finish dbtransfer tool implementation&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=207413 Moving Moodle from Oracle to PostgreSQL (dbtransfer tool)]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=206759 Where did dbtransfer.php go?]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99667</id>
		<title>Database transfer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99667"/>
		<updated>2012-07-31T07:25:05Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: added some additional basic details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Managing a Moodle site}}&lt;br /&gt;
The database transfer tool in Moodle 2.3.2 onwards enables an administrator to migrate their Moodle site from one database to another, for example from MySQL to Postgres. &lt;br /&gt;
&lt;br /&gt;
The tool is currently classed as an experimental feature and may be found in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Development &amp;gt; Experimental &amp;gt; Database migration&#039;&#039;. There is also a command line script in &#039;admin/tool/dbtransfer/cli/migrate.php&#039;.&lt;br /&gt;
&lt;br /&gt;
The dbtransfer tool uses the XMLDB schema definitions  from Moodle and installed plugins to retrieve the data from one database and transfer it another. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* MDL-34441 finish dbtransfer tool implementation&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=207413 Moving Moodle from Oracle to PostgreSQL (dbtransfer tool)]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=206759 Where did dbtransfer.php go?]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=207413 Moving Moodle from Oracle to PostgreSQL (dbtransfer tool)]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99666</id>
		<title>Database transfer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Database_transfer&amp;diff=99666"/>
		<updated>2012-07-31T07:18:48Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: i&amp;#039;ve removed the new feature in 2.3 flag, because its been there since 2.0, in various states.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Managing a Moodle site}}&lt;br /&gt;
The database transfer tool in Moodle 2.3.2 onwards enables an administrator to migrate their Moodle site from one database to another, for example from MySQL to Postgres. &lt;br /&gt;
&lt;br /&gt;
The tool is currently classed as an experimental feature and may be found in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Development &amp;gt; Experimental &amp;gt; Database migration&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* MDL-34441 finish dbtransfer tool implementation&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=207413 Moving Moodle from Oracle to PostgreSQL (dbtransfer tool)]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=206759 Where did dbtransfer.php go?]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Skydrive_repository&amp;diff=98933</id>
		<title>Skydrive repository</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Skydrive_repository&amp;diff=98933"/>
		<updated>2012-06-28T16:10:08Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Created page with &amp;quot;The Microsoft Skydrive repository allows  you to access your documents from Microsoft Skydrive within Moodle.  ==Installation== You must register your Moodle with Microsoft in or...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Microsoft Skydrive repository allows  you to access your documents from Microsoft Skydrive within Moodle.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
You must register your Moodle with Microsoft in order to allow Moodle to communicate with Microsoft. You must register your application via the following steps:&lt;br /&gt;
&lt;br /&gt;
# Visit the Microsoft developer centre: [https://manage.dev.live.com/Applications/Index https://manage.dev.live.com/Applications/Index]&lt;br /&gt;
# Choose ‘Create an Application’ and Fill out the form with a name for your Moodle.&lt;br /&gt;
# Submit the form by clicking ‘I Accept’&lt;br /&gt;
# On the next page you must visit the link  ‘Application Settings Page’.&lt;br /&gt;
# You will be shown the basic settings page, Click ‘API Setttings’ on the left.&lt;br /&gt;
# You will be shown ‘client ID’ and ‘client secret’, these need to be stored in Moodle.&lt;br /&gt;
# Important: As part of the registration process, you will need to enter the url from the skydrive settings page in the &#039;redirect domain&#039; section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Dan_Poltawski&amp;diff=98932</id>
		<title>Usuari:Dan Poltawski</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Dan_Poltawski&amp;diff=98932"/>
		<updated>2012-06-28T14:29:49Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please see my [http://moodle.org/user/view.php?id=104159&amp;amp;course=5 Moodle.org Profile] as I don&#039;t keep this one up to date.. (only just keep the other one up date :))&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Upload_users&amp;diff=98609</id>
		<title>Upload users</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Upload_users&amp;diff=98609"/>
		<updated>2012-06-20T03:07:13Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: remove AJAX and Javascript MDL-32908&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Accounts}}&lt;br /&gt;
An administrator can upload multiple user accounts via text file in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Users &amp;gt; Accounts &amp;gt; Upload users&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
There are many robust options for uploading information (fields associated with a user) with this method: from enrolling users in multiple courses with course specific [[Roles|roles]] to updating user information in the [[User profile]] to deleting users from the site.&lt;br /&gt;
&lt;br /&gt;
{{New features}}Rather than uploading the text file, it can simply dragged from the desktop and dropped into the upload area, as demonstrated in the screencast [http://youtu.be/6E-TQXTkZB0 Drag and drop new users into Moodle 2.3] (by Mary Cooch).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip:&#039;&#039; It is usually not necessary to upload users in bulk with Upload users.  To keep maintenance work down you should first explore forms of authentication that do not require manual maintenance, such as [[External database authentication|connecting to existing external databases]] or letting the users create their own accounts ([[Self enrolment]]). See [[Authentication]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload users initial 2.0.JPG|thumb|center|Initial upload users screen 2.1]]&lt;br /&gt;
&lt;br /&gt;
==Upload user process==&lt;br /&gt;
Here is an outline of the process:&lt;br /&gt;
&lt;br /&gt;
# Create file for uploading&lt;br /&gt;
# Go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Users &amp;gt; Accounts &amp;gt; Upload users&#039;&#039;&lt;br /&gt;
# Add file to upload&lt;br /&gt;
# Upload users preview - check settings and default user profile settings&lt;br /&gt;
# Upload users preview - click &amp;quot;Upload users&amp;quot;&lt;br /&gt;
# Upload users results - shows list of users, exceptions made in upload and summary of number of users&lt;br /&gt;
# Upload users results - click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# Returns to Upload users screen&lt;br /&gt;
&lt;br /&gt;
==Updating users preview==&lt;br /&gt;
There are settings for the kind of Upload user function you want to perform on the &amp;quot;Upload users preview&amp;quot; page.&lt;br /&gt;
[[File:Upload users preview 2.0.JPG|thumb|center|Upload users preview in Moodle 2.x]]&lt;br /&gt;
&lt;br /&gt;
===Updating existing accounts===&lt;br /&gt;
&lt;br /&gt;
By default Moodle adds new user accounts and skips existing users lines where the &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; matches an existing account. Set &amp;quot;Upload Type&amp;quot; to &#039;&#039;&#039;Add  new and update existing users&#039;&#039;&#039;, and existing user account will be updated.&lt;br /&gt;
*Add all, append number to usernames if needed&lt;br /&gt;
*Add new and update existing users&lt;br /&gt;
*Update existing users only&lt;br /&gt;
There are also fields settings to force password change, allow renames, allow deletes, prevent email address duplicates, standardise usernames and select for bulk operations(new users. updated users, all users).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: errors updating existing accounts can affect your users badly. Be careful when using the options to update.&lt;br /&gt;
&lt;br /&gt;
===Set default user values===&lt;br /&gt;
&lt;br /&gt;
You may be able to set default user field values, if the fields were not included in the uploaded file on this page.&lt;br /&gt;
&lt;br /&gt;
==Upload user results ==&lt;br /&gt;
After accepting the preview settings by clicking on &amp;quot;Upload users&amp;quot;, you should see the the Upload users results screen.&lt;br /&gt;
[[File:Upload users results 2.0.JPG|thumb|center|The 2.0 results screen, everything went well]]&lt;br /&gt;
This screen will show you any exceptions or changes that were made to each user in the upload process.   For example if you were updating user information, the updated information will be shown.  Or if a user was not added that record will be highlighted.&lt;br /&gt;
&lt;br /&gt;
The screen will summarize how many users were uploaded or updated, indicate the number of weak passwords and the number of errors.&lt;br /&gt;
&lt;br /&gt;
==File formats for upload users file==&lt;br /&gt;
The upload files have their fields separated by a comma (or other delimiter).   The first line contains the valid field names.  The rest of the lines (records) contain information about each user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;:Tip:&#039;&#039; If you are not an expert, avoid special characters in field information like quotes or other commas. Test a file with only one record before a large upload. Remember there are other ways to authenticate users on you site or enroll users in a course.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;:Tip:&#039;&#039; You can use a spread sheet program to create the file with the required columns and fields. Then save the file as &amp;quot;CSV (comma delimited)&amp;quot;. These files can be opened with simple text editors for verification. &lt;br /&gt;
&lt;br /&gt;
===Valid upload file for testing===&lt;br /&gt;
Here is an example of a simple valid upload file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username, password, firstname, lastname, email, course1, group1, cohort1&amp;lt;br /&amp;gt;&lt;br /&gt;
jonest, verysecret, Tom, Jones, jonest@someplace.edu, math102, Section 1, year 3&amp;lt;br /&amp;gt;&lt;br /&gt;
reznort, somesecret, Trent, Reznor, reznort@someplace.edu, math102, Section 3, year 4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fields that can be included===&lt;br /&gt;
&#039;&#039;:Tip:&#039;&#039; We strongly recommend that you test a file that contains fields you proposed to use with one user before attempting a file upload for the first time.  demo.moodle.net might be a good place to see if your test file works.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Required fields&#039;&#039;&#039;: &lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;username, firstname, lastname, email&amp;lt;/code&amp;gt;&lt;br /&gt;
:Validity checks are performed for:&lt;br /&gt;
#&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; can only contain alphabetical &#039;&#039;&#039;lowercase&#039;&#039;&#039; letters , numbers, hypen &#039;-&#039;, underscore &#039;_&#039;, period &#039;.&#039;, or at-sign &#039;@&#039; &lt;br /&gt;
#&amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; is in the form: &#039;&#039;name@example.com&#039;&#039; .&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Password field&#039;&#039;&#039;: &amp;quot;password&amp;quot; field is optional if &amp;quot;Create password if needed&amp;quot; setting is chosen (default). &lt;br /&gt;
**If included, values should meet the requirements for the site&#039;s [[Site_policies#Password_policy|Password policy]]. To force password change for a particular user, set the password field to &amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;. &lt;br /&gt;
**If omitted, a password will be generated for each user (during the next Cron job) and welcome e-mails sent out (not working in v2.0.2?).&lt;br /&gt;
**Note: the text for the welcome e-mail is in the language settings.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Optional fields&#039;&#039;&#039;: To provide values other than the default include one or more of these&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;institution, department, city, country, lang, auth, timezone, idnumber, icq, phone1, phone2, address, url, description, mailformat, maildisplay, htmleditor, autosubscribe&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
*Country- use a country TWO LETTER CODE&lt;br /&gt;
*Some fields have a maximum number of characters that are allowed (notably institution should be &#039;&#039;&#039;at most 40 characters&#039;&#039;&#039; long).  See hints below.&lt;br /&gt;
*Maildisplay, htmleditor and autosubscribe can be set from an import screen in Moodle 2.0.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Custom profile field names&#039;&#039;&#039;: (Optional). xxxxx is the real custom user profile field name (i.e. the unique shortname)&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;profile_field_xxxxx&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
: Create the custom fields BEFORE importing. Use the standard header. The &amp;quot;shortname&amp;quot; for your custom field is xxxxx (NB: as at v2.0.2, the shortname must be all lowercase, otherwise won&#039;t be recognised). The first record must include &amp;quot;profile_field_xxxxx&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;&#039;Example&#039;&#039;&#039;: To create a custom field &amp;quot;genre&amp;quot;, you must write a shortname &amp;quot;genre&amp;quot; in the new field, and write &amp;quot;profile_field_genre&amp;quot; in the header of the .csv file.&lt;br /&gt;
&lt;br /&gt;
: For custom profile fields that are a menu, use the corresponding menu number (index).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Example&#039;&#039;&#039;: if your custom field is department and there are three choices - HR, Marketing,Training- then HR would be 0, Marketing would be 1, and Training would be 2. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Special fields&#039;&#039;&#039;: Used for changing of usernames or deleting of users&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;oldusername&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;deleted&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;Enrolment fields&#039;&#039;&#039;: (Optional):&lt;br /&gt;
:&amp;lt;code&amp;gt;course1, type1, role1, group1, enrolperiod1, course2, type2, role2, group2, enrolperiod2&amp;lt;/code&amp;gt; etc.&lt;br /&gt;
&lt;br /&gt;
:*&amp;lt;code&amp;gt;course&amp;lt;/code&amp;gt; is the &amp;quot;shortname&amp;quot; of the course, if present the user will be enrolled in those courses.&lt;br /&gt;
:* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; refers to the role to be used for associated course enrolment. Value 1 is default course role, 2 is legacy Teacher role and 3 is legacy Non-editing Teacher.&lt;br /&gt;
:* You can use role field instead to specify roles directly - use either role short name or id (numeric names of roles are not supported).&lt;br /&gt;
:* Users may be also assigned to groups in course (group1 in course1, group2 in course2, etc.).&lt;br /&gt;
:* A group is identified by name or id (numeric group names are not supported)&lt;br /&gt;
:* You can set the enrolment duration, in days, for each course (&amp;lt;code&amp;gt;enrolperiod1&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;course1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enrolperiod2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;course2&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Cohort field&#039;&#039;&#039;: (Optional):&lt;br /&gt;
:&amp;lt;code&amp;gt;cohort1&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:Cohort ids (not names) of existing cohorts must be used&lt;br /&gt;
&lt;br /&gt;
Commas within  a field must be encoded as &amp;amp;#44 - the script will decode these back to commas.&lt;br /&gt;
&lt;br /&gt;
For Boolean fields, use &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; for false and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for true.&lt;br /&gt;
&lt;br /&gt;
To prevent users from receiving a large number of emails from courses or forced subscription forums use the &#039;&#039;&#039;maildigest&#039;&#039;&#039;.  The options for this field are 0 = No digest, 1 = Complete digest and 2 = Digest with just subjects.&lt;br /&gt;
&lt;br /&gt;
==Advanced potentials of Upload user==&lt;br /&gt;
===Templates===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: This section needs checking and updating if necessary for Moodle 2.0. Please do so and remove this note when finished.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The default values are processed as templates in which the following codes are allowed:&lt;br /&gt;
&lt;br /&gt;
* %l - will be replaced by the lastname&lt;br /&gt;
* %f - will be replaced by the firstname&lt;br /&gt;
* %u - will be replaced by the username&lt;br /&gt;
* %% - will be replaced by the %&lt;br /&gt;
&lt;br /&gt;
Between the percent sign (%) and any code letter (l, f or u) the following modifiers are allowed:&lt;br /&gt;
&lt;br /&gt;
* (-) minus sign - the information specified by the code letter will be converted to lowercase&lt;br /&gt;
* (+) plus sign - the information specified by the code letter will be converted to UPPERCASE&lt;br /&gt;
* (~) tilde sign - the information specified by the code letter will be converted to Title Case&lt;br /&gt;
* a decimal number - the information specified by the code letter will be truncated to that many characters&lt;br /&gt;
&lt;br /&gt;
For example, if the firstname is John and the lastname is Doe, the following values will be obtained with the specified templates:&lt;br /&gt;
&lt;br /&gt;
* %l%f = DoeJohn&lt;br /&gt;
* %l%1f = DoeJ&lt;br /&gt;
* %-l%+f = doeJOHN&lt;br /&gt;
* %-f_%-l = john_doe&lt;br /&gt;
*&amp;lt;nowiki&amp;gt; http://www.example.com/~%u/&amp;lt;/nowiki&amp;gt; results in  &amp;lt;nowiki&amp;gt;http://www.example.com/~jdoe/&amp;lt;/nowiki&amp;gt; (if the username is jdoe or %-1f%-l)&lt;br /&gt;
&lt;br /&gt;
Template processing is done only on default values, and not on the values retrieved from the CSV file.&lt;br /&gt;
&lt;br /&gt;
In order to create correct Moodle usernames, the username is always converted to lowercase. Moreover, if the &amp;quot;Allow extended characters in usernames&amp;quot; option in the Site policies page is off, characters different to letters, digits, dash (-) and dot (.) are removed. For example if the firstname is John Jr. and the lastname is Doe, the username %-f_%-l will produce john jr._doe when Allow extended characters in usernames is on, and johnjr.doe when off.&lt;br /&gt;
&lt;br /&gt;
When the &amp;quot;New username duplicate handling&amp;quot; setting is set to Append counter, an auto-increment counter will be append to duplicate usernames produced by the template. For example, if the CSV file contains the users named John Doe, Jane Doe and Jenny Doe without explicit usernames, the default username is %-1f%-l and New username duplicate handling is set to Append counter, then the usernames produced will be jdoe, jdoe2 and jdoe3.&lt;br /&gt;
&lt;br /&gt;
===Deleting accounts===&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;code&amp;gt;deleted&amp;lt;/code&amp;gt; field is present, users with value 1 for it will be deleted. In this case, all the fields may be omitted, except for &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;. After uploading the file, be sure to change the &amp;quot;Upload type&amp;quot; to &amp;quot;Update existing users only&amp;quot; and the &amp;quot;Allow deletes&amp;quot; option to &amp;quot;Yes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Deleting and uploading accounts could be done with a single CSV file. For example, the following file will add the user Tom Jones and delete the user reznort:&lt;br /&gt;
&lt;br /&gt;
 username, firstname, lastname, deleted&lt;br /&gt;
 jonest, Tom, Jones, 0&lt;br /&gt;
 reznort, , , 1&lt;br /&gt;
&lt;br /&gt;
==Encoding file format==&lt;br /&gt;
On the initial Upload user screen, you may select the file encoding format from a pull down list.  These include UTF-8 (the default), ASCII,  ISO-8859-1 to ISO-8859-11 or any one of over 36 formats.&lt;br /&gt;
&lt;br /&gt;
==Hints==&lt;br /&gt;
&lt;br /&gt;
===Spreadsheet===&lt;br /&gt;
&lt;br /&gt;
If you use a spreadsheet program such as Excel to create your .csv file, check the resulting output in a text editor before you upload it.  It is possible to get trailing commas on each line from an empty field if you have added and deleted columns of information prior to saving the final file. Also check the character encoding. A csv file is a simple text file (ASCII or Unicode) that can be used to upload user accounts.&lt;br /&gt;
&lt;br /&gt;
Excel translates passwords that begin with - (minus) or + (plus) as zero. Even when saving as .csv and saying &amp;quot;Yes&amp;quot; to &amp;quot;Keep this format, and leave out any incompatible features.&amp;quot; Check for this before uploading, as a zero halts the upload process.&lt;br /&gt;
&lt;br /&gt;
If you use a formula in Excel to create fields (for example, the concatenate function to create a user name), then remember to copy the cells with the formula and use special paste with values checked to make them into an acceptable data for a csv file.&lt;br /&gt;
&lt;br /&gt;
===Country===&lt;br /&gt;
The country should be written as a two letter code, in capitals. For example, use BE for Belgium or NL for the Netherlands.  Using &amp;quot;be&amp;quot; or &amp;quot;nl&amp;quot; as a country code will result in a database error.&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039;  If you are having trouble working out the two-letter code for a country, you can consult this Moodle source code file /moodle/lang/en_utf8/countries.php [http://cvs.moodle.org/moodle/lang/en_utf8/countries.php?view=markup&amp;amp;pathrev=MOODLE_19_STABLE or click here for a 1.9 STABLE list].&lt;br /&gt;
ISO Website: [http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm]&lt;br /&gt;
===Field size limits===&lt;br /&gt;
Some fields have maximum character lengths.  Typically the file will import to the preview list screen but not finish the process.  Turn on debug to see the fields that are too long.  Common fields to cause problems are &amp;quot;Institution&amp;quot; which is limited to 40 characters, and &amp;quot;City&amp;quot;, also limited.  The error will be &amp;quot;User not added - error&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===All fields listed here===&lt;br /&gt;
:All the fields that are valid are listed below, except for any custom fields you may have created. &lt;br /&gt;
firstname, lastname, username, email, city, country, lang, timezone, mailformat, maildisplay, maildigest, htmleditor, ajax, autosubscribe ,institution, department, idnumber, skype , msn, aim, yahoo, icq, phone1, phone2, address, url, description, descriptionformat, password, auth, oldusername , deleted, course1, course2, course3, course4&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Flat file]] enrolment&lt;br /&gt;
* [[User profile fields]] for details of how to include data about custom user profile fields in the upload users file&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=36851 Can I auto enroll from Excel?]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=97903 Uploading users to custom roles]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=181259 User upload option: standardise usernames]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=144569 Matriculacion con flat file csv] - discussion in Spanish&lt;br /&gt;
&lt;br /&gt;
[[fr:Importer des utilisateurs]]&lt;br /&gt;
[[ja:ユーザのアップロード]]&lt;br /&gt;
[[de:Nutzerliste hochladen]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Add_a_new_user&amp;diff=98608</id>
		<title>Add a new user</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Add_a_new_user&amp;diff=98608"/>
		<updated>2012-06-20T03:04:01Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: remove AJAX and Javascript MDL-32908&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Accounts}}&lt;br /&gt;
An administrator or manager (or any other user with the capability [[Capabilities/moodle/user:create|moodle/user:create]]) can create new user accounts in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Users &amp;gt; Accounts &amp;gt; Add a new user&#039;&#039;. (To add users in bulk, see [[Upload users]].)&lt;br /&gt;
&lt;br /&gt;
[[File:Addanewuser.png]]&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===Username===&lt;br /&gt;
The user will use this username to log in to the Moodle instance. It needs to be unique. This may be changed. A user&#039;s name can only  contain alphabetical letters in lowercase, numbers, hyphen &#039;-&#039;, underscore &#039;_&#039;, period &#039;.&#039;, or an at character &#039;@&#039;.&lt;br /&gt;
&lt;br /&gt;
===Authentication method===&lt;br /&gt;
The setting specifies how Moodle will check whether the user&#039;s specified password is correct. &lt;br /&gt;
&lt;br /&gt;
Accounts created by an administrator use the &#039;&#039;&#039;Manual Accounts&#039;&#039;&#039; method, and accounts created by the user themselves using the email sign-up method use the E-mail based self-registration method.&lt;br /&gt;
&lt;br /&gt;
===Suspended account===&lt;br /&gt;
&lt;br /&gt;
Suspended user accounts cannot log in or use web services, and any outgoing messages are discarded.&lt;br /&gt;
&lt;br /&gt;
===Password===&lt;br /&gt;
This is the user&#039;s password. It is subject to the password policy in [[Site policies]].  A user can change their password by the &#039;&#039;Settings block &amp;gt; My Profile settings &amp;gt; Change password&#039;&#039; link.&lt;br /&gt;
&lt;br /&gt;
===First Name===&lt;br /&gt;
The user&#039;s first name. It is displayed along with the last name in messages, forum posts, participants list, reports and anywhere where something about the user is shows on the page. &lt;br /&gt;
&lt;br /&gt;
===Surname===&lt;br /&gt;
The user&#039;s surname. It is displayed along with the first name in messages, forum posts, participants list, reports and anywhere where something about the user is shows on the page. &lt;br /&gt;
&lt;br /&gt;
===Email address===&lt;br /&gt;
Password reset notices, forum digests and other messages are sent to this email address from the Moodle site.&lt;br /&gt;
&lt;br /&gt;
===Email display===&lt;br /&gt;
This setting controls who can see the user&#039;s email address. &lt;br /&gt;
&lt;br /&gt;
===Email format===&lt;br /&gt;
This setting can be used such that Moodle will send text-only emails to the user. &lt;br /&gt;
&lt;br /&gt;
===Email digest type===&lt;br /&gt;
This setting set whether the user will receive an email for each new forum post in subscribed forums, or if new posts should be sent once per day in a digest, and which type of digest.&lt;br /&gt;
* No digest (one receives individual emails),&lt;br /&gt;
* Complete (a single digest daily) or&lt;br /&gt;
* Subjects (a single digest daily with only the post topics included).&lt;br /&gt;
&lt;br /&gt;
===Forum auto-subscribe===&lt;br /&gt;
If a user subscribes to a forum, new posts will be sent in the digest as specified. This setting sets whether a user is automatically subscribed to forums or if a manual click on the subscription button in each forum is required.&lt;br /&gt;
&lt;br /&gt;
===Forum tracking===&lt;br /&gt;
THis setting specifies whether new posts written since the user&#039;s last visit should be highlighted as such.&lt;br /&gt;
&lt;br /&gt;
===When editing text===&lt;br /&gt;
This setting specifies whether the user prefers to see the WYSIWYG text editor or just a plain text box.&lt;br /&gt;
&lt;br /&gt;
===Screen Reader===&lt;br /&gt;
Enabling this setting will improve the display of Moodle to make it more compatible with screen readers. &lt;br /&gt;
&lt;br /&gt;
===City/town===&lt;br /&gt;
The user&#039;s city or town&lt;br /&gt;
&lt;br /&gt;
===Country===&lt;br /&gt;
The user&#039;s country&lt;br /&gt;
&lt;br /&gt;
Note: City and country defaults may be set in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Location &amp;gt; Location settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Timezone===&lt;br /&gt;
This setting is used to adjust the times of messages and assignment/quiz due dates to match the user&#039;s local time&lt;br /&gt;
&lt;br /&gt;
===Preferred language===&lt;br /&gt;
This will cause the Moodle interface to be displayed in the specified language. (See [[Language packs]])&lt;br /&gt;
&lt;br /&gt;
Note: Content will not be translated automatically, but if multi-language content is entered the appropriate language content will be displayed, if available. &lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
Information about the user that other users can see.&lt;br /&gt;
&lt;br /&gt;
==User Picture==&lt;br /&gt;
The user&#039;s picture can be displayed next to the user&#039;s name next to any content he/she has posted in Moodle activities such as the forum. See [[User pictures]] and [[Gravatars]] for details.&lt;br /&gt;
&lt;br /&gt;
==Interests==&lt;br /&gt;
The list of interests can be used as a way of connecting users with similar interests. [[Tags]] must be enabled on the site.&lt;br /&gt;
&lt;br /&gt;
==Optional==&lt;br /&gt;
There are several optional fields that come with an standard install. These include:&lt;br /&gt;
Web Page, ICA number, Skype ID, AIM ID, Yahoo ID, MSN ID, ID number, Institution,  Department, Phone, Mobile Phone, Address.&lt;br /&gt;
&lt;br /&gt;
The site administrator may [[User profile fields|add more custom fields]] and/or turn off any of these &amp;quot;optional&amp;quot; fields.&lt;br /&gt;
&lt;br /&gt;
[[de:Nutzer/in neu anlegen]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Update_profile&amp;diff=98607</id>
		<title>Update profile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Update_profile&amp;diff=98607"/>
		<updated>2012-06-20T03:03:36Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: remove AJAX and Javascript MDL-32908&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Accounts}}&lt;br /&gt;
==Editing Your Profile ==&lt;br /&gt;
&lt;br /&gt;
Administrators can update user profiles via  &#039;&#039;Administration &amp;gt; Users &amp;gt; Accounts &amp;gt; Add a new user&#039;&#039; or &#039;&#039;Browse list of users&#039;&#039; and individual users may update their profiles by choosing the &#039;&#039;Edit profile&#039;&#039; link from &#039;&#039;Settings&amp;gt;My profile settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The fields are divided into 3 sections - General, Picture &amp;amp; Optional which are all explained below.  Note that some settings are &#039;advanced&#039;, so you may need to click the &#039;Show Advanced&#039; button on the right to see all the settings. The advanced settings are indicated below.&lt;br /&gt;
&lt;br /&gt;
Remember to click &#039;Update profile&#039; when you have finished.&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
The first section contains fields that must be completed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First name &amp;amp; Surname&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are self-explanatory. These names will identify you everywhere in your Moodle courses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email address&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The email address should be an address that you check regularly. It is used for acknowledgements and announcements from Moodle, including messages from Forums that you are subscribed to. It is also the address that is displayed to other users of Moodle, depending on your &#039;Email display&#039; setting (below).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email display&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the visibility of your email address to others.  The three settings are self-explanatory but please note &#039;Hide my email address from everyone&#039; only hides it from students.  Teaching staff and other staff with editing access will always be able to see your email address.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email format (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are two formats: &amp;quot;Pretty HTML format&amp;quot; (messages will be formatted) and &amp;quot;Plain text format&amp;quot; (plain text with no formatting).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email digest type (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines how you receive any posts from Forums to which you are subscribed, allowing you to receive messages individually or on a daily basis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forum auto-subscribe (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting lets you decide if you want email copies of posts that are added to forums. If you set this to subscribe, the system will automatically email you copies of new posts in forums that you post in, unless you manually override it when posting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Forum tracking (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enabling forum tracking means highlighting the posts you have not read yet, which should improve your forum navigation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When editing text (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can usually be left on &amp;quot;Use HTML editor (some browsers only)&amp;quot;. This allows for text formatting options, but requires newer browsers. If you find your browser is not letting you edit text, change this setting to &amp;quot;Use standard web forms&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Screen Reader (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use a screen reader, this setting should be set to &#039;Yes&#039;. (A screen reader is a form of &#039;assistive technology&#039; used by blind and partially-sighted users to interpret what is displayed on the screen).&lt;br /&gt;
&lt;br /&gt;
The screenreader variable is used in:&lt;br /&gt;
&lt;br /&gt;
* /mod/chat/ - if screenreader is enable, chat window will be set to use gui_basic&lt;br /&gt;
* /mod/course/report/progress/ - check for svg to rotate text&lt;br /&gt;
* /admin/mnet/mnet_themes.html - use to ignore or print theme images&lt;br /&gt;
* /user/ - set the value for screenreader&lt;br /&gt;
* /grade/report/grader/ - use to set fixed layout&lt;br /&gt;
* /question/type/multianswer/ - used to print feedback icon and print an gap icon for question (MDL-7497)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;City/town &amp;amp; Country&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add your location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Timezone&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field is used to convert time-related messages on the system (such as assignment deadlines) from the local timezone (the time in London) to the correct time in whichever zone you have selected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preferred language and theme (advanced)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can view Moodle in several different languages and colour themes, which you can select via these two options. Note: changing the preferred language only affects the Moodle interface, not the course content!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In this field you can enter some text about yourself, be it information about your studies, hobbies, qualifications or anything else.&lt;br /&gt;
&lt;br /&gt;
=== User picture ===&lt;br /&gt;
&lt;br /&gt;
This section is optional and allows you to choose your own profile picture.  Your current picture is shown, if you have already chosen one.&lt;br /&gt;
&lt;br /&gt;
Note: If the admin has enabled it in &#039;&#039;Settings &amp;gt; Site Administration &amp;gt; Users &amp;gt; Permissions &amp;gt; User policies&#039;&#039;, a gravatar you might have attached to your email account will appear as your profile image if you don&#039;t upload a different one. See [[Gravatars]] for details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New picture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Choose a file&amp;quot; button allows you to choose a new picture for your profile. The picture must be in JPG or PNG format (ie the names will usually end in .jpg or .png).&lt;br /&gt;
&lt;br /&gt;
To upload an image, click the &amp;quot;Upload a file&amp;quot; button from the list in the [[File_picker]], and select the image from your hard disk.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure that the file is not larger than the maximum size listed, or it will not be uploaded.&lt;br /&gt;
&lt;br /&gt;
Then click &amp;quot;Update Profile&amp;quot; at the bottom - the image file will be cropped to a square and resized down to 100x100 pixels.&lt;br /&gt;
&lt;br /&gt;
When you are taken back to your profile page, the image might not appear to have changed. If this is so, just use the &amp;quot;Reload&amp;quot; button in your browser.&lt;br /&gt;
==Interests==&lt;br /&gt;
Use tags here to display your interests on your profile page.&lt;br /&gt;
&lt;br /&gt;
=== Optional ===&lt;br /&gt;
&lt;br /&gt;
There are several optional fields (all advanced) allowing you to add further details to your profile such as contact details and your website.&lt;br /&gt;
&lt;br /&gt;
===Custom Profile Categories===&lt;br /&gt;
If any custom user profile categories and fields have been created on your Moodle site, they will be listed at the bottom of the [[User profile fields|Admin &amp;gt;Accounts&amp;gt;User profile fields]]&lt;br /&gt;
&lt;br /&gt;
==Updating a user profile==&lt;br /&gt;
&lt;br /&gt;
Users with the capability [[Capabilities/moodle/user:update|moodle/user:update]] are able to update another user&#039;s profile i.e. in addition to being able to edit the profile, all settings (username, password, authentication method, force new password etc.) may be changed.&lt;br /&gt;
&lt;br /&gt;
==Account disabling==&lt;br /&gt;
&lt;br /&gt;
An account may be disabled by setting the authentication method to &amp;quot;[[No login]]&amp;quot;. The account email may not be used to create another account.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[User profiles]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Modifier le profil]]&lt;br /&gt;
[[de:Nutzerprofil aktualisieren]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98205</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98205"/>
		<updated>2012-06-07T06:26:42Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Converting to thumnails. This view still sucks though. I&amp;#039;m not a mediawiki guru.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com/2012/04/changes-to-deprecation-policies-and-api.html Google announced] to web application developers that they would be deprecating the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[Image:google_oauth1.png|thumb|3. creating API Project]] &lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png|thumb|4. creating an OAuth 2.0 Client ID]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png|thumb|5. client Settings]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png|thumb|9. callback options]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png|thumb|12. registered details]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;br /&gt;
&lt;br /&gt;
==Resulting Authorisation Screen==&lt;br /&gt;
Once configured, Google will present Moodle users with a nice authorisation screen with your moodle name and logo for your users to authorise:&lt;br /&gt;
[[File:google_oauth6.png]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98204</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98204"/>
		<updated>2012-06-07T06:17:16Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: slightly improved the initial sentence so it sounds less like I was smoking something whilst authoring it. ;-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com/2012/04/changes-to-deprecation-policies-and-api.html Google announced] to web application developers that they would be deprecating the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;br /&gt;
&lt;br /&gt;
==Resulting Authorisation Screen==&lt;br /&gt;
Once configured, Google will present Moodle users with a nice authorisation screen with your moodle name and logo for your users to authorise:&lt;br /&gt;
[[File:google_oauth6.png]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98188</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98188"/>
		<updated>2012-06-04T12:47:20Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;br /&gt;
&lt;br /&gt;
==Resulting Authorisation Screen==&lt;br /&gt;
Once configured, Google will present Moodle users with a nice authorisation screen with your moodle name and logo for your users to authorise:&lt;br /&gt;
[[File:google_oauth6.png]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98187</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98187"/>
		<updated>2012-06-04T12:41:51Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* Registering with Google */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com.au/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;br /&gt;
&lt;br /&gt;
==Resulting Authorisation Screen==&lt;br /&gt;
Once configured, Google will present Moodle users with a nice authorisation screen with your moodle name and logo for your users to authorise:&lt;br /&gt;
[[File:google_oauth6.png]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98186</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98186"/>
		<updated>2012-06-04T12:40:48Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* Registering with Google */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com.au/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once configured, Google will present Moodle users with a nice authorisation screen with your moodle name and logo for your users to authorise:&lt;br /&gt;
[[File:google_oauth6.png]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth6.png&amp;diff=98185</id>
		<title>Fitxer:google oauth6.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth6.png&amp;diff=98185"/>
		<updated>2012-06-04T12:38:50Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98184</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98184"/>
		<updated>2012-06-04T12:34:09Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com.au/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98183</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98183"/>
		<updated>2012-06-04T12:33:41Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com.au/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form. [[File:google_oauth1.png]]&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039; [[File:google_oauth2.png]]&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place. [[File:google_oauth3.png]&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039; &lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank [[File:google_oauth4.png]&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details. [[File:google_oauth5.png]&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth5.png&amp;diff=98182</id>
		<title>Fitxer:google oauth5.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth5.png&amp;diff=98182"/>
		<updated>2012-06-04T12:32:05Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth4.png&amp;diff=98181</id>
		<title>Fitxer:google oauth4.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth4.png&amp;diff=98181"/>
		<updated>2012-06-04T12:31:43Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth3.png&amp;diff=98180</id>
		<title>Fitxer:google oauth3.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth3.png&amp;diff=98180"/>
		<updated>2012-06-04T12:31:12Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth2.png&amp;diff=98179</id>
		<title>Fitxer:google oauth2.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth2.png&amp;diff=98179"/>
		<updated>2012-06-04T12:30:56Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth1.png&amp;diff=98178</id>
		<title>Fitxer:google oauth1.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:google_oauth1.png&amp;diff=98178"/>
		<updated>2012-06-04T12:30:33Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98177</id>
		<title>Google OAuth 2.0 setup</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Google_OAuth_2.0_setup&amp;diff=98177"/>
		<updated>2012-06-04T12:21:21Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: First draft of oauth2 settings This is a difficult page to write because it implicitly contains jargon.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prior to Moodle 2.3, Google Docs and Picasa repository plugins and portfolio plugins could be used without any configuration or registration with Google. In April 2012, [http://googledevelopers.blogspot.com.au/2012/04/changes-to-deprecation-policies-and-api.html Google Announced] to web application developers that they would be deprecated the service which Moodle was using to communicate with Google and strongly advised developers to move away from it. As a response to this change with Google&#039;s service, Moodle switched to use a new system for communicating with Google called &#039;OAuth 2.0&#039;, starting with Moodle 2.3. The OAuth 2.0 system providers and a better security system and more friendly experience to Moodle users, though it requires some additional configuration in Moodle.&lt;br /&gt;
&lt;br /&gt;
==Registering with Google==&lt;br /&gt;
Each Moodle site now needs to be registered with Google in order to use the Google Docs or Picasa plugins. The following will guide you through the process of registering with Google.&lt;br /&gt;
&lt;br /&gt;
# You will need to be signed into a google account&lt;br /&gt;
# Visit the [Google API&#039;s Console https://code.google.com/apis/console#access]&lt;br /&gt;
# You will be asked to create a project if this is your first time using this form.&lt;br /&gt;
# You need to click the button marked &#039;Create an OAuth 2.0 client ID..&#039;&lt;br /&gt;
# You will be asked to enter branding information including a &#039;Product name&#039; and &#039;Product logo&#039;. By providing a descriptive name and link to distinct image then your users will know they are signing into the correct place.&lt;br /&gt;
# Next you will be asked for &#039;Client ID Settings&#039;&lt;br /&gt;
## For Application type, select &#039;Web application&#039;&lt;br /&gt;
## Next to &#039;Your site or hostname&#039; click &#039;(more options)&#039;&lt;br /&gt;
## In &#039;Authorized Redirect URIs&#039; enter the URL which was provided in your Moodle settings page. (usually http://yourmoodle/admin/oauth2callback.php)&lt;br /&gt;
## In &#039;Authorized JavaScript Origins&#039; leave the field blank&lt;br /&gt;
# Click &#039;Create client ID&#039;&lt;br /&gt;
# Your site is now registered with Google and you will be presented with your details.&lt;br /&gt;
# Enter the &#039;Client ID&#039; and &#039;Client secret&#039; provided into your Moodle settings page&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Upgrading_to_Moodle_2.3&amp;diff=98032</id>
		<title>Upgrading to Moodle 2.3</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Upgrading_to_Moodle_2.3&amp;diff=98032"/>
		<updated>2012-05-24T08:43:54Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: added a comment about 2x assignment modules, please expand this..&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Note: You can only upgrade to Moodle 2.3 from Moodle 2.2 or later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
&lt;br /&gt;
* PHP must be &#039;&#039;&#039;5.3.2&#039;&#039;&#039; or later&lt;br /&gt;
** Required PHP extensions: iconv, curl, ctype, zip, simplexml, spl, pcre, dom, xml, json&lt;br /&gt;
** Required PHP memory_limit at least 40MB (64MB or more recommended if you have a choice)&lt;br /&gt;
* Databases should be one of the following:&lt;br /&gt;
** MySQL 5.0.25 or later  (InnoDB storage engine highly recommended)&lt;br /&gt;
** PostgreSQL 8.3 or later&lt;br /&gt;
** Oracle 10.2 or later&lt;br /&gt;
** MS SQL 2005 or later&lt;br /&gt;
* Any standards-supporting browser from the past few years, for example:&lt;br /&gt;
** Firefox 3 or later &lt;br /&gt;
** Safari 3 or later &lt;br /&gt;
** Google Chrome 4 or later&lt;br /&gt;
** Opera 9 or later&lt;br /&gt;
** MS Internet Explorer 7 or later&lt;br /&gt;
&lt;br /&gt;
Note: The above system requirements are unchanged from Moodle 2.1.&lt;br /&gt;
&lt;br /&gt;
Minimum browser: Firefox 4, Internet Explorer 8, Safari 5 (New!) &lt;br /&gt;
&lt;br /&gt;
==Before upgrading please... ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: The upgrade process will irreversibly modify the contents of your database &#039;&#039;&#039;and&#039;&#039;&#039; your moodledata file storage area. If something goes wrong you &#039;&#039;&#039;cannot&#039;&#039;&#039; go back. It is vital that you take good backups of both moodledata and the database in case you have problems with the upgrade. If you are not sure how see [[Site backup]] or ask in the moodle.org forums (explaining what your operating system is).  &lt;br /&gt;
&lt;br /&gt;
* Read the [[:dev:Moodle 2.3 release notes|Moodle 2.3 release notes]]  and check the [[:Category:New features|list of new features]]&lt;br /&gt;
* Check your site to make sure it meets all system requirements for 2.3 in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Do a full database backup!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Do a full moodledata backup&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Check your backups carefully&#039;&#039;&#039;&lt;br /&gt;
* Remember to purge PHP cache if using any PHP accelerator&lt;br /&gt;
&lt;br /&gt;
==Possible issues that may affect you==&lt;br /&gt;
&lt;br /&gt;
=== Two assignment modules ===&lt;br /&gt;
&lt;br /&gt;
A new assignment module has been added in Moodle 2.3. The old assignment module is still available and sites which have upgraded from previous versions will have both versions available. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add items here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Checking database schema - old sites==&lt;br /&gt;
&lt;br /&gt;
If your Moodle site has been upgraded through many prior versions it is possible that there will be some problems with the database schema (compared to a fresh 2.0 installation). This may cause the upgrade to fail. If your site started life prior to Moodle 2.0 it is a very good idea to check and correct the database schema before upgrading. See [[Verify Database Schema]]. You should also run the database integrity checks in the XMLDB editor, see the &#039;See also&#039; for a link to extra scripts to check for other discrepancies.&lt;br /&gt;
&lt;br /&gt;
==Now upgrade==&lt;br /&gt;
&lt;br /&gt;
Once you have satisfied the requirements for Moodle 2.3, follow the instructions on the [[Upgrading|upgrading]] page.&lt;br /&gt;
&lt;br /&gt;
On Linux servers, Moodle 2.3 supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
&lt;br /&gt;
==After upgrade==&lt;br /&gt;
&lt;br /&gt;
The config.php file from your 2.0 installation should work fine but if you take a look at config-dist.php that came with Moodle 2.0 there are more/different options available (e.g. database drivers and settings). It&#039;s a good idea to map your old config.php settings to a new one based on the 2.3 config-dist.php.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[dev:Moodle 2.3 release notes|Moodle 2.3 release notes]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Mise à jour à Moodle 2.3]]&lt;br /&gt;
[[ja:Moodle2.3へのアップグレード]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=lib/formslib.php_Usage&amp;diff=81951</id>
		<title>lib/formslib.php Usage</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=lib/formslib.php_Usage&amp;diff=81951"/>
		<updated>2011-03-15T14:00:14Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: added a note about ordering of get_data/is_validated as there may be a bug here&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Formslib}}&lt;br /&gt;
==Usage of Formslib==&lt;br /&gt;
&lt;br /&gt;
There are many phpdoc style comments in lib/formslib.php&lt;br /&gt;
&lt;br /&gt;
course/edit.php and the included course/edit_form.php provide a good example of usage of this library.&lt;br /&gt;
&lt;br /&gt;
Also see the PEAR docs for [http://pear.php.net/package/HTML_QuickForm/ HTML_QuickForm docs] I found this [http://pear.php.net/manual/en/package.html.html-quickform.tutorial.php quick tutorial] and this [http://www.midnighthax.com/quickform.php slightly longer one] particularly useful.&lt;br /&gt;
&lt;br /&gt;
We created some special wrapper functions for moodle. Function $mform-&amp;gt;get_data() returns an object with the contents of the submitted data or returns null if no data has been submitted or validation fails.&lt;br /&gt;
&lt;br /&gt;
===Basic Usage in A Normal Page===&lt;br /&gt;
&lt;br /&gt;
Generally the structure of a page with a form on it looks like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
require_once(&#039;pathtoformdescription&#039;);&lt;br /&gt;
//you&#039;ll process some page parameters at the top here and get the info about&lt;br /&gt;
//what instance of your module and what course you&#039;re in etc. Make sure you&lt;br /&gt;
//include hidden variable in your forms which have their defaults set in set_data&lt;br /&gt;
//which pass these variables from page to page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$mform = new yourmod_formfunction_form();//name of the form you defined in file above.&lt;br /&gt;
//default &#039;action&#039; for form is strip_querystring(qualified_me())&lt;br /&gt;
if ($mform-&amp;gt;is_cancelled()){&lt;br /&gt;
    //you need this section if you have a cancel button on your form&lt;br /&gt;
    //here you tell php what to do if your user presses cancel&lt;br /&gt;
    //probably a redirect is called for!&lt;br /&gt;
    // PLEASE NOTE: is_cancelled() should be called before get_data(), as this may return true&lt;br /&gt;
} else if ($fromform=$mform-&amp;gt;get_data()){&lt;br /&gt;
//this branch is where you process validated data.&lt;br /&gt;
&lt;br /&gt;
} else {&lt;br /&gt;
// this branch is executed if the form is submitted but the data doesn&#039;t validate and the form should be redisplayed&lt;br /&gt;
// or on the first display of the form.&lt;br /&gt;
    //setup strings for heading&lt;br /&gt;
    print_header_simple($streditinga, &#039;&#039;,&lt;br /&gt;
     &amp;quot;&amp;lt;a href=\&amp;quot;$CFG-&amp;gt;wwwroot/mod/$module-&amp;gt;name/index.php?id=$course-&amp;gt;id\&amp;quot;&amp;gt;$strmodulenameplural&amp;lt;/a&amp;gt; -&amp;gt;&lt;br /&gt;
     $strnav $streditinga&amp;quot;, $mform-&amp;gt;focus(), &amp;quot;&amp;quot;, false);&lt;br /&gt;
    //notice use of $mform-&amp;gt;focus() above which puts the cursor &lt;br /&gt;
    //in the first form field or the first field with an error.&lt;br /&gt;
&lt;br /&gt;
    //call to print_heading_with_help or print_heading? then :&lt;br /&gt;
    &lt;br /&gt;
    //put data you want to fill out in the form into array $toform here then :&lt;br /&gt;
&lt;br /&gt;
    $mform-&amp;gt;set_data($toform);&lt;br /&gt;
    $mform-&amp;gt;display();&lt;br /&gt;
    print_footer($course);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are encouraged to look at &#039;&#039;&#039;lib/formslib.php&#039;&#039;&#039; to see what additional functions and parameters are available. Available functions are well commented.&lt;br /&gt;
&lt;br /&gt;
===Defining Your Form Class===&lt;br /&gt;
&lt;br /&gt;
The form class tells us about the structure of the form. You are encouraged to put this in a file called {function}_form.php probably in the same folder in which the page that uses it is located. The name of your class should be {modname}_{function}_form eg. forum_post_form or course_edit_form. These classes will extend class moodleform.&lt;br /&gt;
&lt;br /&gt;
Note the name you give the class is used as the id attribute of your form in html (any trailing &#039;_form&#039; is chopped off&#039;). Your form class name should be unique in order for it to be selectable in CSS by theme designers who may want to tweak the css just for that form.&lt;br /&gt;
&lt;br /&gt;
====definition()====&lt;br /&gt;
&lt;br /&gt;
[[Development:lib/formslib.php_Form_Definition|Help is here for defining your form]] by defining a function definition() in your form class that sets up your form structure.&lt;br /&gt;
&lt;br /&gt;
===Use in Activity Modules Add / Update Forms===&lt;br /&gt;
&lt;br /&gt;
Syntax is the same in activity modules to create your update / add page. We are still supporting mod.html but if you want to use the new formslib then you can in Moodle 1.8 just include in your module directory the file mod_form.php instead of mod.html and it will be automatically detected. Inside this file you define a class with class name &#039;{modname}__mod_form&#039; which extends the class &#039;moodleform_mod&#039;. See many examples of the core modules which have been converted to use formslib already.&lt;br /&gt;
&lt;br /&gt;
====defaults_preprocessing====&lt;br /&gt;
&lt;br /&gt;
For activity modules you use the same syntax to define your form. You may also want to override method defaults_preprocessing this can be used to take the data from the data base and tell the form how to fill out defaults in the form with this data. For example in the forum module in forum/mod_form.php we needed to tick an enable check box if a date had been selected in the date select. Normally data is loaded from the database and directly loaded into form fields with the same name as the database record you only need to use defaults_preprocessing if there isn&#039;t this one to one relationship. Another example is the lesson/mod_form.php which takes the data from the database and unserializes it. choice/mod_form.php shows an exampe of loading data from another db table referred to by a foreign key, to include in the form.&lt;br /&gt;
&lt;br /&gt;
====Post Processing Still Done in lib.php Functions====&lt;br /&gt;
&lt;br /&gt;
Post processing of data is done in lib.php functions modname_add_instance and modname_update_instance after the data has been validated. When migrating a form often little changes need to be made in the post processing. An exception is that date and date_time_selector fields automatically have their submitted data turned into timestamps so you don&#039;t need to do this in your add and update functions anymore.&lt;br /&gt;
&lt;br /&gt;
====Automatically Including Standard Activity Module Form Elements====&lt;br /&gt;
&lt;br /&gt;
Standard activity module form elements are automatically included using the moodleform_mod method standard_coursemodule_elements(). The default is to include a visibility and groupsmode select box and to include all necessary hidden fields. You can pass a parameter false to tell the method that your module doesn&#039;t support groups and so you don&#039;t want the groupsmode select button.&lt;br /&gt;
&lt;br /&gt;
[[Category:Formslib]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Assign_roles&amp;diff=81445</id>
		<title>Assign roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Assign_roles&amp;diff=81445"/>
		<updated>2011-02-21T15:57:14Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: clarify course category permissions inherentance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Roles}}&lt;br /&gt;
&lt;br /&gt;
==Locations for assigning roles==&lt;br /&gt;
&lt;br /&gt;
[[Image:Assign roles.png|thumb|Assign roles in Moodle 1.9]]&lt;br /&gt;
Assigning roles is done for/in a particular context. A site and course are examples of two different contexts.  While the process is similar for each context, the approach to role assignment page may be different.   Here are several contexts and ways to find the assign roles.&lt;br /&gt;
&lt;br /&gt;
*System context: &#039;&#039;Site Administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Assign system roles&#039;&#039; (this context is named &amp;quot;site&amp;quot; in Moodle 1.7)&lt;br /&gt;
*Front page context: &#039;&#039;Site Administration &amp;gt; Front Page &amp;gt; Front Page roles&#039;&#039; (in Moodle 1.8 onwards)&lt;br /&gt;
*Course category context: Assign roles link in course categories page&lt;br /&gt;
*Course context: Assign roles link in course administration block&lt;br /&gt;
*Module context: &amp;quot;Locally assigned roles&amp;quot; tab in editing activity page&lt;br /&gt;
*Block context: Assign roles link in course block (with editing turned on)&lt;br /&gt;
*User context: Roles tab in user profile page&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the assign roles page lists the names of users assigned to each role (unless there are more than 10 users, in which case this is stated).&lt;br /&gt;
&lt;br /&gt;
==Contexts==&lt;br /&gt;
&lt;br /&gt;
By assigning a role to a user in a certain context, you grant them the permissions contained in that role for the current context and all lower contexts.&lt;br /&gt;
&lt;br /&gt;
The list of contexts in hierarchical order is as follows:&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle-contexts-1.8.png|right|thumbnail|200px|A diagram of the contexts in Moodle. Click on the diagram to see a more detailed view of it.]]&lt;br /&gt;
&lt;br /&gt;
*System (no parent)&lt;br /&gt;
*Front page (parent = system) - Moodle 1.8 onwards&lt;br /&gt;
*Course category (parent = parent category or system)&lt;br /&gt;
*Course (parent = category or system)&lt;br /&gt;
*Module (parent = course or system) - Moodle 1.8 onwards&lt;br /&gt;
*Block (parent = course or system) - Moodle 1.8 onwards&lt;br /&gt;
*User (parent = system)&lt;br /&gt;
&lt;br /&gt;
Inheritance will kick in if a role is assigned at a higher level. For example if a user is assigned a Teacher role in a particular course category then the user will have this role in ALL courses within the category.&lt;br /&gt;
&lt;br /&gt;
Roles will only work if the role assignment is made in the correct context. For example, a Teacher role should be assigned in the  course or course category context, a Forum moderator for a particular forum should be assigned in the module context.&lt;br /&gt;
&lt;br /&gt;
The [[Inspector role]] is an example of a role assigned in the system context. The [[Forum moderator role]] is an example of a role assigned in the module context. The [[Parent role]] is an example of a role assigned in the user context.&lt;br /&gt;
&lt;br /&gt;
==Assigning a role==&lt;br /&gt;
&lt;br /&gt;
[[Image:Roles Assign Student.JPG|thumb|Assigning users the role of student i.e. enrolling them on the course]]&amp;quot;Student&amp;quot;, &amp;quot;Teacher&amp;quot;, &amp;quot;Course Creator&amp;quot; are some of the predefined roles that come with Moodle. The site administrator may have created additional roles.&lt;br /&gt;
To assign a role:&lt;br /&gt;
#Choose the type of role you wish to assign. For example, if we wanted to assign a Student role to Martin, we&#039;d choose &amp;quot;Student&amp;quot; from the list of roles. &lt;br /&gt;
#Once you have chosen a role, two lists appear: a list of users who currently have that role (Student Demo in the example), and a list of users who don&#039;t. We can select Martin in the second list, and use the left-facing arrow button to add Martin to the list of Students. Multiple users may be selected by holding down the Apple or Ctrl key whilst clicking on the users&#039; names.&lt;br /&gt;
&lt;br /&gt;
Removing someone from a role is done by moving the user from the left column to the right.&lt;br /&gt;
&lt;br /&gt;
==Hidden assignments==&lt;br /&gt;
&lt;br /&gt;
To hide which role a user is assigned to, click the Hidden assignments check box before assigning the role to the user. This feature is useful for example if you don&#039;t want everyone with teacher rights listed in the course description.  This feature is also very useful for hiding system wide roles from everyone else on the site.&lt;br /&gt;
&lt;br /&gt;
Note: The role assignment is not hidden from admins or teachers i.e. users with the [[Capabilities/moodle/role:viewhiddenassigns|viewhiddenassigns capability]].&lt;br /&gt;
&lt;br /&gt;
==Enabling teachers to assign the role of teacher==&lt;br /&gt;
&lt;br /&gt;
By default, teachers are only allowed to assign the roles of non-editing teacher, student and guest. To enable teachers to assign the role of teacher:&lt;br /&gt;
&lt;br /&gt;
#Access &#039;&#039;Administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define roles&#039;&#039;.&lt;br /&gt;
#Click the tab &amp;quot;Allow role assignments&amp;quot;.&lt;br /&gt;
#Click the checkbox where the teacher row and column intersect.&lt;br /&gt;
#Click the &amp;quot;Save changes&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
==Beware of assignments that don&#039;t make sense==&lt;br /&gt;
&lt;br /&gt;
There are many role assignments that do not make sense as the underlying functionality does not exist. Just because you give someone the &amp;quot;right&amp;quot; to do something does not guarantee that the interface or facility actually exists within the context that you have assigned that right. For example, you can assign a user the right to create new categories in the category context, however there is no interface within Moodle to do that (category creation is only available at the system level).&lt;br /&gt;
&lt;br /&gt;
Note: Users should only be assigned the role of [[Administrator role|administrator]] (i.e. a role with the capability [[Capabilities/moodle/site:doanything|moodle/site:doanything]] set to allow) in the system context. Users should only be assigned the role of [[Course creator role|course creator]] in the system or a course category context.&lt;br /&gt;
&lt;br /&gt;
==Multiple assignments==&lt;br /&gt;
&lt;br /&gt;
A significant part of the roles infrastructure is the ability to assign a user into multiple roles (at the same time). The capabilities of each role are merged to produce the effective set of capabilities. In particular it is perfectly possible for a user to be both a Teacher and Student in the same course. This differs from the behavior of Moodle prior to the introduction of roles. You should be careful to ensure that if you change a user&#039;s role that you remove them from any other roles as required as this will no longer be done automatically.&lt;br /&gt;
&lt;br /&gt;
==System roles==&lt;br /&gt;
&lt;br /&gt;
Roles assigned in the site (1.7) or system context (1.8 onwards) are called system roles and apply across the entire site, including the front page. For example, a user assigned the system role of teacher will have this role in every course on the site.&lt;br /&gt;
&lt;br /&gt;
In many sites only admins and course creators will be assigned system roles.&lt;br /&gt;
&lt;br /&gt;
The [[Blogger role]] is an example of a system role.&lt;br /&gt;
&lt;br /&gt;
==Front page roles==&lt;br /&gt;
&lt;br /&gt;
You can assign roles and set up role overrides for your front page in exactly the same way as for a course.&lt;br /&gt;
&lt;br /&gt;
There are various ways of enabling logged-in users to participate in front page activities, depending on your Moodle version. See the [[Roles FAQ]] for details.&lt;br /&gt;
&lt;br /&gt;
==Assigning a role for a front page activity==&lt;br /&gt;
&lt;br /&gt;
In versions of Moodle prior to 1.9.4, only users who are assigned front page roles appear in the list of potential users when assigning a role for a front page activity.&lt;br /&gt;
&lt;br /&gt;
To assign a user a role for a front page activity:&lt;br /&gt;
# Assign the user a front page role, such as student, in &#039;&#039;Administration &amp;gt; Front Page &amp;gt; Front Page roles&#039;&#039;.&lt;br /&gt;
# Click the &amp;quot;Locally assigned roles&amp;quot; tab in editing activity page for the front page activity.&lt;br /&gt;
# Choose the type of role you wish to assign.&lt;br /&gt;
# Use the left-facing arrow button to add a particular user to the list of users with the role.&lt;br /&gt;
&lt;br /&gt;
If a user is unassigned from a front page role AFTER being assigned a role for a front page activity, they remain assigned the role for the front page activity.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Manage roles]] - for administrators&lt;br /&gt;
*[[Useful things a teacher can do with roles]]&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=59900 Discrepancies between Assign Roles lists and Participants list]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=66782 What happens if a user has multiple roles in a course?]&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[Category:Roles]]&lt;br /&gt;
&lt;br /&gt;
[[cs:Přidělení rolí]]&lt;br /&gt;
[[de:Rollen zuweisen]]&lt;br /&gt;
[[es:Asignar_roles]]&lt;br /&gt;
[[eu:Rolak_esleitu]]&lt;br /&gt;
[[fr:Attribuer des rôles]]&lt;br /&gt;
[[ja:ロールの割り当て]]&lt;br /&gt;
[[ru:Назначение ролей]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=CVS_for_Administrators&amp;diff=81013</id>
		<title>CVS for Administrators</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=CVS_for_Administrators&amp;diff=81013"/>
		<updated>2011-02-02T09:21:47Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: The CLEO/LUNS mirror is being retired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://cvs.moodle.org/ CVS archive] contains all the source code for Moodle. You can use a CVS program to extract versions ranging from the most stable release to the most cutting-edge development version. CVS can be an extremely convenient way of maintaining a Moodle server.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cvstree.png|CVS tree]]&lt;br /&gt;
&lt;br /&gt;
Developers may have selective write access to the Moodle CVS archive (see [[CVS for Developers]] for details about how to do this). However, most people only need read-only access, so they can just connect to one of the mirrors using &#039;&#039;&#039;anonymous CVS&#039;&#039;&#039; as described below. There can however currently be a delay of up to 1 hour between the time a developer commits changes to developer CVS and the time it becomes available on anonymous CVS. &lt;br /&gt;
&lt;br /&gt;
==CVS Servers==&lt;br /&gt;
&lt;br /&gt;
Please choose the closest CVS mirror server to you from this list:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;Country&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Provided by&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|EU&lt;br /&gt;
|&#039;&#039;&#039;eu.cvs.moodle.org&#039;&#039;&#039;&lt;br /&gt;
|[http://www.open.ac.uk/ The Open University] In case of trouble, contact [mailto:r.t.c.norfor@open.ac.uk Rod Norfor] or [mailto:d.a.woolhead@open.ac.uk Derek Woolhead]&lt;br /&gt;
|-&lt;br /&gt;
|ES&lt;br /&gt;
|&#039;&#039;&#039;es.cvs.moodle.org&#039;&#039;&#039;&lt;br /&gt;
|[http://www.mondragon.edu/ Mondragon Unibertsitatea] In case of trouble, contact [mailto:iarenuno@eteo.mondragon.edu iarenuno@eteo.mondragon.edu] or [mailto:iarenaza@escomposlinux.org iarenaza@escomposlinux.org]&lt;br /&gt;
|-&lt;br /&gt;
|UK&lt;br /&gt;
|&#039;&#039;&#039;uk.cvs.moodle.org&#039;&#039;&#039;&lt;br /&gt;
|[http://www.open.ac.uk/ The Open University] In case of trouble, contact [mailto:r.t.c.norfor@open.ac.uk Rod Norfor] or [mailto:d.a.woolhead@open.ac.uk Derek Woolhead]&lt;br /&gt;
|-&lt;br /&gt;
|US&lt;br /&gt;
|&#039;&#039;&#039;us.cvs.moodle.org&#039;&#039;&#039;&lt;br /&gt;
|San Francisco State University, Academic Technology ([http://www.sfsu.edu/ SFSU]). In case of trouble, contact [mailto:ilearn@sfsu.edu iLearn support]&lt;br /&gt;
|-&lt;br /&gt;
|US&lt;br /&gt;
|&#039;&#039;&#039;us2.cvs.moodle.org&#039;&#039;&#039;&lt;br /&gt;
|[http://www.contractorsinstitute.com The Contractors Institute] pserver and viewvc. In case of trouble contact [mailto:cvs@contractorsinstitute.com network support].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Replace the SERVER.cvs.moodle.org in the instructions below with the server you chose above!&lt;br /&gt;
&lt;br /&gt;
For up-to-date alerts about planned or unplanned outages on any of these servers subscribe to the [http://lists.moodle.org/info/outages Moodle Outage mailing list]. See [http://moodle.org/stats/network.php moodle.org/stats/network.php] for server availability.&lt;br /&gt;
&lt;br /&gt;
(If you would like to contribute to the project by running a mirror, please see [[How to set up a CVS mirror]])&lt;br /&gt;
&lt;br /&gt;
==Moodle versions and CVS branches==&lt;br /&gt;
&lt;br /&gt;
CVS stores every version of Moodle there has ever been. Versions are organised into branches as in the diagram at the top of this page. There is one branch for each series of stable releases, so the 1.9.x releases all come from the MOODLE_19_STABLE branch.&lt;br /&gt;
&lt;br /&gt;
Along that branch, each actual release is marked with a tag. For example the Moodle 1.9 release is tagged MOODLE_19, and the 1.9.1 release is MOODLE_191. The latest 1.9.x+ weekly build is always tagged MOODLE_19_WEEKLY.&lt;br /&gt;
&lt;br /&gt;
The latest development version is what all the stable branches branch away from. It is sometimes called HEAD or TRUNK. At the moment (mid 2009) this is the development version of Moodle 2.0, but around the time we get to the Moodle 2.0 beta release we will create the MOODLE_20_STABLE branch, and HEAD will become 2.1 dev.&lt;br /&gt;
&lt;br /&gt;
As explained below you when you do a CVS checkout, you choose which version you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing and maintaining Moodle via CVS==&lt;br /&gt;
&lt;br /&gt;
===From a Unix computer===&lt;br /&gt;
&lt;br /&gt;
To connect and login for the first time to the CVS server, you can use this command (remember to replace &#039;&#039;&#039;SERVER.cvs.moodle.org&#039;&#039;&#039; in the instructions below with the mirror server you chose above):&lt;br /&gt;
&lt;br /&gt;
 cvs -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle login&lt;br /&gt;
&lt;br /&gt;
There is no password - when asked for one, just hit Enter.&lt;br /&gt;
&lt;br /&gt;
To checkout (download) the entire Moodle code for the first time, use this command to get the latest WEEKLY version (generally the latest, most bug free version):&lt;br /&gt;
&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle co -P -r MOODLE_19_WEEKLY moodle&lt;br /&gt;
&lt;br /&gt;
Or the latest development version - sometimes called HEAD - (not for production use):&lt;br /&gt;
&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle co -P moodle&lt;br /&gt;
&lt;br /&gt;
Or the modules in Contrib&lt;br /&gt;
&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle co contrib&lt;br /&gt;
&lt;br /&gt;
Later, to update your local copy of Moodle to the current version in CVS you just need to go into your local Moodle directory and type:&lt;br /&gt;
&lt;br /&gt;
 cvs update -dP&lt;br /&gt;
&lt;br /&gt;
To update your local copy of Moodle to a new version (e.g. from 1.8+ to 1.9), go into your local Moodle directory and type:&lt;br /&gt;
&lt;br /&gt;
 cvs update -dP -r MOODLE_19_STABLE&lt;br /&gt;
&lt;br /&gt;
To update your local copy of Moodle to a version from a specific date (e.g. 4th February 2009), go into your local Moodle directory and type:&lt;br /&gt;
&lt;br /&gt;
  cvs -q update -dP -r MOODLE_19_STABLE -D &amp;quot;4 Feb 2009&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To update your local copy and to save the log of the process, use the following command instead the previous one:&lt;br /&gt;
&lt;br /&gt;
 cvs update -dP -r MOODLE_19_STABLE | tee upgrade.log&lt;br /&gt;
&lt;br /&gt;
Then look at the upgrade.log, notably look for lines starting with &amp;quot;C&amp;quot; (conflict):&lt;br /&gt;
&lt;br /&gt;
 grep &#039;^C&#039; upgrade.log&lt;br /&gt;
&lt;br /&gt;
Conflicts may appear in case you have manually modified your source files. You have to resolve conflicts before using the site. See [[CVS for Developers]] for more details.&lt;br /&gt;
&lt;br /&gt;
===Changing the directory name===&lt;br /&gt;
&lt;br /&gt;
By default, the CVS checkout creates a directory on your webserver called &#039;moodle&#039;. If you want your Moodle installation in a different directory, you can change the name of the directory that it will checkout the files to, by typing the following. This would download the MOODLE_19_STABLE branch into a directory called &amp;quot;mydirectory&amp;quot; (-d mydirectory).&lt;br /&gt;
&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle co -P &#039;&#039;&#039;-d mydirectory&#039;&#039;&#039; -r MOODLE_19_STABLE moodle&lt;br /&gt;
&lt;br /&gt;
Or the latest development version to a directory called &#039;moodle-dev&#039;:&lt;br /&gt;
&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle co -P &#039;&#039;&#039;-d moodle-dev&#039;&#039;&#039; moodle&lt;br /&gt;
&lt;br /&gt;
You can also change the name of the directory after the files are downloaded, and before you go through the Moodle install process. If you change the name of the directory before install, it will not affect anything during the install or during a CVS update. If you change the name of the directory after an install, you will need to change the config.php to reflect the name change ([[Moodle_migration#Migrating_a_complete_Moodle_site|guidance here]]). It won&#039;t affect the CVS update though.&lt;br /&gt;
&lt;br /&gt;
===Change directory owner===&lt;br /&gt;
&lt;br /&gt;
Depending on your webserver setup, you may well need to change the owner of the directory to the webserver user. Follow this step if you get permissions error when you try to access the page. For apache:&lt;br /&gt;
  &lt;br /&gt;
  chown -R www-data:www-data moodle&lt;br /&gt;
&lt;br /&gt;
===From a Windows computer===&lt;br /&gt;
&lt;br /&gt;
To get started with a fresh copy of Moodle, follow the following steps (remember to replace  &#039;&#039;&#039;SERVER.cvs.moodle.org&#039;&#039;&#039; in the instructions below with the mirror server you chose above):[[Image:CVS moodle settings for tortoise CVS.jpg|thumb|Tortoise CVS Screen capture]]&lt;br /&gt;
[[Image:Ecran cvs.jpg|thumb|Tortoise CVS (real name) Screen capture]]&lt;br /&gt;
# Get TortoiseCVS from [http://www.tortoisecvs.org/ tortoisecvs.org] and install it, then reboot.&lt;br /&gt;
# Find or create a new folder somewhere where you want Moodle to be downloaded to.&lt;br /&gt;
# Right-mouse-click that folder and choose &amp;quot;CVS Checkout&amp;quot; from the menu. You should see a dialog box. &lt;br /&gt;
# Copy this text into the CVSROOT field: &amp;lt;code&amp;gt;:pserver:anonymous@SERVER.cvs.moodle.org:/cvsroot/moodle&amp;lt;/code&amp;gt;&lt;br /&gt;
#* NOTE - replace &amp;quot;SERVER&amp;quot; with &amp;quot;eu&amp;quot;, &amp;quot;es&amp;quot;, &amp;quot;uk&amp;quot; or &amp;quot;us&amp;quot; depending on your location.&lt;br /&gt;
# Under the &amp;quot;Module&amp;quot; field, type &amp;quot;moodle&amp;quot; to get moodle. (Other options here include&amp;quot;contrib&amp;quot; to get the contrib directory of hacks and addons, or &amp;quot;mysql&amp;quot; to get the optional MySQL Admin module).&lt;br /&gt;
#* For the latest STABLE version, click on the &amp;quot;Revision&amp;quot; tab and then check the radio button labelled &amp;quot;Choose branch or tag&amp;quot;. From the drop-down menu select MOODLE_18_STABLE.&lt;br /&gt;
#* If you don&#039;t see the very latest version in the long drop-down list under Branch or tag name, click the Update List button next to it and wait for the list to be updated.&lt;br /&gt;
#* For the latest UNSTABLE development version, the radio-button &amp;quot;Use HEAD branch&amp;quot; in the Revision tab should be checked.&lt;br /&gt;
# Press the button: &amp;quot;OK&amp;quot; and everything should be downloaded. &lt;br /&gt;
&lt;br /&gt;
Later, to update your local copy of Moodle to the current version in CVS, just right-mouse-click the folder and choose &amp;quot;CVS Update&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that the enclosing moodle folder is self-contained - you can move it anywhere you like or even rename it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE.-&#039;&#039;&#039; Admins with a developer account on cvs.moodle.org can connect with their account name, see attached screen shot.&lt;br /&gt;
&lt;br /&gt;
===From a Mac OS X computer===&lt;br /&gt;
You will find useful informations about CVS and Mac OS X  in the documentation for the complete installation package Moodle4Mac and for the Mac OS X Server installation. &lt;br /&gt;
&lt;br /&gt;
Please read [[Complete_Install_Packages_for_Mac_OS_X#How_To_Update_Your_Moodle4Mac | How to update your Moodle4Mac]] or [[Step_by_Step_Installation_on_a_Mac_OS_X_Server#How_to_install_and_update_Moodle_via_CVS | How to install and to update Moodle via CVS]]. It works fine with the Moodle CVS servers.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you see something like this, make sure that there is not some firewall blocking the port (it&#039;s 2401):&lt;br /&gt;
&lt;br /&gt;
 $ cvs -d:pserver:anonymous@us.cvs.moodle.org:/cvsroot/moodle login&lt;br /&gt;
 Logging in to :pserver:anonymous@us.cvs.moodle.org:2401/cvsroot/moodle&lt;br /&gt;
 CVS password:&lt;br /&gt;
 cvs [login aborted]: connect to us.cvs.moodle.org(130.212.64.111):2401 failed: Connection timed out&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Switching to a new CVS server==&lt;br /&gt;
&lt;br /&gt;
If you were &#039;&#039;already&#039;&#039; using CVS and want to switch to a different server, you&#039;ll probably need to make a small change so that the control files in your working copy will point to the new mirrors. &lt;br /&gt;
&lt;br /&gt;
===Switching to a new server on Unix===&lt;br /&gt;
&lt;br /&gt;
Use a shell command like this to change existing installations to point to the new mirror (UK mirror used in this example):&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;find . -type f -name Root -print0 | xargs -0 perl -pi -e &#039;s/\@moodle\.cvs\.sourceforge\.net/\@uk\.cvs\.moodle\.org/&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It can be run from /home, say, to fix multiple sites at once.&lt;br /&gt;
&lt;br /&gt;
===Switching to a new server with TortoiseCVS===&lt;br /&gt;
&lt;br /&gt;
If you were &#039;&#039;already&#039;&#039; using Tortoise CVS on Windows it&#039;s tricky, because Tortoise doesn&#039;t have any interface for changing the server.  http://www.tortoisecvs.org/faq.html#changecvsroot explains it.  But basically, &lt;br /&gt;
&lt;br /&gt;
 1) Install WinCVS and launch it. &lt;br /&gt;
 2) Navigate to and select your Moodle folder. &lt;br /&gt;
 3) Choose &#039;Macros&#039;-&amp;gt;CVS-&amp;gt;Change Root from the menu.  &lt;br /&gt;
 4) Accept (or change) the default for the &#039;old&#039; server. &lt;br /&gt;
 5) Type the new server name. OK!  &lt;br /&gt;
&lt;br /&gt;
It takes a few seconds to go through all of the &#039;&#039;&#039;cvs&#039;&#039;&#039; folders and update the &#039;&#039;&#039;root&#039;&#039;&#039; files.&lt;br /&gt;
&lt;br /&gt;
By the way, if you don&#039;t want to install WinCVS, another way of doing this is to uninstall your TortoiseCVS client on Windows, then do a regedit to clean up all the tortoisecvs related entries (might not be necessary), then reinstall TortoiseCVS client again (a good reason to upgrade to the most recent version of TortoiseCVS!). I have tested this and it cleared up the original setting of the original anonymous CVS server setting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Talk:CVS for Administrators]]&lt;br /&gt;
*[[Development:CVS_for_developers|CVS for developers]]&lt;br /&gt;
*[[Development:Setting up Eclipse]] for step by step instructions for setting up the [http://www.eclipse.org/ Eclipse IDE] for Moodle development, which including how to do the necessary CVS operations&lt;br /&gt;
*[[Development:Setting up Netbeans]] step by step instructions for those who prefer the [http://netbeans.org/ NetBeans IDE]. NetBeans comes with integrated CVS support.&lt;br /&gt;
* [[Development:Tracking Moodle CVS with git]]&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=26731&amp;amp;parent=125858 Using cvs]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=91891 CVS Updating of 3rd-Party Plug-ins in the Moodle folder itself]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=108196 simple question for cvs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Developer tools]]&lt;br /&gt;
&lt;br /&gt;
[[de:CVS für Administratoren]]&lt;br /&gt;
[[fr:CVS pour administrateurs]]&lt;br /&gt;
[[ja:管理者用CVS]]&lt;br /&gt;
[[ru:CVS для администраторов]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Moodle_2.0_release_notes&amp;diff=78065</id>
		<title>Moodle 2.0 release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Moodle_2.0_release_notes&amp;diff=78065"/>
		<updated>2010-11-23T09:48:52Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Corrected my email domain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
&lt;br /&gt;
Expected final release date: &#039;&#039;&#039;November, 2010&#039;&#039;&#039; (if testing goes well)&lt;br /&gt;
&lt;br /&gt;
Moodle 2.0 contains a lot of large new features, some completely rewritten features, and hundreds of bug fixes.  For full details (more than you probably want!), see [http://tracker.moodle.org/browse/MDL/fixforversion/10122 the full list of fixed issues in 2.0].&lt;br /&gt;
&lt;br /&gt;
This page is a summary of the major things to look for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Major new features==&lt;br /&gt;
&lt;br /&gt;
===[[Community hub|Community hubs]]===&lt;br /&gt;
&lt;br /&gt;
* Anybody can set up a Community hub, which is a directory of courses for public use or for private communities.  The code is implemented as separate GPL plugin for Moodle.&lt;br /&gt;
* Sites can register to any Community hub (instead of just moodle.org)&lt;br /&gt;
* Teachers on registered sites can publish their full courses to Community hubs, for download&lt;br /&gt;
* Teachers on registered sites can also advertise their courses on Community hubs, for people to join&lt;br /&gt;
* Teachers on any site can search all public Community hubs and download courses as templates for their own courses&lt;br /&gt;
* Users on any Moodle site can also search Community hubs for courses (and communities of practice) to participate in.  Initially we are encouraging &#039;&#039;&#039;&#039;communities of teaching practice&#039;&#039;&#039;&#039; but any sort of course can be listed.&lt;br /&gt;
&lt;br /&gt;
===[[Repositories|Repository support]]===&lt;br /&gt;
&lt;br /&gt;
* Moodle now supports integration with external repositories of content, making it really simple to bring documents and media into Moodle via an AJAX interface that looks like a standard &#039;&#039;&#039;Open&#039;&#039;&#039; dialogue in desktop applications.&lt;br /&gt;
* Initial plugins in 2.0 include: Alfresco, Amazon S3, Box.net, File system on Server, Flickr, Google Docs, Mahara, MERLOT, Picasa, Recent Files, Remote Moodle sites, WebDAV servers, Wikimedia, Youtube.  These are simple to develop, so many more are expected.&lt;br /&gt;
* You can also import files from your desktop or by specifying a URL.&lt;br /&gt;
&lt;br /&gt;
===[[Portfolios|Portfolio support]]===&lt;br /&gt;
&lt;br /&gt;
* Modules can now export their data to external systems, particularly useful for portfolios where snapshots of forums, assignments and other things in Moodle are useful to record in a journal or a portfolio of evidence&lt;br /&gt;
* Different formats are supported (currently LEAP2A, HTML, Images and Text, but others like PDF can be added)&lt;br /&gt;
* Initial plugins in 2.0 include: Box.net, Flickr, Google Docs, &#039;&#039;&#039;Mahara&#039;&#039;&#039; and Picasa.&lt;br /&gt;
&lt;br /&gt;
===[[Completion]]===&lt;br /&gt;
&lt;br /&gt;
* Teachers can now specify conditions that define when any &#039;&#039;&#039;activity&#039;&#039;&#039; is seen as completed by a student.  For example, when a certain number of posts have been made, or a grade has been reached, or a choice has been made.  &lt;br /&gt;
* Teachers can now specify conditions that define with any &#039;&#039;&#039;course&#039;&#039;&#039; is seen as completed by a student.  Conditions include activity completion, but could also be by grade, date or a number of other criteria.&lt;br /&gt;
* Teachers and students can see reports that show the progress of any user within a course, or through a series of courses.&lt;br /&gt;
&lt;br /&gt;
===[[Conditional activities]]===&lt;br /&gt;
&lt;br /&gt;
* Access to activities can be restricted based on certain criteria, such as dates, grade obtained, or the completion of another activity.  &lt;br /&gt;
* These can be chained together to enable progressive disclosure of the course content, if that is desired. &lt;br /&gt;
&lt;br /&gt;
===[[Cohorts]]===&lt;br /&gt;
* Also known as &amp;quot;Site-wide groups&amp;quot;, these are site-wide collections of users that can be enrolled into courses in one action, either manually or synchronised automatically&lt;br /&gt;
&lt;br /&gt;
===[[Web Services|Web services support]]===&lt;br /&gt;
* Support for standards-based web services across the entire Moodle code base, allowing the admin to expose particular functions of Moodle for use by:&lt;br /&gt;
** Administrative systems such as HR or SIS applications&lt;br /&gt;
** Mobile clients&lt;br /&gt;
* Framework contains a very high-level of security with a detailed token system and complete control over the range of functions exposed&lt;br /&gt;
* All defined functions are automatically available via:&lt;br /&gt;
** XML-RPC&lt;br /&gt;
** AMF (Flash)&lt;br /&gt;
** REST&lt;br /&gt;
** SOAP (PHP)&lt;br /&gt;
&lt;br /&gt;
===[[IMS Common Cartridge import|IMS Common Cartridge]]===&lt;br /&gt;
* Moodle can now import courses in IMS Common Cartridge format (commonly used by publishers)&lt;br /&gt;
&lt;br /&gt;
===New blocks===&lt;br /&gt;
* [[Comments block]] - like a shoutbox, allows comments to be added to any page. Great for student feedback.&lt;br /&gt;
* [[My private files block]] - allows easy access to one&#039;s private file repository in Moodle (with quota support)&lt;br /&gt;
* [[Community block]] - keeps track of external courses one is interested in &lt;br /&gt;
* [[Course completion status block]] - reports on the completion status of your courses&lt;br /&gt;
&lt;br /&gt;
===[[Plagiarism Prevention|Plagiarism prevention]]===&lt;br /&gt;
&lt;br /&gt;
* Moodle supports integration with plagiarism prevention tools such as Turnitin&lt;br /&gt;
&lt;br /&gt;
==Major improvements to existing core features==&lt;br /&gt;
&lt;br /&gt;
===[[Backup 2.0|Backup and restore]]===&lt;br /&gt;
&lt;br /&gt;
* Completely rewritten Backup/Restore framework, no longer bound by memory (can work with &#039;&#039;&#039;any size course&#039;&#039;&#039;).&lt;br /&gt;
* Completely new backup format.&lt;br /&gt;
* Improved interface.&lt;br /&gt;
* Backup can be made of whole courses, but also specific sections or activities.&lt;br /&gt;
&lt;br /&gt;
===[[Blocks 2.0|Blocks]]===&lt;br /&gt;
* Blocks are now consistently implemented on every page in Moodle&lt;br /&gt;
* No longer any limit to the block regions (in addition to left and right, put them at the top, center or bottom of pages)&lt;br /&gt;
* Any block can be made sticky (appears in all the contexts below, eg throughout a course).&lt;br /&gt;
* Blocks can be &amp;quot;docked&amp;quot; on the side of the screen (if the theme supports it)&lt;br /&gt;
&lt;br /&gt;
===[[Blogs 2.0|Blogs]]===&lt;br /&gt;
* Support for comments on each blog entry&lt;br /&gt;
* Removal of group-level and course-level blogs (these are converted into forums on upgrade)&lt;br /&gt;
* Support for external blog feeds (synchronised to Moodle blog)&lt;br /&gt;
&lt;br /&gt;
===[[Comments 2.0|Comments]]===&lt;br /&gt;
* User comments (Glossaries, Databases, Blogs, etc) are now all consistently handled  and displayed throughout Moodle, using AJAX if available&lt;br /&gt;
&lt;br /&gt;
===[[Enrolments 2.0|Enrolment plugins]]===&lt;br /&gt;
* Major improvements in the handling of guests and guest accounts &lt;br /&gt;
* Support for multiple forms of enrolment at the same time &lt;br /&gt;
* More detailed control over enrolment in courses &lt;br /&gt;
&lt;br /&gt;
===[[File handling 2.0|File handling]]===&lt;br /&gt;
&lt;br /&gt;
* Full support for Unicode file names on all operating systems.&lt;br /&gt;
* Metadata about each file (author, date, license, etc) and what the file is used for are stored in the database.&lt;br /&gt;
* Duplicate files (for example, a large video file use in two different courses) are only stored once, saving disk space.&lt;br /&gt;
* Files are no longer just &amp;quot;uploaded to the course&amp;quot;.  Files are connected to the particular bit of Moodle content that uses them. (For example, a file may belong to a file resource, a forum post or a wiki page). Access to these files is then controlled by the same rules as as that bit of Moodle, increasing security.&lt;br /&gt;
&lt;br /&gt;
===[[Filters 2.0]]===&lt;br /&gt;
&lt;br /&gt;
* In the past, you had to use the same filters everywhere in your Moodle site, and this could only be changed by admins.&lt;br /&gt;
* Now, you can have different filters in different courses, activities or categories.&lt;br /&gt;
* For example, you could turn on the LaTeX filter just for courses in the Maths and Physics categories.&lt;br /&gt;
* Or you could turn off glossary linking in the end of course exam.&lt;br /&gt;
&lt;br /&gt;
===[[HTML editor 2.0|HTML editor]]===&lt;br /&gt;
* New editor based on TinyMCE&lt;br /&gt;
* Works on more browsers&lt;br /&gt;
* Resizable editing area&lt;br /&gt;
* Cleaner XHTML output &lt;br /&gt;
* Full integration with configured external repositories to import and embed media into text&lt;br /&gt;
&lt;br /&gt;
===[[Messaging 2.0|Messaging]]===&lt;br /&gt;
* All email sent by Moodle is now treated as a message&lt;br /&gt;
* A message overview panel allows users to control how messages are sent to them&lt;br /&gt;
* Initial message output plugins in Moodle 2.0 include: Email, Jabber and Popups&lt;br /&gt;
&lt;br /&gt;
===[[My Moodle 2.0|My Moodle page]]===&lt;br /&gt;
* More customisable My Moodle page with new blocks for showing relevant information &lt;br /&gt;
* Admin can design (and optionally force) site-wide layouts for My Moodle&lt;br /&gt;
* My Moodle page given more prominence as the main &amp;quot;home page&amp;quot; for users&lt;br /&gt;
&lt;br /&gt;
===[[Navigation 2.0|Navigation]]===&lt;br /&gt;
* Standard &amp;quot;Navigation&amp;quot; block on every page showing contextual links, while allowing you to jump elsewhere quickly&lt;br /&gt;
* Standard &amp;quot;Settings&amp;quot; blocks on every page shows contextual settings as well as settings for anything else you have permissions for&lt;br /&gt;
&lt;br /&gt;
===[[Ratings 2.0|Ratings]]===&lt;br /&gt;
* User ratings (Glossaries, Databases, Forums, etc) are now all consistently handled and displayed throughout Moodle, using AJAX if available&lt;br /&gt;
* Aggregation of using ratings into activity grades is now standardised in all activities&lt;br /&gt;
&lt;br /&gt;
===[[Roles 2.0|Roles and permissions]]===&lt;br /&gt;
* Improved and simplified AJAX interfaces for defining and assigning roles&lt;br /&gt;
* Improved and simplified interfaces for tweaking permissions in any given context &lt;br /&gt;
* New &amp;quot;Archetypes&amp;quot; concept replacing the &amp;quot;Legacy roles&amp;quot; concept.&lt;br /&gt;
* New archetype &amp;quot;manager&amp;quot; to define the role of most people with system-wide editing rights, separate from &amp;quot;admin&amp;quot; role.&lt;br /&gt;
&lt;br /&gt;
===[[RSS feeds 2.0|RSS feeds]]===&lt;br /&gt;
* All RSS feeds are now secured using a random per-user token in the URL&lt;br /&gt;
* Tokens can be updated by the user at any time (if they suspect a feed URL has been compromised)&lt;br /&gt;
* RSS feeds are now more accurate (eg they support forums with separate groups), and are generated efficiently whenever required&lt;br /&gt;
&lt;br /&gt;
===[[Development:Themes 2.0|Themes]]===&lt;br /&gt;
* Many new themes in the core distribution - see [[Theme credits]] for a list&lt;br /&gt;
* All HTML and JS ouput is now far more efficient (server-side caching) and consistent (tableless layout, new CSS, YUI Framework)&lt;br /&gt;
* Themes can change the HTML of the page if they wish&lt;br /&gt;
* Core support for custom menus in all themes (for example at the top of the page)&lt;br /&gt;
&lt;br /&gt;
===[[Translation 2.0|Translation system]]===&lt;br /&gt;
* [http://lang.moodle.org/ New web portal] to make it easer for groups to collaborate on translating Moodle, and to keep their translations up-to-date.&lt;br /&gt;
* More efficient [[Development:Languages/AMOS|storage format for language strings]] should slightly improve performance.&lt;br /&gt;
&lt;br /&gt;
===User profile pages===&lt;br /&gt;
* Site-wide user profile page can be customised by users with blocks, news, feeds and so on&lt;br /&gt;
* Course-specific user profile pages show course blocks and standard profile information, plus information for teachers of that course&lt;br /&gt;
&lt;br /&gt;
==Major improvements to activity modules==&lt;br /&gt;
&lt;br /&gt;
===Lesson===&lt;br /&gt;
* Refactored internal code &lt;br /&gt;
* Forms are now standard Moodle forms&lt;br /&gt;
&lt;br /&gt;
===Quiz module and question bank===&lt;br /&gt;
&lt;br /&gt;
* [[Development:quiz_navigation|Quiz navigation improvements for students]]&lt;br /&gt;
* [[Development:Flagging_questions_during_a_quiz_attempt|Flagging questions during a quiz attempt]] &lt;br /&gt;
* [[Development:Quiz_report_enhancements|Quiz report enhancements]] - Major improvements to the quiz reports, especially regrading and item analysis&lt;br /&gt;
* [[Development:Quiz_report_statistics|Quiz report statistics]] - A brief guide&lt;br /&gt;
* [[Development:Quiz_UI_redesign|Quiz editing interface improvements]]&lt;br /&gt;
* Different settings (open/close date, number of attempts, password, time limit) for each group or student (MDL-16478)&lt;br /&gt;
* [[Development:Administration page for question types|Administration page for question types]]&lt;br /&gt;
* [[Development:Moodle 2.0 question bank improvements|Question tagging and improved searching in the question bank]]&lt;br /&gt;
* MDL-8648 Essay questions can now be randomised by random questions&lt;br /&gt;
&lt;br /&gt;
===Resource===&lt;br /&gt;
* All the resource types have been refactored into real modules, and cleaned up&lt;br /&gt;
** File - for displaying a file, possibly with supporting files (like a HTML mini-site)&lt;br /&gt;
** Folder - for displaying a collection of documents &lt;br /&gt;
** URL - for displaying a page with a given URL&lt;br /&gt;
** Page - for a single page, edited online using the HTML editor&lt;br /&gt;
** IMS - for showing a regular IMS content package&lt;br /&gt;
* Better XHTML-compliant support for frames, iframes and embedding in all these modules&lt;br /&gt;
&lt;br /&gt;
===SCORM===&lt;br /&gt;
&lt;br /&gt;
* New [[SCORM module]] settings - display attempt status, display course structure, force completed, force new attempt, lock after final attempt - allowing the behaviour dictated to the SCORM object by the authoring package to be changed MDL-11501 &lt;br /&gt;
* New reporting interface including sortable/collapsible table with group select box and ability to download in Excel, ODS and text format MDL-21555&lt;br /&gt;
* New SCORM player UI with better navigation, improved performance and better handling of stage size MDL-22951&lt;br /&gt;
&lt;br /&gt;
===[[Wiki module 2.0|Wiki]]===&lt;br /&gt;
* Completely re-written from scratch, based on NWIki from UPC&lt;br /&gt;
* Support for Mediawiki-style syntax, as well as Creole &lt;br /&gt;
* Interface improvements &lt;br /&gt;
&lt;br /&gt;
===[[Workshop module 2.0|Workshop]]===&lt;br /&gt;
&lt;br /&gt;
* Completely rewritten from scratch &lt;br /&gt;
* Vastly improved interface for managing stages and users&lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
&lt;br /&gt;
Since Moodle 2.0 is such a major release, we are allowing ourselves some increases in the requirements.&lt;br /&gt;
&lt;br /&gt;
* PHP must be 5.2.8 or later (it was released 08-Dec-2008)&lt;br /&gt;
* Databases should be one of the following:&lt;br /&gt;
** MySQL 5.0.25 or later  (InnoDB storage engine highly recommended)&lt;br /&gt;
** PostgreSQL 8.3 or later&lt;br /&gt;
** Oracle 10.2 or later&lt;br /&gt;
** MS SQL 2005 or later&lt;br /&gt;
* Any standards-supporting browser from the past few years, for example:&lt;br /&gt;
** Firefox 3 or later &lt;br /&gt;
** Safari 3 or later &lt;br /&gt;
** Google Chrome 4 or later&lt;br /&gt;
** Opera 9 or later&lt;br /&gt;
** MS Internet Explorer 7 or later (Even [http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html Google don&#039;t support IE6 any more])&lt;br /&gt;
** etc&lt;br /&gt;
&lt;br /&gt;
==Upgrading==&lt;br /&gt;
&lt;br /&gt;
When upgrading to Moodle 2.0, you must have Moodle 1.9 or later.  if you are using an earlier version of Moodle (eg 1.8.x) then you need to upgrade to Moodle 1.9.x first. We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&lt;br /&gt;
&lt;br /&gt;
For further information, see [[Upgrading to Moodle 2.0]].&lt;br /&gt;
&lt;br /&gt;
==For developers: API changes==&lt;br /&gt;
&lt;br /&gt;
See [[Development:Migrating_contrib_code_to_2.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Development:Plugin system changes in Moodle 2.0]] - all the different types of plugin are now handles more consistently when it comes to installation and upgrading, capabilities, events, and so on.&lt;br /&gt;
* [[Development:DB_layer_2.0_migration_docs|Database layer changes]] - you will need to update your code.&lt;br /&gt;
* [[Development:Using_the_file_API|File handling changes]] - you will need to update your code.&lt;br /&gt;
* [[Development:Migrating your code code to the 2.0 rendering API|Rendering layer changes]] - should be mostly backwards compatible, but you are advised to upgrade your code.&lt;br /&gt;
* Require capability used to do an automatic require_login. It no longer does so. All pages must explicitly call require_login if they need it. MDL-19882&lt;br /&gt;
* [[Development:Moodle_2.0_question_type_API_changes|Changes to the question type API]]&lt;br /&gt;
* MNet has been refactored and tidied up - related third party code needs to be checked&lt;br /&gt;
* Changes and improvements to the [[Development:Local_customisation|Local customisation system]].&lt;br /&gt;
* Javascript &lt;br /&gt;
* YUI&lt;br /&gt;
* custom profile fields values are loaded into $USER-&amp;gt;profile array instead of directly into $USER object&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
&lt;br /&gt;
These people made check-ins to Moodle 2.0 code.  Thanks to all of them, of course.  Some of these people represent a team of people who actually worked on the code.&lt;br /&gt;
&lt;br /&gt;
Robert Allerstorfer &amp;lt;anet.at&amp;gt;&lt;br /&gt;
Inaki Arenaza &amp;lt;eteo.mondragon.edu&amp;gt;&lt;br /&gt;
Aaron Barnes &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Gordon Bateson &amp;lt;kanazawa-gu.ac.jp&amp;gt;&lt;br /&gt;
John Beedell &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Aparup Banerjee &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Andrea Bicciolo &amp;lt;mtouch.it&amp;gt;&lt;br /&gt;
Anthony Borrow &amp;lt;jesuits.net&amp;gt;&lt;br /&gt;
Peter Bulmer &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Dongsheng Cai &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Matt Clarkson &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Nicolas Connault &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Andrew Davis &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Gustav Delius &amp;lt;york.ac.uk&amp;gt;&lt;br /&gt;
Martin Dougiamas &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Shane Elliott &amp;lt;shane@pukunui.com&amp;gt;&lt;br /&gt;
Ethem Evlice&lt;br /&gt;
Helen Foster &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Nicholas Freear &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Valery Fremaux&lt;br /&gt;
Dariem Garces&lt;br /&gt;
Andreas Grabs &amp;lt;grabs-edv.de&amp;gt;&lt;br /&gt;
Jenny Gray &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Jonathan Harker &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Piers Harding &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Lukas Haemmerle &amp;lt;switch.ch&amp;gt;&lt;br /&gt;
Sam Hemelryk &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Ashley Holman &amp;lt;netspot.com.au&amp;gt;&lt;br /&gt;
Luke Hudson &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Tim Hunt &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Urs Hunkler &amp;lt;unodo.de&amp;gt;&lt;br /&gt;
Mike Churchward &amp;lt;oktech.ca&amp;gt;&lt;br /&gt;
Wen Hao Chuang &amp;lt;gmail.com&amp;gt;&lt;br /&gt;
Samuli Karevaara &amp;lt;lamk.fi&amp;gt;&lt;br /&gt;
Michael Ketcham &amp;lt;microsoft.com&amp;gt;&lt;br /&gt;
Eloy Lafuente &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Martin Langhoff &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Penny Leach &amp;lt;liip.ch&amp;gt;&lt;br /&gt;
Patrick Malley &amp;lt;newschoollearning.com&amp;gt;&lt;br /&gt;
Dan Marsden &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Francois Marier &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Sam Marshall &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Donal McMullan &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Eric Merrill &amp;lt;oakland.edu&amp;gt;&lt;br /&gt;
Howard Miller  &amp;lt;e-learndesign.co.uk&amp;gt;&lt;br /&gt;
Gareth Morgan &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Jerome Mouneyrac &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
David Mudrak &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Jonathan Newman &amp;lt;catalyst.net.nz&amp;gt;&lt;br /&gt;
Mark Nielsen &amp;lt;moodlerooms.com&amp;gt;&lt;br /&gt;
Matt Oquist &amp;lt;majen.net&amp;gt;&lt;br /&gt;
Mathieu Petit-Clair &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Pierre Pichet &amp;lt;uqam.ca&amp;gt;&lt;br /&gt;
Roberto Pinna &amp;lt;mfn.unipmn.it&amp;gt;&lt;br /&gt;
Jordi Piguillem &amp;lt;upc.edu.es&amp;gt;&lt;br /&gt;
Dan Poltawski &amp;lt;luns.net.uk&amp;gt;&lt;br /&gt;
Jamie Pratt &amp;lt;jamiep.org&amp;gt;&lt;br /&gt;
Joseph Rezeau &amp;lt;rezeau.org&amp;gt;&lt;br /&gt;
Shamim Rezaie &amp;lt;rezaie.info&amp;gt;&lt;br /&gt;
Luis Rodrigues&lt;br /&gt;
Olli Savolainen&lt;br /&gt;
Petr Skoda &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
John Stabinger&lt;br /&gt;
Rossiani Wijaya &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
Derek Woolhead &amp;lt;open.ac.uk&amp;gt;&lt;br /&gt;
Mitsuhiro Yoshida &amp;lt;mitstek.com&amp;gt;&lt;br /&gt;
Yu Zhang &amp;lt;moodle.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Moodle 2.0 Preview 1 release notes]] - May 4, 2010&lt;br /&gt;
* [[Moodle 2.0 Preview 2 release notes]] - May 17, 2010&lt;br /&gt;
* [[Moodle 2.0 Preview 3 release notes]] - May 31, 2010&lt;br /&gt;
* [[Moodle 2.0 Preview 4 release notes]] - June 30, 2010&lt;br /&gt;
* [[Moodle 2.0 Release Candidate 1 release notes]] - September 21, 2010&lt;br /&gt;
&lt;br /&gt;
*[[Moodle 1.9 release notes]]&lt;br /&gt;
*[[QA testing]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Release notes]]&lt;br /&gt;
[[Category:Moodle 2.0]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Notes de mise à jour de Moodle 2.0]]&lt;br /&gt;
[[es:Notas de Moodle 2.0]]&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Installations_30000_plus&amp;diff=76866</id>
		<title>Installations 30000 plus</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Installations_30000_plus&amp;diff=76866"/>
		<updated>2010-10-19T21:34:25Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: updated our moodle stats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Large Installations}}&lt;br /&gt;
&lt;br /&gt;
==Austria==&lt;br /&gt;
&lt;br /&gt;
* Federal Ministry of Education - [http://www.eduhi.at/ education highway]: [http://www.edumoodle.at Free Moodle for Austrian schools.]&lt;br /&gt;
(Nov/2009)&lt;br /&gt;
 - 26.000 courses&lt;br /&gt;
 - 230.000 users&lt;br /&gt;
 - 1.711 schools&lt;br /&gt;
 - 2 hosting centers, about 15 servers, shared moodle sources&lt;br /&gt;
&lt;br /&gt;
==Brazil==&lt;br /&gt;
&lt;br /&gt;
* [https://moodle.eadesaf.serpro.gov.br Escola de Administração Fazendária - ESAF] &lt;br /&gt;
Hospeda mais de 1.770 cursos, com 69.883 Estudantes e 1.869 Tutores (em 01/08/2010), atendendo a vários segmentos do serviço público do Brasil.&lt;br /&gt;
&lt;br /&gt;
* [http://aprender.unb.br Universidade de Brasília] - 66,587 users (04/30/2009)&lt;br /&gt;
* [http://ead.mackenzie.br/mackenzievirtual/ Universidade Presbiteriana Mackenzie] - 43,237 users (25/06/2009)&lt;br /&gt;
&lt;br /&gt;
==Italy==&lt;br /&gt;
&lt;br /&gt;
* [http://elearning.uniroma1.it/ InfoSapienza - University of Rome La Sapienza] InfoSapienza&#039;s Moodle hosts more than 700 courses for about 48.000 students from about 25 faculties, ranging from enginering scientific courses to literature and medicine. (April, 9th 2009)&lt;br /&gt;
&lt;br /&gt;
==Spain==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ehu.es Universidad del Pais Vasco - Euskal Herriko Unibertsitatea (UPV/EHU)]: . 34.000 users and 1.650 teachers (different) in aprox. 3.650 courses. Our University have 50.000 students, 3.500 teachers. We started with Moodle 1.6 (four years ago) as a test pilot project for a small number of courses. Currently we are using version 1.9 (since 2009, February) with LDAP authentication.&lt;br /&gt;
&lt;br /&gt;
==Taiwan==&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.mcu.edu.tw Ming Chuan University]&lt;br /&gt;
 - More then 63,000 users&lt;br /&gt;
 - 33,000 users login in one day(Max)&lt;br /&gt;
&lt;br /&gt;
==United Kingdom==&lt;br /&gt;
&lt;br /&gt;
* The UK&#039;s [http://www.open.ac.uk/ Open University], a world leading institution and innovator in distance learning based in Milton Keynes, Buckinghamshire, England is well on the way to creating the world&#039;s largest Moodle installation in a £5 Million project. It is expected to host nearly 200,000 students. [http://www3.open.ac.uk/media/fullstory.aspx?id=7354 OU&#039;s News item]&lt;br /&gt;
&lt;br /&gt;
* While not a single moodle, [http://www.luns.net.uk LUNS ltd] host one of the largest clusters of Moodle installs for [http://www.cleo.net.uk/ CLEO] , with over 260,000 registered users across over 950 individual moodle installs provided to every school in Cumbria and Lancashire. Approximately 65,000 users have been active in the last month as of Jan 09.&lt;br /&gt;
&lt;br /&gt;
==United States==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sfsu.edu San Francisco State University (SFSU)] - 89,543 users (02/07/2008). Among these 89K users, about 35,430 users are considered as currently active.&lt;br /&gt;
&lt;br /&gt;
* [http://www.umn.edu/moodle University of Minnesota (UofM)] - 60,863 user accounts with around 3,000 course sites on production server. 20,994 users enrolled into academic course sites in Spring 2009. More stats: http://umn.edu/moodle/about/statistics.html&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.pcsb.org Pinellas County Schools] - 56,398 registered users who have logged in and created profiles. Over 5,000 course sites that are used for everything from K12 virtual instruction to teacher professional development.&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/id:10689&amp;diff=69435</id>
		<title>Broken/id:10689</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/id:10689&amp;diff=69435"/>
		<updated>2010-03-08T23:50:02Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: New page: The goals specified seem to cover exactly what I think the use case for &amp;#039;global groups&amp;#039; are :) --~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The goals specified seem to cover exactly what I think the use case for &#039;global groups&#039; are :) --[[User:Dan Poltawski|Dan Poltawski]] 23:50, 8 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66284</id>
		<title>Czech Hackfest 2009</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66284"/>
		<updated>2009-12-05T10:28:06Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: added paintweb to &amp;#039;agenda&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://dev.moodle.org/course/view.php?id=5 Moodle Hackfest 2009] online course&lt;br /&gt;
* Tag #moodledev09&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
; Saturday 5th December 2009 :&lt;br /&gt;
&lt;br /&gt;
* Meet each others in Prague (some arrive, some may be there already)&lt;br /&gt;
* Settle down in a hotel - Andel&#039;s hotel - [http://www.andelshotel.com], rooms booked&lt;br /&gt;
* Explore Prague (Castle, Chrles bridge, old town square, etc.)&lt;br /&gt;
* Social beer event&lt;br /&gt;
&lt;br /&gt;
; Sunday 6th December 2009 :&lt;br /&gt;
* Leaving Prague at 10:30 together by a rented micro-bus (about 120 mins)&lt;br /&gt;
* Lunch at [http://www.jested.cz Jested, Liberec] or in Liberec.&lt;br /&gt;
* Moving to the mountains (by bus or car or foot ;-), according to snow conditions)&lt;br /&gt;
* Accommodating at [http://www.dudovi.cz/jizerka/eng/ubytovani.htm Jizerka] ( [http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=jizerka&amp;amp;sll=50.82524,15.428925&amp;amp;sspn=0.298851,0.467606&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;hq=&amp;amp;hnear=Kořenov-Jizerka,+Czech+Republic&amp;amp;ll=50.822313,15.329361&amp;amp;spn=0.149435,0.233803&amp;amp;z=13 Google Maps] )&lt;br /&gt;
&lt;br /&gt;
; Monday 7th December 2009&lt;br /&gt;
* Moodle 2.0 release planning&lt;br /&gt;
* Triage of remaining bugs (assign developers, priorities)&lt;br /&gt;
* Bug sprint&lt;br /&gt;
&lt;br /&gt;
; Tuesday 8th December 2009&lt;br /&gt;
* Moodle 2.x planning&lt;br /&gt;
* Creating detailed roadmap for all modules based on tracker&lt;br /&gt;
&lt;br /&gt;
; Wednesday 9th December 2009&lt;br /&gt;
* Moodle 3.0 brainstorming and planning&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
&lt;br /&gt;
; Thursday 10th December 2009&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
* Skiiing?&lt;br /&gt;
&lt;br /&gt;
; Friday 11th December 2009 &lt;br /&gt;
* moving back to Prague on Friday&lt;br /&gt;
* more Prague sightseeing&lt;br /&gt;
* - Andel&#039;s hotel - [http://www.andelshotel.com], rooms booked&lt;br /&gt;
* official end of hackfest&lt;br /&gt;
&lt;br /&gt;
== Things to discuss ==&lt;br /&gt;
&lt;br /&gt;
* [[Development:Languages]]&lt;br /&gt;
* Synchronising grades between Gradebook and modules like quiz that automatically compute a grade. What happens if the teacher edits in the gradebook so the grade becomes locked, then the student re-attempts the quiz and gets another grade?&lt;br /&gt;
* Decide about the PARAM_XXX cleaners, where they can be used and other types of validation (just simple types, allow DB access too, only use them for param cleaning, PARAM_XXX as regexp constants, PARAM_XXX extensible via /local stuff). But in any case, must be decided and documented once and for all.&lt;br /&gt;
* Talk about adding class=&amp;quot;moodletarget_xxxx&amp;quot; to links we were sending to new page via target=&amp;quot;_xxxx&amp;quot; (non XHTML anymore) and post-process them with JS.&lt;br /&gt;
* Discuss about date/time/timezones/calendars in 2.0. One initial point of reference: MDL-18375&lt;br /&gt;
* planned changes in themes&lt;br /&gt;
* major roles and enrolment changes&lt;br /&gt;
* future of assignment module&lt;br /&gt;
* performance problems&lt;br /&gt;
* cron processing&lt;br /&gt;
* large scale moodle set-ups&lt;br /&gt;
* webservices and integrations with 3rd party systems, CLI tools&lt;br /&gt;
* Integrating paintweb?&lt;br /&gt;
&lt;br /&gt;
== Attendees and arrivals ==&lt;br /&gt;
&lt;br /&gt;
Maximum of 16 places, so far we have (in chaotic order):&lt;br /&gt;
&lt;br /&gt;
# Martin Dougiamas&lt;br /&gt;
# Eloy Lafuente&lt;br /&gt;
# Petr Skoda&lt;br /&gt;
# Tim Hunt&lt;br /&gt;
# Helen Foster&lt;br /&gt;
# Penny Leach&lt;br /&gt;
# Dan Poltawski&lt;br /&gt;
# David Mudrak&lt;br /&gt;
# Shane Elliott&lt;br /&gt;
# Chris Roy&lt;br /&gt;
# Brian King&lt;br /&gt;
# Daniele Cordella&lt;br /&gt;
# Mike Churchward&lt;br /&gt;
# Hubert Chathi&lt;br /&gt;
# Matt Oquist&lt;br /&gt;
# Kris Stokking&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
I wanted to add some ideas of things we could talk about, and for some reason I did not want to use the talk page so I am adding them here. These are just ideas. Take them or leave them.&lt;br /&gt;
&lt;br /&gt;
===What is the balance between Yack and Hack?===&lt;br /&gt;
&lt;br /&gt;
That is, how much time will we be talking, and how much time writing code on our laptops?--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Probably more yacking than hacking....&lt;br /&gt;
&lt;br /&gt;
===Planning specific bits of the post 2.0-roadmap===&lt;br /&gt;
&lt;br /&gt;
The main thing is that we keep talking about how recent released, especially 2.0, have had a lot of under the hood changes and that we really need to do some work on the actual activities themselves. I was wonder if if we should have a section of time allocated to what we consider the most important modules (or other things like the gradebook/filepicker/backup).&lt;br /&gt;
&lt;br /&gt;
In order to have meaningful discussion, I suggest that in advanced of the hackfest, each participant is assigned (or volunteers for) one of those bit. They are then expected to read every open bug and feature request for that component, and spend some time following the associated forum, and come up with a summary of what the most pressing issues there seem to be. Then at the hackfest they would lead that discussion section, kicking off by explaining to the rest of us what they learned during their research.&lt;br /&gt;
&lt;br /&gt;
Naturally, if we do this, I volunteer for the quiz and question bank. Of course, I already have a pretty good idea what is going on there. I guess this would probably be more work if people had to look at an area they had not thought about before, so that is not fair.--[[User:Tim Hunt|Tim Hunt]] ~10:00, 6 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: +1. Naturally, I volunteer for Workshop, given that the Tim&#039;s last sentence applies for my case, too. --[[User:David Mudrak|David Mudrak]] 10:51, 7 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===How about a work-on-2.0 day===&lt;br /&gt;
&lt;br /&gt;
The aim would be that by the end of the day, we have fixed as many of the Fix-for 2.0 bugs as possible, and also have reviewed all the ones that we cannot fix immediately, so we end up with a really good, triaged bug-list of what is left to be done. By the end of the day, all the bugs should be assigned to someone who feels confident they will be able to fix it.--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC) and Dan Poltawski. We discussed this at the GBBF last night.&lt;br /&gt;
&lt;br /&gt;
===&#039;Prepared&#039; Bug Squashing===&lt;br /&gt;
&lt;br /&gt;
Basically the same as the above suggestion, but I want to emphasise some preperation beforehand so that we can get to the real unsolved issues which would benefit with us all being in the same room and discussing solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With each bug we triage before the hackfest, we should try to:&lt;br /&gt;
* a) Link or close issues which have been fixed, or will be fixed by 2.0 (etc)&lt;br /&gt;
* b) Document unsolved issues which we need discussion or a plan to be fixed (&#039;&#039;&#039;this is most important for the hackfest itself&#039;&#039;&#039;)&lt;br /&gt;
* c) Document bugs which could be fixed with a little time (at the hackfest or later)&lt;br /&gt;
* d) Document bugs to pester someone else about ;-)&lt;br /&gt;
&lt;br /&gt;
Depending on how much time you can devote, I suggest trying these triaging views in order:&lt;br /&gt;
* 1) Reviewing all open bugs reported by yourself, starting oldest first.&lt;br /&gt;
* 2) Reviewing your assigned issues, starting with oldest first &lt;br /&gt;
* 3) Reviewing &#039;nobody&#039; or &#039;imported&#039; bugs starting with the oldest first.&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
There is a lot of old cruft in the tracker. Many of the issues have or will be fixed soon, so we could do a lot by just looking at our own issues and setting the status/links appropiately. For all the others, some are just without a decided solution - these would be great ones to at least think about discussing. --[[User:Dan Poltawski|Dan Poltawski]] 17:28, 15 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66053</id>
		<title>Czech Hackfest 2009</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66053"/>
		<updated>2009-11-29T22:58:20Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://dev.moodle.org/course/view.php?id=5 Moodle Hackfest 2009] online course&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
; Saturday 5th December 2009 :&lt;br /&gt;
&lt;br /&gt;
* Meet each others in Prague (some arrive, some may be there already)&lt;br /&gt;
* Settle down in a hotel - probably [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* Explore Prague (Castle etc)&lt;br /&gt;
* Social beer event&lt;br /&gt;
&lt;br /&gt;
; Sunday 6th December 2009 :&lt;br /&gt;
* Leaving Prague together by a rented micro-bus (about 120 mins)&lt;br /&gt;
* Lunch at [http://www.jested.cz Jested, Liberec].&lt;br /&gt;
* Moving to the mountains (by bus or car or foot ;-), according to snow conditions)&lt;br /&gt;
* Accommodating at [http://www.dudovi.cz/jizerka/eng/ubytovani.htm Jizerka] ( [http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=jizerka&amp;amp;sll=50.82524,15.428925&amp;amp;sspn=0.298851,0.467606&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;hq=&amp;amp;hnear=Kořenov-Jizerka,+Czech+Republic&amp;amp;ll=50.822313,15.329361&amp;amp;spn=0.149435,0.233803&amp;amp;z=13 Google Maps] )&lt;br /&gt;
&lt;br /&gt;
; Monday 7th December 2009&lt;br /&gt;
* Moodle 2.0 release planning&lt;br /&gt;
* Triage of remaining bugs (assign developers, priorities)&lt;br /&gt;
* Bug sprint&lt;br /&gt;
&lt;br /&gt;
; Tuesday 8th December 2009&lt;br /&gt;
* Moodle 2.x planning&lt;br /&gt;
* Creating detailed roadmap for all modules based on tracker&lt;br /&gt;
&lt;br /&gt;
; Wednesday 9th December 2009&lt;br /&gt;
* Moodle 3.0 brainstorming and planning&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
&lt;br /&gt;
; Thursday 10th December 2009&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
* Skiiing?&lt;br /&gt;
&lt;br /&gt;
; Friday 11th December 2009 &lt;br /&gt;
* moving back to Prague on Friday&lt;br /&gt;
* more Prague sightseeing&lt;br /&gt;
* Settle down in a hotel - probably again [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* official end of hackfest&lt;br /&gt;
&lt;br /&gt;
== Things to discuss ==&lt;br /&gt;
&lt;br /&gt;
* [[Development:Languages]]&lt;br /&gt;
* Synchronising grades between Gradebook and modules like quiz that automatically compute a grade. What happens if the teacher edits in the gradebook so the grade becomes locked, then the student re-attempts the quiz and gets another grade?&lt;br /&gt;
&lt;br /&gt;
== Attendees and arrivals ==&lt;br /&gt;
&lt;br /&gt;
Maximum of 16 places, so far we have (in chaotic order):&lt;br /&gt;
&lt;br /&gt;
# Martin Dougiamas&lt;br /&gt;
# Eloy Lafuente&lt;br /&gt;
# Petr Skoda&lt;br /&gt;
# Tim Hunt&lt;br /&gt;
# Helen Foster&lt;br /&gt;
# Penny Leach&lt;br /&gt;
# Dan Poltawski&lt;br /&gt;
# David Mudrak&lt;br /&gt;
# Shane Elliott&lt;br /&gt;
# Chris Roy&lt;br /&gt;
# Brian King&lt;br /&gt;
# Daniele Cordella&lt;br /&gt;
# Mike Churchward&lt;br /&gt;
# Hubert Chathi&lt;br /&gt;
# Matt Oquist&lt;br /&gt;
# Kris Stokking&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
I wanted to add some ideas of things we could talk about, and for some reason I did not want to use the talk page so I am adding them here. These are just ideas. Take them or leave them.&lt;br /&gt;
&lt;br /&gt;
===What is the balance between Yack and Hack?===&lt;br /&gt;
&lt;br /&gt;
That is, how much time will we be talking, and how much time writing code on our laptops?--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Planning specific bits of the post 2.0-roadmap===&lt;br /&gt;
&lt;br /&gt;
The main thing is that we keep talking about how recent released, especially 2.0, have had a lot of under the hood changes and that we really need to do some work on the actual activities themselves. I was wonder if if we should have a section of time allocated to what we consider the most important modules (or other things like the gradebook/filepicker/backup).&lt;br /&gt;
&lt;br /&gt;
In order to have meaningful discussion, I suggest that in advanced of the hackfest, each participant is assigned (or volunteers for) one of those bit. They are then expected to read every open bug and feature request for that component, and spend some time following the associated forum, and come up with a summary of what the most pressing issues there seem to be. Then at the hackfest they would lead that discussion section, kicking off by explaining to the rest of us what they learned during their research.&lt;br /&gt;
&lt;br /&gt;
Naturally, if we do this, I volunteer for the quiz and question bank. Of course, I already have a pretty good idea what is going on there. I guess this would probably be more work if people had to look at an area they had not thought about before, so that is not fair.--[[User:Tim Hunt|Tim Hunt]] ~10:00, 6 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: +1. Naturally, I volunteer for Workshop, given that the Tim&#039;s last sentence applies for my case, too. --[[User:David Mudrak|David Mudrak]] 10:51, 7 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===How about a work-on-2.0 day===&lt;br /&gt;
&lt;br /&gt;
The aim would be that by the end of the day, we have fixed as many of the Fix-for 2.0 bugs as possible, and also have reviewed all the ones that we cannot fix immediately, so we end up with a really good, triaged bug-list of what is left to be done. By the end of the day, all the bugs should be assigned to someone who feels confident they will be able to fix it.--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC) and Dan Poltawski. We discussed this at the GBBF last night.&lt;br /&gt;
&lt;br /&gt;
===&#039;Prepared&#039; Bug Squashing===&lt;br /&gt;
&lt;br /&gt;
Basically the same as the above suggestion, but I want to emphasise some preperation beforehand so that we can get to the real unsolved issues which would benefit with us all being in the same room and discussing solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With each bug we triage before the hackfest, we should try to:&lt;br /&gt;
* a) Link or close issues which have been fixed, or will be fixed by 2.0 (etc)&lt;br /&gt;
* b) Document unsolved issues which we need discussion or a plan to be fixed (&#039;&#039;&#039;this is most important for the hackfest itself&#039;&#039;&#039;)&lt;br /&gt;
* c) Document bugs which could be fixed with a little time (at the hackfest or later)&lt;br /&gt;
* d) Document bugs to pester someone else about ;-)&lt;br /&gt;
&lt;br /&gt;
Depending on how much time you can devote, I suggest trying these triaging views in order:&lt;br /&gt;
* 1) Reviewing all open bugs reported by yourself, starting oldest first.&lt;br /&gt;
* 2) Reviewing your assigned issues, starting with oldest first &lt;br /&gt;
* 3) Reviewing &#039;nobody&#039; or &#039;imported&#039; bugs starting with the oldest first.&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
There is a lot of old cruft in the tracker. Many of the issues have or will be fixed soon, so we could do a lot by just looking at our own issues and setting the status/links appropiately. For all the others, some are just without a decided solution - these would be great ones to at least think about discussing. --[[User:Dan Poltawski|Dan Poltawski]] 17:28, 15 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66052</id>
		<title>Czech Hackfest 2009</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=66052"/>
		<updated>2009-11-29T22:55:54Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: adding a google maps link because I keep wanting to link to it ;-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Work in progress here - do not rely on this yet.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://dev.moodle.org/course/view.php?id=5 Moodle Hackfest 2009] online course&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
; Saturday 5th December 2009 :&lt;br /&gt;
&lt;br /&gt;
* Meet each others in Prague (some arrive, some may be there already)&lt;br /&gt;
* Settle down in a hotel - probably [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* Explore Prague (Castle etc)&lt;br /&gt;
* Social beer event&lt;br /&gt;
&lt;br /&gt;
; Sunday 6th December 2009 :&lt;br /&gt;
* Leaving Prague together by a rented micro-bus (about 120 mins)&lt;br /&gt;
* Lunch at [http://www.jested.cz Jested, Liberec].&lt;br /&gt;
* Moving to the mountains (by bus or car or foot ;-), according to snow conditions)&lt;br /&gt;
* Accommodating at [http://www.dudovi.cz/jizerka/eng/ubytovani.htm Jizerka] ( [http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=jizerka&amp;amp;sll=50.82524,15.428925&amp;amp;sspn=0.298851,0.467606&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;hq=&amp;amp;hnear=Kořenov-Jizerka,+Czech+Republic&amp;amp;ll=50.822313,15.329361&amp;amp;spn=0.149435,0.233803&amp;amp;z=13 Google Maps] )&lt;br /&gt;
&lt;br /&gt;
; Monday 7th December 2009&lt;br /&gt;
* Moodle 2.0 release planning&lt;br /&gt;
* Triage of remaining bugs (assign developers, priorities)&lt;br /&gt;
* Bug sprint&lt;br /&gt;
&lt;br /&gt;
; Tuesday 8th December 2009&lt;br /&gt;
* Moodle 2.x planning&lt;br /&gt;
* Creating detailed roadmap for all modules based on tracker&lt;br /&gt;
&lt;br /&gt;
; Wednesday 9th December 2009&lt;br /&gt;
* Moodle 3.0 brainstorming and planning&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
&lt;br /&gt;
; Thursday 10th December 2009&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
* Skiiing?&lt;br /&gt;
&lt;br /&gt;
; Friday 11th December 2009 &lt;br /&gt;
* moving back to Prague on Friday&lt;br /&gt;
* more Prague sightseeing&lt;br /&gt;
* Settle down in a hotel - probably again [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* official end of hackfest&lt;br /&gt;
&lt;br /&gt;
== Things to discuss ==&lt;br /&gt;
&lt;br /&gt;
* [[Development:Languages]]&lt;br /&gt;
* Synchronising grades between Gradebook and modules like quiz that automatically compute a grade. What happens if the teacher edits in the gradebook so the grade becomes locked, then the student re-attempts the quiz and gets another grade?&lt;br /&gt;
&lt;br /&gt;
== Attendees and arrivals ==&lt;br /&gt;
&lt;br /&gt;
Maximum of 16 places, so far we have (in chaotic order):&lt;br /&gt;
&lt;br /&gt;
# Martin Dougiamas&lt;br /&gt;
# Eloy Lafuente&lt;br /&gt;
# Petr Skoda&lt;br /&gt;
# Tim Hunt&lt;br /&gt;
# Helen Foster&lt;br /&gt;
# Penny Leach&lt;br /&gt;
# Dan Poltawski&lt;br /&gt;
# David Mudrak&lt;br /&gt;
# Shane Elliott&lt;br /&gt;
# Chris Roy&lt;br /&gt;
# Brian King&lt;br /&gt;
# Daniele Cordella&lt;br /&gt;
# Mike Churchward&lt;br /&gt;
# Hubert Chathi&lt;br /&gt;
# Matt Oquist&lt;br /&gt;
# Kris Stokking&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
I wanted to add some ideas of things we could talk about, and for some reason I did not want to use the talk page so I am adding them here. These are just ideas. Take them or leave them.&lt;br /&gt;
&lt;br /&gt;
===What is the balance between Yack and Hack?===&lt;br /&gt;
&lt;br /&gt;
That is, how much time will we be talking, and how much time writing code on our laptops?--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Planning specific bits of the post 2.0-roadmap===&lt;br /&gt;
&lt;br /&gt;
The main thing is that we keep talking about how recent released, especially 2.0, have had a lot of under the hood changes and that we really need to do some work on the actual activities themselves. I was wonder if if we should have a section of time allocated to what we consider the most important modules (or other things like the gradebook/filepicker/backup).&lt;br /&gt;
&lt;br /&gt;
In order to have meaningful discussion, I suggest that in advanced of the hackfest, each participant is assigned (or volunteers for) one of those bit. They are then expected to read every open bug and feature request for that component, and spend some time following the associated forum, and come up with a summary of what the most pressing issues there seem to be. Then at the hackfest they would lead that discussion section, kicking off by explaining to the rest of us what they learned during their research.&lt;br /&gt;
&lt;br /&gt;
Naturally, if we do this, I volunteer for the quiz and question bank. Of course, I already have a pretty good idea what is going on there. I guess this would probably be more work if people had to look at an area they had not thought about before, so that is not fair.--[[User:Tim Hunt|Tim Hunt]] ~10:00, 6 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: +1. Naturally, I volunteer for Workshop, given that the Tim&#039;s last sentence applies for my case, too. --[[User:David Mudrak|David Mudrak]] 10:51, 7 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===How about a work-on-2.0 day===&lt;br /&gt;
&lt;br /&gt;
The aim would be that by the end of the day, we have fixed as many of the Fix-for 2.0 bugs as possible, and also have reviewed all the ones that we cannot fix immediately, so we end up with a really good, triaged bug-list of what is left to be done. By the end of the day, all the bugs should be assigned to someone who feels confident they will be able to fix it.--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC) and Dan Poltawski. We discussed this at the GBBF last night.&lt;br /&gt;
&lt;br /&gt;
===&#039;Prepared&#039; Bug Squashing===&lt;br /&gt;
&lt;br /&gt;
Basically the same as the above suggestion, but I want to emphasise some preperation beforehand so that we can get to the real unsolved issues which would benefit with us all being in the same room and discussing solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With each bug we triage before the hackfest, we should try to:&lt;br /&gt;
* a) Link or close issues which have been fixed, or will be fixed by 2.0 (etc)&lt;br /&gt;
* b) Document unsolved issues which we need discussion or a plan to be fixed (&#039;&#039;&#039;this is most important for the hackfest itself&#039;&#039;&#039;)&lt;br /&gt;
* c) Document bugs which could be fixed with a little time (at the hackfest or later)&lt;br /&gt;
* d) Document bugs to pester someone else about ;-)&lt;br /&gt;
&lt;br /&gt;
Depending on how much time you can devote, I suggest trying these triaging views in order:&lt;br /&gt;
* 1) Reviewing all open bugs reported by yourself, starting oldest first.&lt;br /&gt;
* 2) Reviewing your assigned issues, starting with oldest first &lt;br /&gt;
* 3) Reviewing &#039;nobody&#039; or &#039;imported&#039; bugs starting with the oldest first.&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
There is a lot of old cruft in the tracker. Many of the issues have or will be fixed soon, so we could do a lot by just looking at our own issues and setting the status/links appropiately. For all the others, some are just without a decided solution - these would be great ones to at least think about discussing. --[[User:Dan Poltawski|Dan Poltawski]] 17:28, 15 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64840</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64840"/>
		<updated>2009-11-01T19:52:14Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* php-simpletest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;br /&gt;
&lt;br /&gt;
== nusoap ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529573&lt;br /&gt;
&lt;br /&gt;
Doesn&#039;t need to be used on debian since we have php5 and soap extension. Removing&lt;br /&gt;
&lt;br /&gt;
== php-simpletest ==&lt;br /&gt;
Need to investigate..&lt;br /&gt;
&lt;br /&gt;
: I believe there are a few Moodle-specific tweaks - look in the code:--[[User:Tim Hunt|Tim Hunt]] 19:10, 1 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Just seems to be declaring the $CFG global:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
diff --git a/lib/simpletestlib/test_case.php b/lib/simpletestlib/test_case.php&lt;br /&gt;
index 62d0349..91835a3 100644&lt;br /&gt;
--- a/lib/simpletestlib/test_case.php&lt;br /&gt;
+++ b/lib/simpletestlib/test_case.php&lt;br /&gt;
@@ -458,6 +458,7 @@&lt;br /&gt;
          */&lt;br /&gt;
         function _requireWithError($file) {&lt;br /&gt;
             $this-&amp;gt;_enableErrorReporting();&lt;br /&gt;
+            global $CFG; // Moodle patch for $CFG global in unit test files&lt;br /&gt;
             include($file);&lt;br /&gt;
             $error = isset($php_errormsg) ? $php_errormsg : false;&lt;br /&gt;
             $this-&amp;gt;_disableErrorReporting();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64834</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64834"/>
		<updated>2009-11-01T17:59:30Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;br /&gt;
&lt;br /&gt;
== nusoap ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529573&lt;br /&gt;
&lt;br /&gt;
Doesn&#039;t need to be used on debian since we have php5 and soap extension. Removing&lt;br /&gt;
&lt;br /&gt;
== php-simpletest ==&lt;br /&gt;
Need to investigate..&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64833</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64833"/>
		<updated>2009-11-01T17:52:55Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* Removing Embedded Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;br /&gt;
&lt;br /&gt;
== nusoap ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529573&lt;br /&gt;
&lt;br /&gt;
Doesn&#039;t need to be used on debian since we have php5 and soap extension. Removing&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64831</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64831"/>
		<updated>2009-11-01T12:23:21Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* nusoap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== kses ==&lt;br /&gt;
== domxml-php4-to-php5.php ==&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;br /&gt;
&lt;br /&gt;
== nusoap ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529573&lt;br /&gt;
&lt;br /&gt;
Can be done&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64830</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64830"/>
		<updated>2009-11-01T12:15:33Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* Removing Embedded Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== kses ==&lt;br /&gt;
== domxml-php4-to-php5.php ==&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;br /&gt;
&lt;br /&gt;
== nusoap ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529573&lt;br /&gt;
Can be done&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64829</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64829"/>
		<updated>2009-11-01T12:01:45Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* libphp-snoopy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Lookes like the changes are only in cosmetics. Can go.&lt;br /&gt;
&lt;br /&gt;
== kses ==&lt;br /&gt;
== domxml-php4-to-php5.php ==&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64828</id>
		<title>Debian Packaging Team</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Debian_Packaging_Team&amp;diff=64828"/>
		<updated>2009-11-01T11:42:47Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: New page: This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)  = Removing Embedded Libraries =  == phpmailer == h...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a shameless abuse of the moodle docs wiki for the debian packaging team to keep track of their goals and not loose mind ;-)&lt;br /&gt;
&lt;br /&gt;
= Removing Embedded Libraries =&lt;br /&gt;
&lt;br /&gt;
== phpmailer ==&lt;br /&gt;
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429339&lt;br /&gt;
&lt;br /&gt;
We can probably fix this by helping changing the way that phpmailer is used in moodle, See MDL-20701&lt;br /&gt;
&lt;br /&gt;
== tinymce ==&lt;br /&gt;
In Moodle 1.9 this is not being used (I dont think). In Moodle 2.0 this needs thinking about&lt;br /&gt;
&lt;br /&gt;
== libphp-adodb ==&lt;br /&gt;
Won&#039;t fix. Moodle customise it.&lt;br /&gt;
&lt;br /&gt;
== libphp-snoopy ==&lt;br /&gt;
Probably won&#039;t fix. Maybe we can remove customisations in packaging.&lt;br /&gt;
&lt;br /&gt;
== kses ==&lt;br /&gt;
== domxml-php4-to-php5.php ==&lt;br /&gt;
== libmarkdown-php ==&lt;br /&gt;
We can&#039;t fix this one, moodle uses markdown extra&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=62076</id>
		<title>Broken/Theme changes in 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=62076"/>
		<updated>2009-08-25T21:56:19Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: /* Caching of &amp;#039;minified&amp;#039; unified stylesheet? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think this is a great system. Some comments on specific issues:&lt;br /&gt;
&lt;br /&gt;
1. Browser-specific stylesheets - is it time to move away from these?&lt;br /&gt;
&lt;br /&gt;
The OU system for this is a lot better. We add special classes to body (in addition to whatever&#039;s normally there), so you have &lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;ie ie7&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;gecko gecko19&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Classes indicate the browser engine and version so that we can specify a generic engine if a problem affects all versions, or a specific version.&lt;br /&gt;
&lt;br /&gt;
This means you can put the IE exceptions right next to the standard rules and they can be included in all stylesheets for any module. So you do&lt;br /&gt;
&lt;br /&gt;
 #mypage .whatever {&lt;br /&gt;
   /** normal rules */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .ie6#mypage .whatever {&lt;br /&gt;
   /** broken rules */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note that we don&#039;t just need exceptions for IE. Over time we&#039;ve needed rare (single) exceptions for Firefox (hence &#039;gecko&#039; stuff above; the issue was actually only in gecko18 I think) and WebKit too.&lt;br /&gt;
&lt;br /&gt;
IMO this system should be adopted in core Moodle. It&#039;s very simple and is far preferable to either CSS hacks (appalling) or separate stylesheets (unmaintainable).&lt;br /&gt;
&lt;br /&gt;
2. Debugging mode&lt;br /&gt;
&lt;br /&gt;
Maybe developer debug mode should send a special revision number (rev=debug) in order to regenerate the css every time, and send it without the expires header etc. That would probably make it pretty slow though. &lt;br /&gt;
&lt;br /&gt;
Alternatively, this could be an additional option in the debugging page so that you can turn on &#039;CSS debugging&#039; which would sent the rev=debug on every page, and turn it off when debugging other stuff that isn&#039;t css.&lt;br /&gt;
&lt;br /&gt;
having to manually update the number every single time you change css would be a huge annoyance when debugging css problems imo so I think one of these solutions is better.&lt;br /&gt;
&lt;br /&gt;
3. Removing comments&lt;br /&gt;
&lt;br /&gt;
Removing comments would be great. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not only a performance issue, but:&lt;br /&gt;
&lt;br /&gt;
a. Because of the performance concern developers (including me) tend to not include comments at all, this is really bad for maintainability.&lt;br /&gt;
&lt;br /&gt;
b. If a student looks into our code and it says something &#039;unprofessional&#039; like &#039;only needed because IE sucks&#039; they might in theory complain - yes I have genuinely had a student complaint for using the word &#039;sucks&#039; in public - so this is another discouragement for developers to comment properly.&lt;br /&gt;
&lt;br /&gt;
4. Performance&lt;br /&gt;
&lt;br /&gt;
If these are served for lifetime (ie expires 10 years in future) as they should be, I think this would actually improve performance for most sites (that see a lot of repeat visits), even if it takes 50x longer to serve the css itself...&lt;br /&gt;
&lt;br /&gt;
That&#039;s it, everything else is awesome. :)&lt;br /&gt;
&lt;br /&gt;
[[User:sam marshall|sam marshall]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. from sam&#039;s suggestions is already done. We should make sure it is not lost in any changes.&lt;br /&gt;
&lt;br /&gt;
I don&#039;t see any point in multiple parent themes. Too complicated. Theme + parent + standard is sufficient. I guess once you are at two parents like that, it is no harder to code a general array, it is just much easier for theme developers to screw up. Oh, I guess there is not harm in the extra flexibility.&lt;br /&gt;
&lt;br /&gt;
No problem that this does not include -&amp;gt;requires-&amp;gt;css. We should comment that to make it clear that you rarely need to use it, but keep it as an emergency fallback for people who are doing random customisations.&lt;br /&gt;
&lt;br /&gt;
I proposed getting rid of meta.php before, but martin vetoed it. Somewhere in the themes  forum is a post form me where I list all the ways it is currently used in core and contrib. I still think we should get rid of it.&lt;br /&gt;
&lt;br /&gt;
Moodle 1.9 themes still work in Moodle 2.0. I would like that to continue to be true. I think it is still possible. Look at the code in theme_config class for handling legacy config.php files, and the code in deprecatedlib.php that implements the old function for serving CSS.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tim Hunt|Tim Hunt]] 17:00, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. yes, I considered this too - I called this theme designer mode. I am not a big friend to using DEBUG_DEVELOPER for this, that is why I proposed it as separate option.&lt;br /&gt;
&lt;br /&gt;
Why not multiple parents when it is so easy to implement?&lt;br /&gt;
&lt;br /&gt;
I do not understand the &amp;quot;emergency need&amp;quot; for -&amp;gt;requires-&amp;gt;css() - the /local/ plug-ins are the correct place for emergency hacks, not the core. You just create new dir in /local/something/styles.css and it will be included automatically on all pages. The problem with custom CSS is that it can not fit into the one huge stylesheet - you can not load it before it because YUI reset will alter it and also after because it would not by style-able via themes which is not an option imo.&lt;br /&gt;
&lt;br /&gt;
I wanted to intentionally disable all old themes, I agree it should be as easy to upgrade as possible, but I still think that admins should be required to take some actions manually or else they will keep complaining that themes are &amp;quot;broken&amp;quot; in 2.0 and nobody told them they should update them. I think the ideal solution would be to allow easy downloads of themes via the Moodle UI instead of full backwards compatibility :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Petr Škoda (škoďák)|Petr Škoda (škoďák)]] 19:34, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think the thing is that for a lot of less experienced admins, for example, the teacher in a school who does it in their same time, they may have tinkered with their theme in the past (or the person before them may have) and they may not remember what was done. Tinkering with the theme, for example changing the logo or a few colours, may be one of the most  For them, we want the upgrade to be as simple as possible. If we cannot keep their old theme working, is there any way we can automate the upgrade? Or do we just encourage them to use one of Patrick Malley&#039;s nice new themes, and show them how easy it is to add their own logo to one?--[[User:Tim Hunt|Tim Hunt]] 20:09, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
I like the sound of these proposals generally.&lt;br /&gt;
&lt;br /&gt;
1) Themes in dataroot: I assume the intention is to completely remove any executable code in these themes?&lt;br /&gt;
&lt;br /&gt;
2) Breaking backwards compatibility: This is the one close to my heart, I just did a quick find and it&#039;ll mean we have to update 1003 custom themes (as today stands) which will obviously be a big barrier to Moodle 2.0 upgrade. Having said that I don&#039;t necessarily think its a bad idea. Having &#039;limited&#039; backwards compatibility where by the theme &#039;just&#039; works might be of limited value (i&#039;m sure we&#039;d need to convert all themes eventually anyway). We need to come up with clear reasons why we need to break backwards compatibility to satisfy less tolerant people than me though ;-)&lt;br /&gt;
&lt;br /&gt;
3) Removing $CFG-&amp;gt;themeww/themedir. From anecdotal evidence I think I might be the only person in the world using this feature and I think there are probably better ways to achieve what we are doing, so I am not going to argue very hard to keep it..&lt;br /&gt;
&lt;br /&gt;
I wrote some guidelines to give theme authors a few years ago, which sort of documents the stupid things we get in submitted themes (overriding all styles, uncessarily altering header/footer etc). I put these in Moodle Docs, might be interesting to you or not: [[CLEO_Moodle_Theme_Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In most cases, the &#039;flexibilty/power&#039; we give theme authors at the moment leads to more breakage due to use of unnecessary modifications in something which could be achieved in a 10 line css file..&lt;br /&gt;
&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 09:45, 22 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
== Caching of &#039;minified&#039; unified stylesheet? ==&lt;br /&gt;
Shortly after Tim did his javascript cleanup, I did a hacky little test of minifying all included javascript and caching it by md5 hash. I didn&#039;t get very far, but one thing I did notice was that the minification process was surprisingly slow. Serving the single stylesheet might suffer from this problem also if we do additional processing. Do we need caching of the compiled stylesheets?&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 19:29, 25 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, we definitely need caching. I am pretty sure that is in the proposal.--[[User:Tim Hunt|Tim Hunt]] 21:18, 25 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Apologies.. just found &#039;storing of final CSS files in dataroot - caches need to be deleted after each theme revision change; this could significantly reduce server load&#039; --[[User:Dan Poltawski|Dan Poltawski]] 21:56, 25 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=62071</id>
		<title>Broken/Theme changes in 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=62071"/>
		<updated>2009-08-25T19:29:37Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think this is a great system. Some comments on specific issues:&lt;br /&gt;
&lt;br /&gt;
1. Browser-specific stylesheets - is it time to move away from these?&lt;br /&gt;
&lt;br /&gt;
The OU system for this is a lot better. We add special classes to body (in addition to whatever&#039;s normally there), so you have &lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;ie ie7&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;gecko gecko19&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Classes indicate the browser engine and version so that we can specify a generic engine if a problem affects all versions, or a specific version.&lt;br /&gt;
&lt;br /&gt;
This means you can put the IE exceptions right next to the standard rules and they can be included in all stylesheets for any module. So you do&lt;br /&gt;
&lt;br /&gt;
 #mypage .whatever {&lt;br /&gt;
   /** normal rules */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .ie6#mypage .whatever {&lt;br /&gt;
   /** broken rules */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note that we don&#039;t just need exceptions for IE. Over time we&#039;ve needed rare (single) exceptions for Firefox (hence &#039;gecko&#039; stuff above; the issue was actually only in gecko18 I think) and WebKit too.&lt;br /&gt;
&lt;br /&gt;
IMO this system should be adopted in core Moodle. It&#039;s very simple and is far preferable to either CSS hacks (appalling) or separate stylesheets (unmaintainable).&lt;br /&gt;
&lt;br /&gt;
2. Debugging mode&lt;br /&gt;
&lt;br /&gt;
Maybe developer debug mode should send a special revision number (rev=debug) in order to regenerate the css every time, and send it without the expires header etc. That would probably make it pretty slow though. &lt;br /&gt;
&lt;br /&gt;
Alternatively, this could be an additional option in the debugging page so that you can turn on &#039;CSS debugging&#039; which would sent the rev=debug on every page, and turn it off when debugging other stuff that isn&#039;t css.&lt;br /&gt;
&lt;br /&gt;
having to manually update the number every single time you change css would be a huge annoyance when debugging css problems imo so I think one of these solutions is better.&lt;br /&gt;
&lt;br /&gt;
3. Removing comments&lt;br /&gt;
&lt;br /&gt;
Removing comments would be great. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not only a performance issue, but:&lt;br /&gt;
&lt;br /&gt;
a. Because of the performance concern developers (including me) tend to not include comments at all, this is really bad for maintainability.&lt;br /&gt;
&lt;br /&gt;
b. If a student looks into our code and it says something &#039;unprofessional&#039; like &#039;only needed because IE sucks&#039; they might in theory complain - yes I have genuinely had a student complaint for using the word &#039;sucks&#039; in public - so this is another discouragement for developers to comment properly.&lt;br /&gt;
&lt;br /&gt;
4. Performance&lt;br /&gt;
&lt;br /&gt;
If these are served for lifetime (ie expires 10 years in future) as they should be, I think this would actually improve performance for most sites (that see a lot of repeat visits), even if it takes 50x longer to serve the css itself...&lt;br /&gt;
&lt;br /&gt;
That&#039;s it, everything else is awesome. :)&lt;br /&gt;
&lt;br /&gt;
[[User:sam marshall|sam marshall]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. from sam&#039;s suggestions is already done. We should make sure it is not lost in any changes.&lt;br /&gt;
&lt;br /&gt;
I don&#039;t see any point in multiple parent themes. Too complicated. Theme + parent + standard is sufficient. I guess once you are at two parents like that, it is no harder to code a general array, it is just much easier for theme developers to screw up. Oh, I guess there is not harm in the extra flexibility.&lt;br /&gt;
&lt;br /&gt;
No problem that this does not include -&amp;gt;requires-&amp;gt;css. We should comment that to make it clear that you rarely need to use it, but keep it as an emergency fallback for people who are doing random customisations.&lt;br /&gt;
&lt;br /&gt;
I proposed getting rid of meta.php before, but martin vetoed it. Somewhere in the themes  forum is a post form me where I list all the ways it is currently used in core and contrib. I still think we should get rid of it.&lt;br /&gt;
&lt;br /&gt;
Moodle 1.9 themes still work in Moodle 2.0. I would like that to continue to be true. I think it is still possible. Look at the code in theme_config class for handling legacy config.php files, and the code in deprecatedlib.php that implements the old function for serving CSS.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tim Hunt|Tim Hunt]] 17:00, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. yes, I considered this too - I called this theme designer mode. I am not a big friend to using DEBUG_DEVELOPER for this, that is why I proposed it as separate option.&lt;br /&gt;
&lt;br /&gt;
Why not multiple parents when it is so easy to implement?&lt;br /&gt;
&lt;br /&gt;
I do not understand the &amp;quot;emergency need&amp;quot; for -&amp;gt;requires-&amp;gt;css() - the /local/ plug-ins are the correct place for emergency hacks, not the core. You just create new dir in /local/something/styles.css and it will be included automatically on all pages. The problem with custom CSS is that it can not fit into the one huge stylesheet - you can not load it before it because YUI reset will alter it and also after because it would not by style-able via themes which is not an option imo.&lt;br /&gt;
&lt;br /&gt;
I wanted to intentionally disable all old themes, I agree it should be as easy to upgrade as possible, but I still think that admins should be required to take some actions manually or else they will keep complaining that themes are &amp;quot;broken&amp;quot; in 2.0 and nobody told them they should update them. I think the ideal solution would be to allow easy downloads of themes via the Moodle UI instead of full backwards compatibility :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Petr Škoda (škoďák)|Petr Škoda (škoďák)]] 19:34, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think the thing is that for a lot of less experienced admins, for example, the teacher in a school who does it in their same time, they may have tinkered with their theme in the past (or the person before them may have) and they may not remember what was done. Tinkering with the theme, for example changing the logo or a few colours, may be one of the most  For them, we want the upgrade to be as simple as possible. If we cannot keep their old theme working, is there any way we can automate the upgrade? Or do we just encourage them to use one of Patrick Malley&#039;s nice new themes, and show them how easy it is to add their own logo to one?--[[User:Tim Hunt|Tim Hunt]] 20:09, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
I like the sound of these proposals generally.&lt;br /&gt;
&lt;br /&gt;
1) Themes in dataroot: I assume the intention is to completely remove any executable code in these themes?&lt;br /&gt;
&lt;br /&gt;
2) Breaking backwards compatibility: This is the one close to my heart, I just did a quick find and it&#039;ll mean we have to update 1003 custom themes (as today stands) which will obviously be a big barrier to Moodle 2.0 upgrade. Having said that I don&#039;t necessarily think its a bad idea. Having &#039;limited&#039; backwards compatibility where by the theme &#039;just&#039; works might be of limited value (i&#039;m sure we&#039;d need to convert all themes eventually anyway). We need to come up with clear reasons why we need to break backwards compatibility to satisfy less tolerant people than me though ;-)&lt;br /&gt;
&lt;br /&gt;
3) Removing $CFG-&amp;gt;themeww/themedir. From anecdotal evidence I think I might be the only person in the world using this feature and I think there are probably better ways to achieve what we are doing, so I am not going to argue very hard to keep it..&lt;br /&gt;
&lt;br /&gt;
I wrote some guidelines to give theme authors a few years ago, which sort of documents the stupid things we get in submitted themes (overriding all styles, uncessarily altering header/footer etc). I put these in Moodle Docs, might be interesting to you or not: [[CLEO_Moodle_Theme_Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In most cases, the &#039;flexibilty/power&#039; we give theme authors at the moment leads to more breakage due to use of unnecessary modifications in something which could be achieved in a 10 line css file..&lt;br /&gt;
&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 09:45, 22 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
== Caching of &#039;minified&#039; unified stylesheet? ==&lt;br /&gt;
Shortly after Tim did his javascript cleanup, I did a hacky little test of minifying all included javascript and caching it by md5 hash. I didn&#039;t get very far, but one thing I did notice was that the minification process was surprisingly slow. Serving the single stylesheet might suffer from this problem also if we do additional processing. Do we need caching of the compiled stylesheets?&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 19:29, 25 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=62070</id>
		<title>Czech Hackfest 2009</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Czech_Hackfest_2009&amp;diff=62070"/>
		<updated>2009-08-25T19:21:32Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: correcting my surname ;-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Work in progress here - do not rely on this yet.&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
&lt;br /&gt;
; Saturday 5th December 2009 :&lt;br /&gt;
&lt;br /&gt;
* Meet each others in Prague (some arrive, some may be there already)&lt;br /&gt;
* Settle down in a hotel - probably [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* Explore Prague (Castle etc)&lt;br /&gt;
* Social beer event&lt;br /&gt;
&lt;br /&gt;
; Sunday 6th December 2009 :&lt;br /&gt;
* Leaving Prague together by a rented micro-bus (about 120 mins)&lt;br /&gt;
* Lunch at [http://www.jested.cz Jested, Liberec].&lt;br /&gt;
* Moving to the mountains (by bus or car or foot ;-), according to snow conditions)&lt;br /&gt;
* Accommodating at [http://www.dudovi.cz/jizerka/eng/ubytovani.htm Jizerka]&lt;br /&gt;
&lt;br /&gt;
; Monday 7th December 2009&lt;br /&gt;
* Moodle 2.0 release planning&lt;br /&gt;
* Triage of remaining bugs (assign developers, priorities)&lt;br /&gt;
* Bug sprint&lt;br /&gt;
&lt;br /&gt;
; Tuesday 8th December 2009&lt;br /&gt;
* Moodle 2.x planning&lt;br /&gt;
* Creating detailed roadmap for all modules based on tracker&lt;br /&gt;
&lt;br /&gt;
; Wednesday 9th December 2009&lt;br /&gt;
* Moodle 3.0 brainstorming and planning&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
&lt;br /&gt;
; Thursday 10th December 2009&lt;br /&gt;
* Moodle 2.0 bugs&lt;br /&gt;
* Skiiing?&lt;br /&gt;
&lt;br /&gt;
; Friday 11th December 2009 &lt;br /&gt;
* moving back to Prague on Friday&lt;br /&gt;
* more Prague sightseeing&lt;br /&gt;
* Settle down in a hotel - probably again [http://www.andelshotel.com] or [http://www.angelohotel.com] (we are discussing with them to get some sale, do not book anything yet).&lt;br /&gt;
* official end of hackfest&lt;br /&gt;
&lt;br /&gt;
== Attendees and arrivals ==&lt;br /&gt;
&lt;br /&gt;
Maximum of 16 places, so far we have (in chaotic order):&lt;br /&gt;
&lt;br /&gt;
# Martin Dougiamas&lt;br /&gt;
# Eloy Lafuente&lt;br /&gt;
# Petr Skoda&lt;br /&gt;
# Tim Hunt&lt;br /&gt;
# Helen Foster&lt;br /&gt;
# Penny Leach&lt;br /&gt;
# Dan Poltawski&lt;br /&gt;
# David Mudrak&lt;br /&gt;
# Shane Elliott&lt;br /&gt;
# Chris Roy&lt;br /&gt;
# ...&lt;br /&gt;
# ...&lt;br /&gt;
# ...&lt;br /&gt;
# ...&lt;br /&gt;
# ...&lt;br /&gt;
# ...&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
I wanted to add some ideas of things we could talk about, and for some reason I did not want to use the talk page so I am adding them here. These are just ideas. Take them or leave them.&lt;br /&gt;
&lt;br /&gt;
===What is the balance between Yack and Hack?===&lt;br /&gt;
&lt;br /&gt;
That is, how much time will we be talking, and how much time writing code on our laptops?--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Planning specific bits of the post 2.0-roadmap===&lt;br /&gt;
&lt;br /&gt;
The main thing is that we keep talking about how recent released, especially 2.0, have had a lot of under the hood changes and that we really need to do some work on the actual activities themselves. I was wonder if if we should have a section of time allocated to what we consider the most important modules (or other things like the gradebook/filepicker/backup).&lt;br /&gt;
&lt;br /&gt;
In order to have meaningful discussion, I suggest that in advanced of the hackfest, each participant is assigned (or volunteers for) one of those bit. They are then expected to read every open bug and feature request for that component, and spend some time following the associated forum, and come up with a summary of what the most pressing issues there seem to be. Then at the hackfest they would lead that discussion section, kicking off by explaining to the rest of us what they learned during their research.&lt;br /&gt;
&lt;br /&gt;
Naturally, if we do this, I volunteer for the quiz and question bank. Of course, I already have a pretty good idea what is going on there. I guess this would probably be more work if people had to look at an area they had not thought about before, so that is not fair.--[[User:Tim Hunt|Tim Hunt]] ~10:00, 6 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: +1. Naturally, I volunteer for Workshop, given that the Tim&#039;s last sentence applies for my case, too. --[[User:David Mudrak|David Mudrak]] 10:51, 7 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
===How about a work-on-2.0 day===&lt;br /&gt;
&lt;br /&gt;
The aim would be that by the end of the day, we have fixed as many of the Fix-for 2.0 bugs as possible, and also have reviewed all the ones that we cannot fix immediately, so we end up with a really good, triaged bug-list of what is left to be done. By the end of the day, all the bugs should be assigned to someone who feels confident they will be able to fix it.--[[User:Tim Hunt|Tim Hunt]] 09:41, 8 August 2009 (UTC) and Dan Poltawski. We discussed this at the GBBF last night.&lt;br /&gt;
&lt;br /&gt;
===&#039;Prepared&#039; Bug Squashing===&lt;br /&gt;
&lt;br /&gt;
Basically the same as the above suggestion, but I want to emphasise some preperation beforehand so that we can get to the real unsolved issues which would benefit with us all being in the same room and discussing solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With each bug we triage before the hackfest, we should try to:&lt;br /&gt;
* a) Link or close issues which have been fixed, or will be fixed by 2.0 (etc)&lt;br /&gt;
* b) Document unsolved issues which we need discussion or a plan to be fixed (&#039;&#039;&#039;this is most important for the hackfest itself&#039;&#039;&#039;)&lt;br /&gt;
* c) Document bugs which could be fixed with a little time (at the hackfest or later)&lt;br /&gt;
* d) Document bugs to pester someone else about ;-)&lt;br /&gt;
&lt;br /&gt;
Depending on how much time you can devote, I suggest trying these triaging views in order:&lt;br /&gt;
* 1) Reviewing all open bugs reported by yourself, starting oldest first.&lt;br /&gt;
* 2) Reviewing your assigned issues, starting with oldest first &lt;br /&gt;
* 3) Reviewing &#039;nobody&#039; or &#039;imported&#039; bugs starting with the oldest first.&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
There is a lot of old cruft in the tracker. Many of the issues have or will be fixed soon, so we could do a lot by just looking at our own issues and setting the status/links appropiately. For all the others, some are just without a decided solution - these would be great ones to at least think about discussing. --[[User:Dan Poltawski|Dan Poltawski]] 17:28, 15 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=61979</id>
		<title>Broken/Theme changes in 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=61979"/>
		<updated>2009-08-22T09:46:09Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think this is a great system. Some comments on specific issues:&lt;br /&gt;
&lt;br /&gt;
1. Browser-specific stylesheets - is it time to move away from these?&lt;br /&gt;
&lt;br /&gt;
The OU system for this is a lot better. We add special classes to body (in addition to whatever&#039;s normally there), so you have &lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;ie ie7&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;gecko gecko19&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Classes indicate the browser engine and version so that we can specify a generic engine if a problem affects all versions, or a specific version.&lt;br /&gt;
&lt;br /&gt;
This means you can put the IE exceptions right next to the standard rules and they can be included in all stylesheets for any module. So you do&lt;br /&gt;
&lt;br /&gt;
 #mypage .whatever {&lt;br /&gt;
   /** normal rules */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .ie6#mypage .whatever {&lt;br /&gt;
   /** broken rules */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note that we don&#039;t just need exceptions for IE. Over time we&#039;ve needed rare (single) exceptions for Firefox (hence &#039;gecko&#039; stuff above; the issue was actually only in gecko18 I think) and WebKit too.&lt;br /&gt;
&lt;br /&gt;
IMO this system should be adopted in core Moodle. It&#039;s very simple and is far preferable to either CSS hacks (appalling) or separate stylesheets (unmaintainable).&lt;br /&gt;
&lt;br /&gt;
2. Debugging mode&lt;br /&gt;
&lt;br /&gt;
Maybe developer debug mode should send a special revision number (rev=debug) in order to regenerate the css every time, and send it without the expires header etc. That would probably make it pretty slow though. &lt;br /&gt;
&lt;br /&gt;
Alternatively, this could be an additional option in the debugging page so that you can turn on &#039;CSS debugging&#039; which would sent the rev=debug on every page, and turn it off when debugging other stuff that isn&#039;t css.&lt;br /&gt;
&lt;br /&gt;
having to manually update the number every single time you change css would be a huge annoyance when debugging css problems imo so I think one of these solutions is better.&lt;br /&gt;
&lt;br /&gt;
3. Removing comments&lt;br /&gt;
&lt;br /&gt;
Removing comments would be great. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not only a performance issue, but:&lt;br /&gt;
&lt;br /&gt;
a. Because of the performance concern developers (including me) tend to not include comments at all, this is really bad for maintainability.&lt;br /&gt;
&lt;br /&gt;
b. If a student looks into our code and it says something &#039;unprofessional&#039; like &#039;only needed because IE sucks&#039; they might in theory complain - yes I have genuinely had a student complaint for using the word &#039;sucks&#039; in public - so this is another discouragement for developers to comment properly.&lt;br /&gt;
&lt;br /&gt;
4. Performance&lt;br /&gt;
&lt;br /&gt;
If these are served for lifetime (ie expires 10 years in future) as they should be, I think this would actually improve performance for most sites (that see a lot of repeat visits), even if it takes 50x longer to serve the css itself...&lt;br /&gt;
&lt;br /&gt;
That&#039;s it, everything else is awesome. :)&lt;br /&gt;
&lt;br /&gt;
[[User:sam marshall|sam marshall]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. from sam&#039;s suggestions is already done. We should make sure it is not lost in any changes.&lt;br /&gt;
&lt;br /&gt;
I don&#039;t see any point in multiple parent themes. Too complicated. Theme + parent + standard is sufficient. I guess once you are at two parents like that, it is no harder to code a general array, it is just much easier for theme developers to screw up. Oh, I guess there is not harm in the extra flexibility.&lt;br /&gt;
&lt;br /&gt;
No problem that this does not include -&amp;gt;requires-&amp;gt;css. We should comment that to make it clear that you rarely need to use it, but keep it as an emergency fallback for people who are doing random customisations.&lt;br /&gt;
&lt;br /&gt;
I proposed getting rid of meta.php before, but martin vetoed it. Somewhere in the themes  forum is a post form me where I list all the ways it is currently used in core and contrib. I still think we should get rid of it.&lt;br /&gt;
&lt;br /&gt;
Moodle 1.9 themes still work in Moodle 2.0. I would like that to continue to be true. I think it is still possible. Look at the code in theme_config class for handling legacy config.php files, and the code in deprecatedlib.php that implements the old function for serving CSS.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tim Hunt|Tim Hunt]] 17:00, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. yes, I considered this too - I called this theme designer mode. I am not a big friend to using DEBUG_DEVELOPER for this, that is why I proposed it as separate option.&lt;br /&gt;
&lt;br /&gt;
Why not multiple parents when it is so easy to implement?&lt;br /&gt;
&lt;br /&gt;
I do not understand the &amp;quot;emergency need&amp;quot; for -&amp;gt;requires-&amp;gt;css() - the /local/ plug-ins are the correct place for emergency hacks, not the core. You just create new dir in /local/something/styles.css and it will be included automatically on all pages. The problem with custom CSS is that it can not fit into the one huge stylesheet - you can not load it before it because YUI reset will alter it and also after because it would not by style-able via themes which is not an option imo.&lt;br /&gt;
&lt;br /&gt;
I wanted to intentionally disable all old themes, I agree it should be as easy to upgrade as possible, but I still think that admins should be required to take some actions manually or else they will keep complaining that themes are &amp;quot;broken&amp;quot; in 2.0 and nobody told them they should update them. I think the ideal solution would be to allow easy downloads of themes via the Moodle UI instead of full backwards compatibility :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Petr Škoda (škoďák)|Petr Škoda (škoďák)]] 19:34, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think the thing is that for a lot of less experienced admins, for example, the teacher in a school who does it in their same time, they may have tinkered with their theme in the past (or the person before them may have) and they may not remember what was done. Tinkering with the theme, for example changing the logo or a few colours, may be one of the most  For them, we want the upgrade to be as simple as possible. If we cannot keep their old theme working, is there any way we can automate the upgrade? Or do we just encourage them to use one of Patrick Malley&#039;s nice new themes, and show them how easy it is to add their own logo to one?--[[User:Tim Hunt|Tim Hunt]] 20:09, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
I like the sound of these proposals generally.&lt;br /&gt;
&lt;br /&gt;
1) Themes in dataroot: I assume the intention is to completely remove any executable code in these themes?&lt;br /&gt;
&lt;br /&gt;
2) Breaking backwards compatibility: This is the one close to my heart, I just did a quick find and it&#039;ll mean we have to update 1003 custom themes (as today stands) which will obviously be a big barrier to Moodle 2.0 upgrade. Having said that I don&#039;t necessarily think its a bad idea. Having &#039;limited&#039; backwards compatibility where by the theme &#039;just&#039; works might be of limited value (i&#039;m sure we&#039;d need to convert all themes eventually anyway). We need to come up with clear reasons why we need to break backwards compatibility to satisfy less tolerant people than me though ;-)&lt;br /&gt;
&lt;br /&gt;
3) Removing $CFG-&amp;gt;themeww/themedir. From anecdotal evidence I think I might be the only person in the world using this feature and I think there are probably better ways to achieve what we are doing, so I am not going to argue very hard to keep it..&lt;br /&gt;
&lt;br /&gt;
I wrote some guidelines to give theme authors a few years ago, which sort of documents the stupid things we get in submitted themes (overriding all styles, uncessarily altering header/footer etc). I put these in Moodle Docs, might be interesting to you or not: [[CLEO_Moodle_Theme_Guidelines]].&lt;br /&gt;
&lt;br /&gt;
In most cases, the &#039;flexibilty/power&#039; we give theme authors at the moment leads to more breakage due to use of unnecessary modifications in something which could be achieved in a 10 line css file..&lt;br /&gt;
&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 09:45, 22 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=61978</id>
		<title>Broken/Theme changes in 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Theme_changes_in_2.0&amp;diff=61978"/>
		<updated>2009-08-22T09:45:27Z</updated>

		<summary type="html">&lt;p&gt;Poltawski: Dans comments on Petr&amp;#039;s proposal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think this is a great system. Some comments on specific issues:&lt;br /&gt;
&lt;br /&gt;
1. Browser-specific stylesheets - is it time to move away from these?&lt;br /&gt;
&lt;br /&gt;
The OU system for this is a lot better. We add special classes to body (in addition to whatever&#039;s normally there), so you have &lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;ie ie7&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body class=&amp;quot;gecko gecko19&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Classes indicate the browser engine and version so that we can specify a generic engine if a problem affects all versions, or a specific version.&lt;br /&gt;
&lt;br /&gt;
This means you can put the IE exceptions right next to the standard rules and they can be included in all stylesheets for any module. So you do&lt;br /&gt;
&lt;br /&gt;
 #mypage .whatever {&lt;br /&gt;
   /** normal rules */&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .ie6#mypage .whatever {&lt;br /&gt;
   /** broken rules */&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Note that we don&#039;t just need exceptions for IE. Over time we&#039;ve needed rare (single) exceptions for Firefox (hence &#039;gecko&#039; stuff above; the issue was actually only in gecko18 I think) and WebKit too.&lt;br /&gt;
&lt;br /&gt;
IMO this system should be adopted in core Moodle. It&#039;s very simple and is far preferable to either CSS hacks (appalling) or separate stylesheets (unmaintainable).&lt;br /&gt;
&lt;br /&gt;
2. Debugging mode&lt;br /&gt;
&lt;br /&gt;
Maybe developer debug mode should send a special revision number (rev=debug) in order to regenerate the css every time, and send it without the expires header etc. That would probably make it pretty slow though. &lt;br /&gt;
&lt;br /&gt;
Alternatively, this could be an additional option in the debugging page so that you can turn on &#039;CSS debugging&#039; which would sent the rev=debug on every page, and turn it off when debugging other stuff that isn&#039;t css.&lt;br /&gt;
&lt;br /&gt;
having to manually update the number every single time you change css would be a huge annoyance when debugging css problems imo so I think one of these solutions is better.&lt;br /&gt;
&lt;br /&gt;
3. Removing comments&lt;br /&gt;
&lt;br /&gt;
Removing comments would be great. &lt;br /&gt;
&lt;br /&gt;
It&#039;s not only a performance issue, but:&lt;br /&gt;
&lt;br /&gt;
a. Because of the performance concern developers (including me) tend to not include comments at all, this is really bad for maintainability.&lt;br /&gt;
&lt;br /&gt;
b. If a student looks into our code and it says something &#039;unprofessional&#039; like &#039;only needed because IE sucks&#039; they might in theory complain - yes I have genuinely had a student complaint for using the word &#039;sucks&#039; in public - so this is another discouragement for developers to comment properly.&lt;br /&gt;
&lt;br /&gt;
4. Performance&lt;br /&gt;
&lt;br /&gt;
If these are served for lifetime (ie expires 10 years in future) as they should be, I think this would actually improve performance for most sites (that see a lot of repeat visits), even if it takes 50x longer to serve the css itself...&lt;br /&gt;
&lt;br /&gt;
That&#039;s it, everything else is awesome. :)&lt;br /&gt;
&lt;br /&gt;
[[User:sam marshall|sam marshall]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. from sam&#039;s suggestions is already done. We should make sure it is not lost in any changes.&lt;br /&gt;
&lt;br /&gt;
I don&#039;t see any point in multiple parent themes. Too complicated. Theme + parent + standard is sufficient. I guess once you are at two parents like that, it is no harder to code a general array, it is just much easier for theme developers to screw up. Oh, I guess there is not harm in the extra flexibility.&lt;br /&gt;
&lt;br /&gt;
No problem that this does not include -&amp;gt;requires-&amp;gt;css. We should comment that to make it clear that you rarely need to use it, but keep it as an emergency fallback for people who are doing random customisations.&lt;br /&gt;
&lt;br /&gt;
I proposed getting rid of meta.php before, but martin vetoed it. Somewhere in the themes  forum is a post form me where I list all the ways it is currently used in core and contrib. I still think we should get rid of it.&lt;br /&gt;
&lt;br /&gt;
Moodle 1.9 themes still work in Moodle 2.0. I would like that to continue to be true. I think it is still possible. Look at the code in theme_config class for handling legacy config.php files, and the code in deprecatedlib.php that implements the old function for serving CSS.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tim Hunt|Tim Hunt]] 17:00, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
2. yes, I considered this too - I called this theme designer mode. I am not a big friend to using DEBUG_DEVELOPER for this, that is why I proposed it as separate option.&lt;br /&gt;
&lt;br /&gt;
Why not multiple parents when it is so easy to implement?&lt;br /&gt;
&lt;br /&gt;
I do not understand the &amp;quot;emergency need&amp;quot; for -&amp;gt;requires-&amp;gt;css() - the /local/ plug-ins are the correct place for emergency hacks, not the core. You just create new dir in /local/something/styles.css and it will be included automatically on all pages. The problem with custom CSS is that it can not fit into the one huge stylesheet - you can not load it before it because YUI reset will alter it and also after because it would not by style-able via themes which is not an option imo.&lt;br /&gt;
&lt;br /&gt;
I wanted to intentionally disable all old themes, I agree it should be as easy to upgrade as possible, but I still think that admins should be required to take some actions manually or else they will keep complaining that themes are &amp;quot;broken&amp;quot; in 2.0 and nobody told them they should update them. I think the ideal solution would be to allow easy downloads of themes via the Moodle UI instead of full backwards compatibility :-)&lt;br /&gt;
&lt;br /&gt;
[[User:Petr Škoda (škoďák)|Petr Škoda (škoďák)]] 19:34, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think the thing is that for a lot of less experienced admins, for example, the teacher in a school who does it in their same time, they may have tinkered with their theme in the past (or the person before them may have) and they may not remember what was done. Tinkering with the theme, for example changing the logo or a few colours, may be one of the most  For them, we want the upgrade to be as simple as possible. If we cannot keep their old theme working, is there any way we can automate the upgrade? Or do we just encourage them to use one of Patrick Malley&#039;s nice new themes, and show them how easy it is to add their own logo to one?--[[User:Tim Hunt|Tim Hunt]] 20:09, 21 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
I like the sound of these proposals generally.&lt;br /&gt;
&lt;br /&gt;
1) Themes in dataroot: I assume the intention is to completely remove any executable code in these themes?&lt;br /&gt;
&lt;br /&gt;
2) Breaking backwards compatibility: This is the one close to my heart, I just did a quick find and it&#039;ll mean we have to update 1003 custom themes (as today stands) which will obviously be a big barrier to Moodle 2.0 upgrade. Having said that I don&#039;t necessarily think its a bad idea. Having &#039;limited&#039; backwards compatibility where by the theme &#039;just&#039; works might be of limited value (i&#039;m sure we&#039;d need to convert all themes eventually anyway). We need to come up with clear reasons why we need to break backwards compatibility to satisfy less tolerant people than me though ;-)&lt;br /&gt;
&lt;br /&gt;
3) Removing $CFG-&amp;gt;themeww/themedir. From anecdotal evidence I think I might be the only person in the world using this feature and I think there are probably better ways to achieve what we are doing, so I am not going to argue very hard to keep it..&lt;br /&gt;
&lt;br /&gt;
I wrote some guidelines to give theme authors a few years ago, which sort of documents the stupid things we get in submitted themes (overriding all styles, uncessarily altering header/footer etc). I put these in Moodle Docs, might be interesting to you or not: [[CLEO_Moodle_Theme_Guidelines]]  In most cases, the &#039;flexibilty/power&#039; we give theme authors at the moment leads to more breakage due to use of unnecessary modifications in something which could be achieved in a 10 line css file..&lt;br /&gt;
&lt;br /&gt;
--[[User:Dan Poltawski|Dan Poltawski]] 09:45, 22 August 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Poltawski</name></author>
	</entry>
</feed>