<?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=UrsHunkler</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=UrsHunkler"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/Especial:Contribucions/UrsHunkler"/>
	<updated>2026-05-15T17:36:05Z</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=Themes_2.0_overflow_problems&amp;diff=77225</id>
		<title>Themes 2.0 overflow problems</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Themes_2.0_overflow_problems&amp;diff=77225"/>
		<updated>2010-10-27T08:36:22Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: Added some clarifications. Removed Tim&amp;#039;s changes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document examines the overflow:hidden - fixed width problem currently plaguing several areas of Moodle 2.0 (as of October 26, 2010)&lt;br /&gt;
&lt;br /&gt;
==The problem==&lt;br /&gt;
&lt;br /&gt;
Content that is too wide for the main content area is not displayed correctly is obscured behind the side blocks or off-screen, and the browser doesn&#039;t scroll horizontally.&lt;br /&gt;
&lt;br /&gt;
To see it, shrink your browser window and look at:&lt;br /&gt;
&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=32796&lt;br /&gt;
&lt;br /&gt;
It is caused by &#039;&#039;&#039;oversized, unwrappable content&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
# Large images or other media of one form or another.&lt;br /&gt;
# Tables, any table that has numerous columns and/or large content in columns.&lt;br /&gt;
## Tabulated data&lt;br /&gt;
## Tables for internal layout (like the forum)&lt;br /&gt;
# Unwrappable content&lt;br /&gt;
## This is normally always user-entered text or images.&lt;br /&gt;
## Different browsers handle things differently.&lt;br /&gt;
&lt;br /&gt;
==The technical description==&lt;br /&gt;
&lt;br /&gt;
The cause is a combination of the fixed width that gets set on the core layout XHTML, and the overflow:hidden setting that is required by the layout.&lt;br /&gt;
&lt;br /&gt;
The layout used in the base theme within Moodle is based on Matthew James Taylor&#039;s [http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm Holy grail layout] which is an excellent layout, however (and it does state this in the description of the layout) wide content is a known problem.&lt;br /&gt;
&lt;br /&gt;
This problem starts on the very first div that contains content within the body *&amp;amp;lt;div id=&amp;quot;page-content&amp;quot;&amp;amp;gt;....&amp;amp;lt;/div&amp;amp;gt;* which has the following style:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code css&amp;gt;&lt;br /&gt;
#page-content {&lt;br /&gt;
    clear:both;&lt;br /&gt;
    float:left;&lt;br /&gt;
    overflow:hidden;&lt;br /&gt;
    position:relative;&lt;br /&gt;
    width:100%;&lt;br /&gt;
    min-width:900px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setting the width to 100% instantly boxes the displayable area to just the browsers internal display width, and then overflow:hidden ensures that any overflow is not visible.&lt;br /&gt;
&lt;br /&gt;
This is required because the premise of this layout is to move everything out of the viewport and then move things back into the correct position and in doing this it goes as far as expanding content divs out to 200% width.&lt;br /&gt;
&lt;br /&gt;
Because of this if we remove the width 100% and/or overflow hidden everything breaks because the page will ALWAYS expand beyond the browsers displayable area even if the content is easily displayed.&lt;br /&gt;
&lt;br /&gt;
As far as I can see there is no way to avoid this problem while using this layout.&lt;br /&gt;
&lt;br /&gt;
On the other hand there are very good reasons for using this layout:&lt;br /&gt;
* it is cross browser, &lt;br /&gt;
* columns are orderd 2,1,3 which is good for accessibility and search engine optimisation, and&lt;br /&gt;
* in EVERY other respect it works well&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 1 - Additional wrapper DIV ==&lt;br /&gt;
&lt;br /&gt;
A couple of days ago I sat down with Martin and explained this to him and we looked into it and came up with the following three part solution:&lt;br /&gt;
&lt;br /&gt;
# Wrap format_text output within a div with a class that allows us to manage overflow.  The themes can then turn on overflow:auto for these areas to make sure that user content wraps correctly (eg forum post content).&lt;br /&gt;
# Convert places that use tables for layout to divs (eg forum posts) so that they wrap cleanly.  Without this the large user content causes the table cells to grow too large, causing wrapping issues.&lt;br /&gt;
# Locate places where tables are likely to require horizontal scrolling and wrap them in divs with a class like `flexible-wrap` that sets an overflow:auto so that the table is scrollable if required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# A standard way for developers and themers to deal with these issues (can go in coding guidelines)&lt;br /&gt;
# Will remove the possibility for users to intentionally/accidentally destroy the interface by posting large content&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Because all format_text calls will be wrapped by this special div there might be regressions throughout Moodle - we will have to review the calls and possibly disable the new wrapping divs for some of them. (For example, quiz multiple choice options are processed by format_text, then output inside a Label. The wrapping div would break that horribly.)&lt;br /&gt;
# Some parts of Moodle can never be made to fit in a sensible width. For example the gradebook, and other reports.&lt;br /&gt;
# IE6/7 (and possibly IE 8/9?) render their scrollbars INSIDE an element rather than outside like most other browsers meaning that there is a *VERY* high chance there will be redundant scrollbars within some elements that don&#039;t actually require wrapping (on these browsers)&lt;br /&gt;
# Elements that require scrolling will have their own scrollbars and particularly in the case of tables this is likely to require scrolling the page vertically to locate the horizontal scrollbar, scrolling horizontally and then locating the desired row vertically again.&lt;br /&gt;
# Elements with a set width (e.g.style=&amp;quot;width:2000px&amp;quot;) greater than the content area will need to be wrapped in a div with the wrapping class as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 2 - Source code order ==&lt;br /&gt;
&lt;br /&gt;
Compromise, and use a 1, 3, 2 or 1, 2, 3 layout (with skip links for accessibility).&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# It can be made to work for all pages.&lt;br /&gt;
# We use a 1, 3, 2 at the OU, and it is reliable.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Slightly less accessible (unless you are comparing with the current situation that actually chops off text for most users even before you start resizing fonts, and is therefore infinitely less accessible, of course). &lt;br /&gt;
# Hurts our pride to give up on a 2, 1, 3 layout.&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 3 - JavaScript ==&lt;br /&gt;
&lt;br /&gt;
Add some JavaScript to the page, so that once everything has been laid out, it computes how wide the page needs to be to avoid truncation, and then changes the min-width: 900px to whatever width is needed to make the content fit.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# Might be the easiest solution to implement.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Ewwwwwww! This is clearly a horrible hack.&lt;br /&gt;
# JavaScript for layout is deeply evil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 4 - Admin theme ==&lt;br /&gt;
&lt;br /&gt;
Use different page layouts for different needs. Admin/settings pages show very different content than the normal learning pages. All pages for admins and teachers where they change settings or edit content are shown with the admin theme. Two different page layouts would solve a lot of issues. In for example WordPress and Drupal the concept of the admin theme for admin/settings pages and the &amp;quot;nice&amp;quot; theme for content is standard.&lt;br /&gt;
&lt;br /&gt;
# Use an &amp;quot;admin theme&amp;quot; with flexible width and a 1-2  layout for the admin and settings pages. The huge tables are mainly on the admin pages. Most table issues would be solved this way.&lt;br /&gt;
# Use the existing 2-1-3 fixed width layout for all learning pages.&lt;br /&gt;
# Change all tables in the forum layout and other modules if existent to div layouts.&lt;br /&gt;
# Create a filter to display a miniature of oversized media and open the original size in a bigger overlay on click. The maximum width can be a setting in the filter to fit different theme needs.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# The pages with different needs get different layouts better fitting these needs.&lt;br /&gt;
# One optimized admin theme can be used with many different themes. Theme designers can focus on the content pages when they work on themes.&lt;br /&gt;
# The flexible width admin theme helps a lot when the content shall be displayed in any fixed width page layout. &lt;br /&gt;
# The different look of the admin theme signals: be careful - you are changing things which may seriously affect the system or the learning content.&lt;br /&gt;
# I use an flexible width admin theme I developed for some time now with all fixed width themes and solve the table width issues on admin/settings pages. It&#039;s always the same admin theme with very different content themes.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# The deeply nested forum threads issues are not solved with the admin theme.&lt;br /&gt;
&lt;br /&gt;
==Opinions==&lt;br /&gt;
&lt;br /&gt;
; Tim&lt;br /&gt;
: I vote for 2, or failing that 3. I think 1. will not work.&lt;br /&gt;
&lt;br /&gt;
; Sam&lt;br /&gt;
: agree with Tim except I don&#039;t think 3 is likely to be reliable either.&lt;br /&gt;
: http://moodle.org/mod/cvsadmin/view.php?conversationid=5929&lt;br /&gt;
&lt;br /&gt;
; Frank&lt;br /&gt;
: IMHO the only real problem is &#039;&#039;&#039;2.2.Tables for internal layout (like the forum)&#039;&#039;&#039; and possibly 3.2. (Which, by the way, only proves that tables for layout are a bad thing, [[User:Frank Ralf/Semantic HTML3]]).  Any other &#039;&#039;oversized, unwrappable content&#039;&#039; will break the layout one way or another and should be the responsibility of the author. That said, I favor solution 2; any solution which requires JavaScript (3) only makes the situation even more complex. --[[User:Frank Ralf|Frank Ralf]] 14:41, 26 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
; Urs&lt;br /&gt;
: I vote for 4. &lt;br /&gt;
: 3 is no option - from my experience using JavaScript to correct page issues breaks every once in a while.&lt;br /&gt;
: 2 does not solve the table width issue in fixed width themes.&lt;br /&gt;
: 1 seams to offer more problems than advantages.&lt;br /&gt;
: Please don&#039;t throw out the existing 2-1-3 page layout. In my opinion to skip it means much more than it &amp;quot;Hurts our pride to give up on a 2, 1, 3 layout.&amp;quot;. By introducing an admin specific theme many issues can be solved. Additionally theme designers have less pages to work on.&lt;br /&gt;
: I thought all table based page layouts should have gone in Moodle 2.0.&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Themes_2.0_overflow_problems&amp;diff=77216</id>
		<title>Themes 2.0 overflow problems</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Themes_2.0_overflow_problems&amp;diff=77216"/>
		<updated>2010-10-26T20:17:11Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: Add Proposed solution 4 and my opinion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document examines the overflow:hidden - fixed width problem currently plaguing several areas of Moodle 2.0 (as of October 26, 2010)&lt;br /&gt;
&lt;br /&gt;
==The problem==&lt;br /&gt;
&lt;br /&gt;
Content that is too wide for the main content area is not displayed correctly is obscured behind the side blocks or off-screen, and the browser doesn&#039;t scroll horizontally.&lt;br /&gt;
&lt;br /&gt;
To see it, shrink your browser window and look at:&lt;br /&gt;
&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=32796&lt;br /&gt;
&lt;br /&gt;
It is caused by &#039;&#039;&#039;oversized, unwrappable content&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
# Large images or other media of one form or another.&lt;br /&gt;
# Tables, any table that has numerous columns and/or large content in columns.&lt;br /&gt;
## Tabulated data&lt;br /&gt;
## Tables for internal layout (like the forum)&lt;br /&gt;
# Unwrappable content&lt;br /&gt;
## This is normally always user-entered text or images.&lt;br /&gt;
## Different browsers handle things differently.&lt;br /&gt;
&lt;br /&gt;
==The technical description==&lt;br /&gt;
&lt;br /&gt;
The cause is a combination of the fixed width that gets set on the core layout XHTML, and the overflow:hidden setting that is required by the layout.&lt;br /&gt;
&lt;br /&gt;
The layout used in the base theme within Moodle is based on Matthew James Taylor&#039;s [http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm Holy grail layout] which is an excellent layout, however (and it does state this in the description of the layout) wide content is a known problem.&lt;br /&gt;
&lt;br /&gt;
This problem starts on the very first div that contains content within the body *&amp;amp;lt;div id=&amp;quot;page-content&amp;quot;&amp;amp;gt;....&amp;amp;lt;/div&amp;amp;gt;* which has the following style:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code css&amp;gt;&lt;br /&gt;
#page-content {&lt;br /&gt;
    clear:both;&lt;br /&gt;
    float:left;&lt;br /&gt;
    overflow:hidden;&lt;br /&gt;
    position:relative;&lt;br /&gt;
    width:100%;&lt;br /&gt;
    min-width:900px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setting the width to 100% instantly boxes the displayable area to just the browsers internal display width, and then overflow:hidden ensures that any overflow is not visible.&lt;br /&gt;
&lt;br /&gt;
This is required because the premise of this layout is to move everything out of the viewport and then move things back into the correct position and in doing this it goes as far as expanding content divs out to 200% width.&lt;br /&gt;
&lt;br /&gt;
Because of this if we remove the width 100% and/or overflow hidden everything breaks because the page will ALWAYS expand beyond the browsers displayable area even if the content is easily displayed.&lt;br /&gt;
&lt;br /&gt;
As far as I can see there is no way to avoid this problem while using this layout.&lt;br /&gt;
&lt;br /&gt;
On the other hand there are very good reasons for using this layout:&lt;br /&gt;
* it is cross browser, &lt;br /&gt;
* columns are orderd 2,1,3 which is good for accessibility and search engine optimisation, and&lt;br /&gt;
* in EVERY other respect it works well&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 1==&lt;br /&gt;
&lt;br /&gt;
A couple of days ago I sat down with Martin and explained this to him and we looked into it and came up with the following three part solution:&lt;br /&gt;
&lt;br /&gt;
# Wrap format_text output within a div with a class that allows us to manage overflow.  The themes can then turn on overflow:auto for these areas to make sure that user content wraps correctly (eg forum post content).&lt;br /&gt;
# Convert places that use tables for layout to divs (eg forum posts) so that they wrap cleanly.  Without this the large user content causes the table cells to grow too large, causing wrapping issues.&lt;br /&gt;
# Locate places where tables are likely to require horizontal scrolling and wrap them in divs with a class like `flexible-wrap` that sets an overflow:auto so that the table is scrollable if required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# A standard way for developers and themers to deal with these issues (can go in coding guidelines)&lt;br /&gt;
# Will remove the possibility for users to intentionally/accidentally destroy the interface by posting large content&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Because all format_text calls will be wrapped by this special div there might be regressions throughout Moodle - we will have to review the calls and possibly disable the new wrapping divs for some of them. (For example, quiz multiple choice options are processed by format_text, then output inside a Label. The wrapping div would break that horribly.)&lt;br /&gt;
# Some parts of Moodle can never be made to fit in a sensible width. For example the gradebook, and other reports.&lt;br /&gt;
# IE6/7 (and possibly IE 8/9?) render their scrollbars INSIDE an element rather than outside like most other browsers meaning that there is a *VERY* high chance there will be redundant scrollbars within some elements that don&#039;t actually require wrapping (on these browsers)&lt;br /&gt;
# Elements that require scrolling will have their own scrollbars and particularly in the case of tables this is likely to require scrolling the page vertically to locate the horizontal scrollbar, scrolling horizontally and then locating the desired row vertically again.&lt;br /&gt;
# Elements with a set width (e.g.style=&amp;quot;width:2000px&amp;quot;) greater than the content area will need to be wrapped in a div with the wrapping class as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 2==&lt;br /&gt;
&lt;br /&gt;
Compromise, and use a 1, 3, 2 or 1, 2, 3 layout (with skip links for accessibility).&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# It can be made to work for all pages.&lt;br /&gt;
# We use a 1, 3, 2 at the OU, and it is reliable.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Slightly less accessible (unless you are comparing with the current situation that actually chops off text for most users even before you start resizing fonts, and is therefore infinitely less accessible, of course). &lt;br /&gt;
# Hurts our pride to give up on a 2, 1, 3 layout.&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 3==&lt;br /&gt;
&lt;br /&gt;
Add some JavaScript to the page, so that once everything has been laid out, it computes how wide the page needs to be to avoid truncation, and then changes the min-width: 900px to whatever width is needed to make the content fit.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# Might be the easiest solution to implement.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# Ewwwwwww! This is clearly a horrible hack.&lt;br /&gt;
# JavaScript for layout is deeply evil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proposed solution 4==&lt;br /&gt;
&lt;br /&gt;
Use different page layouts for different needs. Admin/settings pages show very different content than the normal learning pages. Two different page layouts would solve a lot of issues. In for example WordPress and Drupal the concept of the admin theme for admin/settings pages and the &amp;quot;nice&amp;quot; theme for content is standard.&lt;br /&gt;
&lt;br /&gt;
# Use an &amp;quot;admin theme&amp;quot; with flexible width and a 1-2  layout for the admin and settings pages. The huge tables are mainly on the admin pages. Most table issues would be solved this way.&lt;br /&gt;
# Use the existing 2-1-3 fixed width layout for all learning pages.&lt;br /&gt;
# Change all tables in the forum layout and other modules if existent to div layouts.&lt;br /&gt;
# Create a filter to display a miniature of oversized media and open the original size in a bigger overlay on click. The maximum width can be a setting in the filter to fit different theme needs.&lt;br /&gt;
&lt;br /&gt;
===Advantages===&lt;br /&gt;
&lt;br /&gt;
# The pages with different needs get different layouts better fitting these needs.&lt;br /&gt;
# One optimized admin theme can be used with many different themes. Theme designers can focus on the content pages when they work on themes.&lt;br /&gt;
# The flexible width admin theme helps a lot when the content shall be displayed in any fixed width page layout. &lt;br /&gt;
# I use an flexible width admin theme I developed for some time now with all fixed width themes and solve the table width issues on admin/settings pages. It&#039;s always the same admin theme with very different content themes.&lt;br /&gt;
&lt;br /&gt;
===Possible problems===&lt;br /&gt;
&lt;br /&gt;
# I see only advantages.&lt;br /&gt;
&lt;br /&gt;
==Opinions==&lt;br /&gt;
&lt;br /&gt;
; Tim&lt;br /&gt;
: I vote for 2, or failing that 3. I think 1. will not work.&lt;br /&gt;
&lt;br /&gt;
; Sam&lt;br /&gt;
: agree with Tim except I don&#039;t think 3 is likely to be reliable either.&lt;br /&gt;
: http://moodle.org/mod/cvsadmin/view.php?conversationid=5929&lt;br /&gt;
&lt;br /&gt;
; Frank&lt;br /&gt;
: IMHO the only real problem is &#039;&#039;&#039;2.2.Tables for internal layout (like the forum)&#039;&#039;&#039; and possibly 3.2. (Which, by the way, only proves that tables for layout are a bad thing, [[User:Frank Ralf/Semantic HTML3]]).  Any other &#039;&#039;oversized, unwrappable content&#039;&#039; will break the layout one way or another and should be the responsibility of the author. That said, I favor solution 2; any solution which requires JavaScript (3) only makes the situation even more complex. --[[User:Frank Ralf|Frank Ralf]] 14:41, 26 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
; Urs&lt;br /&gt;
: I vote for 4. &lt;br /&gt;
: 3 is no option - from my experience using JavaScript to correct page issues breaks every once in a while.&lt;br /&gt;
: 2 does not solve the table width issue in fixed width themes.&lt;br /&gt;
: 1 seams to offer more problems than advantages.&lt;br /&gt;
: Please don&#039;t throw out the existing 2-1-3 page layout. In my opinion to skip it means much more than it &amp;quot;Hurts our pride to give up on a 2, 1, 3 layout.&amp;quot;. By introducing an admin specific theme many issues can be solved. Additionally theme designers have less pages to work on.&lt;br /&gt;
: I thought all table based page layouts should have gone in Moodle 2.0.&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=43916</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=43916"/>
		<updated>2008-09-18T06:31:19Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Troubleshooting */ add dialog is not opening info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}{{Moodle 1.6}}Chameleon is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
 If you find that the styles don&#039;t save, check to make sure that the files in your theme folder &lt;br /&gt;
 are set so that your webserver has permission to modify them.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y  to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
Some sample tags:&lt;br /&gt;
&lt;br /&gt;
 body {&lt;br /&gt;
  background-colour #000000;&lt;br /&gt;
 }  &lt;br /&gt;
&lt;br /&gt;
- alters the background for everything apart from the blocks and topic sections&lt;br /&gt;
&lt;br /&gt;
 div.sideblock div.header {&lt;br /&gt;
   background-image: url(pix/header.jpg);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
- alters the header area of the blocks on all pages to have an image&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in the Chameleon (i.e., not the system) &#039;&#039;config.php&#039;&#039; file and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the &#039;user_styles&#039; sheet to the  list of style sheets used. Note that it must be the last one in the list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
/// This file contains a few configuration variables that control &lt;br /&gt;
/// how Moodle uses this theme.&lt;br /&gt;
////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;sheets = array(&#039;styles_color&#039;, &#039;styles_font&#039;, &#039;styles_layout&#039;, &#039;styles_moz&#039;, &#039;user_styles&#039; );&lt;br /&gt;
&lt;br /&gt;
/// This variable is an array containing the names of all the &lt;br /&gt;
/// stylesheet files you want included in this theme, and in what order&lt;br /&gt;
////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Shift click does not open the Chameleon dialog===&lt;br /&gt;
&lt;br /&gt;
Please check that Chameleon is turned on by checking the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but the message pages to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field with your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images, hides the page header and adjusts some positioning. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but not the chat window to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field with your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the chat CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#mod-chat-index table.generaltable td.c0 {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view div#content {&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view table#layout-table td#middle-column {&lt;br /&gt;
  padding-top: 30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://br.youtube.com/watch?v=lxQkLHcvmoU Video showing how to use the interactive Moodle theme, Chameleon]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=42352</id>
		<title>Usuari:Urs Hunkler</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=42352"/>
		<updated>2008-08-19T08:02:45Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:urs.png|left]]&lt;br /&gt;
&lt;br /&gt;
I am a web designer with my company [http://unodo.de unodo] specializing in concept, design and development of Internet-based working and learning. &lt;br /&gt;
&lt;br /&gt;
The Moodle 1.5 CSS re-work was led by my proposals and guidance. I will accompany further Moodle development with theme management. &lt;br /&gt;
&lt;br /&gt;
Integration of the Moodle code and the theme [[Custom Corners]] brings some Web 2.0 design opportunities to Moodle. The interactive Moodle theme [[Chameleon]] is one project. The Accordion Course format another. The outcome of these projects you can see and try on the [http://chameleon-theme.unodo.de/ Chameleon] site.&lt;br /&gt;
&lt;br /&gt;
I developed the MoodleDocs skin to integrate it&#039;s look with moodle.org and will enhance it for better functionality.&lt;br /&gt;
&lt;br /&gt;
* [[Themes]]&lt;br /&gt;
&lt;br /&gt;
--[[User:UrsHunkler|UrsHunkler]] 10:00, 18 August 2008 (WST)&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=42351</id>
		<title>Usuari:Urs Hunkler</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=42351"/>
		<updated>2008-08-19T08:01:59Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: Actualize my description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:urs.png|left]]&lt;br /&gt;
&lt;br /&gt;
I am a web designer with my company [http://unodo.de unodo] specializing in concept, design and development of Internet-based working and learning. &lt;br /&gt;
&lt;br /&gt;
The Moodle 1.5 CSS re-work was led by my proposals and guidance. I will accompany further Moodle development with theme management. &lt;br /&gt;
&lt;br /&gt;
Integration of the Moodle code and the theme [[Custom Corners]] brings some Web 2.0 design opportunities to Moodle. [[The interactive Moodle theme [[Chameleon]] is one project. The Accordion Course format another. The outcome of these projects you can see and try on the [http://chameleon-theme.unodo.de/ Chameleon] site.&lt;br /&gt;
&lt;br /&gt;
I developed the MoodleDocs skin to integrate it&#039;s look with moodle.org and will enhance it for better functionality.&lt;br /&gt;
&lt;br /&gt;
* [[Themes]]&lt;br /&gt;
&lt;br /&gt;
--[[User:UrsHunkler|UrsHunkler]] 10:00, 18 August 2008 (WST)&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31976</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31976"/>
		<updated>2008-02-08T08:07:26Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}}When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages showing sideblocks. If not set Moodle uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31975</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31975"/>
		<updated>2008-02-08T08:07:10Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}}When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages showing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31974</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31974"/>
		<updated>2008-02-08T08:05:55Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}}When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31973</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31973"/>
		<updated>2008-02-08T08:04:57Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}}When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31972</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31972"/>
		<updated>2008-02-08T08:04:21Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Sideblock width */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}}When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31971</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31971"/>
		<updated>2008-02-08T08:03:02Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}} When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&lt;br /&gt;
==Change column order==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31970</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31970"/>
		<updated>2008-02-08T08:02:13Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}} When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&lt;br /&gt;
== Change column order ==&lt;br /&gt;
{{Moodle 1.8}}When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31969</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31969"/>
		<updated>2008-02-08T07:59:32Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Change column order */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}} When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&lt;br /&gt;
== Change column order ==&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.8}} When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31968</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=31968"/>
		<updated>2008-02-08T07:58:04Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Theme priority */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sideblock width ==&lt;br /&gt;
{{Moodle 1.8}} When you need to define the side column width for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;block_l_min_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_l_max_width = 148;&lt;br /&gt;
$THEME-&amp;gt;block_r_min_width = 260;&lt;br /&gt;
$THEME-&amp;gt;block_r_max_width = 260;&lt;br /&gt;
&lt;br /&gt;
/// These values define the min and max width of the left and right&lt;br /&gt;
/// sibelocks in the course pages. If not set or false the standard &lt;br /&gt;
/// values are taken.&lt;br /&gt;
&lt;br /&gt;
== Change column order ==&lt;br /&gt;
{{Moodle 1.8}} When you need to change the column order for your themes you can add the following settings to your theme config.php.&lt;br /&gt;
&lt;br /&gt;
$THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;right&#039;, &#039;middle&#039;);&lt;br /&gt;
&lt;br /&gt;
/// These values define the order of the columns for all&lt;br /&gt;
/// pages shoeing sideblocks. If not set Moodel uses the &lt;br /&gt;
/// default order:&lt;br /&gt;
/// $THEME-&amp;gt;layouttable = array(&#039;left&#039;, &#039;middle&#039;, &#039;right&#039;);&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Web_services&amp;diff=30630</id>
		<title>Broken/Web services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Web_services&amp;diff=30630"/>
		<updated>2007-12-23T10:07:34Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: add :: with the option to plug in AMFPHP for Flash/Flex interfaces&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is to decide on a STANDARD list of CORE web service functions that we should support in Moodle (by XMLRPC, REST and SOAP with the option to plug in AMFPHP for Flash/Flex interfaces) as an API for those writing code to work against Moodle.&lt;br /&gt;
&lt;br /&gt;
Please add new functions if there&#039;s functionality you want that isn&#039;t covered (we can refactor/whittle at the end).&lt;br /&gt;
&lt;br /&gt;
==add user==&lt;br /&gt;
I think we should require all data needed for a successful &amp;quot;first login&amp;quot; to Moodle without popping him out the profile page to fill in all missing required data. This may require extra inputs such as city, description ... (unsure of the full list depending of Moodle version ?).&lt;br /&gt;
Also password should be &amp;quot;required&amp;quot; if authentication method is &amp;quot;internal&amp;quot; . &lt;br /&gt;
&lt;br /&gt;
INPUT:&lt;br /&gt;
    firstname&lt;br /&gt;
    lastname&lt;br /&gt;
    email &lt;br /&gt;
    idnumber&lt;br /&gt;
    login &lt;br /&gt;
    authentication method (optional , default= manual ?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    Adds a new user to the user database &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    id or false&lt;br /&gt;
&lt;br /&gt;
==delete user==&lt;br /&gt;
INPUT:&lt;br /&gt;
    idnumber  or &lt;br /&gt;
    email or &lt;br /&gt;
    id or&lt;br /&gt;
    login&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    User is marked as deleted&lt;br /&gt;
    All it&#039;s role assignments are destroyed &lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true/false&lt;br /&gt;
&lt;br /&gt;
==add course==&lt;br /&gt;
INPUT:&lt;br /&gt;
    name&lt;br /&gt;
    shortname&lt;br /&gt;
    format (default topics)&lt;br /&gt;
    idnumber &lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    Adds a new course to the course table&lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    id or false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==delete course==&lt;br /&gt;
INPUT:&lt;br /&gt;
    name OR&lt;br /&gt;
    shortname  OR&lt;br /&gt;
    idnumber OR&lt;br /&gt;
    id&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    Deletes a course from the course table&lt;br /&gt;
    What about associated ressources, roles ... &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true or false&lt;br /&gt;
&lt;br /&gt;
==enrol student to course==&lt;br /&gt;
INPUT:&lt;br /&gt;
    course unique Id (Moodle&#039;s ID or idnumber or shortname)&lt;br /&gt;
    student unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    Assign student role to course &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true or false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==unenrol student from course==&lt;br /&gt;
INPUT:&lt;br /&gt;
    course unique Id (Moodle&#039;s ID or idnumber or shortname)&lt;br /&gt;
    student unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
    remove student role from course &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true or false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==assign role to course==&lt;br /&gt;
INPUT:&lt;br /&gt;
   course unique Id (Moodle&#039;s ID or idnumber or shortname)&lt;br /&gt;
   user unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
   role id (teacher, non editing teacher, student (?) ...)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   assign given user a &amp;quot;standard&amp;quot; role to given course   &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true or false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==remove role from course==&lt;br /&gt;
INPUT:&lt;br /&gt;
   course unique Id (Moodle&#039;s ID or idnumber or shortname)&lt;br /&gt;
   user unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
   role id (teacher, non editing teacher, student (?) ...)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   remove given user&#039;s &amp;quot;standard&amp;quot; role from given course   &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    true or false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==get my courses==&lt;br /&gt;
&lt;br /&gt;
INPUT:&lt;br /&gt;
   user unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of course&#039;s id in which given user move given user has some role assigned     &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    &amp;quot;array&amp;quot; of (course id, course shortname, course fullname, role id, role name, course url)&lt;br /&gt;
    or false in case of error (bad user id)&lt;br /&gt;
&lt;br /&gt;
==get last changes in my courses==&lt;br /&gt;
&lt;br /&gt;
INPUT:&lt;br /&gt;
   user unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
   course unique Id (Moodle&#039;s ID ,idnumber or shortname) - optional (default = all my courses)&lt;br /&gt;
   timestamp - optional (default = time of last connexion in every course)&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of changes (resource added/modified, new activities, etc.) for courses in which given user has some role assigned - since timestamp or last connexion in given course &lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    &amp;quot;array&amp;quot; of (course id, course shortname, course fullname, role id, role name, url of the resource/activity, time of change)&lt;br /&gt;
    or false in case of error (bad user/course id)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==get grades==&lt;br /&gt;
&lt;br /&gt;
INPUT:&lt;br /&gt;
   user unique id (Moodle&#039;s ID or idnumber or login or email)&lt;br /&gt;
   course unique Id (Moodle&#039;s ID ,idnumber or shortname) - optional (default = all my courses)&lt;br /&gt;
   &lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of grades and statistics for the given student in the given course&lt;br /&gt;
&lt;br /&gt;
OUTPUT:&lt;br /&gt;
    &amp;quot;array&amp;quot; of grades records (name,maxgrade,grade,percent,weight,weighted,sortOrder) &lt;br /&gt;
    and &amp;quot;array&amp;quot; of stats (gradeItems,allgrades, points,totalpoints, percent, weight, weighted;)  &lt;br /&gt;
    or false in case of error (bad user/course id or user not in course)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==get groups==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of group records in a given course (or site ?) &lt;br /&gt;
&lt;br /&gt;
==get group members==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of ids  for members of a group (within a course or global) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==enrol to group==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   add a new member to a group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==unenrol from group==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   remove membership from a group&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==get events ==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return a &amp;quot;list&amp;quot; of event&#039;s identifiers suitable from the &amp;quot;get event&amp;quot; operation&lt;br /&gt;
&lt;br /&gt;
==get event==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   return in an &amp;quot;exportable&amp;quot; format (iCal, vCal ...)an event recorded in Moodle database (site, course, private ...)&lt;br /&gt;
&lt;br /&gt;
==set event==&lt;br /&gt;
&lt;br /&gt;
OPERATION:&lt;br /&gt;
   add/modify an event in Moodle database (site, course, private ...)&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27905</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27905"/>
		<updated>2007-10-16T13:52:07Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Theme settings */ setting for category themes added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
You can now set category themes. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27904</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27904"/>
		<updated>2007-10-16T13:46:03Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Session themes */ Page theme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
You can now set category themes. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
==== Page theme ====&lt;br /&gt;
A page theme is for special page-only themes set by code.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27903</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27903"/>
		<updated>2007-10-16T13:28:15Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Category themes */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
You can now set category themes. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Appearance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27902</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27902"/>
		<updated>2007-10-16T13:27:39Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Course themes */ Category themes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Category themes ====&lt;br /&gt;
You can now set category themes. There is an admin setting to turn this feature on/off under &amp;quot;Site Administration/Apperance/Themes/Theme settings&amp;quot;. It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27901</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27901"/>
		<updated>2007-10-16T13:22:29Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Theme proprity from Moodle 1.9 on */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme priority from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27900</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27900"/>
		<updated>2007-10-16T13:16:08Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Theme proprity from Moodle 1.9 on */ code setting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme proprity from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27899</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Theme_settings&amp;diff=27899"/>
		<updated>2007-10-16T13:14:29Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Theme overview */ Theme priority from 1.9 on&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;themelist&#039;&#039; - This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserthemes&#039;&#039; - If you enable this, then users will be allowed to set their own themes. User themes override site themes but not course themes.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcoursethemes&#039;&#039; - If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes)..&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowuserstohideblocks&#039;&#039;- Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;showblocksonmodulepage&#039;&#039; -If activity module allows blocks, this will enable a pulldown list.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;allowcategorythemes&#039;&#039; - If you enable this, then themes can be set at the category level (from Moodle 1.9 onwards).&lt;br /&gt;
&lt;br /&gt;
== Theme types ==&lt;br /&gt;
&lt;br /&gt;
==== Site themes ====&lt;br /&gt;
Site themes may be previewed and chosen via Administration &amp;gt;&amp;gt; Configuration &amp;gt;&amp;gt; [[Themes]].&lt;br /&gt;
&lt;br /&gt;
==== User themes ====&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the [[user/edit|Edit profile]] page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
==== Course themes ====&lt;br /&gt;
If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
==== Session themes ====&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
== Theme overview ==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
== Theme proprity from Moodle 1.9 on ==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
The priority of themes can be set. The order defines which theme wins when there are several set at different levels. You can set a variable in config.php called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&lt;br /&gt;
&lt;br /&gt;
==Hide activity type navigation==&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
From Moodle 1.9 onwards, the activity type (e.g. Quizzes) crumb in the navigation bar may be hidden from students or all users.&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Plantilla:Themes&amp;diff=22241</id>
		<title>Plantilla:Themes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Plantilla:Themes&amp;diff=22241"/>
		<updated>2007-04-11T15:27:35Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: 1.8 theme upgrade page added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;sideblock right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;header&amp;quot;&amp;gt;[[Themes]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
* [[Theme basics]]&lt;br /&gt;
* [[Theme reference]]&lt;br /&gt;
* [[1.5 theme upgrade]]&lt;br /&gt;
* [[1.6 theme upgrade]]&lt;br /&gt;
* [[1.7 theme upgrade]]&lt;br /&gt;
* [[1.8 theme upgrade]]&lt;br /&gt;
* [[Theme config|Theme configuration]]&lt;br /&gt;
* [[Theme directory|Theme directory]]&lt;br /&gt;
* [[Theme scrapbook]]&lt;br /&gt;
* [[Theme sources|Sources]]&lt;br /&gt;
* [[Standards]]&lt;br /&gt;
* [[W3C validation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Header_logo&amp;diff=21796</id>
		<title>Header logo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Header_logo&amp;diff=21796"/>
		<updated>2007-03-25T12:28:33Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: space removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scrapbook}}&lt;br /&gt;
&lt;br /&gt;
To show your &#039;&#039;&#039;logo in the page header&#039;&#039;&#039;, the file &#039;&#039;header.html&#039;&#039; in your theme folder requires editing.&lt;br /&gt;
&lt;br /&gt;
In the file &#039;&#039;header.html&#039;&#039; you see the following lines (or similar):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
01: &amp;lt;?php if ($home) {  &lt;br /&gt;
02: // This is what gets printed on the home page only  &lt;br /&gt;
03: ?&amp;gt;&lt;br /&gt;
04:   &amp;lt;div id=&amp;quot;header-home&amp;quot;&amp;gt;&lt;br /&gt;
05:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;?php echo $heading ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
06:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
07:   &amp;lt;/div&amp;gt;&lt;br /&gt;
08: &amp;lt;?php } else if ($heading) {  &lt;br /&gt;
09: // This is what gets printed on any other page with a heading &lt;br /&gt;
10: ?&amp;gt;&lt;br /&gt;
11:   &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;
12:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;?php echo $heading ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
13:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
14:   &amp;lt;/div&amp;gt;&lt;br /&gt;
15: &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following code example shows a part from a header file with a logo. Please replace lines 5 and 12 above with lines 5 and 12 from the code example below. In particular, pay close attention to the statement &amp;lt;?php echo $CFG-&amp;gt;httpswwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/image.jpg. Some theme designers have mistakenly used &amp;lt;?php echo &amp;quot;$CFG-&amp;gt;wwwroot/theme/$CFG-&amp;gt;theme/image.jpg&amp;quot; ?&amp;gt;. Using $CFG-&amp;gt;theme gets the path for the site&#039;s default theme rather than the currently selected one. As a result, logos do not appear because they are not in the specified directory. $CFG-&amp;gt;wwwroot images throw unsecure warning in IE when using loginhttps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
01: &amp;lt;?php if ($home) {  &lt;br /&gt;
02: // This is what gets printed on the home page only  &lt;br /&gt;
03: ?&amp;gt;&lt;br /&gt;
04:   &amp;lt;div id=&amp;quot;header-home&amp;quot;&amp;gt;&lt;br /&gt;
05:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
        $CFG-&amp;gt;themewww.&#039;/&#039;.current_theme() ?&amp;gt;/pix/big_logo.gif&amp;quot; width=&amp;quot;300&amp;quot; &lt;br /&gt;
        height=&amp;quot;100&amp;quot; alt=&amp;quot;mycompany&amp;quot; title=&amp;quot;mycompany&amp;quot; id=&amp;quot;logo&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
06:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
07:   &amp;lt;/div&amp;gt;&lt;br /&gt;
08: &amp;lt;?php } else if ($heading) {  &lt;br /&gt;
09: // This is what gets printed on any other page with a heading &lt;br /&gt;
10: ?&amp;gt;&lt;br /&gt;
11:   &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;
12:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo&lt;br /&gt;
        $CFG-&amp;gt;themewww.&#039;/&#039;.current_theme() ?&amp;gt;/pix/small_logo.gif&amp;quot; width=&amp;quot;210&amp;quot; &lt;br /&gt;
        height=&amp;quot;70&amp;quot; alt=&amp;quot;mycompany&amp;quot; title=&amp;quot;mycompany&amp;quot; id=&amp;quot;logo&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
13:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
14:   &amp;lt;/div&amp;gt;&lt;br /&gt;
15: &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moodle offers one header for all pages and a different header for the front/home page. You may, for example, make the header for your front page higher and place a bigger logo on it.&lt;br /&gt;
&lt;br /&gt;
The logo position in the page header is defined in the CSS file &#039;&#039;styles_layout.css&#039;&#039;. Please change the values for the CLASS &amp;lt;code&amp;gt;.headermain&amp;lt;/code&amp;gt; and eventually for the IDs &amp;lt;code&amp;gt;#header&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#header-home&amp;lt;/code&amp;gt; if needed. You can find the definitions in the section header of the CSS file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A tip for a fast jump to the header section of the CSS file:&#039;&#039;&#039; Select and copy the word &amp;quot;header&amp;quot; in the section list at the beginning of the file. Then call find in your program and paste &amp;quot;header&amp;quot; into the search dialogue. After you click &amp;quot;find&amp;quot; in your dialogue your program will find the start of the header section.&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Header_logo&amp;diff=21795</id>
		<title>Header logo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Header_logo&amp;diff=21795"/>
		<updated>2007-03-25T12:27:34Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: links changed to show &amp;quot;themewww .&amp;#039;/&amp;#039;.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scrapbook}}&lt;br /&gt;
&lt;br /&gt;
To show your &#039;&#039;&#039;logo in the page header&#039;&#039;&#039;, the file &#039;&#039;header.html&#039;&#039; in your theme folder requires editing.&lt;br /&gt;
&lt;br /&gt;
In the file &#039;&#039;header.html&#039;&#039; you see the following lines (or similar):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
01: &amp;lt;?php if ($home) {  &lt;br /&gt;
02: // This is what gets printed on the home page only  &lt;br /&gt;
03: ?&amp;gt;&lt;br /&gt;
04:   &amp;lt;div id=&amp;quot;header-home&amp;quot;&amp;gt;&lt;br /&gt;
05:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;?php echo $heading ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
06:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
07:   &amp;lt;/div&amp;gt;&lt;br /&gt;
08: &amp;lt;?php } else if ($heading) {  &lt;br /&gt;
09: // This is what gets printed on any other page with a heading &lt;br /&gt;
10: ?&amp;gt;&lt;br /&gt;
11:   &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;
12:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;?php echo $heading ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
13:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
14:   &amp;lt;/div&amp;gt;&lt;br /&gt;
15: &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following code example shows a part from a header file with a logo. Please replace lines 5 and 12 above with lines 5 and 12 from the code example below. In particular, pay close attention to the statement &amp;lt;?php echo $CFG-&amp;gt;httpswwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/image.jpg. Some theme designers have mistakenly used &amp;lt;?php echo &amp;quot;$CFG-&amp;gt;wwwroot/theme/$CFG-&amp;gt;theme/image.jpg&amp;quot; ?&amp;gt;. Using $CFG-&amp;gt;theme gets the path for the site&#039;s default theme rather than the currently selected one. As a result, logos do not appear because they are not in the specified directory. $CFG-&amp;gt;wwwroot images throw unsecure warning in IE when using loginhttps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
01: &amp;lt;?php if ($home) {  &lt;br /&gt;
02: // This is what gets printed on the home page only  &lt;br /&gt;
03: ?&amp;gt;&lt;br /&gt;
04:   &amp;lt;div id=&amp;quot;header-home&amp;quot;&amp;gt;&lt;br /&gt;
05:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
        $CFG-&amp;gt;themewww .&#039;/&#039;.current_theme() ?&amp;gt;/pix/big_logo.gif&amp;quot; width=&amp;quot;300&amp;quot; &lt;br /&gt;
        height=&amp;quot;100&amp;quot; alt=&amp;quot;mycompany&amp;quot; title=&amp;quot;mycompany&amp;quot; id=&amp;quot;logo&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
06:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
07:   &amp;lt;/div&amp;gt;&lt;br /&gt;
08: &amp;lt;?php } else if ($heading) {  &lt;br /&gt;
09: // This is what gets printed on any other page with a heading &lt;br /&gt;
10: ?&amp;gt;&lt;br /&gt;
11:   &amp;lt;div id=&amp;quot;header&amp;quot;&amp;gt;&lt;br /&gt;
12:     &amp;lt;div class=&amp;quot;headermain&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;?php echo&lt;br /&gt;
        $CFG-&amp;gt;themewww .&#039;/&#039;.current_theme() ?&amp;gt;/pix/small_logo.gif&amp;quot; width=&amp;quot;210&amp;quot; &lt;br /&gt;
        height=&amp;quot;70&amp;quot; alt=&amp;quot;mycompany&amp;quot; title=&amp;quot;mycompany&amp;quot; id=&amp;quot;logo&amp;quot; /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
13:     &amp;lt;div class=&amp;quot;headermenu&amp;quot;&amp;gt;&amp;lt;?php echo $menu ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
14:   &amp;lt;/div&amp;gt;&lt;br /&gt;
15: &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moodle offers one header for all pages and a different header for the front/home page. You may, for example, make the header for your front page higher and place a bigger logo on it.&lt;br /&gt;
&lt;br /&gt;
The logo position in the page header is defined in the CSS file &#039;&#039;styles_layout.css&#039;&#039;. Please change the values for the CLASS &amp;lt;code&amp;gt;.headermain&amp;lt;/code&amp;gt; and eventually for the IDs &amp;lt;code&amp;gt;#header&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#header-home&amp;lt;/code&amp;gt; if needed. You can find the definitions in the section header of the CSS file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A tip for a fast jump to the header section of the CSS file:&#039;&#039;&#039; Select and copy the word &amp;quot;header&amp;quot; in the section list at the beginning of the file. Then call find in your program and paste &amp;quot;header&amp;quot; into the search dialogue. After you click &amp;quot;find&amp;quot; in your dialogue your program will find the start of the header section.&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Metacourse&amp;diff=21640</id>
		<title>Metacourse</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Metacourse&amp;diff=21640"/>
		<updated>2007-03-21T11:27:18Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;metacourse&#039;&#039;&#039; automatically enrolls participants from other &amp;quot;child&amp;quot; courses.  For example, each time a student enrols in (or unenrols from) a course, they are enrolled/unenrolled from any metacourse(s) associated with it. &lt;br /&gt;
&lt;br /&gt;
Please note that metacourse enrolments do not preserve groups and enrolment does not happen immediately.&lt;br /&gt;
&lt;br /&gt;
==Metacourse setup==&lt;br /&gt;
Teachers are able to choose whether a course is a metacourse via the &amp;quot;Is this a metacourse?&amp;quot; (yes/no) menu option in the [[Course settings|course settings]]. In Moodle 1.5 and 1.6, if a meta course is chosen, the [[Students|students]] page changes from listing/searching for students to listing/searching for courses.  In Moodle 1.7 &amp;quot;Child courses&amp;quot; appears in the teacher&#039;s administration block.&lt;br /&gt;
&lt;br /&gt;
==Metacourse examples==&lt;br /&gt;
Metacourses may be used in a variety of ways:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scenario 1:&#039;&#039;&#039; X is a metacourse with Course 1 through 4 as normal courses with standard student enrollments. Students enrolling on these courses are automatically enrolled onto Metacourse X. This would be used, for example, when every student gets to choose one option from Courses 1-4 but Metacourse X is compulsory for all students taking one of those four options. &lt;br /&gt;
&lt;br /&gt;
[[Image:Metacourses1_en.jpg|Standard Metacourse Usage]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scenario 2:&#039;&#039;&#039; Metacourses 1-4 are linked to Y which is a normal course. Students enrolling on Course Y are automatically enrolled on Metacourses  1-4. This would be used, for example, when all five courses are intended to have exactly the same students. &lt;br /&gt;
&lt;br /&gt;
[[Image:Metacourses2_en.jpg|Upsidedown Metacourse Usage]]&lt;br /&gt;
&lt;br /&gt;
In both diagrams you can see students being enrolled normally into standard courses and then the entire student list of a course being added to the Metacourse.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scenario 3:&#039;&#039;&#039; One or more meta courses are used as a library of resources and activities.  For example, the English department has collected material useful in writing papers. Teachers can direct or embed a link to a specific reference about citations, or how to select a topic for a paper or suggested reading compiled by students.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scenario 4:&#039;&#039;&#039; The metacourse feature can also be used &amp;quot;in reverse.&amp;quot;  Say you have a Diploma program that involves courses D1, D2, D3, and D4.  In this case, you would create a &amp;quot;Diploma&amp;quot; course as a normal course (non-metacourse).  You would then designate programs D1 through D4 as metacourses (plus completing the student enrollment task under Course Administration).  When a student enrolls in &amp;quot;Diploma&amp;quot;, he or she will be automatically enrolled in courses D1 through D4.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=48901 Metacourses?], [http://moodle.org/mod/forum/discuss.php?d=54389 Metacourses and Roles in 1.7] and [http://moodle.org/mod/forum/discuss.php?d=39438 Best reference for describing a metacourse] forum discussions&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[Category:Enrolment]]&lt;br /&gt;
&lt;br /&gt;
[[es:Metacourses]]&lt;br /&gt;
[[fr:Méta-cours]]&lt;br /&gt;
[[ru:Метакурсы]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Cron&amp;diff=19235</id>
		<title>Cron</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Cron&amp;diff=19235"/>
		<updated>2007-01-09T14:17:25Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some of Moodle&#039;s modules require continual checks to perform tasks. For example, Moodle needs to check the discussion forums so it can mail out copies of posts to people who have subscribed.&lt;br /&gt;
&lt;br /&gt;
The script that does all this is located in the admin directory, and is called cron.php. However, it can not run itself, so you need to set up a mechanism where this script is run regularly (eg every five or ten minutes). This provides a &amp;quot;heartbeat&amp;quot; so that the script can perform functions at periods defined by each module. This kind of regular mechanism is known as a &#039;&#039;&#039;cron service&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The cron.php script looks through all the module directories for cron.php files and runs them.  These files can contain cleanup functions, email functions or anything that needs to be run on a regular basis. For example, cron will trigger the system to create the backups of courses at the time specified in the administration settings. It also triggers any messaging module or forum email notifications, but not all functions are called each time the cron runs. Some functions, such as unenrolling students who have not logged in or deleting old copies of log files, are only run occasionally. The cron.php file has a section which will randomly call these core tasks approximately 1 in 5 times the cron runs.&lt;br /&gt;
&lt;br /&gt;
Note that the machine performing the cron &#039;&#039;&#039;does not need to be the same machine that is running Moodle&#039;&#039;&#039;. For example, if you have a limited web hosting service that does not have a cron service, then you might choose to run cron on another server or on your home computer. All that matters is that the cron.php file is called regularly.&lt;br /&gt;
&lt;br /&gt;
The load of this script is not very high, so 5 minutes is usually reasonable, but if you&#039;re worried about it you can reduce the time period to something like 15 minutes or even 30 minutes. It&#039;s best not to make the time period too long, as delaying mail-outs can slow down activity within the course. Remember that mail-outs also wait for the editing time to expire before being queued for sending.&lt;br /&gt;
&lt;br /&gt;
First, test that the script works by running it directly from your browser: &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin/cron.php&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If cron is called from the command line by any user logged in to your Moodle it will create a temporary admin environment in order to run and then log the user out. You can disable command line running of cron by disabling the appropriate section in the cron.php file.&lt;br /&gt;
&lt;br /&gt;
Now, you need to set up some of way of running the script automatically and regularly.&lt;br /&gt;
&lt;br /&gt;
==On Windows systems==&lt;br /&gt;
&lt;br /&gt;
The simplest way is to use this little package [http://moodle.org/download/modules/moodle-cron-for-windows.zip moodle-cron-for-windows.zip] which makes this whole thing very easy by installing a small Windows service. Run it and forget about it! :-)&lt;br /&gt;
&lt;br /&gt;
On the other hand, if you are having trouble with moodle-cron-for-windows package, you can use wget for windows and setup a scheduled task. Just follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Download a compiled version of wget for windows from Heiko Herold&#039;s wget for windows page (http://xoomer.virgilio.it/hherold/) or Bart Puype&#039;s wget for windows page (http://users.ugent.be/~bpuype/wget/). If you use Heiko Herold&#039;s package, copy all of the .DLL files to your C:\Windows\system32 directory.&lt;br /&gt;
# Copy the wget.exe file to c:\windows (this makes sure wget is always in the search path).&lt;br /&gt;
# Go to Start &amp;gt;&amp;gt; Control Panel &amp;gt;&amp;gt; Scheduled Tasks &amp;gt;&amp;gt; Add Scheduled Task.&lt;br /&gt;
## Click &amp;quot;Next&amp;quot; to start the wizard:&lt;br /&gt;
## Click in the &amp;quot;Browse...&amp;quot; button and browse to C:\windows\wget.exe and click &amp;quot;Open&amp;quot;&lt;br /&gt;
## Type &amp;quot;Moodle Cron&amp;quot; as the name of the task and select &amp;quot;Daily&amp;quot; as the schedule. Click &amp;quot;Next&amp;quot;.&lt;br /&gt;
## Select &amp;quot;12:00 AM&amp;quot; as the start time, perform the task &amp;quot;Every Day&amp;quot; and choose today&#039;s date as the starting date. Click &amp;quot;Next&amp;quot;.&lt;br /&gt;
## Enter the username and password of the user the task will run under (it doesn&#039;t have to be a priviledged account at all). Make sure you type the password correctly :-). Click &amp;quot;Next&amp;quot;.&lt;br /&gt;
## Mark the checkbox titled &amp;quot;Open advanced properties for this task when I click Finish&amp;quot; and click &amp;quot;Finish&amp;quot;.&lt;br /&gt;
## In the new dialog box, type the following in the &amp;quot;Run:&amp;quot; text box:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
C:\windows\wget.exe -q -O NUL http://my.moodle.site/moodle/admin/cron.php&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Replace &amp;quot;my.moode.site&amp;quot; above with the name of your site.&lt;br /&gt;
## Click on the &amp;quot;Schedule&amp;quot; tab and there in the &amp;quot;Advanced...&amp;quot; button.&lt;br /&gt;
## Mark the &amp;quot;Repeat task&amp;quot; checkbox and set &amp;quot;Every:&amp;quot; to 5 minutes, and set &amp;quot;Until:&amp;quot; to &amp;quot;Duration&amp;quot; and type &amp;quot;23&amp;quot; hours and &amp;quot;59&amp;quot; minutes.&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; and you are done.&lt;br /&gt;
&lt;br /&gt;
A third option, if wget is also causing difficulties, is to use php.exe (command line binary). If you are using the windows installer package, you already have this. Follow the sceduled tasks instructions above, but in the &#039;run&#039; box, enter&lt;br /&gt;
&lt;br /&gt;
 php cron.php&lt;br /&gt;
&lt;br /&gt;
and in the &#039;Start in:&#039; box type the path to your moodle admin directory e.g.&lt;br /&gt;
&lt;br /&gt;
 C:\path-to-moodle\admin\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test that your scheduled task can run successfully by clicking it with the right button and chosing &amp;quot;Run&amp;quot;. If everything is correctly setup, you will briefly see a DOS command window while wget/php executes and fetches the cron page and then it disappears.&lt;br /&gt;
&lt;br /&gt;
If you refresh the scheduled tasks folder, you will see the Last Run Time column (in detailed folder view) reflects the current time, and that the Last Result column displays &amp;quot;0x0&amp;quot; (everything went OK). If either of these is different, then you should recheck your setup.&lt;br /&gt;
&lt;br /&gt;
==On web hosting services==&lt;br /&gt;
&lt;br /&gt;
Your web-based control panel may have a web page that allows you to set up this cron process. &lt;br /&gt;
&lt;br /&gt;
If you are using CPanel, login then look for the heading &amp;quot;Advanced&amp;quot; on the page. Click on Cron Jobs -&amp;gt; Advanced (unix style). Enter the following for the cron to run every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
 Email address for output: emailaddress@mydomain.con&lt;br /&gt;
 Minute:*/30&lt;br /&gt;
 Hour:*&lt;br /&gt;
 Day:*&lt;br /&gt;
 Month:*&lt;br /&gt;
 Weekday:* &lt;br /&gt;
 Command: wget -q -O /dev/null http://www.mydomain.com/moodle/admin/cron.php&lt;br /&gt;
&lt;br /&gt;
Click Commit Changes. Check your email for the output. An example is shown below:&lt;br /&gt;
&lt;br /&gt;
[[Image:Cpanel-cron-setup.JPG]]&lt;br /&gt;
&lt;br /&gt;
For other systems, look for a button called &amp;quot;Cron jobs&amp;quot;. In there you can put the same sort of Unix commands as listed below.&lt;br /&gt;
&lt;br /&gt;
==Using the command line on Unix==&lt;br /&gt;
&lt;br /&gt;
There are different command line programs you can use to call the page from the command line. Not all of them may be available on a given server.&lt;br /&gt;
&lt;br /&gt;
For example, you can use a Unix utility like &#039;wget&#039;:&lt;br /&gt;
&lt;br /&gt;
 wget -q -O /dev/null &amp;lt;nowiki&amp;gt;http://example.com/moodle/admin/cron.php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note in this example that the output is thrown away (to /dev/null).&lt;br /&gt;
&lt;br /&gt;
A number of users of Moodle have found that &#039;wget&#039; sometimes fails. Especially if you have trouble with email digests not being sent on a daily basis to all users, an alternative command that solves the problem is:&lt;br /&gt;
&lt;br /&gt;
 php &amp;lt;nowiki&amp;gt;http://example.com/moodle/admin/cron.php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The same thing using lynx:&lt;br /&gt;
&lt;br /&gt;
 lynx -dump &amp;lt;nowiki&amp;gt;http://example.com/moodle/admin/cron.php&amp;lt;/nowiki&amp;gt; &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
Note in this example that the output is thrown away (to /dev/null).&lt;br /&gt;
&lt;br /&gt;
Alternatively you could use a standalone version of PHP, compiled to be run on the command line. The advantage with doing this is that your web server logs aren&#039;t filled with constant requests to cron.php. The disadvantage is that you need to have access to a command-line version of php.&lt;br /&gt;
&lt;br /&gt;
 /opt/bin/php /web/moodle/admin/cron.php&lt;br /&gt;
&lt;br /&gt;
==Using the crontab program on Unix==&lt;br /&gt;
&lt;br /&gt;
All that Cpanel does is provide a web interface to a Unix utility known as crontab. If you have a command line, you can set up crontab yourself using the command:&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
and then adding one of the above commands like:&lt;br /&gt;
&lt;br /&gt;
 */5 * * * * wget -q -O /dev/null &amp;lt;nowiki&amp;gt;http://example.com/moodle/admin/cron.php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first five entries are the times to run values, followed by the command to run. The asterisk is a wildard, indicating any time. The above example means run the command &#039;&#039;wget -q -O /dev/null...&#039;&#039; every 5 minutes (*/5), every hour (*), every day of the month (*), every month (*), every day of the week (*).  &lt;br /&gt;
&lt;br /&gt;
* [http://linuxweblog.com/node/24 A basic crontab tutorial] &lt;br /&gt;
* [http://www.freebsd.org/cgi/man.cgi?query=crontab&amp;amp;apropos=0&amp;amp;sektion=5&amp;amp;manpath=FreeBSD+6.0-RELEASE+and+Ports&amp;amp;format=html Online version of the man page] &lt;br /&gt;
&lt;br /&gt;
Usually, the &amp;quot;crontab -e&amp;quot; command will put you into the &#039;vi&#039; editor. You enter &amp;quot;insert mode&amp;quot; by pressing &amp;quot;i&amp;quot;, then type in the line as above, then exit insert mode by pressing ESC. You save and exit by typing &amp;quot;:wq&amp;quot;, or quit without saving using &amp;quot;:q!&amp;quot; (without the quotes). Here is an [http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html intro] to the &#039;vi&#039; editor.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=41827 Cron - can someone give me a quick confirmation of function?] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Cron]]&lt;br /&gt;
[[fr:Cron]]&lt;br /&gt;
[[nl:Cron]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=18236</id>
		<title>Usuari:Urs Hunkler</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Urs_Hunkler&amp;diff=18236"/>
		<updated>2006-11-28T19:48:01Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: changed picture link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:urs.png|left]]&lt;br /&gt;
&lt;br /&gt;
I am a web designer specializing in Internet-based working and learning. And I am a Moodle Partner with my company [http://unodo.de unodo]. &lt;br /&gt;
&lt;br /&gt;
The Moodle 1.5 CSS re-work was led by my proposals and guidance. I will accompany further Moodle development with theme management. &lt;br /&gt;
&lt;br /&gt;
The interactive Moodle theme [[Chameleon]] is one project. The Accordion Course format another. The outcome of these projects you can see and try on the [http://chameleon-theme.unodo.de/ Chameleon] site.&lt;br /&gt;
&lt;br /&gt;
I developed the MoodleDocs skin to integrate it&#039;s look with moodle.org and will enhance it for better functionality.&lt;br /&gt;
&lt;br /&gt;
* [[Themes]]&lt;br /&gt;
&lt;br /&gt;
--[[User:UrsHunkler|UrsHunkler]] 15:16, 10 February 2006 (WST)&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17328</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17328"/>
		<updated>2006-10-20T06:18:40Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but the message pages to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field with your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images, hides the page header and adjusts some positioning. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but not the chat window to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field with your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the chat CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#mod-chat-index table.generaltable td.c0 {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view div#content {&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view table#layout-table td#middle-column {&lt;br /&gt;
  padding-top: 30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17327</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17327"/>
		<updated>2006-10-20T06:18:20Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but the message pages to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field with your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images, hides the page header and adjusts some positioning. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but not the chat window to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the chat CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#mod-chat-index table.generaltable td.c0 {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view div#content {&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view table#layout-table td#middle-column {&lt;br /&gt;
  padding-top: 30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17325</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17325"/>
		<updated>2006-10-20T05:01:18Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: Added &amp;quot;Tips and Tricks&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but the message pages to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images, hides the page header and adjusts some positioning. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but not the chat window to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the chat CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#mod-chat-index table.generaltable td.c0 {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view div#content {&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view table#layout-table td#middle-column {&lt;br /&gt;
  padding-top: 30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17324</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17324"/>
		<updated>2006-10-20T04:59:40Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but the message pages to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can I change the background of the &amp;quot;chat&amp;quot; window with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images, hides the page header and adjusts some positioning. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on any page but not the chat window to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the chat CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#mod-chat-index table.generaltable td.c0 {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-chatinput {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users #page {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
#mod-chat-gui_header_js-users {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view div#content {&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
body#mod-chat-view table#layout-table td#middle-column {&lt;br /&gt;
  padding-top: 30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17323</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17323"/>
		<updated>2006-10-20T04:53:48Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
=== How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You may change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on the page to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17322</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17322"/>
		<updated>2006-10-20T04:53:19Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
=== How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with a click on the page area you want to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You can change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on the page to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17321</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17321"/>
		<updated>2006-10-20T04:52:28Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? */  typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
=== How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with the click on the page area to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You can change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on the page to open the Chameleon dialogue&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the selectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17320</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=17320"/>
		<updated>2006-10-20T04:51:02Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: change message CSS with Chameleon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
=== How can I change background of the &amp;quot;messages&amp;quot; with Chameleon? ===&lt;br /&gt;
&lt;br /&gt;
Not in the way you are used with the click on the page area to change. Some areas of Moodle are not accessible with Chameleon. You may add the message CSS selectors and their properties below in Chameleon with copy and paste. The CSS below mainly disables background images. You can change the properties to get different colours or whatever you want.&lt;br /&gt;
&lt;br /&gt;
* You may click anywhere on the page to open the Chameleon dialog&lt;br /&gt;
* Click on the &amp;quot;Free Edit&amp;quot; button to open the edit field of your CSS code&lt;br /&gt;
* Scroll to the end of your code or to a place you consider best for the message CSS&lt;br /&gt;
* Copy the slectors/properties below and paste them into the edit field&lt;br /&gt;
* Save as usual with &amp;quot;Save Temp&amp;quot; if you want to check the changes first or with &amp;quot;Save Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body#message-user {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-messages {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-send {&lt;br /&gt;
  background-image: none;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#content {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  padding-top: 0;&lt;br /&gt;
}&lt;br /&gt;
body#message-user div#header {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Table_of_locales&amp;diff=16499</id>
		<title>Table of locales</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Table_of_locales&amp;diff=16499"/>
		<updated>2006-09-30T15:52:24Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Support in operating systems */  start webserver after locale install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
&#039;&#039;&#039;Definition:&#039;&#039;&#039; (from [http://en.wikipedia.org/wiki/Locale Wikipedia]) Locale is a set of parameters that defines the user&#039;s language, country and any special variant preferences that the user wants to see in their user interface. Usually a locale identifier consists of at least a language identifier and a region identifier.&lt;br /&gt;
&lt;br /&gt;
Currently such locales are named differently under Unix-based and Win32-based platforms so we need to have them defined separately to allow Moodle to use them as necessary. For each &#039;&#039;&#039;lang package&#039;&#039;&#039; available for Moodle, we must specify the &#039;&#039;&#039;locale&#039;&#039;&#039; value (Unix locale) and the &#039;&#039;localewin&#039;&#039;&#039; value (Win32 locale). Both those strings should be (no mandatory) defined inside each Moodle 1.6 and upwards langpack to be able to display locale strings properly.&lt;br /&gt;
&lt;br /&gt;
The general syntax for locales is:&lt;br /&gt;
&lt;br /&gt;
    language[_country][.charset]&lt;br /&gt;
&lt;br /&gt;
(with information under brackets being optional)&lt;br /&gt;
&lt;br /&gt;
While the &#039;&#039;&#039;.charset&#039;&#039;&#039; part seems to work properly under Unix, it seems that is not working under Win32 (at least from PHP), and strings returned from some PHP functions aren&#039;t in the charset specified but in some sort of default charset. Let&#039;s call it &#039;&#039;&#039;localewincharset&#039;&#039;&#039;. This forces us to convert from this charset to the current_charset() being used by the user.&lt;br /&gt;
&lt;br /&gt;
==Support in operating systems==&lt;br /&gt;
Just in case you freshly installed some new locales and they don&#039;t seem to work don&#039;t forget to restart your webserver.&lt;br /&gt;
&lt;br /&gt;
===openSUSE===&lt;br /&gt;
* SUSE linux 10.1 contains all necessary locales in default installation&lt;br /&gt;
&lt;br /&gt;
===Ubuntu based===&lt;br /&gt;
The default installation contains only limited number of locales. You can generate all locales on server from command line:&lt;br /&gt;
&lt;br /&gt;
     sudo ln -s /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/all&lt;br /&gt;
     sudo locale-gen&lt;br /&gt;
&lt;br /&gt;
===Debian based===&lt;br /&gt;
The default installation contains only a limited number of locales. You can generate the locales you need  on your server from the command line. Login as root and execute:&lt;br /&gt;
&lt;br /&gt;
     dpkg-reconfigure locales&lt;br /&gt;
&lt;br /&gt;
choose the ones you need and press OK, next select the default locale for your server and press OK.&lt;br /&gt;
&lt;br /&gt;
===FreeBSD===&lt;br /&gt;
All 5.x and later versions should already contain a large number of supported locales with utf-8 charset.&lt;br /&gt;
&lt;br /&gt;
===MS Windows===&lt;br /&gt;
There is no way to add new locales, see following table for list of supported locales.&lt;br /&gt;
&lt;br /&gt;
==Table==&lt;br /&gt;
&lt;br /&gt;
So, for each 1.6 Moodle language pack, we&#039;ll describe below this columns:&lt;br /&gt;
* &#039;&#039;&#039;package_name:&#039;&#039;&#039; name of the language pack as showed in http://download.moodle.org/lang16/.&lt;br /&gt;
* &#039;&#039;&#039;lang_name:&#039;&#039;&#039; name of the language as showed in http://download.moodle.org/lang16/.&lt;br /&gt;
* &#039;&#039;&#039;locale:&#039;&#039;&#039; locale string to be used under Unix platforms. This will be stored in each language &#039;&#039;&#039;langconfig.php&#039;&#039;&#039; file.&lt;br /&gt;
* &#039;&#039;&#039;localewin:&#039;&#039;&#039; locale string to be used under Win32 platforms. This will be stored in each language &#039;&#039;&#039;langconfig.php&#039;&#039;&#039; file.&lt;br /&gt;
* &#039;&#039;&#039;localewincharset:&#039;&#039;&#039; charset in which PHP is retrieving information from locale-dependent functions (strftime...). This will allow us to convert such strings to the final charset properly. This will be stored in each language &#039;&#039;&#039;langconfig.php&#039;&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&#039;&#039;&#039;package_name&#039;&#039;&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&#039;&#039;&#039;lang_name&#039;&#039;&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&#039;&#039;&#039;locale&#039;&#039;&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&#039;&#039;&#039;localewin&#039;&#039;&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&#039;&#039;&#039;localewincharset&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;af_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Afrikaans&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;af_ZA.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Afrikaans_South Africa.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sq_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Albanian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sq_AL.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Albanian_Albania.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ar_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Arabic&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ar_SA.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Arabic_Saudi Arabia.1256&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1256&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;eu_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Basque&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;eu_ES.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Basque_Spain.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;be_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Belarusian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;be_BY.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Belarusian_Belarus.1251&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1251&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;bs_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Bosnian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;bs_BA.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Serbian (Latin)&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;bg_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Bulgarian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;bg_BG.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Bulgarian_Bulgaria.1251&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1251&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ca_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Catalan&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ca_ES.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Catalan_Spain.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hr_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Croatian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hr_HR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Croatian_Croatia.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zh_cn_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Chinese (Simplified)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zh_CN.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Chinese_China.936&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CP936&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zh_tw_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Chinese (Traditional)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zh_TW.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Chinese_Taiwan.950&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CP950&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cs_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Czech&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cs_CZ.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Czech_Czech Republic.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;da_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Danish&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;da_DK.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Danish_Denmark.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;nl_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Dutch&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;nl_NL.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Dutch_Netherlands.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;en_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;English&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;en.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;English_Australia.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-empty string-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;en_us_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;English (US)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent en_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent en_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent en_utf8 used-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;et_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Estonian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;et_EE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Estonian_Estonia.1257&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1257&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fa_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Farsi&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fa_IR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Farsi_Iran.1256&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1256&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fil_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Filipino&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ph_PH.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Filipino_Philippines.1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WINDOWS-1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fi_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Finnish&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fi_FI.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Finnish_Finland.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fr_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;French&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fr_FR.UTF-8 &#039;&#039;or&#039;&#039;&amp;lt;br /&amp;gt;fr_CH.UTF-8 &#039;&#039;or&#039;&#039;&amp;lt;br /&amp;gt;fr_BE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;French_France.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fr_ca_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;French (Canada)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fr_CA.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent fr_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent fr_utf8 used-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ga_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gaelic&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ga.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Gaelic; Scottish Gaelic&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;gl_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Gallego&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;gl_ES.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Galician_Spain.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ka_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Georgian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ka_GE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Georgian_Georgia.65001&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-empty string-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;de_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;German&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;de_DE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;German_Germany.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;de_du_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;German (Personal)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;de_DE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent de_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent de_utf8 used-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;el_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Greek&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;el_GR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Greek_Greece.1253&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1253&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;he_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Hebrew&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;he_IL.utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Hebrew_Israel.1255&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1255&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hi_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Hindi&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hi_IN.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Hindi.65001&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-empty string-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hu_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Hungarian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hu.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Hungarian_Hungary.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;is_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Icelandic&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;is_IS.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Icelandic_Iceland.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;id_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Indonesian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;id_ID.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Indonesian_indonesia.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;it_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Italian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;it_IT.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Italian_Italy.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ja_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Japanese&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ja_JP.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Japanese_Japan.932&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;CP932&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;kn_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Kannada&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;kn_IN.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Kannada.65001&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-empty string-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;km_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Khmer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;km_KH.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Khmer.65001&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-empty string-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ko_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Korean&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ko_KR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Korean_Korea.949&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;EUC-KR&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lt_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Lithuanian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lt_LT.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Lithuanian_Lithuania.1257&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1257&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lv_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Latvian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lat.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Latvian_Latvia.1257&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1257&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ml_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Malayalam&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ml_IN.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Malayalam_India.x-iscii-ma&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;x-iscii-ma&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ms_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Malaysian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;id_ID.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Indonesian_indonesia.1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WINDOWS-1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;mi_tn_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Maori (Ngai Tahu)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;mi_NZ.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Maori.1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WINDOWS-1252&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;no_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Norwegian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;no_NO.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Norwegian_Norway.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;undefined&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Norwegian (Primary)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;no_NO.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent no_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent no_utf8 used-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;nn_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Nynorsk&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;nn_NO.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Norwegian-Nynorsk_Norway.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pl_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Polish&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pl.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Polish_Poland.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pt_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Portuguese&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pt_PT.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Portuguese_Portugal.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pt_br_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Portuguese (Brazil)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;pt_BR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Portuguese_Brazil.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ro_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Romanian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ro_RO.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Romanian_Romania.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ru_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Russian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ru_RU.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Russian_Russia.1251&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1251&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sr_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Serbian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sr_CS.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Serbian (Cyrillic)_Serbia and Montenegro.1251&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1251&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sk_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Slovak&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sk_SK.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Slovak_Slovakia.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sl_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Slovenian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sl_SI.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Slovenian_Slovenia.1250&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;so_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Somali&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;so_SO.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;not found!&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;not found!&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;es_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Spanish (International)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;es_ES.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Spanish_Spain.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;es_es_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Spanish (Spain)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;es_ES.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent es_utf8 used-&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;-parent es_utf8 used-&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sv_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Swedish&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;sv_SE.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Swedish_Sweden.1252&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1252&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;tl_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Tagalog&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;tl.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;not found!&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;not found!&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;th_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Thai&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;th_TH.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Thai_Thailand.874&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-874&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;tr_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Turkish&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;tr_TR.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Turkish_Turkey.1254&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1254&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;uk_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Ukrainian&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;uk_UA.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Ukrainian_Ukraine.1251&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1251&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;vi_utf8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vietnamese&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;vi_VN.UTF-8&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Vietnamese_Viet Nam.1258&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;WINDOWS-1258&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Some locales for windows &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;in red&amp;lt;/span&amp;gt; could be incorrect (technically or geographically but they are the only way I&#039;ve found to show dates properly in my XP box). Also some other coloured cells must be revised because they are not working.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
=== Windows===&lt;br /&gt;
&lt;br /&gt;
* Win32 Language names: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp&lt;br /&gt;
* Win32 Country names: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp&lt;br /&gt;
* Win32 Codepage codes: http://www.microsoft.com/globaldev/reference/wincp.mspx&lt;br /&gt;
* Languages and codepages: http://www.science.co.il/Language/Locale-Codes.asp&lt;br /&gt;
* More languages and codepages: http://code.cside.com/3rdpage/windows/&lt;br /&gt;
* Languages and locales: http://www.livio.net/main/charset.asp&lt;br /&gt;
* Table of language identifiers: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_238z.asp&lt;br /&gt;
&lt;br /&gt;
===Unix===&lt;br /&gt;
&lt;br /&gt;
* Unix Language names: http://www.loc.gov/standards/iso639-2/englangn.html (639-2 is used only if 639-1 doesn&#039;t exist, see the &amp;quot;Locale Name Guide&amp;quot; below).&lt;br /&gt;
* Unix Country names: http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html&lt;br /&gt;
* Unix Charset codes: http://www.w3.org/International/O-charset-list.html&lt;br /&gt;
&lt;br /&gt;
===Other Information===&lt;br /&gt;
&lt;br /&gt;
* Locale Name Guide: http://openi18n.org/docs/text/LocNameGuide-V10.txt&lt;br /&gt;
* FAQ about ISO 639: http://www.loc.gov/standards/iso639-2/faq.html&lt;br /&gt;
* One initiative from Unicode: http://www.unicode.org/cldr/index.html&lt;br /&gt;
* Weekdays and Months: http://www.domesticat.net/misc/monthsdays.php&lt;br /&gt;
&lt;br /&gt;
[[es:Tabla de locales]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Language]]&lt;br /&gt;
[[Category:UTF-8]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16120</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16120"/>
		<updated>2006-09-20T05:58:15Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Proposal for interface enhancement */ several typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:useremail - Can use the enable/disable email stuff&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#[[Development:Backup_roles_1.7|Backups]] [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. The sketches below are not worked out proposals. Their task is to visualize the idea. The exact colours and functionality may be defined after possible agreement about the proposals. The Green, orange and red columns support the meaning of the options from &amp;quot;allow&amp;quot; to &amp;quot;prohibit&amp;quot; (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. Picture 1 shows that the user can keep a much better overview when the list is divided into meaningful different coloured columns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tool-tip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16119</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16119"/>
		<updated>2006-09-20T05:56:56Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Proposal for interface enhancement */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:useremail - Can use the enable/disable email stuff&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#[[Development:Backup_roles_1.7|Backups]] [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. The scetches below are not worked out proposals. Theier task is to visualize the idea. The exact colours and functionality may be defined after possible agreement about the proposals. The Green, orange and red columns support the meaning of the options from &amp;quot;allow&amp;quot; to &amp;quot;prohibit&amp;quot; (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. Picture 1 shows that the user can keep a much better overview when the list is divided into meaningful differnt coloured coulmns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tooltip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16108</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16108"/>
		<updated>2006-09-19T21:22:22Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Proposal for interface enhancement */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#Backups [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. The scetches blow are not worked out proposals. Theier task is to visualize the idea. The exact colours and functionality may be defined after possible agreement about the proposals. The Green, orange and red columns support the meaning of the options from &amp;quot;allow&amp;quot; to &amp;quot;prohibit&amp;quot; (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. Picture 1 shows that the user can keep a much better overview when the list is divided into meaningful differnt coloured coulmns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tooltip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16107</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16107"/>
		<updated>2006-09-19T21:17:33Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Proposal for interface enhancement */  enhancements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#Backups [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. The scetches blow are not worked out proposals. They only  visualize the idea. The exact colours and functionality may be defined after possible agreement about the proposals. The Green, orange and red columns support the meaning of the options from &amp;quot;allow&amp;quot; to &amp;quot;prohibit&amp;quot; (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. Picture 1 shows that the user can keep a much better overview when the list is divided into meaningful differnt coloured coulmns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tooltip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16106</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16106"/>
		<updated>2006-09-19T21:08:34Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Proposal for interface enhancement */  typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#Backups [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. Picture 1 shows that the user can keep a much better overview when the list is divided into visible differnt coulmns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tooltip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16105</id>
		<title>Broken/Roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=16105"/>
		<updated>2006-09-19T21:05:57Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: Add section &amp;quot;interface proposals&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and permissions&#039;&#039;&#039; will be in Moodle 1.7 and are available in the developer version of Moodle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
A role is an identifier of the user&#039;s status in some context, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a description of some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;mod/forum:replypost&#039;&#039; is a capability.&lt;br /&gt;
&lt;br /&gt;
A permission is some value that is assigned for a capability for a particular role.  For example, allow or prevent.&lt;br /&gt;
&lt;br /&gt;
A context is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks etc.&lt;br /&gt;
&lt;br /&gt;
==The existing system==&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle, we have a fixed set of roles i.e. primary admin, admins, course creators, editing teachers, non-editing teachers, students, and guests. For each role, the capability or actions that they can perform are fixed. For example, the role student allows the user to submit an assignment, but doesn&#039;t allow the user to browse/edit other users&#039; work. By using this setup we limit ourselves to a rather rigid set of capabilities for each role. If we want, say a particular student or group to be able to mark assignments in a particular course, we can&#039;t do that without giving these users teacher privileges.&lt;br /&gt;
&lt;br /&gt;
==The new roles and capability system==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Moodle 1.7}}The new system will allow authorized users to define an arbitrary number of roles (eg a teacher) &lt;br /&gt;
&lt;br /&gt;
A role consists of a list of permissions for different possible actions within Moodle (eg delete discussions, add activities etc)&lt;br /&gt;
&lt;br /&gt;
Roles can be applied to users in a context (eg assign Fred as a teacher in a particular course)&lt;br /&gt;
&lt;br /&gt;
Here are the possible contexts, listed from the most general to the most specific. &lt;br /&gt;
&lt;br /&gt;
#CONTEXT_SYSTEM       -- the whole site&lt;br /&gt;
#CONTEXT_PERSONAL     -- yourself&lt;br /&gt;
#CONTEXT_USER         -- another user&lt;br /&gt;
#CONTEXT_COURSECAT    -- a course category&lt;br /&gt;
#CONTEXT_COURSE       -- a course&lt;br /&gt;
#CONTEXT_GROUP        -- a group&lt;br /&gt;
#CONTEXT_MODULE       -- an activity module&lt;br /&gt;
#CONTEXT_BLOCK        -- a block&lt;br /&gt;
&lt;br /&gt;
An authorized user will be able to assign an arbitrary number of roles to each user in any context.&lt;br /&gt;
&lt;br /&gt;
Capabilities can have the following permissions:&lt;br /&gt;
&lt;br /&gt;
#CAP_INHERIT&lt;br /&gt;
#CAP_ALLOW&lt;br /&gt;
#CAP_PREVENT&lt;br /&gt;
#CAP_PROHIBIT&lt;br /&gt;
&lt;br /&gt;
If no permission is defined, then the capability permission is inherited from a context that is more general than the current context. If we define different permission values for the same capability in different contexts, we say that we are overriding the capability in the more specific context.&lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by enforcing the rule that the capability defined for a more specific context will win, unless a prohibit is encountered in a less specific context.&lt;br /&gt;
&lt;br /&gt;
For example, Mark has a student role at course level, which allows him to write into a wiki. But Mark also got assigned a Visitor role at a module context level (for a particular wiki) which prevents him from writing to the wiki (read only). Therefore, for this particular wiki, Mark will not be able to write to the wiki since the more specific context wins.&lt;br /&gt;
&lt;br /&gt;
If we set a PROHIBIT on a capability, it means that the capability cannot be overridden and will ALWAYS  have a permission of prevent (deny). Prohibit always wins.   For example, Jeff has a naughty student role that prohibits him from postings in any forums (for the whole site), but he&#039;s also assigned a facilitator role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since prohibit always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Allow and prevent will cancel each other out if set for the same capability at the same context level. If this happens, we refer to the previous context level to determine the permission for the capability.&lt;br /&gt;
&lt;br /&gt;
This may sound more complex than it really is in practice.  The upshot is that the system can be flexible enough to allow pretty much any combination of permissions.&lt;br /&gt;
&lt;br /&gt;
==Upgrading from 1.6==&lt;br /&gt;
&lt;br /&gt;
A smooth upgrade will be provided with 1.7. The existing roles (admin, teacher, student, etc), and the existing capabilities will be automatically retained.  This is done by creating default roles at site/course levels, and assigning the current users to these roles accordingly. The default roles will have default capabilities associated with them, mirroring what we have  in 1.6.   With no modifications, Moodle will operate exactly the same before and after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Teachers===&lt;br /&gt;
&lt;br /&gt;
Users who were teachers will be assigned the default legacy teacher role (or non-editing teacher role) in all courses they were teacher.&lt;br /&gt;
&lt;br /&gt;
===Students===&lt;br /&gt;
&lt;br /&gt;
Users who were students will be assigned the default student role in all courses they were student.&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
&lt;br /&gt;
There will still be a single guest user with no default role at site level.   For each course that allows guest access, the guest role will be assigned to the guest user for that course context.   The guest control for the course will be modified from three to two options (guests always need to enter enrolment key - on/off).  This setting is checked as now to force guests to enter key.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This will be a comprehensive list of capabilities (it&#039;s not complete yet). It is important that capability names are unique.&lt;br /&gt;
&lt;br /&gt;
===Core-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
Moodle core capability names start with &#039;moodle/&#039;.  The next word indicates what type of core capability it is, and the last word is the actual capability itself.  The capabilities for the Moodle core are defined in lib/db/access.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#moodle/legacy:guest - legacy capabilities are used to transition existing users to the new roles system during the upgrade to Moodle 1.7&lt;br /&gt;
#moodle/legacy:student&lt;br /&gt;
#moodle/legacy:teacher&lt;br /&gt;
#moodle/legacy:editingteacher&lt;br /&gt;
#moodle/legacy:coursecreator&lt;br /&gt;
#moodle/legacy:admin&lt;br /&gt;
#moodle/site:doanything - special capability, meant for admins, if is set, overrides all other capability settings&lt;br /&gt;
#moodle/site:config - applicable in admin/index.php and config.php (might break down later) : 1)admin/config.php 2)admin/configure.php 3)blocks/admin/block_admin.php load_content_for_site()&lt;br /&gt;
#moodle/site:readallmessages - reads all messages and history&lt;br /&gt;
#moodle/site:approvecourse - approves a pending course&lt;br /&gt;
#moodle/site:manageblocks - adding/removing/editing blocks (site, course contexts only for now) : 1)_add_edit_controls moodleblock.class.php &lt;br /&gt;
#moodle/site:backup - can create a course backup : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:restore - can restore into this context : 1)course/category.php 2)block_admin.php&lt;br /&gt;
#moodle/site:import - can import other courses into this context : 1)block_admin.php&lt;br /&gt;
#moodle/site:accessallgroups - able to access all groups irrespective of what group the user is in&lt;br /&gt;
#moodle/site:accessdb - directly accessing db (phpmyadmin)&lt;br /&gt;
#moodle/site:viewfullnames - able to see fullnames of other users&lt;br /&gt;
#moodle/site:viewparticipants - able to view participants&lt;br /&gt;
#moodle/site:viewreports - able to view site/course reports&lt;br /&gt;
#moodle/site:trustcontent - ability to use trusttext feature and bypass cleaning in specific areas&lt;br /&gt;
#moodle/blog:view - read blogs&lt;br /&gt;
#moodle/blog:create - write new blog posts&lt;br /&gt;
#moodle/blog:manageofficialtags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:managepersonaltags - create/delete official blog tags that others can use&lt;br /&gt;
#moodle/blog:manageentries - edit/delete all blog entries&lt;br /&gt;
#moodle/course:setcurrentsection - mark course section&lt;br /&gt;
#moodle/course:create - create courses : 1)course/edit.php 2)course/category.php 3)course/index.php&lt;br /&gt;
#moodle/course:delete - create courses : 1)course/category.php&lt;br /&gt;
#moodle/course:update - update course settings&lt;br /&gt;
#moodle/course:view - can use this to find participants&lt;br /&gt;
#moodle/course:viewparticipants - allows a user to view participant list&lt;br /&gt;
#moodle/course:viewscales - view scales (i.e. in a help window?) : 1)course/scales.php&lt;br /&gt;
#moodle/course:manageactivities - adding/removing/editing activities and resources (don&#039;t think it makes any sense to split these)&lt;br /&gt;
#moodle/course:managescales - add, delete, edit scales, move scales up and down : 1)blocks/block_admin.php 2)course/scales.php&lt;br /&gt;
#moodle/course:managegroups - managing groups, add, edit, delete : 1)course/groups.php 2)course/group.php&lt;br /&gt;
#moodle/course:managefiles - manage course files and folders&lt;br /&gt;
#moodle/course:managequestions - manage course questions&lt;br /&gt;
#moodle/course:managemetacourse - manage child courses in metacourse&lt;br /&gt;
#moodle/course:reset - able to reset the course&lt;br /&gt;
#moodle/course:visibility - hide/show courses : 1)course/category.php&lt;br /&gt;
#moodle/course:viewhiddencourses - see hidden courses&lt;br /&gt;
#moodle/course:activityvisibility - hide/show activities within a course&lt;br /&gt;
#moodle/course:viewhiddenactivities - able to see activities that have been hidden&lt;br /&gt;
#moodle/course:sectionvisibility - hide/show sections&lt;br /&gt;
#moodle/course:viewhiddensections - view hidden sections&lt;br /&gt;
#moodle/course:viewcoursegrades - views all grades in course&lt;br /&gt;
#moodle/course:viewhiddenuserfields - view all hidden user fields&lt;br /&gt;
#moodle/course:managegrades - manages grades settings in course&lt;br /&gt;
#moodle/category:create - create category : 1)course/index.php&lt;br /&gt;
#moodle/category:delete - delete category : 1)course/index.php&lt;br /&gt;
#moodle/category:update - update category settings (sort and rename) this is currently an admin capability : 1)course/category.php&lt;br /&gt;
#moodle/category:visibility - hide/show categories : 1)course/index.php&lt;br /&gt;
#moodle/user:viewusergrades - view your own, or other user&#039;s grades (with specified context)&lt;br /&gt;
#moodle/user:create - create user : 1) user/edit.php&lt;br /&gt;
#moodle/user:delete - delete user : 1) admin/user.php&lt;br /&gt;
#moodle/user:update - update user settings : 1) user/edit.php&lt;br /&gt;
#moodle/user:viewdetails - view personally-identifying user details (e.g. name, photo).&lt;br /&gt;
#moodle/user:viewhiddendetails - view user details marked as &amp;quot;hidden&amp;quot;&lt;br /&gt;
#moodle/calendar:manageownentries - create/edit/delete &lt;br /&gt;
#moodle/calendar:manageentries - create/edit/delete&lt;br /&gt;
#moodle/role:assign - assign roles to users&lt;br /&gt;
#moodle/role:override - can override role capabilities (depending on context)&lt;br /&gt;
#moodle/role:manage - create/edit/delete roles, set capability permissions for each role&lt;br /&gt;
#moodle/role:unassignself - unassign yourself from your own roles&lt;br /&gt;
#moodle/role:viewhiddenassigns - view role assignments that have been marked as hidden&lt;br /&gt;
#moodle/question:import - imports questions (course level?) - Yes, question permissions currently need to be course-level.--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#moodle/question:export - exports questions (course level?)&lt;br /&gt;
#moodle/question:managecateory - add/delete/edit question categories (course level?)&lt;br /&gt;
#moodle/question:manage - add/edit/delete a question (course level)&lt;br /&gt;
&lt;br /&gt;
===User-level Capabilities===&lt;br /&gt;
# moodle/user:readuserposts -read individual user posts on profile page (parent?)&lt;br /&gt;
# moodle/user:readuserblogs -read individual user blogs on profile page (parent?)&lt;br /&gt;
# moodle/user:viewuseractivitiesreport-read individual activity report on profile page (parent?)&lt;br /&gt;
# moodle/user:editprofile - edit profile (normally used in CONTEXT_USERID and CONTEXT_SYSTEM)&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
The capabilities are cached into a database table when a module is installed or updated. Whenever the capability definitions are updated, the module version number should be bumped up so that the database table can be updated.&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to modules and blocks is &#039;mod/mod_name:capability&#039;.  The part before the colon is the full path to the module in the Moodle code.  The module capabilities are defined in mod/mod_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##mod/assignment:view- reading the assignment description&lt;br /&gt;
##mod/assignment:submit - turn assignment in&lt;br /&gt;
##mod/assignment:grade - grading, viewing of list of submitted assignments&lt;br /&gt;
#Chat&lt;br /&gt;
##mod/chat:chat - allows a user to participate in this chat&lt;br /&gt;
##mod/chat:readlog - allows a user to read past chat session logs&lt;br /&gt;
##mod/chat:deletelog - allows a user to delete past chat logs&lt;br /&gt;
#Choice&lt;br /&gt;
##mod/choice:choose - make a choice&lt;br /&gt;
##mod/choice:readresponses - read all responses&lt;br /&gt;
##mod/choice:deleteresponses - deletes all responses&lt;br /&gt;
##mod/choice:downloadresponses - download responses&lt;br /&gt;
#Database&lt;br /&gt;
##mod/data:viewentry - reads other people&#039;s entry&lt;br /&gt;
##mod/data:viewentriesfromallgroups&lt;br /&gt;
##mod/data:writeentry - add / edit and delete (own) entries&lt;br /&gt;
##mod/data:managetemplates - add, delete, edit fields and templates&lt;br /&gt;
##mod/data:manageentries - edit/delete all entries&lt;br /&gt;
##mod/data:comment - comment&lt;br /&gt;
##mod/data:managecomments - edit/delete all comments&lt;br /&gt;
##mod/data:rate - rate an entry&lt;br /&gt;
##mod/data:viewrating&lt;br /&gt;
##mod/data:approve - approves an entry&lt;br /&gt;
##mod/data:uploadentries - batch upload of entries&lt;br /&gt;
#Exercise&lt;br /&gt;
##mod/exercise:assess&lt;br /&gt;
#Forum&lt;br /&gt;
##mod/forum:viewforum&lt;br /&gt;
##mod/forum:viewdiscussion&lt;br /&gt;
##mod/forum:viewdiscussionsfromallgroups&lt;br /&gt;
##mod/forum:viewhiddentimedposts&lt;br /&gt;
##mod/forum:startdiscussion&lt;br /&gt;
##mod/forum:replypost&lt;br /&gt;
##mod/forum:viewrating&lt;br /&gt;
##mod/forum:viewanyrating&lt;br /&gt;
##mod/forum:rate&lt;br /&gt;
##mod/forum:createattachment&lt;br /&gt;
##mod/forum:deleteownpost&lt;br /&gt;
##mod/forum:deleteanypost&lt;br /&gt;
##mod/forum:splitdiscussions&lt;br /&gt;
##mod/forum:movediscussions&lt;br /&gt;
##mod/forum:editanypost&lt;br /&gt;
##mod/forum:viewqandawithoutposting&lt;br /&gt;
##mod/forum:viewsubscribers&lt;br /&gt;
##mod/forum:managesubscriptions&lt;br /&gt;
##mod/forum:throttlingapplies&lt;br /&gt;
#Glossary&lt;br /&gt;
##mod/glossary:view - read entries&lt;br /&gt;
##mod/glossary:write - add entries&lt;br /&gt;
##mod/glossary:manageentries - add, edit, delete entries&lt;br /&gt;
##mod/glossary:managecategories - create, delete, edit categories&lt;br /&gt;
##mod/glossary:comment - comment on an entry&lt;br /&gt;
##mod/glossary:managecomments - edit, delete comments&lt;br /&gt;
##mod/glossary:import - import glossaries&lt;br /&gt;
##mod/glossary:export - export glossaries&lt;br /&gt;
##mod/glossary:approve - approve glossaries&lt;br /&gt;
##mod/glossary:rate - rates glossary&lt;br /&gt;
##mod/glossary:viewrating - view ratings&lt;br /&gt;
#Hotpot&lt;br /&gt;
##mod/hotpot:attempt - attempt a hotpot&lt;br /&gt;
##mod/hotpot:viewreport - review and view reports&lt;br /&gt;
##mod/hotpot:grade - (grade? and) regrade&lt;br /&gt;
##mod/hotpot:deleteattempt - deletes attempts&lt;br /&gt;
#Label&lt;br /&gt;
##none&lt;br /&gt;
#Lams&lt;br /&gt;
##mod/lams:participate - original student&lt;br /&gt;
##mod/lams:manage - original teacher&lt;br /&gt;
#Lesson&lt;br /&gt;
##mod/lesson:view&lt;br /&gt;
##mod/lesson:edit - add and edit pages&lt;br /&gt;
##mod/lesson:manage - view student attempts&lt;br /&gt;
#Quiz&lt;br /&gt;
##mod/quiz:grade - comment, override grade, manual grade&lt;br /&gt;
##mod/quiz:preview - previews the quiz&lt;br /&gt;
##mod/quiz:viewreports - view quiz result reports&lt;br /&gt;
##mod/quiz:manage - add/delete/move (up or down) questions for a quiz&lt;br /&gt;
##mod/quiz:attempt - attempt the quiz--[[User:Tim Hunt|Tim Hunt]]&lt;br /&gt;
#Resource&lt;br /&gt;
##mod/resource:view&lt;br /&gt;
#Scorm&lt;br /&gt;
##mod/scorm:view&lt;br /&gt;
##mod/scorm:viewgrades&lt;br /&gt;
#Survey&lt;br /&gt;
##mod/survey:download - downloads survery result&lt;br /&gt;
##mod/survey:participate - participate/ do survey&lt;br /&gt;
##mod/survey:readresponses - read all user&#039;s responese&lt;br /&gt;
#Wiki&lt;br /&gt;
##mod/wiki:view - basic capability needed to view wiki content&lt;br /&gt;
##mod/wiki:participate - original student, meaning depends of type and course setting&lt;br /&gt;
##mod/wiki:manage - original teacher, manages assigned group; moodle/site:accessallgroups is needed to manage all groups &lt;br /&gt;
##(Waiting on new wiki)&lt;br /&gt;
#Workshop&lt;br /&gt;
##mod/workshop:view - basic capability needed to enter workshop&lt;br /&gt;
##mod/workshop:participate - original student, allows user to submit and assess&lt;br /&gt;
##mod/workshop:manage - original teacher, user can manage others&lt;br /&gt;
##(Waiting on new Workshop)&lt;br /&gt;
&lt;br /&gt;
===Enrolment-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
The naming convention for capabilities that are specific to enrolment is &#039;enrol/enrol_name:capability&#039;. The enrolment capabilities are defined in enrol/enrol_name/db/access.php.&lt;br /&gt;
&lt;br /&gt;
#Authorize.net Payment Gateway &lt;br /&gt;
##enrol/authorize:managepayments - manage user payments, capture, void, refund, delete etc.&lt;br /&gt;
&lt;br /&gt;
===Blocks===&lt;br /&gt;
#activity_modules&lt;br /&gt;
##None&lt;br /&gt;
#admin&lt;br /&gt;
#admin_2&lt;br /&gt;
#admin_bookmarks&lt;br /&gt;
#blog_menu&lt;br /&gt;
#blog_tags&lt;br /&gt;
#calendar_month&lt;br /&gt;
#calendar_upcoming&lt;br /&gt;
#course_list&lt;br /&gt;
#course_summary&lt;br /&gt;
#glossary_random&lt;br /&gt;
#html&lt;br /&gt;
#loancalc&lt;br /&gt;
#login&lt;br /&gt;
#messages&lt;br /&gt;
#news_items&lt;br /&gt;
#online_users&lt;br /&gt;
#participants&lt;br /&gt;
#quiz_results&lt;br /&gt;
#recent_activity&lt;br /&gt;
#rss_client&lt;br /&gt;
##block/rss_client:createprivatefeeds&lt;br /&gt;
##block/rss_client:createsharedfeeds&lt;br /&gt;
##block/rss_client:manageownfeeds&lt;br /&gt;
##block/rss_client:manageanyfeeds&lt;br /&gt;
#search&lt;br /&gt;
#search_forums&lt;br /&gt;
#section_links&lt;br /&gt;
#site_main_menu&lt;br /&gt;
#social_activities&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
I am adding question categories here because they seem to have been forgotten in the whole scheme of things since having been removed from the quiz module itself. I&#039;ve made a suggestion on how these could be handled in [http://www.moodle.org/bugs/bug.php?op=show&amp;amp;bugid=6118&amp;amp;pos= bug 6118].&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=51143 this forum thread] for a discussion about the current problems wth publishing question categories.[[User:Tim Hunt|Tim Hunt]] 18:50, 8 August 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
==Programming Interface==&lt;br /&gt;
&lt;br /&gt;
Although the Roles system may look complicated at first glance, implementing it in Moodle code is fairly simple.&lt;br /&gt;
&lt;br /&gt;
* You need to define each capability once, so that Moodle can upgrade existing roles to take advantage of it.  You do this in an access.php inside the db folder of any module (eg see mod/forum/db/access.php).  The array contains entries like this (note the descriptions for the legacy roles which provides forward compatibility):&lt;br /&gt;
    &#039;mod/forum:viewforum&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;captype&#039; =&amp;gt; &#039;read&#039;,&lt;br /&gt;
        &#039;contextlevel&#039; =&amp;gt; CONTEXT_MODULE,&lt;br /&gt;
        &#039;legacy&#039; =&amp;gt; array(&lt;br /&gt;
            &#039;guest&#039; =&amp;gt; CAP_PREVENT,&lt;br /&gt;
            &#039;student&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;teacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;editingteacher&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;coursecreator&#039; =&amp;gt; CAP_ALLOW,&lt;br /&gt;
            &#039;admin&#039; =&amp;gt; CAP_ALLOW&lt;br /&gt;
        )&lt;br /&gt;
    ),&lt;br /&gt;
* To load/change these capabilities you need to bump the module version.   There&#039;s no need to provide changes or differences as Moodle will scan the whole array and sort it out.&lt;br /&gt;
* On each page you need to find the context the user is working in, using the get_context_instance() function.  For example, in the forum module:&lt;br /&gt;
&lt;br /&gt;
  $context = get_context_instance(CONTEXT_MODULE, $cm-&amp;gt;id);&lt;br /&gt;
* Then, whenever you want to check that the current user has rights to do something, call has_capability() like this:&lt;br /&gt;
    if (!has_capability(&#039;mod/forum:viewforum&#039;, $context)) {&lt;br /&gt;
        print_error(&#039;nopermissiontoviewforum&#039;);&lt;br /&gt;
    }&lt;br /&gt;
* If you just want to assert a capability and then finish with an error message if it&#039;s not met (as we did above), then a shorter way it to use require_capability() like this:&lt;br /&gt;
&lt;br /&gt;
    require_capability(&#039;mod/forum:viewforum&#039;, $context);&lt;br /&gt;
&lt;br /&gt;
* Note that there are extra parameters you can specify to get a custom error message, otherwise users get an automated &amp;quot;No permissions&amp;quot; message that lists the permission they were missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a result of the new Roles System, all calls to isadmin(), iscoursecreator, isteacheredit(), isteacher(), isstudent(), and isguest() will have to be replaced with calls to has_capability() or require_capability().   However, these functions will be retained for some backward compatibility with old code, using the legacy capabilities to try and work out what to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Problem areas we are working on ==&lt;br /&gt;
&lt;br /&gt;
===Student view===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Student view&amp;quot; button has been removed completely.&lt;br /&gt;
&lt;br /&gt;
If there is time and a secure way can be found, it will be replaced by a menu to let the user assume a temporary role in the context of that course.&lt;br /&gt;
&lt;br /&gt;
===Teacher forum===&lt;br /&gt;
&lt;br /&gt;
Teacher forums were always a curious exception to normal forums, as they were not part of a course as such, and were not backed up.&lt;br /&gt;
&lt;br /&gt;
We&#039;re taking the opportunity to rectify this.   The upgrade converts teacher forums with content to normal forums in section 0 of the course, and ensures that only teachers can access them.  If the teacher forum had not been used in the course then it&#039;s not converted and will just dissappear.&lt;br /&gt;
&lt;br /&gt;
===Enrolment plugins===&lt;br /&gt;
&lt;br /&gt;
====Process of logging in====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
====Process of checking access to a course====&lt;br /&gt;
&lt;br /&gt;
require_login($course-&amp;gt;id) is called by the script and has logic like this:&lt;br /&gt;
&lt;br /&gt;
# Is the user a guest at site level?&lt;br /&gt;
## Yes: Does the course allow guests?&lt;br /&gt;
### Yes: return true (and further capabilities are checked by the script)&lt;br /&gt;
### No:  send the user to course/enrol.php for enrolment&lt;br /&gt;
## No: continue below&lt;br /&gt;
&lt;br /&gt;
# Does the user have moodle/course:view in that (course) context?&lt;br /&gt;
## Yes: then they can enter (and further capabilities are checked by the script)&lt;br /&gt;
##  No: is guest access allowed on the course?&lt;br /&gt;
### Yes: assign temporary guest role to that user for that context (in session cache).&lt;br /&gt;
### No: send the user to course/enrol.php for enrolment.&lt;br /&gt;
&lt;br /&gt;
====Process of enrolling====&lt;br /&gt;
&lt;br /&gt;
(more soon)&lt;br /&gt;
&lt;br /&gt;
==Scenario brainstorming==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support.  Note some of these *may* not be possible in 1.7.&lt;br /&gt;
&lt;br /&gt;
===Student===&lt;br /&gt;
Obviously.&lt;br /&gt;
&lt;br /&gt;
===Site Designers===&lt;br /&gt;
Is there a role for people involved in how the site looks but not full administrators? Thinking here of online control of themes rather than FTP theme uploading. But in either case they caneditlogos, caneditcss, candeditlevelatwhichthemeapplies.&lt;br /&gt;
&lt;br /&gt;
===Educational Authority Adviser===&lt;br /&gt;
Someone who would want to browse the site and may be asked to comment or contribute to particular discussions or developments in school. Access for this role would be controlled by the school in the case of school level moodles but may be different if there were to be a Local Authority wide Moodle.&lt;br /&gt;
&lt;br /&gt;
===Educational Inspector===&lt;br /&gt;
Someone who will visit the site to verify the school&#039;s self review that comments on home school relationships, extending the classroom etc. They may want to see summaries of usage and reports from surveys garnering parent and pupil views.&lt;br /&gt;
&lt;br /&gt;
===Second Marker / Moderator===&lt;br /&gt;
A teacher within ths site that has access to assignments and quizzes from another teacher&#039;s course for second marking purposes. This may need additional functionality adding to the assignment module so that two sets of grades/feedback can be given to one set of assignments.&lt;br /&gt;
&lt;br /&gt;
===Peer observer of teaching===&lt;br /&gt;
Many institutions encourage peer observation of teaching, to encourage reflection on practice. In online environments this will be similar to moderation or inspection. The peer observer would need to be able to experience the course &amp;quot;as a student&amp;quot;, but also to be able to view summaries of usage, transcripts of interactions (forums/surveys/polls etc), grades assigned (e.g. in assignments).&lt;br /&gt;
&lt;br /&gt;
===External Examiner===&lt;br /&gt;
Has all the rights of inspectors, but would also need to be able to review assignments and feedback, view forums, glossaries etc. However, would not want to post, feedback onto the site at all.&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
A parent will have one or more children in one or more institutions which could be using one or more moodle instances or a mixture of Learning Platforms. A parent&#039;s role will vary depending on the age of their children and whether they are contributing as a parent or a school supporter.&lt;br /&gt;
&lt;br /&gt;
In Early Years (EY=3+4 yr olds) and Key Stage 1 (KS1=5+6 yr olds) they may play/learn on an activity or write for the child. Parents often interpret homework tasks and read to their children perhaps filling in a joint reading diary. In Key Stage 2 (KS2=7-11 yr olds) parents would be more monitoring but may join in as well.&lt;br /&gt;
&lt;br /&gt;
In Key stages 3 (KS3=12-14 yr olds) and 4 (KS4=15+16 yr olds) this changes to more of a monitoring/awareness role where a parent would expect to have a summary report of attendance, attainment and general achievement on a weekly/monthly/termly or annual basis. Parents will often be asked to sign and write back comments about this review report.&lt;br /&gt;
&lt;br /&gt;
In all Key Stages there is a great need for parents to receive communication from the school which they can confirm they have received by signing a form. In some cases this may also involve making choices from a list. It may also involve payment for a trip or disco being returned so there could be the possibility of electronic payments. Also in all Key Satges there may be a home-school agreement which may be signed up to. Could this form part of a site policy system that incorporates a tickable list of activities the parent agrees to the child using (blogs/wikis/forums etc.)?&lt;br /&gt;
&lt;br /&gt;
Parent&#039;s evenings often involve complex booking systems that attempt to get parent&#039;s and teachers together. Easy for EY/KS1/KS2 very difficult for KS3/KS4. Wow would this help if it was built into the Learning Platform.&lt;br /&gt;
&lt;br /&gt;
In some cases there needs to be confidential communication between the parent and the teacher without the child being party to this. It may involve teaching and learning but could also involve a behaviour or medical issue. Often this may be done via a sealed letter or face to face. &lt;br /&gt;
&lt;br /&gt;
The latest incarnation of OfSTED with the Self Review Framework (SEF) there is a greater emphasis on schools gathering parent voice via surveys and discussion. There is a clear match here with parents have access to parental votes, questionnaires and discussions and for schools to be able to publish news, results and reports back to parents.&lt;br /&gt;
&lt;br /&gt;
In the UK the LP framework and agenda as being pushed by the DfES via Becta emphasises that within the mandatory groups and roles functionality the parent role is likely to be required to meet the LP Framework procurement standard.&lt;br /&gt;
&lt;br /&gt;
Again in the UK, parents have their own independent right of access to a child&#039;s educational records. Obviously, children&#039;s records must not be made available to other parties, including the parents of other children in the same class. Thus it would be necessary to associate parent accounts with their own child&#039;s accounts in such a way that they could, if so desired, have read access to their child&#039;s grades, answers and contributions, but generally not those of other children - this may be problematic in the case of wiki activities or forum posts.&lt;br /&gt;
&lt;br /&gt;
There is some concern that children&#039;s forum contributions etc may be constrained if their parents are able to read all that they write; this may be particularly problematic in areas such as Personal, Social and Health Education (PSHE), where some schools may choose to use obfuscated usernames.&lt;br /&gt;
&lt;br /&gt;
===Manager===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Weekly Seminar Leader===&lt;br /&gt;
&#039;&#039;In a university seminar, typically 8-15 students in their 3rd/4th year, each student is responsible for leading one topic in a study series.  I ask each student to research 5-10 resources, then give a powerpoint presentation to the other students.  This is followed by an in-class discussion and then online homework.  The homework involves some fun quiz questions and then some reflective journal questions.  I ask each seminar leader to prepare the quiz questions and journal questions as well as their presentation.  To do that, I would like to assign activity-making/authoring roles to the student--either for a short period, or for duration of the whole course.  Thus &amp;quot;Allow Quiz Authoring Role&amp;quot; or &amp;quot;Allow Assignment Authoring Role&amp;quot; at the course level or, if possible, even the Topic level (in a topic or week format course) would be important.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Mentor/Mentee===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Community-Designed Rating Criteria===&lt;br /&gt;
&#039;&#039;The gradebook tends to be the domain of the teacher.  What if community/peer ratings/marks could also be entered there? What if peer assessment criteria could be designed by the students, not just the teacher?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Visitor===&lt;br /&gt;
&lt;br /&gt;
This would be a role whereby one could allow a visitor to visit one&#039;s classroom. This might be a colleague interested in seeing your course, or a journalist who might be writing an article about one&#039;s site. They should not be able to see the names of any students anywhere (eg recent activity, forum posts) for privacy reasons. They should be able to try out things like quizzes, and lessons but no grades would be recorded (like in teacher preview mode). They would not be able to participate in choices and forums but could view them. It would be read only in a way like former-student role below but without access to a particular student&#039;s records that former student role would grant.&lt;br /&gt;
&lt;br /&gt;
===Guest Speaker===&lt;br /&gt;
&lt;br /&gt;
This role would be similar to the Visitor role above, but would allow seeing student names, and also allow both reading and posting to a specific forum or forums. We often have &amp;quot;guest speakers&amp;quot; who read and respond to student forum posts. Right now we have to add them as students, which isn&#039;t ideal.&lt;br /&gt;
&lt;br /&gt;
===Former Student===&lt;br /&gt;
This role would be of particular use for courses with rolling enrollments. This role would be one where a student had completed all of the requirements of a course (ie assignments, quizzes etc.) but wished to have continued access to the course material for review or consultation. The key factor is that one would give access to the completed student to the notes he read, his work and the teacher&#039;s comments on it, but he would not be allowed to do anything that would take up the teacher&#039;s time. In other words, a sort-of read-only access to the course. How forums, which might contain pertinent information and would continue to grow, would be handled is a question. Perhaps the student would be shown only what was in the forums at the time he completed the course. He would not be allowed to see any new posts or add any himself. Same thing for database and glossary entries. In other words, a snapshot of the course at the time his regular enrollment ended. He shouldn&#039;t be able to see the names or profiles of any newly enrolled students for privacy reasons-hence the restrictions on forum access. One issue that would have to be dealt with would be changes to existing modules-such as resources. Does the student get access to the module as it was or as it is? We have no versioning of resources in Moodle so this would be a problem. What about a teacher changing a quiz question so that the answer is different? What would a former student see?&lt;br /&gt;
&lt;br /&gt;
===Alumnus=== An ALUMNUS should be able to search for all other ALUMNI of the school, interact with them and be enrolled in a seperate course - which is like a META course with all the content of his learning and interaction - as well as capabilities to be a part of this ALUMNI only course.  All the teachers of courses during school years should automatically be a part of the ALUMNI course .. which means when an ALUMNUS is enrolled in a course, the original teachers of all his courses get enrolled ?  --[[User:Anil Sharma|Anil Sharma]] 20:54, 15 July 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at some schools such as Earlham College (with Bibliographic Instruction). The Librarian role within Moodle could encompass default read access to all courses (unless prohibited by course teacher) and read access to all components of the course unless access is barred (again by teacher). The Librarians would also perhaps have a block called perhaps Reference Services or Reference Desk with write access where they could deposit resources. Also this block might have a chat applet whereby enrolled students could chat to the Reference Librarian on duty about their bibliographic research needs.&lt;br /&gt;
&lt;br /&gt;
In schools there is often a book review system. This may be covered by the lending system database but may not in which case a librarian may neeed to have a course area they can create a database template to handle the reviews in which case they may have a normal teacher style role? Off topic but course an integration with common schools database systems would be great.&lt;br /&gt;
&lt;br /&gt;
===Teacher===&lt;br /&gt;
&lt;br /&gt;
Teachers should have read access to other Teacher&#039;s courses unless explictly prohibited. They should be able to set parts of their own course to be totally private (perhaps even to admin?). Just as each activity can currently be set to have group access, each activity could have a permissions field. Teachers could set default permissions for all activities on their course (eg they might disallow Librarian access for example) and then change the access permission for an individual activity. &lt;br /&gt;
&lt;br /&gt;
I think that what is needed is a simple heirarchy of permissions and levels of granularity.&lt;br /&gt;
&lt;br /&gt;
I would take issue with &amp;quot;teachers should have read access to other teacher&#039;s courses unless explicitly prohibited.&amp;quot; This is a violation of the students&#039; privacy as how they perform and what they do in one class isn&#039;t the business of another teacher. Moreover, in the real world a teacher wouldn&#039;t suddenly go sit in on a colleague&#039;s class without asking permission first. I would not have appreciated such an invasion of privacy as either a teacher or a student. It could be an option, but shouldn&#039;t be default.--[[User:N Hansen|N Hansen]] 19:54, 12 June 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Community Education Tutors/Trainers===&lt;br /&gt;
Teachers may be community adult education trainers making use of a school moodle so must only have access to their courses unless given access elsewhere. They would not necessarily get the default teacher privileges.&lt;br /&gt;
&lt;br /&gt;
===Secretary/Student Worker===&lt;br /&gt;
&lt;br /&gt;
We often have faculty who want their departmental secretary or student worker to scan and upload files and perhaps create resources. Currently they have to be given teacher access to the course. This is dangerous from a FERPA standpoint since they could easily get access to grades.&lt;br /&gt;
&lt;br /&gt;
===Teaching Assistant===&lt;br /&gt;
&lt;br /&gt;
Our Faculty frequently have undergraduate students acting as Teaching Assistants. These students need to be able to add resources, create assignments, and possibly grade assignments. However, due to FERPA they cannot have access to other students&#039; overall grade information. I think the requirements here are slightly different than those of Secretary/Student Worker&lt;br /&gt;
&lt;br /&gt;
===Student - FERPA rights===&lt;br /&gt;
&lt;br /&gt;
A student that has asserted their FERPA rights to non-disclosure.  Typically includes not publishing their name&lt;br /&gt;
in any public place.  Could include this student only being seen with an &amp;quot;alias&amp;quot; within course spaces.  Is this an attribute rather&lt;br /&gt;
than a role?&lt;br /&gt;
&lt;br /&gt;
===Help Desk===&lt;br /&gt;
&lt;br /&gt;
Help desk agents that have read access for the purposes of trouble shooting.  Some care in placing this role within a hierarchy&lt;br /&gt;
of inheritance is needed, full access will be problematic with FERPA.&lt;br /&gt;
&lt;br /&gt;
===Admin - Catgory based===&lt;br /&gt;
&lt;br /&gt;
Basically a person in between full Admin and Creator that has the permissions of an Admin but only with respect to courses and students. Currently a Creator has permissions site-wide which does not always meet the requirements of a given organisation (e.g. Department A may not be happy that a person from Department B can create/modify courses within Department A&#039;s area). The ability to designate a Creator within a specific category would allow areas to be set up for a faculty/department/organisation and allow the Admin for that area to create/delete courses, upload users, add site-wide entries to the calendar etc.&lt;br /&gt;
&lt;br /&gt;
===Process Roles===&lt;br /&gt;
&lt;br /&gt;
organising the learning process for a group you wish to have the choice to place students in differnt roles: examples of this are:&lt;br /&gt;
* Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
* Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
* Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
* Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&lt;br /&gt;
==Things to finish for 1.7 Beta==&lt;br /&gt;
&#039;&#039;&#039;18 Sept 2006&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Remove core references to user_student, user_teacher, user_admin, user_coursecreator tables.  [Yu]&lt;br /&gt;
#Address function: isteacher, isadmin, isstudent [Yu]&lt;br /&gt;
#Remove &amp;quot;view&amp;quot; capabilities from all modules unless required [Vy]&lt;br /&gt;
#Remove all old references from remaining Blocks [Vy]&lt;br /&gt;
#Metacourses [Skodak]&lt;br /&gt;
#Add risks to GUI[Skodak]&lt;br /&gt;
#Enrolment plugins  [Martin and Alastair]&lt;br /&gt;
#[[Development:Stats_roles_1.7|Statistics]] [Penny]&lt;br /&gt;
#Fix Loginas&lt;br /&gt;
#Add category-level assigns [Yu]&lt;br /&gt;
#Backups [Eloy?]&lt;br /&gt;
&lt;br /&gt;
===Proposal for interface enhancement===&lt;br /&gt;
Martin asked some questions, here are my answers. (If you may want to see larger images please click onto the image or the &amp;quot;Enlarge&amp;quot; icon below the image.)&lt;br /&gt;
&lt;br /&gt;
The list of possible settings is very long and &#039;&#039; &amp;quot;... the problem is not to overwhelm people with information&amp;quot; &#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
[[Image:01_moodle_define_roles_structured.png|thumb=01_moodle_define_roles_structured_pre.png]]&lt;br /&gt;
&lt;br /&gt;
1) One proposal is to use colour to structure the sections and the columns. The picture shows that the user can keep a much better overview when the list is divided into visible differnt coulmns and clear sections.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:02_moodle_define_roles_collapsed.png|thumb=02_moodle_define_roles_collapsed_pre.png]]&lt;br /&gt;
&lt;br /&gt;
2) A second proposal is to reduce the amount of information the user is shown at the same time. The YUI interface library offers great support to show/hide sections of the page by clicking on specific elements. &lt;br /&gt;
&lt;br /&gt;
For example click on an icon beside the sub heading &amp;quot;Course categories&amp;quot; and show/hide all table rows with the CLASS &amp;quot;course-category&amp;quot;.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:03_moodle_define_roles_tooltip.png|thumb=03_moodle_define_roles_tooltip_pre.png]]&lt;br /&gt;
&lt;br /&gt;
3) &#039;&#039; &amp;quot;The main problem is the last column for risk ... we were thinking of putting little icons in there ...&amp;quot; &#039;&#039;&lt;br /&gt;
Icons are good when they tell the user more about possible actions/meanings then the letters. I am not sure if this is the case here. For both - icons or letters - the YUI tooltip function would be able to give the user valuable information about the meaning.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=38788 Roles and Permissions architecture] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Future]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:03_moodle_define_roles_tooltip_pre.png&amp;diff=16104</id>
		<title>Fitxer:03 moodle define roles tooltip pre.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:03_moodle_define_roles_tooltip_pre.png&amp;diff=16104"/>
		<updated>2006-09-19T20:07:32Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:03_moodle_define_roles_tooltip.png&amp;diff=16103</id>
		<title>Fitxer:03 moodle define roles tooltip.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:03_moodle_define_roles_tooltip.png&amp;diff=16103"/>
		<updated>2006-09-19T20:07:10Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:02_moodle_define_roles_collapsed_pre.png&amp;diff=16102</id>
		<title>Fitxer:02 moodle define roles collapsed pre.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:02_moodle_define_roles_collapsed_pre.png&amp;diff=16102"/>
		<updated>2006-09-19T20:06:47Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:02_moodle_define_roles_collapsed.png&amp;diff=16101</id>
		<title>Fitxer:02 moodle define roles collapsed.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:02_moodle_define_roles_collapsed.png&amp;diff=16101"/>
		<updated>2006-09-19T20:06:24Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:01_moodle_define_roles_structured.png&amp;diff=16100</id>
		<title>Fitxer:01 moodle define roles structured.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:01_moodle_define_roles_structured.png&amp;diff=16100"/>
		<updated>2006-09-19T20:05:33Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Fitxer:01_moodle_define_roles_structured_pre.png&amp;diff=16099</id>
		<title>Fitxer:01 moodle define roles structured pre.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Fitxer:01_moodle_define_roles_structured_pre.png&amp;diff=16099"/>
		<updated>2006-09-19T20:04:01Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=12625</id>
		<title>Chameleon theme</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Chameleon_theme&amp;diff=12625"/>
		<updated>2006-06-29T10:15:44Z</updated>

		<summary type="html">&lt;p&gt;UrsHunkler: /* Troubleshooting */ text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
&#039;&#039;&#039;Chameleon&#039;&#039;&#039; is an interactive Moodle theme. You are welcome to try it at the [http://chameleon-theme.unodo.de/ Chameleon theme test site] - please login with username and password &amp;quot;chameleon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How does Chameleon change its colours?==&lt;br /&gt;
&lt;br /&gt;
* Shift-click anywhere on the page to open a floating window showing all elements under the mouse&lt;br /&gt;
* Click on elements in the list to create a CSS selector - one or as many as you need&lt;br /&gt;
* Click on the &amp;quot;Set Styles&amp;quot; button and set the styles of your choice&lt;br /&gt;
* View the changes immediately&lt;br /&gt;
&lt;br /&gt;
Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.&lt;br /&gt;
&lt;br /&gt;
Chameleon makes use of [[Ajax]] technologies.&lt;br /&gt;
&lt;br /&gt;
==Which tags to change==&lt;br /&gt;
&lt;br /&gt;
The easy way to find this out is to use [[Firefox]] with the [[Web developer extension]] installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.&lt;br /&gt;
&lt;br /&gt;
When changing tags, be aware that chameleon sometimes doesn&#039;t see things if you initially add them via free-edit. Use the built-in editor in the &#039;set styles&#039; or &#039;overview&#039; section first, then use free-edit to alter them.&lt;br /&gt;
&lt;br /&gt;
==Saving your changes==&lt;br /&gt;
&lt;br /&gt;
As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.&lt;br /&gt;
&lt;br /&gt;
==Once your theme is completed==&lt;br /&gt;
&lt;br /&gt;
Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in &#039;&#039;config.php&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
&lt;br /&gt;
and changing &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)&lt;br /&gt;
&lt;br /&gt;
==Alternative uses==&lt;br /&gt;
&lt;br /&gt;
In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the &amp;quot;Free Edit&amp;quot; tab to a style sheet in your theme folder.&lt;br /&gt;
&lt;br /&gt;
== Adding the Chameleon &amp;quot;engine&amp;quot; to your theme ==&lt;br /&gt;
&lt;br /&gt;
You may add the Chameleon engine to any existing theme as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &amp;quot;ui&amp;quot; folder from the Chameleon theme folder to your theme folder.&lt;br /&gt;
&lt;br /&gt;
* Copy the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039; from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.&lt;br /&gt;
&lt;br /&gt;
* Add the include line in &#039;&#039;header.html&#039;&#039; (line 9):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      7     &amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&amp;lt;?php echo &lt;br /&gt;
$CFG-&amp;gt;wwwroot.&#039;/theme/&#039;.current_theme() ?&amp;gt;/favicon.ico&amp;quot; /&amp;gt;&lt;br /&gt;
      8&lt;br /&gt;
      9     &amp;lt;?php include(&#039;ui/chameleon.php&#039;); ?&amp;gt;&lt;br /&gt;
     10     &amp;lt;?php include(&amp;quot;$CFG-&amp;gt;javascript&amp;quot;); ?&amp;gt;&lt;br /&gt;
     11 &amp;lt;/head&amp;gt;&lt;br /&gt;
     12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add the Chameleon vars in &#039;&#039;config.php&#039;&#039; and set them (line 99 to 109):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     89&lt;br /&gt;
     90 $THEME-&amp;gt;makenavmenulist = false;&lt;br /&gt;
     91&lt;br /&gt;
     92 /// By setting this to true, then you will have access to a&lt;br /&gt;
     93 /// new variable in your header.html and footer.html called&lt;br /&gt;
     94 /// $navmenulist ... this contains a simple XHTML menu of&lt;br /&gt;
     95 /// all activities in the current course, mostly useful for&lt;br /&gt;
     96 /// creating popup navigation menus and so on.&lt;br /&gt;
     97&lt;br /&gt;
     98&lt;br /&gt;
     99 $THEME-&amp;gt;chameleonenabled = true;&lt;br /&gt;
    100&lt;br /&gt;
    101 /// By setting this to false it disables editing of the stylesheets&lt;br /&gt;
    102 /// this saves the overhead of loading chameleon on each page&lt;br /&gt;
    103 /// viewed by a user who can edit pages. it is recommended to&lt;br /&gt;
    104 /// set this to false once you&#039;re satisfied with your theme.&lt;br /&gt;
    105&lt;br /&gt;
    106 $THEME-&amp;gt;chameleonteachereditenabled = false;&lt;br /&gt;
    107&lt;br /&gt;
    108 /// If you use chameleon as a course theme setting this to true&lt;br /&gt;
    109 /// will allow teachers on that course to edit the theme.&lt;br /&gt;
    110&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can start working on your CSS for any Moodle page from your browser.&lt;br /&gt;
&lt;br /&gt;
You can see and add CSS properties of the two files &#039;&#039;temp_user_styles.css&#039;&#039; and &#039;&#039;user_styles.css&#039;&#039;. You can&#039;t see or change the CSS properties in your other CSS files in your theme folder.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Your changes are lost on page reload ===&lt;br /&gt;
&lt;br /&gt;
The user settings or write permissions of the two CSS files &amp;quot;user_styles.css&amp;quot; and &amp;quot;temp_user_styles.css&amp;quot; must be set in a way that Moodle can write the changed CSS to these files.&lt;br /&gt;
&lt;br /&gt;
# When you are able to change the owner of these files please do that. Your web server will run under a specific user like &amp;quot;nobody&amp;quot; or &amp;quot;www-data&amp;quot;. Please change the owner of these CSS files to the owner your web server runs with.&lt;br /&gt;
# When you can&#039;t change the file owner please change the write permissions of these files. The easy way is to give write permissions to &amp;quot;group&amp;quot; and &amp;quot;others&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you can please change the owner because it is more secure than giving write permission to anybody.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37674 Chameleon - an interactive Moodle theme] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37680 Link font size bigger] forum discussion illustrating an alternative use&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>UrsHunkler</name></author>
	</entry>
</feed>