<?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=Markpearson</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=Markpearson"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/Especial:Contribucions/Markpearson"/>
	<updated>2026-05-28T23:25:25Z</updated>
	<subtitle>Contribucions de l&amp;#039;usuari</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Attendance_module&amp;diff=102315</id>
		<title>Discussió:Attendance module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Attendance_module&amp;diff=102315"/>
		<updated>2012-12-04T16:30:32Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Whoever wrote this guide to Attendance -- a big &#039;&#039;&#039;thank you&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
May I suggest perhaps placing a dummy entry in the moodle.org plugins section that directs enquiries to this page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Mark Pearson 2|Mark Pearson 2]] 00:30, 5 December 2012 (WST)&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Attendance_module&amp;diff=102314</id>
		<title>Discussió:Attendance module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Discussi%C3%B3:Attendance_module&amp;diff=102314"/>
		<updated>2012-12-04T16:30:10Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: Created page with &amp;quot;Whoever wrote this guide to Attendance -- a big &amp;#039;&amp;#039;&amp;#039;thank you&amp;#039;&amp;#039;&amp;#039;!  May I suggest perhaps placing a dummy entry in the moodle.org plugins section that directs enquiries to this page?&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Whoever wrote this guide to Attendance -- a big &#039;&#039;&#039;thank you&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
May I suggest perhaps placing a dummy entry in the moodle.org plugins section that directs enquiries to this page?&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Frank_Ralf/Moodle_forms1&amp;diff=67380</id>
		<title>Usuari:Frank Ralf/Moodle forms1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Frank_Ralf/Moodle_forms1&amp;diff=67380"/>
		<updated>2010-01-18T18:21:26Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Read the whole story:&lt;br /&gt;
&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms1| Inconsistencies of Moodle forms]]&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms2| formslib - Checkboxes: A case of &amp;quot;Divitis&amp;quot;?]] aka [[User:Frank Ralf/Semantic HTML5]]&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms3| Moodle forms - A peek under the hood]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inconsistencies of Moodle forms ==&lt;br /&gt;
&lt;br /&gt;
For the time being this is only a list of inconsistencies I noticed when working with different Moodle forms. I hope to find time to make some suggestions for improvements.&lt;br /&gt;
&lt;br /&gt;
== Yes/no dropdown menus ==&lt;br /&gt;
&lt;br /&gt;
Moodle uses quite a lot of dropdown menus for yes/no questions. These require (at least) two mouse clicks for selecting an option. Therefore alternatives like a simple checkbox or radio buttons would make for better usability and avoid some inconsistencies in the Moodle UI (see screenshot).&lt;br /&gt;
&lt;br /&gt;
Further information:&lt;br /&gt;
* [http://www.idrawboxes.com/2008/yes-no-questions-dropdown-radio-buttons-or-checkbox/ &amp;quot;Yes/no questions: dropdown, radio buttons or checkbox?&amp;quot;] &lt;br /&gt;
* [http://www.isocra.com/2008/02/poll-a-yesno-question-in-a-web-form-which-controls-would-you-use/ &amp;quot;Poll: A yes/no question in a web form, which control(s) would you use?&amp;quot;]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=126481 General Developer forum thread]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yes-No vs checkbox.png]]&lt;br /&gt;
&lt;br /&gt;
== Checkboxes ==&lt;br /&gt;
&lt;br /&gt;
You tick a checkbox to activate a feature and you untick it for deactivating - or was it the other way round...? &lt;br /&gt;
&lt;br /&gt;
=== Quiz settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Quiz settings Check for disabling.png]]&lt;br /&gt;
: This one was fixed in Moodle 2.0--[[User:Tim Hunt|Tim Hunt]] 00:44, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
* The checkboxes should be on the left. That way no additional prompt would be necessary and accessibility (especially for screen readers) would improve.&lt;br /&gt;
&lt;br /&gt;
: This would break the alignment of the form. Suppose you had an optional date followed by a non-optional date - it would be useful if the sub-fields lined up, so you could easily see whether the second date was 7 days after the first. I also think it would be better to have the checkbox first, I am just saying it is not as simple as that.--[[User:Tim Hunt|Tim Hunt]] 00:44, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks for the feedback, Tim. Will try to keep track of all the new developments! The problem with aligning form elements is that they all are usually treated as block level elements. I suppose one could try using &amp;quot;display: inline;&amp;quot; to get around that limitation but haven&#039;t tried this yet. --[[User:Frank Ralf|Frank Ralf]] 12:39, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== AJAX and JavaScript ===&lt;br /&gt;
&lt;br /&gt;
Another example (Moodle 2.0 dev, Build: 20090720)&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-07-20 Moodle and JavaScript.png]]&lt;br /&gt;
&lt;br /&gt;
This form should better look similar to this mockup:&lt;br /&gt;
&lt;br /&gt;
[[Image:AJAX and JavaScript improved.png]]&lt;br /&gt;
&lt;br /&gt;
: I definitely agree with this latter suggestion. Many times I have to wrestle with double-negative type logic such as disabling the prevention of some function (eg allow late submissions) --[[User:Mark Pearson 2|Mark Pearson 2]] 18:19, 18 January 2010 (UTC)&lt;br /&gt;
== See also ==&lt;br /&gt;
[TODO]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Usuari:Frank_Ralf/Moodle_forms1&amp;diff=67379</id>
		<title>Usuari:Frank Ralf/Moodle forms1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Usuari:Frank_Ralf/Moodle_forms1&amp;diff=67379"/>
		<updated>2010-01-18T18:19:46Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Read the whole story:&lt;br /&gt;
&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms1| Inconsistencies of Moodle forms]]&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms2| formslib - Checkboxes: A case of &amp;quot;Divitis&amp;quot;?]] aka [[User:Frank Ralf/Semantic HTML5]]&lt;br /&gt;
# [[User:Frank_Ralf/Moodle_forms3| Moodle forms - A peek under the hood]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inconsistencies of Moodle forms ==&lt;br /&gt;
&lt;br /&gt;
For the time being this is only a list of inconsistencies I noticed when working with different Moodle forms. I hope to find time to make some suggestions for improvements.&lt;br /&gt;
&lt;br /&gt;
== Yes/no dropdown menus ==&lt;br /&gt;
&lt;br /&gt;
Moodle uses quite a lot of dropdown menus for yes/no questions. These require (at least) two mouse clicks for selecting an option. Therefore alternatives like a simple checkbox or radio buttons would make for better usability and avoid some inconsistencies in the Moodle UI (see screenshot).&lt;br /&gt;
&lt;br /&gt;
Further information:&lt;br /&gt;
* [http://www.idrawboxes.com/2008/yes-no-questions-dropdown-radio-buttons-or-checkbox/ &amp;quot;Yes/no questions: dropdown, radio buttons or checkbox?&amp;quot;] &lt;br /&gt;
* [http://www.isocra.com/2008/02/poll-a-yesno-question-in-a-web-form-which-controls-would-you-use/ &amp;quot;Poll: A yes/no question in a web form, which control(s) would you use?&amp;quot;]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=126481 General Developer forum thread]&lt;br /&gt;
&lt;br /&gt;
[[Image:Yes-No vs checkbox.png]]&lt;br /&gt;
&lt;br /&gt;
== Checkboxes ==&lt;br /&gt;
&lt;br /&gt;
You tick a checkbox to activate a feature and you untick it for deactivating - or was it the other way round...? &lt;br /&gt;
&lt;br /&gt;
=== Quiz settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Quiz settings Check for disabling.png]]&lt;br /&gt;
: This one was fixed in Moodle 2.0--[[User:Tim Hunt|Tim Hunt]] 00:44, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
* The checkboxes should be on the left. That way no additional prompt would be necessary and accessibility (especially for screen readers) would improve.&lt;br /&gt;
&lt;br /&gt;
: This would break the alignment of the form. Suppose you had an optional date followed by a non-optional date - it would be useful if the sub-fields lined up, so you could easily see whether the second date was 7 days after the first. I also think it would be better to have the checkbox first, I am just saying it is not as simple as that.--[[User:Tim Hunt|Tim Hunt]] 00:44, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks for the feedback, Tim. Will try to keep track of all the new developments! The problem with aligning form elements is that they all are usually treated as block level elements. I suppose one could try using &amp;quot;display: inline;&amp;quot; to get around that limitation but haven&#039;t tried this yet. --[[User:Frank Ralf|Frank Ralf]] 12:39, 30 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== AJAX and JavaScript ===&lt;br /&gt;
&lt;br /&gt;
Another example (Moodle 2.0 dev, Build: 20090720)&lt;br /&gt;
&lt;br /&gt;
[[Image:2009-07-20 Moodle and JavaScript.png]]&lt;br /&gt;
&lt;br /&gt;
This form should better look similar to this mockup:&lt;br /&gt;
&lt;br /&gt;
[[Image:AJAX and JavaScript improved.png]]&lt;br /&gt;
&lt;br /&gt;
: I definitely agree with this latter suggestion. Many times I have to wrestle with double-negative type logic such as disabling the prevention of some function (eg allow late submissions)&lt;br /&gt;
--[[User:Mark Pearson 2|Mark Pearson 2]] 18:19, 18 January 2010 (UTC)&lt;br /&gt;
== See also ==&lt;br /&gt;
[TODO]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Apache&amp;diff=48506</id>
		<title>Apache</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Apache&amp;diff=48506"/>
		<updated>2008-12-30T18:06:09Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* SSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When most people refer to &#039;&#039;&#039;Apache&#039;&#039;&#039; they are talking about the &amp;quot;Apache HTTP Server Project&amp;quot;. In fact Apache is really the &amp;quot;Apache Software Foundation&amp;quot; which hosts a long list of projects of which the HTTP server is just one, albeit the best known.&lt;br /&gt;
&lt;br /&gt;
The Apache HTTP Server enables web pages to be published on the internet (or an intranet or even on a single test machine). The [[PHP]] scripting language, in which Moodle is developed, is tightly integrated with the Apache HTTP Server. A web server is a required component of a Moodle installation. There are two distinct developments of the Apache HTTP Server, version 1 and version 2. Although version 2 should have replaced version 1, the architectures are so different that they both continue to be supported. Either are fully supported by PHP and Moodle.&lt;br /&gt;
&lt;br /&gt;
The Apache HTTP Server Project describes itself thus:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.&lt;br /&gt;
&lt;br /&gt;
Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Installing Apache ==&lt;br /&gt;
Usually Apache is installed alongside PHP and [[MySQL]] in a combination known as XAMPP or MAMP. See information about [[Complete install packages for Windows|XAMPP(Windows cross platforms)]] and for information about [[Complete Install Packages for Mac OS X|MAMP (Mac OS platforms)]].&lt;br /&gt;
&lt;br /&gt;
Debian/Ubuntu:&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
==Performance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caching&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apache can be tuned to make pages load faster by specifying how the browser should cache the various page elements. How to do this varies slightly between OSes but there are two basic steps&lt;br /&gt;
&lt;br /&gt;
# Install and enable mod_expires - refer to documentation or man pages&lt;br /&gt;
# Add this code to the virtual server config file within the section for the root directory (or within the .htaccess file if AllowOverrides is On):&lt;br /&gt;
 &amp;lt;IfModule mod_expires.c&amp;gt;&lt;br /&gt;
  ExpiresActive On&lt;br /&gt;
  ExpiresDefault &amp;quot;access plus 1 seconds&amp;quot;&lt;br /&gt;
  ExpiresByType text/html &amp;quot;access plus 1 seconds&amp;quot;&lt;br /&gt;
  ExpiresByType image/gif &amp;quot;access plus 120 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType image/jpeg &amp;quot;access plus 120 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType image/png &amp;quot;access plus 120 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType text/css &amp;quot;access plus 60 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType text/javascript &amp;quot;access plus 60 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType application/x-javascript &amp;quot;access plus 60 minutes&amp;quot;&lt;br /&gt;
  ExpiresByType text/xml &amp;quot;access plus 1 seconds&amp;quot;&lt;br /&gt;
 &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The effect is to make everything stay in the cache except HTML and XML, which change dynamically. It&#039;s possible to gain a several hundred percent decrease in load times this way&lt;br /&gt;
&lt;br /&gt;
More info: [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Servers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apache serves webpages by spawning new child processes (smaller sub-programs) to deal with each connection. The number of these that you allow to run and to be kept in reserve has a big impact on how fast your server will run. The risk (especially on a server with a small amount of memory, such as a VPS) is that the available RAM will run out and the system will end up using the far slower hard disk as swap memory instead. To prevent this, you need to tell Apache only to have a certain number. Here is a sample set of configuration directives for a VPS server with 128MB of RAM (with up to 384 burstable), which apparently works quite well (more info [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html here])&lt;br /&gt;
&lt;br /&gt;
Make a back up of your httpd.conf first. It’s generally found at /etc/httpd/conf/httpd.conf, then open the file with your editor e.g. &lt;br /&gt;
&lt;br /&gt;
 nano /etc/httpd/conf/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Then look for these values, which may be spread about a little and change them:&lt;br /&gt;
&lt;br /&gt;
 Timeout 200&lt;br /&gt;
 KeepAlive On&lt;br /&gt;
 MaxKeepAliveRequests 200&lt;br /&gt;
 KeepAliveTimeout 3&lt;br /&gt;
 MinSpareServers 5&lt;br /&gt;
 MaxSpareServers 15&lt;br /&gt;
 StartServers 5&lt;br /&gt;
 MaxClients 20&lt;br /&gt;
 MaxRequestsPerChild 2000&lt;br /&gt;
 HostnameLookups Off&lt;br /&gt;
&lt;br /&gt;
If you find that you are running out of memory (type &lt;br /&gt;
&lt;br /&gt;
 top&lt;br /&gt;
&lt;br /&gt;
if using Linux and look at the swap figure), just lower some of the numbers. Similary, if you have extra memory, you can afford to raise them a bit. Remember to combine tuning of Apache with tuning of your database app.&lt;br /&gt;
&lt;br /&gt;
==SSL==&lt;br /&gt;
&lt;br /&gt;
If you want your website not to be hackable, you need to enable SSL so that your moodle password cannot be easily read by others as it is transmitted (as normal internet communications normally can be). There are 2 options - generate a self-signed certificate, which stops casual network sniffing, but which can ultimately be compromised with enough effort, or purchase a certificate from a vendor (about $35 per year from the cheap ones). Below are instructions for install of a self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian and Apache2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. generate a certification:&lt;br /&gt;
      apache2-ssl-certificate&lt;br /&gt;
&lt;br /&gt;
for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead:&lt;br /&gt;
          make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem&lt;br /&gt;
&lt;br /&gt;
2. edit /etc/apache2/ports.conf:&lt;br /&gt;
      Listen 80&lt;br /&gt;
      Listen 443&lt;br /&gt;
3. copy /etc/apache2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default:&lt;br /&gt;
      NameVirtualHost *:80&lt;br /&gt;
      &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
      ...&lt;br /&gt;
      &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and also /etc/apache2/sites-available/default-ssl:&lt;br /&gt;
      NameVirtualHost *:443&lt;br /&gt;
      &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
      ...&lt;br /&gt;
              SSLEngine on&lt;br /&gt;
              SSLCertificateFile /etc/apache2/ssl/apache.pem&lt;br /&gt;
      ...&lt;br /&gt;
      &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
4. symbolic link the ssl file:&lt;br /&gt;
      a2ensite default-ssl&lt;br /&gt;
5. don&#039;t forget to symbolic link the ssl module:&lt;br /&gt;
      a2enmod ssl&lt;br /&gt;
6. restart apache and test the connection (e.g. https://localhost/):&lt;br /&gt;
      /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding reference]&lt;br /&gt;
&lt;br /&gt;
[https://els.earlham.edu/cayaraa/weblog/1468.html Making Moodle work with SSL]&lt;br /&gt;
--[[User:Mark Pearson 2|Mark Pearson 2]] 12:06, 30 December 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ The Apache HTTP Server Project homepage]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server Wikipedia article on the Apache HTTP Server]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.0/misc/perf-tuning.html Apache Performance Tuning article at the official homepage]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
&lt;br /&gt;
[[pl:Apache]]&lt;br /&gt;
[[ja:Apache]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Attendance_module&amp;diff=40261</id>
		<title>Attendance module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Attendance_module&amp;diff=40261"/>
		<updated>2008-07-22T20:28:09Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Mod and Block Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two version of the &#039;&#039;&#039;attendance&#039;&#039;&#039; module: from [http://moodle.org/user/view.php?id=18237 Dmitry Pupinin] and from [http://human-logic.com/ Human Logic].&lt;br /&gt;
Both published in the Using Moodle [http://moodle.org/mod/forum/view.php?f=125 Attendance module forum].&lt;br /&gt;
&lt;br /&gt;
At this time Dmitry&#039;s version is more stable and useful.&lt;br /&gt;
&lt;br /&gt;
[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=1062 Download daily build of Dmitry&#039;s version]&lt;br /&gt;
&lt;br /&gt;
==Installation by Moodle Administrator==&lt;br /&gt;
&lt;br /&gt;
To install Dmitry&#039;s version of the attendance module, follow these directions (provided by [http://moodle.org/user/view.php?id=40637&amp;amp;course=5 Richard Webb] in [http://moodle.org/mod/forum/discuss.php?d=79134#p436449 this post]).  Installation can only be completed by a user having write access to the file structure on the computer hosting Moodle and with administration rights for your installation of Moodle.&lt;br /&gt;
&lt;br /&gt;
===Language Files===&lt;br /&gt;
&lt;br /&gt;
Moodle has a general language folder with subfolders for installed languages, and language files within these subfolders. This structure allows Moodle to efficiently work in an unlimited variety of languages with relative ease. Every block and module in Moodle has its own language strings that must be defined in a language file with a name specified by the block or module. &amp;quot;In the old days&amp;quot; (meaning prior to Moodle 1.9) the language files for each mod or block were copied into the appropriate subfolders in the &amp;lt;code&amp;gt;moodle/lang/&amp;lt;/code&amp;gt; folder. This still works, but can be tedious and is not the preferred method anymore.&lt;br /&gt;
&lt;br /&gt;
Newer versions of Moodle (1.9 and up) allow you to keep the language files with the mods and blocks so they are self-contained and you don&#039;t have to do so much work with language files. Older versions of the Attendance module did not have all language files correctly placed resulting in tags that say &amp;lt;nowiki&amp;gt;[[attendance]]&amp;lt;/nowiki&amp;gt;.  As of June 20, 2008, the problem has been resolved.  If you are having problems with the language files for the Attendance module, it is recommended that you download the latest version and replace your current installation as described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional Language Considerations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You might consider editing the &amp;lt;code&amp;gt;block_attendance_for_v19/mod/attforblock/lang/en_utf8/attforblock.php&amp;lt;/code&amp;gt; language file and replacing each occurrence of &#039;Attendances&#039; with &#039;Attendance&#039;. Some dictionaries   say that attendances is the plural form of attendance while others say there is no plural form.&lt;br /&gt;
&lt;br /&gt;
Note that the &#039;&#039;&#039;date format&#039;&#039;&#039; is controlled by the language file you install.  If you prefer Month/Day/Year format, for example, you will want to use the US_en language file found in the block folder.&lt;br /&gt;
&lt;br /&gt;
You can easily edit the date format yourself, if you so desire.  These strings show the M/D/Y format.&lt;br /&gt;
&lt;br /&gt;
 $string[&#039;strftimedm&#039;] = &#039;%%m.%%d&#039;;&lt;br /&gt;
 $string[&#039;strftimedmy&#039;] = &#039;%%m.%%d.%%Y&#039;;&lt;br /&gt;
 $string[&#039;strftimedmyw&#039;] = &#039;%%m.%%d.%%y&amp;amp;nbsp;(%%a)&#039;;&lt;br /&gt;
 $string[&#039;strftimeshortdate&#039;] = &#039;%%m.%%d.%%Y&#039;;&lt;br /&gt;
&lt;br /&gt;
===Mod and Block Installation===&lt;br /&gt;
&lt;br /&gt;
If you look at your Moodle installation, you will see that among the many subfolders in the Moodle folder you have folders named &amp;lt;code&amp;gt;blocks/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mod/&amp;lt;/code&amp;gt;, matching the two folders in the &amp;lt;code&amp;gt;block_attendance_for_v19/&amp;lt;/code&amp;gt; folder. Installation is completed by copying the contents of the &amp;lt;code&amp;gt;block_attendance_for_v19/blocks/&amp;lt;/code&amp;gt; folder into your &amp;lt;code&amp;gt;moodle/blocks/&amp;lt;/code&amp;gt; folder (so you have a &amp;lt;code&amp;gt;moodle/blocks/attendance/&amp;lt;/code&amp;gt; folder with all of the files and subfolders copied as well) and likewise copying the contents of the &amp;lt;code&amp;gt;block_attendance_for_v19/mod&amp;lt;/code&amp;gt; folder into your &amp;lt;code&amp;gt;moodle/mod/&amp;lt;/code&amp;gt; folder. On a Unix system, something like &amp;lt;code&amp;gt;/var/www/moodle19/blocks$ sudo cp -r ~/moodle-modules/attendance/blocks/* . &amp;lt;/code&amp;gt; does the job and similar for the mod directory. Don&#039;t forget to &amp;lt;code&amp;gt;sudo chown -r &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; attendance&amp;lt;/code&amp;gt; to the same parameters as the other block directories (do a &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; to remind yourself).&lt;br /&gt;
&lt;br /&gt;
Once you have completed the installation, you need to log into Moodle as the administrator and go to the admin page.  This will set up the Attendance database structure.&lt;br /&gt;
&lt;br /&gt;
==Using Attendance in a Class by a Teacher==&lt;br /&gt;
&lt;br /&gt;
===Adding Attendance Activity===&lt;br /&gt;
&lt;br /&gt;
After the attendance block and module have been properly installed, you (the teacher) must add attendance as an activity to each course you wish to keep attendance in. This is done by first ensuring that you are in the edit mode and then selecting, &amp;quot;Attendance&amp;quot; from the &amp;quot;Add an activity...&amp;quot; pull-down menu. Note that you may only add the attendance activity once per class and it may be located in any of the section blocks. Because attendance is for the entire course, it seems logical to put it in the top box (the one that always shows).&lt;br /&gt;
&lt;br /&gt;
Once you have added the attendance activity, you are ready to start using the attendance module. However, the section link that was just added in the preceding paragraph is the &amp;quot;clunky way&amp;quot; to work with the attendance module. In fact, it is recommended that you simply hide that link! That way students won&#039;t see it cluttering up the section block where you placed it. Of course, we DO want students to be able to view their attendance records, just not with that link. There is a second, better, way to accomplish this. Select &amp;quot;Attendance&amp;quot; from the pull-down menu in the &amp;quot;Blocks&amp;quot; block. This will create a block with teacher options to take attendance, report on attendance, or change the attendance settings.  The same block will instead have an attendance report for students.&lt;br /&gt;
&lt;br /&gt;
===Setting Attendance Categories and Grading Options===&lt;br /&gt;
&lt;br /&gt;
Now it is time to set your attendance options. Select &amp;quot;Settings&amp;quot; from the attendance block. This brings you to the letters, descriptions, and grade (points) to assign for the four attendance options. By default these are Present, Absent, Late, and Excused. You may prefer to change the descriptions (e.g., change the word Late to Tardy), change the order, or change the way points are counted so make appropriate changes here to the names, order, and grades.  Be sure to click the &amp;quot;Update&amp;quot; button when you are done.&lt;br /&gt;
&lt;br /&gt;
===Adding Sessions===&lt;br /&gt;
&lt;br /&gt;
Next it is time to add sessions. Note that there is a restriction here. You can only have one session per day. Since you can only have one attendance activity installed (which means that you cannot have a lab attendance activity and a lecture attendance activity) and can only have one attendance session per day, if you have more than one class session per day you will have to be creative in taking attendance. And if you have more than seven class sessions for a single class in a week--then you are overworked!&lt;br /&gt;
&lt;br /&gt;
To add class sections, click the &amp;quot;Add&amp;quot; tab (second from left) at the top of the page (if you left the attendance page, select any of the three links from the attendance block to return to the attendance page and gain access to the &amp;quot;Add&amp;quot; tab). You have two options here, to add a single session or to add multiple sessions. The single session is self-explanatory as well as time consuming to use when you have many class sessions so I will go straight the more useful option, how to add multiple sessions. &lt;br /&gt;
&lt;br /&gt;
Under the &amp;quot;Create multiple sessions&amp;quot; label choose the date for the first session you wish to add followed by the date for the last session you wish to add. Next select the days of the week on which the class meets. The final option, frequency, may look confusing but it is actually straight-forward. If your class meets every week (the normal situation) then you want a frequency of 1 week which is the default. If your class meets every other week, then you want a frequency of 2 weeks, and so on. When you click the &amp;quot;Add multiple sessions&amp;quot; button, your sessions will be created and you will see a message indicating this.&lt;br /&gt;
&lt;br /&gt;
===Taking Attendance===&lt;br /&gt;
&lt;br /&gt;
Now head to the attendance tab. Here you see the list of all attendance sessions you have added. You can delete an individual session by clicking the X to the right of it. (Personal note, it sure would be nice if there was an option to select a few sessions and delete them all at once--I use the multiple sessions option to put my sessions in for the entire semester and then have to go and remove sessions for vacation days one at a time.) You can edit a session (change the date or add a description) with the standard hand icon to the right of the session, or you can take attendance for a session by clicking the green radio button to the right of the session. Sessions where attendance has already been taken do not have the green button, but instead the description is a link that takes you to the screen to modify the attendance record for that session.&lt;br /&gt;
&lt;br /&gt;
You will note that when taking attendance the column headings for attendance state are links. If you click one of these column headings, all students will have their status changed to the status you selected. Thus, if everyone is absent (God forbid!), you merely click the &#039;&#039;&#039;A&#039;&#039;&#039; and it will change everyone&#039;s status to absent. If Little Johnny is the only student absent, you would logically click &#039;&#039;&#039;P&#039;&#039;&#039; to set everyone to present and then go down to Little Johnny and change his status to &#039;&#039;&#039;A&#039;&#039;&#039;. Enter remarks as appropriate (e.g., the reason for an absence if known or the minutes late if someone is tardy) and click OK to complete taking record.&lt;br /&gt;
&lt;br /&gt;
===Reports===&lt;br /&gt;
&lt;br /&gt;
Finally, you have the reports. This is, again, obvious. One of my colleagues prefers to take record on paper and transfer it to Moodle. She suggested printing the monthly report before the start of the month and then taking record on this report. It has an added advantage because you have each student&#039;s picture with the record sheet. Of course, that is only useful for students who actually put photos of themselves in for their picture.&lt;br /&gt;
&lt;br /&gt;
A final note here. If you added the attendance block as recommended, you may wonder what it looks like for students. It is completely different--showing a summary of their attendance record and having a single link for them to view the details of their personal attendance. Another reason why I think the attendance block should always be added when you use the attendance module.&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Attendance_module&amp;diff=40260</id>
		<title>Attendance module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Attendance_module&amp;diff=40260"/>
		<updated>2008-07-22T20:21:13Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Mod and Block Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two version of the &#039;&#039;&#039;attendance&#039;&#039;&#039; module: from [http://moodle.org/user/view.php?id=18237 Dmitry Pupinin] and from [http://human-logic.com/ Human Logic].&lt;br /&gt;
Both published in the Using Moodle [http://moodle.org/mod/forum/view.php?f=125 Attendance module forum].&lt;br /&gt;
&lt;br /&gt;
At this time Dmitry&#039;s version is more stable and useful.&lt;br /&gt;
&lt;br /&gt;
[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=1062 Download daily build of Dmitry&#039;s version]&lt;br /&gt;
&lt;br /&gt;
==Installation by Moodle Administrator==&lt;br /&gt;
&lt;br /&gt;
To install Dmitry&#039;s version of the attendance module, follow these directions (provided by [http://moodle.org/user/view.php?id=40637&amp;amp;course=5 Richard Webb] in [http://moodle.org/mod/forum/discuss.php?d=79134#p436449 this post]).  Installation can only be completed by a user having write access to the file structure on the computer hosting Moodle and with administration rights for your installation of Moodle.&lt;br /&gt;
&lt;br /&gt;
===Language Files===&lt;br /&gt;
&lt;br /&gt;
Moodle has a general language folder with subfolders for installed languages, and language files within these subfolders. This structure allows Moodle to efficiently work in an unlimited variety of languages with relative ease. Every block and module in Moodle has its own language strings that must be defined in a language file with a name specified by the block or module. &amp;quot;In the old days&amp;quot; (meaning prior to Moodle 1.9) the language files for each mod or block were copied into the appropriate subfolders in the &amp;lt;code&amp;gt;moodle/lang/&amp;lt;/code&amp;gt; folder. This still works, but can be tedious and is not the preferred method anymore.&lt;br /&gt;
&lt;br /&gt;
Newer versions of Moodle (1.9 and up) allow you to keep the language files with the mods and blocks so they are self-contained and you don&#039;t have to do so much work with language files. Older versions of the Attendance module did not have all language files correctly placed resulting in tags that say &amp;lt;nowiki&amp;gt;[[attendance]]&amp;lt;/nowiki&amp;gt;.  As of June 20, 2008, the problem has been resolved.  If you are having problems with the language files for the Attendance module, it is recommended that you download the latest version and replace your current installation as described below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional Language Considerations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You might consider editing the &amp;lt;code&amp;gt;block_attendance_for_v19/mod/attforblock/lang/en_utf8/attforblock.php&amp;lt;/code&amp;gt; language file and replacing each occurrence of &#039;Attendances&#039; with &#039;Attendance&#039;. Some dictionaries   say that attendances is the plural form of attendance while others say there is no plural form.&lt;br /&gt;
&lt;br /&gt;
Note that the &#039;&#039;&#039;date format&#039;&#039;&#039; is controlled by the language file you install.  If you prefer Month/Day/Year format, for example, you will want to use the US_en language file found in the block folder.&lt;br /&gt;
&lt;br /&gt;
You can easily edit the date format yourself, if you so desire.  These strings show the M/D/Y format.&lt;br /&gt;
&lt;br /&gt;
 $string[&#039;strftimedm&#039;] = &#039;%%m.%%d&#039;;&lt;br /&gt;
 $string[&#039;strftimedmy&#039;] = &#039;%%m.%%d.%%Y&#039;;&lt;br /&gt;
 $string[&#039;strftimedmyw&#039;] = &#039;%%m.%%d.%%y&amp;amp;nbsp;(%%a)&#039;;&lt;br /&gt;
 $string[&#039;strftimeshortdate&#039;] = &#039;%%m.%%d.%%Y&#039;;&lt;br /&gt;
&lt;br /&gt;
===Mod and Block Installation===&lt;br /&gt;
&lt;br /&gt;
If you look at your Moodle installation, you will see that among the many subfolders in the Moodle folder you have folders named &amp;lt;code&amp;gt;blocks/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mod/&amp;lt;/code&amp;gt;, matching the two folders in the &amp;lt;code&amp;gt;block_attendance_for_v19/&amp;lt;/code&amp;gt; folder. Installation is completed by copying the contents of the &amp;lt;code&amp;gt;block_attendance_for_v19/blocks/&amp;lt;/code&amp;gt; folder into your &amp;lt;code&amp;gt;moodle/blocks/&amp;lt;/code&amp;gt; folder (so you have a &amp;lt;code&amp;gt;moodle/blocks/attendance/&amp;lt;/code&amp;gt; folder with all of the files and subfolders copied as well) and likewise copying the contents of the &amp;lt;code&amp;gt;block_attendance_for_v19/mod&amp;lt;/code&amp;gt; folder into your &amp;lt;code&amp;gt;moodle/mod/&amp;lt;/code&amp;gt; folder. On a Unix system, something like &amp;lt;code&amp;gt;$ sudo cp -r ~/block_attendance_for_v19/blocks /var/www/moodle/blocks/attendance&amp;lt;/code&amp;gt; should do the job and similar for the mod directory. Don&#039;t forget to &amp;lt;code&amp;gt;sudo chown -r &amp;lt;user&amp;gt;:&amp;lt;group&amp;gt; attendance&amp;lt;/code&amp;gt; to the same parameters as the other block directories (do a &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt; to remind yourself).&lt;br /&gt;
&lt;br /&gt;
Once you have completed the installation, you need to log into Moodle as the administrator and go to the admin page.  This will set up the Attendance database structure.&lt;br /&gt;
&lt;br /&gt;
==Using Attendance in a Class by a Teacher==&lt;br /&gt;
&lt;br /&gt;
===Adding Attendance Activity===&lt;br /&gt;
&lt;br /&gt;
After the attendance block and module have been properly installed, you (the teacher) must add attendance as an activity to each course you wish to keep attendance in. This is done by first ensuring that you are in the edit mode and then selecting, &amp;quot;Attendance&amp;quot; from the &amp;quot;Add an activity...&amp;quot; pull-down menu. Note that you may only add the attendance activity once per class and it may be located in any of the section blocks. Because attendance is for the entire course, it seems logical to put it in the top box (the one that always shows).&lt;br /&gt;
&lt;br /&gt;
Once you have added the attendance activity, you are ready to start using the attendance module. However, the section link that was just added in the preceding paragraph is the &amp;quot;clunky way&amp;quot; to work with the attendance module. In fact, it is recommended that you simply hide that link! That way students won&#039;t see it cluttering up the section block where you placed it. Of course, we DO want students to be able to view their attendance records, just not with that link. There is a second, better, way to accomplish this. Select &amp;quot;Attendance&amp;quot; from the pull-down menu in the &amp;quot;Blocks&amp;quot; block. This will create a block with teacher options to take attendance, report on attendance, or change the attendance settings.  The same block will instead have an attendance report for students.&lt;br /&gt;
&lt;br /&gt;
===Setting Attendance Categories and Grading Options===&lt;br /&gt;
&lt;br /&gt;
Now it is time to set your attendance options. Select &amp;quot;Settings&amp;quot; from the attendance block. This brings you to the letters, descriptions, and grade (points) to assign for the four attendance options. By default these are Present, Absent, Late, and Excused. You may prefer to change the descriptions (e.g., change the word Late to Tardy), change the order, or change the way points are counted so make appropriate changes here to the names, order, and grades.  Be sure to click the &amp;quot;Update&amp;quot; button when you are done.&lt;br /&gt;
&lt;br /&gt;
===Adding Sessions===&lt;br /&gt;
&lt;br /&gt;
Next it is time to add sessions. Note that there is a restriction here. You can only have one session per day. Since you can only have one attendance activity installed (which means that you cannot have a lab attendance activity and a lecture attendance activity) and can only have one attendance session per day, if you have more than one class session per day you will have to be creative in taking attendance. And if you have more than seven class sessions for a single class in a week--then you are overworked!&lt;br /&gt;
&lt;br /&gt;
To add class sections, click the &amp;quot;Add&amp;quot; tab (second from left) at the top of the page (if you left the attendance page, select any of the three links from the attendance block to return to the attendance page and gain access to the &amp;quot;Add&amp;quot; tab). You have two options here, to add a single session or to add multiple sessions. The single session is self-explanatory as well as time consuming to use when you have many class sessions so I will go straight the more useful option, how to add multiple sessions. &lt;br /&gt;
&lt;br /&gt;
Under the &amp;quot;Create multiple sessions&amp;quot; label choose the date for the first session you wish to add followed by the date for the last session you wish to add. Next select the days of the week on which the class meets. The final option, frequency, may look confusing but it is actually straight-forward. If your class meets every week (the normal situation) then you want a frequency of 1 week which is the default. If your class meets every other week, then you want a frequency of 2 weeks, and so on. When you click the &amp;quot;Add multiple sessions&amp;quot; button, your sessions will be created and you will see a message indicating this.&lt;br /&gt;
&lt;br /&gt;
===Taking Attendance===&lt;br /&gt;
&lt;br /&gt;
Now head to the attendance tab. Here you see the list of all attendance sessions you have added. You can delete an individual session by clicking the X to the right of it. (Personal note, it sure would be nice if there was an option to select a few sessions and delete them all at once--I use the multiple sessions option to put my sessions in for the entire semester and then have to go and remove sessions for vacation days one at a time.) You can edit a session (change the date or add a description) with the standard hand icon to the right of the session, or you can take attendance for a session by clicking the green radio button to the right of the session. Sessions where attendance has already been taken do not have the green button, but instead the description is a link that takes you to the screen to modify the attendance record for that session.&lt;br /&gt;
&lt;br /&gt;
You will note that when taking attendance the column headings for attendance state are links. If you click one of these column headings, all students will have their status changed to the status you selected. Thus, if everyone is absent (God forbid!), you merely click the &#039;&#039;&#039;A&#039;&#039;&#039; and it will change everyone&#039;s status to absent. If Little Johnny is the only student absent, you would logically click &#039;&#039;&#039;P&#039;&#039;&#039; to set everyone to present and then go down to Little Johnny and change his status to &#039;&#039;&#039;A&#039;&#039;&#039;. Enter remarks as appropriate (e.g., the reason for an absence if known or the minutes late if someone is tardy) and click OK to complete taking record.&lt;br /&gt;
&lt;br /&gt;
===Reports===&lt;br /&gt;
&lt;br /&gt;
Finally, you have the reports. This is, again, obvious. One of my colleagues prefers to take record on paper and transfer it to Moodle. She suggested printing the monthly report before the start of the month and then taking record on this report. It has an added advantage because you have each student&#039;s picture with the record sheet. Of course, that is only useful for students who actually put photos of themselves in for their picture.&lt;br /&gt;
&lt;br /&gt;
A final note here. If you added the attendance block as recommended, you may wonder what it looks like for students. It is completely different--showing a summary of their attendance record and having a single link for them to view the details of their personal attendance. Another reason why I think the attendance block should always be added when you use the attendance module.&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19259</id>
		<title>Broken/Blogs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19259"/>
		<updated>2007-01-10T17:57:26Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Blogs and Tagging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blogs Wishlist==&lt;br /&gt;
Its great to have blogs on Moodle, but we should expect more of Moodle&#039;s blogs. Let&#039;s make a wishlist.&lt;br /&gt;
=== How do I link to a specific Blog entry ? ===&lt;br /&gt;
The so called blogosphere bores out of the inter-linking between blog entries, but right now you don&#039;t know how to link to a concrete blog entry. Blog entries should have a link to refer themselves. We can only link user&#039;s blogs to categories.&lt;br /&gt;
&lt;br /&gt;
=== Blog entry resume ===&lt;br /&gt;
A view of the blogs entries that gives only 3-5 lines of the blog entry, so a reader can view a lot of entries on one site and click on a &amp;quot;continue reading&amp;quot; link or so on.&lt;br /&gt;
&lt;br /&gt;
=== Block Blog Tools === &lt;br /&gt;
Some blog tools to view blog entries that wolud be nice to have:&lt;br /&gt;
* Last Blog entries.&lt;br /&gt;
** per user&lt;br /&gt;
** per category&lt;br /&gt;
** per course&lt;br /&gt;
** per site&lt;br /&gt;
* Blog search &lt;br /&gt;
* Most readed, commented voted blog entries ( and vote for blog entry, of course )&lt;br /&gt;
&lt;br /&gt;
=== Blogs as course activities? ===&lt;br /&gt;
[[Blogs]] were touted as replacing the [[Journal]] activity, which was a course level activity for reflective writing etc. The blogs system as of v1.6 seems to remove blogs from the context of courses (excluding course-level tags) even though they can be accessed from within the course through the Blogs block. The admininstration of blogs seems to be a rather broad brush - once the settings are specified centrally on the server they can&#039;t be modified. A vision for this might be:&lt;br /&gt;
* Blog as an [[Activity]] in a course&lt;br /&gt;
** Teacher able to set up blog with various parameters and should be able to:&lt;br /&gt;
*** Specifiy a timeframe for when blog needs to be posted. How would this work? Suggest a label with posting date and make the date red if it&#039;s after the due date/time.&lt;br /&gt;
*** Label all posts in response to this activity with certain tags. Implement an RSS feed for each tag to aggregate all blog postings with that tag.&lt;br /&gt;
*** Decide whether this particular blog activity is visible to course/group/institution/teacher &amp;amp; pupil only/the wider world. In other words, set default posting permission on the student&#039;s blog entry associated with this Activity (should be fun to implement :-). Should this be changeable by the student? Eg if the student wants her posting viewed by the world, then why not?&lt;br /&gt;
*** Should this be an assessed activity? If it&#039;s really replacing Journal, then almost certainly... Could use a similar system to Forums.&lt;br /&gt;
** Blog posts which come out of this activity should be part of the user&#039;s wider personal blog&lt;br /&gt;
** If comments do happen on blogs, then each course-centred blog should be able to accept comments just from teachers, from peers, or from no-one&lt;br /&gt;
** Commenting parameters. A &#039;Blogging Activity&#039; could ask for 1 posting and 3 comments on other blogs per student. When making a comment on another student&#039;s blog entry the student would have to choose a specific comment tag generated from this assignment from a pulldown list. Then an RSS feed for this tag could be aggregated into a single box for quick checking by the Teacher.&lt;br /&gt;
&lt;br /&gt;
=== Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! ===&lt;br /&gt;
&lt;br /&gt;
Comments and trackbacks were present in the alpha/beta blog code developed by Daryl Hawes ([http://www.earlham.edu/~markp/it/archives/004195.html IT@EC April 05 blog entry]), so, in principle, the code should be there to deploy. Daryl coined a clever term for trackbacks &amp;quot;inform sites I have linked to that I have linked to them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If commenting is implemented, then trackbacks should be too so that students can make thoughtful responses to each other&#039;s blog entries and still have them present in their own blog environment.&lt;br /&gt;
&lt;br /&gt;
== Blogs and Tagging ==&lt;br /&gt;
&lt;br /&gt;
Should tagging just apply to blog posts? I&#039;d like to see the notion of user tagging percolate throughout the whole of Moodle. Wouldn&#039;t it be great to tag [[Resources]] and then aggregate an RSS feed of tagged items. If keyword/tag were a universal epistemological asset within Moodle then the possibilities for leveraging via RSS feeds would be boundless. Think about the pedagogical possibilities of aggregating all objects tagged with a certain tag -- then you&#039;d have some real connections made!&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Blog]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19257</id>
		<title>Broken/Blogs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19257"/>
		<updated>2007-01-10T17:31:20Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Blogs and Tagging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blogs Wishlist==&lt;br /&gt;
Its great to have blogs on Moodle, but we should expect more of Moodle&#039;s blogs. Let&#039;s make a wishlist.&lt;br /&gt;
=== How do I link to a specific Blog entry ? ===&lt;br /&gt;
The so called blogosphere bores out of the inter-linking between blog entries, but right now you don&#039;t know how to link to a concrete blog entry. Blog entries should have a link to refer themselves. We can only link user&#039;s blogs to categories.&lt;br /&gt;
&lt;br /&gt;
=== Blog entry resume ===&lt;br /&gt;
A view of the blogs entries that gives only 3-5 lines of the blog entry, so a reader can view a lot of entries on one site and click on a &amp;quot;continue reading&amp;quot; link or so on.&lt;br /&gt;
&lt;br /&gt;
=== Block Blog Tools === &lt;br /&gt;
Some blog tools to view blog entries that wolud be nice to have:&lt;br /&gt;
* Last Blog entries.&lt;br /&gt;
** per user&lt;br /&gt;
** per category&lt;br /&gt;
** per course&lt;br /&gt;
** per site&lt;br /&gt;
* Blog search &lt;br /&gt;
* Most readed, commented voted blog entries ( and vote for blog entry, of course )&lt;br /&gt;
&lt;br /&gt;
=== Blogs as course activities? ===&lt;br /&gt;
[[Blogs]] were touted as replacing the [[Journal]] activity, which was a course level activity for reflective writing etc. The blogs system as of v1.6 seems to remove blogs from the context of courses (excluding course-level tags) even though they can be accessed from within the course through the Blogs block. The admininstration of blogs seems to be a rather broad brush - once the settings are specified centrally on the server they can&#039;t be modified. A vision for this might be:&lt;br /&gt;
* Blog as an [[Activity]] in a course&lt;br /&gt;
** Teacher able to set up blog with various parameters and should be able to:&lt;br /&gt;
*** Specifiy a timeframe for when blog needs to be posted. How would this work? Suggest a label with posting date and make the date red if it&#039;s after the due date/time.&lt;br /&gt;
*** Label all posts in response to this activity with certain tags. Implement an RSS feed for each tag to aggregate all blog postings with that tag.&lt;br /&gt;
*** Decide whether this particular blog activity is visible to course/group/institution/teacher &amp;amp; pupil only/the wider world. In other words, set default posting permission on the student&#039;s blog entry associated with this Activity (should be fun to implement :-). Should this be changeable by the student? Eg if the student wants her posting viewed by the world, then why not?&lt;br /&gt;
*** Should this be an assessed activity? If it&#039;s really replacing Journal, then almost certainly... Could use a similar system to Forums.&lt;br /&gt;
** Blog posts which come out of this activity should be part of the user&#039;s wider personal blog&lt;br /&gt;
** If comments do happen on blogs, then each course-centred blog should be able to accept comments just from teachers, from peers, or from no-one&lt;br /&gt;
** Commenting parameters. A &#039;Blogging Activity&#039; could ask for 1 posting and 3 comments on other blogs per student. When making a comment on another student&#039;s blog entry the student would have to choose a specific comment tag generated from this assignment from a pulldown list. Then an RSS feed for this tag could be aggregated into a single box for quick checking by the Teacher.&lt;br /&gt;
&lt;br /&gt;
=== Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! ===&lt;br /&gt;
&lt;br /&gt;
Comments and trackbacks were present in the alpha/beta blog code developed by Daryl Hawes ([http://www.earlham.edu/~markp/it/archives/004195.html IT@EC April 05 blog entry]), so, in principle, the code should be there to deploy. Daryl coined a clever term for trackbacks &amp;quot;inform sites I have linked to that I have linked to them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If commenting is implemented, then trackbacks should be too so that students can make thoughtful responses to each other&#039;s blog entries and still have them present in their own blog environment.&lt;br /&gt;
&lt;br /&gt;
== Blogs and Tagging ==&lt;br /&gt;
&lt;br /&gt;
Should tagging just apply to blog posts? I&#039;d like to see the notion of user tagging percolate throughout the whole of Moodle. Wouldn&#039;t it be great to tag [[Resources]] and then aggregate an RSS feed of tagged items. If keyword/tag is a universal epistemological asset within Moodle then the possibilities for leveraging via RSS feeds are endless. Also, think of the pedagogical possibilities of aggregating all objects tagged with a certain tag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Blog]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19256</id>
		<title>Broken/Blogs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19256"/>
		<updated>2007-01-10T17:30:46Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Blogs Wishlist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blogs Wishlist==&lt;br /&gt;
Its great to have blogs on Moodle, but we should expect more of Moodle&#039;s blogs. Let&#039;s make a wishlist.&lt;br /&gt;
=== How do I link to a specific Blog entry ? ===&lt;br /&gt;
The so called blogosphere bores out of the inter-linking between blog entries, but right now you don&#039;t know how to link to a concrete blog entry. Blog entries should have a link to refer themselves. We can only link user&#039;s blogs to categories.&lt;br /&gt;
&lt;br /&gt;
=== Blog entry resume ===&lt;br /&gt;
A view of the blogs entries that gives only 3-5 lines of the blog entry, so a reader can view a lot of entries on one site and click on a &amp;quot;continue reading&amp;quot; link or so on.&lt;br /&gt;
&lt;br /&gt;
=== Block Blog Tools === &lt;br /&gt;
Some blog tools to view blog entries that wolud be nice to have:&lt;br /&gt;
* Last Blog entries.&lt;br /&gt;
** per user&lt;br /&gt;
** per category&lt;br /&gt;
** per course&lt;br /&gt;
** per site&lt;br /&gt;
* Blog search &lt;br /&gt;
* Most readed, commented voted blog entries ( and vote for blog entry, of course )&lt;br /&gt;
&lt;br /&gt;
=== Blogs as course activities? ===&lt;br /&gt;
[[Blogs]] were touted as replacing the [[Journal]] activity, which was a course level activity for reflective writing etc. The blogs system as of v1.6 seems to remove blogs from the context of courses (excluding course-level tags) even though they can be accessed from within the course through the Blogs block. The admininstration of blogs seems to be a rather broad brush - once the settings are specified centrally on the server they can&#039;t be modified. A vision for this might be:&lt;br /&gt;
* Blog as an [[Activity]] in a course&lt;br /&gt;
** Teacher able to set up blog with various parameters and should be able to:&lt;br /&gt;
*** Specifiy a timeframe for when blog needs to be posted. How would this work? Suggest a label with posting date and make the date red if it&#039;s after the due date/time.&lt;br /&gt;
*** Label all posts in response to this activity with certain tags. Implement an RSS feed for each tag to aggregate all blog postings with that tag.&lt;br /&gt;
*** Decide whether this particular blog activity is visible to course/group/institution/teacher &amp;amp; pupil only/the wider world. In other words, set default posting permission on the student&#039;s blog entry associated with this Activity (should be fun to implement :-). Should this be changeable by the student? Eg if the student wants her posting viewed by the world, then why not?&lt;br /&gt;
*** Should this be an assessed activity? If it&#039;s really replacing Journal, then almost certainly... Could use a similar system to Forums.&lt;br /&gt;
** Blog posts which come out of this activity should be part of the user&#039;s wider personal blog&lt;br /&gt;
** If comments do happen on blogs, then each course-centred blog should be able to accept comments just from teachers, from peers, or from no-one&lt;br /&gt;
** Commenting parameters. A &#039;Blogging Activity&#039; could ask for 1 posting and 3 comments on other blogs per student. When making a comment on another student&#039;s blog entry the student would have to choose a specific comment tag generated from this assignment from a pulldown list. Then an RSS feed for this tag could be aggregated into a single box for quick checking by the Teacher.&lt;br /&gt;
&lt;br /&gt;
=== Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! ===&lt;br /&gt;
&lt;br /&gt;
Comments and trackbacks were present in the alpha/beta blog code developed by Daryl Hawes ([http://www.earlham.edu/~markp/it/archives/004195.html IT@EC April 05 blog entry]), so, in principle, the code should be there to deploy. Daryl coined a clever term for trackbacks &amp;quot;inform sites I have linked to that I have linked to them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If commenting is implemented, then trackbacks should be too so that students can make thoughtful responses to each other&#039;s blog entries and still have them present in their own blog environment.&lt;br /&gt;
&lt;br /&gt;
=== Blogs and Tagging ===&lt;br /&gt;
&lt;br /&gt;
Should tagging just apply to blog posts? I&#039;d like to see the notion of user tagging percolate throughout the whole of Moodle. Wouldn&#039;t it be great to tag [[Resources]] and then aggregate an RSS feed of tagged items. If keyword/tag is a universal epistemological asset within Moodle then the possibilities for leveraging via RSS feeds are endless. Also, think of the pedagogical possibilities of aggregating all objects tagged with a certain tag.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Blog]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19255</id>
		<title>Broken/Blogs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19255"/>
		<updated>2007-01-10T17:04:18Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blogs Wishlist==&lt;br /&gt;
Its great to have blogs on Moodle, but we should expect more of Moodle&#039;s blogs. Let&#039;s make a wishlist.&lt;br /&gt;
=== How do I link to a specific Blog entry ? ===&lt;br /&gt;
The so called blogosphere bores out of the inter-linking between blog entries, but right now you don&#039;t know how to link to a concrete blog entry. Blog entries should have a link to refer themselves. We can only link user&#039;s blogs to categories.&lt;br /&gt;
&lt;br /&gt;
=== Blog entry resume ===&lt;br /&gt;
A view of the blogs entries that gives only 3-5 lines of the blog entry, so a reader can view a lot of entries on one site and click on a &amp;quot;continue reading&amp;quot; link or so on.&lt;br /&gt;
&lt;br /&gt;
=== Block Blog Tools === &lt;br /&gt;
Some blog tools to view blog entries that wolud be nice to have:&lt;br /&gt;
* Last Blog entries.&lt;br /&gt;
** per user&lt;br /&gt;
** per category&lt;br /&gt;
** per course&lt;br /&gt;
** per site&lt;br /&gt;
* Blog search &lt;br /&gt;
* Most readed, commented voted blog entries ( and vote for blog entry, of course )&lt;br /&gt;
&lt;br /&gt;
=== Blogs as course activities? ===&lt;br /&gt;
[[Blogs]] were touted as replacing the [[Journal]] activity, which was a course level activity for reflective writing etc. The blogs system as of v1.6 seems to remove blogs from the context of courses (excluding course-level tags) even though they can be accessed from within the course through the Blogs block. The admininstration of blogs seems to be a rather broad brush - once the settings are specified centrally on the server they can&#039;t be modified. A vision for this might be:&lt;br /&gt;
* Blog as an [[Activity]] in a course&lt;br /&gt;
** Teacher able to set up blog with various parameters and should be able to:&lt;br /&gt;
*** Specifiy a timeframe for when blog needs to be posted. How would this work? Suggest a label with posting date and make the date red if it&#039;s after the due date/time.&lt;br /&gt;
*** Label all posts in response to this activity with certain tags. Implement an RSS feed for each tag to aggregate all blog postings with that tag.&lt;br /&gt;
*** Decide whether this particular blog activity is visible to course/group/institution/teacher &amp;amp; pupil only/the wider world. In other words, set default posting permission on the student&#039;s blog entry associated with this Activity (should be fun to implement :-). Should this be changeable by the student? Eg if the student wants her posting viewed by the world, then why not?&lt;br /&gt;
*** Should this be an assessed activity? If it&#039;s really replacing Journal, then almost certainly... Could use a similar system to Forums.&lt;br /&gt;
** Blog posts which come out of this activity should be part of the user&#039;s wider personal blog&lt;br /&gt;
** If comments do happen on blogs, then each course-centred blog should be able to accept comments just from teachers, from peers, or from no-one&lt;br /&gt;
** Commenting parameters. A &#039;Blogging Activity&#039; could ask for 1 posting and 3 comments on other blogs per student. When making a comment on another student&#039;s blog entry the student would have to choose a specific comment tag generated from this assignment from a pulldown list. Then an RSS feed for this tag could be aggregated into a single box for quick checking by the Teacher.&lt;br /&gt;
&lt;br /&gt;
=== Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! ===&lt;br /&gt;
&lt;br /&gt;
Comments and trackbacks were present in the alpha/beta blog code developed by Daryl Hawes ([http://www.earlham.edu/~markp/it/archives/004195.html IT@EC April 05 blog entry]), so, in principle, the code should be there to deploy. Daryl coined a clever term for trackbacks &amp;quot;inform sites I have linked to that I have linked to them&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If commenting is implemented, then trackbacks should be too so that students can make thoughtful responses to each other&#039;s blog entries and still have them present in their own blog environment.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Blog]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19254</id>
		<title>Broken/Blogs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Broken/Blogs&amp;diff=19254"/>
		<updated>2007-01-10T16:36:34Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Blogs as course activities? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Blogs Wishlist==&lt;br /&gt;
Its great to have blogs on Moodle, but we should expect more of Moodle&#039;s blogs. Let&#039;s make a wishlist.&lt;br /&gt;
=== How do I link to a specific Blog entry ? ===&lt;br /&gt;
The so called blogosphere bores out of the inter-linking between blog entries, but right now you don&#039;t know how to link to a concrete blog entry. Blog entries should have a link to refer themselves. We can only link user&#039;s blogs to categories.&lt;br /&gt;
&lt;br /&gt;
=== Blog entry resume ===&lt;br /&gt;
A view of the blogs entries that gives only 3-5 lines of the blog entry, so a reader can view a lot of entries on one site and click on a &amp;quot;continue reading&amp;quot; link or so on.&lt;br /&gt;
&lt;br /&gt;
=== Block Blog Tools === &lt;br /&gt;
Some blog tools to view blog entries that wolud be nice to have:&lt;br /&gt;
* Last Blog entries.&lt;br /&gt;
** per user&lt;br /&gt;
** per category&lt;br /&gt;
** per course&lt;br /&gt;
** per site&lt;br /&gt;
* Blog search &lt;br /&gt;
* Most readed, commented voted blog entries ( and vote for blog entry, of course )&lt;br /&gt;
&lt;br /&gt;
=== Blogs as course activities? ===&lt;br /&gt;
[[Blogs]] were touted as replacing the [[Journal]] activity, which was a course level activity for reflective writing etc. The blogs system as of v1.6 seems to remove blogs from the context of courses (excluding course-level tags) even though they can be accessed from within the course through the Blogs block. The admininstration of blogs seems to be a rather broad brush - once the settings are specified centrally on the server they can&#039;t be modified. A vision for this might be:&lt;br /&gt;
* Blog as an [[Activity]] in a course&lt;br /&gt;
** Teacher able to set up blog with various parameters and should be able to:&lt;br /&gt;
*** Specifiy a timeframe for when blog needs to be posted. How would this work? Suggest a label with posting date and make the date red if it&#039;s after the due date/time.&lt;br /&gt;
*** Label all posts in response to this activity with certain tags. Implement an RSS feed for each tag to aggregate all blog postings with that tag.&lt;br /&gt;
*** Decide whether this particular blog activity is visible to course/group/institution/teacher &amp;amp; pupil only/the wider world. In other words, set default posting permission on the student&#039;s blog entry associated with this Activity (should be fun to implement :-). Should this be changeable by the student? Eg if the student wants her posting viewed by the world, then why not?&lt;br /&gt;
*** Should this be an assessed activity? If it&#039;s really replacing Journal, then almost certainly... Could use a similar system to Forums.&lt;br /&gt;
** Blog posts which come out of this activity should be part of the user&#039;s wider personal blog&lt;br /&gt;
** If comments do happen on blogs, then each course-centred blog should be able to accept comments just from teachers, from peers, or from no-one&lt;br /&gt;
** Commenting parameters. A &#039;Blogging Activity&#039; could ask for 1 posting and 3 comments on other blogs per student. When making a comment on another student&#039;s blog entry the student would have to choose a specific comment tag generated from this assignment from a pulldown list. Then an RSS feed for this tag could be aggregated into a single box for quick checking by the Teacher.&lt;br /&gt;
&lt;br /&gt;
=== Post-forum binding or comments allowed. We want feedback on blog posts. Its a must! ===&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Blog]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Wiki_2.0&amp;diff=17904</id>
		<title>Wiki 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Wiki_2.0&amp;diff=17904"/>
		<updated>2006-11-10T15:12:54Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Table of Versions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Moodle wiki(s) enables participants to work together on web pages to add, expand and change the content.  This page can serve to provide information about different Wikis that may be used with Moodle.  &lt;br /&gt;
&lt;br /&gt;
= Wiki Standard =&lt;br /&gt;
Link to the [[Wiki]] MoodleDoc page&lt;br /&gt;
This is the standard Wiki which is part of 1.6 .  It was developed from a version of Erfurt wiki. &lt;br /&gt;
See [http://moodle.org/help.php?module=wiki&amp;amp;file=howtowiki.html &amp;quot;How to wiki&amp;quot; page for more information].&lt;br /&gt;
&lt;br /&gt;
Built by Mike Churchward &amp;amp; Michael Schneider&lt;br /&gt;
= Dfwiki =&lt;br /&gt;
This is an addin wiki for Moodle.&lt;br /&gt;
[[Dfwiki]] is the MoodleDoc page.&lt;br /&gt;
&#039;&#039;&#039;DFWiki&#039;&#039;&#039; is an alternative [[wiki]] module to the current (1.5.3) Moodle [[Wiki module]].&lt;br /&gt;
&lt;br /&gt;
Dfwiki for Moodle 1.5.3 can be found [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=15 in dfwiki home page], and in the Moodle [[CVS]]. The [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=15 dfwiki english home page is here].&lt;br /&gt;
&lt;br /&gt;
Team leader is Marc Alier (Ludo).&lt;br /&gt;
&lt;br /&gt;
= Erfurt wiki =&lt;br /&gt;
Named for the developer&#039;s hometown in Germany, it was the basis for the standard wiki included with Moodle.&lt;br /&gt;
&lt;br /&gt;
= New wiki =&lt;br /&gt;
Works for 1.6.x. Adpation for 1.7 in progress November 2006. We ([[Dfwikiteam]])hope will be on 1.8&lt;br /&gt;
Team leader Marc Alier (ludo) &lt;br /&gt;
==Tiddlywiki integration==&lt;br /&gt;
New wiki can interoperate with the Ajax based portable tidlywiki [http://tiddlywiki.com].&lt;br /&gt;
See [[Tiddlywiki integration]]&lt;br /&gt;
&lt;br /&gt;
= MediaWiki =&lt;br /&gt;
This is the &amp;quot;big&amp;quot; wiki.  Will Taylor says &amp;quot;I have MediaWiki integrated now with Moodle versions 1.5.3 and 1.6, very easy to set up.  Users need to log in separately to MediaWiki to edit, but they are authenticated off the Moodle database, so use the same username &amp;amp; password without needing to create a separate account on MediaWiki.  Using the MediaWiki permissions system, I have editing privileges reserved for registered, logged-in users, and read privileges open to the world - but you could configure this in many ways if you wish.  Check out the various projects created in MediaWiki (WikiPedia, Wiktionary, &amp;amp;c.) to see the potential of this platform.&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
MediaWiki should be used as a &#039;&#039;&#039;site-specific&#039;&#039;&#039; wiki. The standard Moodle wiki, or Dfwiki should be used as course-specific wiki. &lt;br /&gt;
= Table of Versions =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing =&amp;quot;0&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Wikis in Moodle&#039;&#039;&#039;&lt;br /&gt;
! -Version Name-  &lt;br /&gt;
! Wiki version&lt;br /&gt;
! Moodle ver&lt;br /&gt;
! Status&lt;br /&gt;
! Download Place&lt;br /&gt;
! Docs&lt;br /&gt;
! Discussion Place&lt;br /&gt;
! Feature1&lt;br /&gt;
|-----&lt;br /&gt;
| Std Wiki&lt;br /&gt;
| &lt;br /&gt;
| all&lt;br /&gt;
|&lt;br /&gt;
|[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=273 Modules]&lt;br /&gt;
| [[Wiki]]&lt;br /&gt;
| [http://moodle.org/mod/forum/view.php?f=366 Wiki forum]&lt;br /&gt;
|&lt;br /&gt;
|-----&lt;br /&gt;
| Dfwiki&lt;br /&gt;
|&lt;br /&gt;
| 1.5.3&lt;br /&gt;
|&lt;br /&gt;
|[[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=115 CVS Page]]&lt;br /&gt;
| [[Dfwiki]]&lt;br /&gt;
|[http://moodle.org/mod/forum/view.php?f=366 Wiki forum]&lt;br /&gt;
|&lt;br /&gt;
|-----&lt;br /&gt;
| Erfurt Wiki&lt;br /&gt;
| &lt;br /&gt;
| 1.6&lt;br /&gt;
|&lt;br /&gt;
|[http://erfurtwiki.sourceforge.net/ Sourceforge]&lt;br /&gt;
| [http://erfurtwiki.sourceforge.net/README readme]&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-----&lt;br /&gt;
| New wiki&lt;br /&gt;
| &lt;br /&gt;
|1.6&lt;br /&gt;
|Beta&lt;br /&gt;
|&lt;br /&gt;
|[http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=15 DFwiki home]&lt;br /&gt;
|[http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=15 DFwiki home]&lt;br /&gt;
|&lt;br /&gt;
|-----&lt;br /&gt;
| MediaWiki&lt;br /&gt;
| &lt;br /&gt;
|NA&lt;br /&gt;
|&lt;br /&gt;
|[http://www.mediawiki.org/wiki/MediaWiki MediaWiki Home]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Dfwiki]]&lt;br /&gt;
* [[Wiki requirements|Specific wiki requirements]]&lt;br /&gt;
* [[dfwiki requests]]&lt;br /&gt;
* [[Wiki comments |Wiki development comments]]&lt;br /&gt;
*[[wikindx]] for developers&lt;br /&gt;
&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?f=366 Wiki module forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Wiki]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Moodle_in_education&amp;diff=17844</id>
		<title>Moodle in education</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Moodle_in_education&amp;diff=17844"/>
		<updated>2006-11-07T22:57:49Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Editing course section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Getting started==&lt;br /&gt;
If you are a new user and would like a list of all teacher documentation articles, please see [[:Category:Teacher]].&lt;br /&gt;
&lt;br /&gt;
We are assuming that your site administrator has set up Moodle, you are a user with teacher privileges and the administrator has assigned you to a new, blank course. Don&#039;t forget, [http://demo.moodle.org/ demo.moodle.org] will let you play an hour at a time for free.&lt;br /&gt;
&lt;br /&gt;
You will need to be  [[Log in | logged into]] the course as a user who has been assigned [[Teacher|a role as a teacher]] (with editing rights) on that course to use most of the features below. We have some tips if you are having [[Can not log in | trouble logging in]].&lt;br /&gt;
&lt;br /&gt;
Now onto the real details. You will find the [[Course homepage|course homepage]] is broken down into [[Course sections]]. A course is created by [[Adding resources and activities|adding resources and activities]]. When writing text in Moodle you have a range of [[Formatting options]] including using [[HTML editor|HTML in Moodle]]. There are different ways to enrol [[Students]] and assign them to one or more [[Groups]] in a course.&lt;br /&gt;
&lt;br /&gt;
The example below shows a new course set up with topic sections, edit is on.  There are a few of Moodle&#039;s many [[Blocks|blocks]] on the right and left sides of the topics, such as &amp;quot;Latest News&amp;quot; or &amp;quot;Administration&amp;quot;. The teacher is all ready to add resources and activities or a few new blocks to their brand new course.&lt;br /&gt;
[[Image:Course edit on new 2.jpg|thumb|center|500px|Getting started image - a new course]]&lt;br /&gt;
&lt;br /&gt;
==Editing course section==&lt;br /&gt;
[[Image:Turn_edit_on_Student_on_buttons.JPG]]&amp;lt;br&amp;gt;&lt;br /&gt;
To add or alter activities or resources a teacher will need to [[Turn editing on|turn editing on]] and off with a button on the course homepage. The student view button allows the teacher to get a general idea of what students will see. There is also an &amp;quot;editing on&amp;quot; link in the administration block.  These buttons and links toggle between on and off.  Here are some common editing icons, for more details about them [[Adding/editing_a_course#Editing_a_course|go to adding/editing a course]]. &lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;30&amp;quot;|Icon&lt;br /&gt;
!width=&amp;quot;100&amp;quot;|Effect&lt;br /&gt;
!width=&amp;quot;30&amp;quot;|Icon&lt;br /&gt;
!width=&amp;quot;100&amp;quot;|Effect&lt;br /&gt;
!width=&amp;quot;30&amp;quot;|Icon&lt;br /&gt;
!width=&amp;quot;100&amp;quot;|Effect&lt;br /&gt;
!width=&amp;quot;30&amp;quot;|Icon&lt;br /&gt;
!width=&amp;quot;100&amp;quot;|Effect&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Edit.gif]]|| Edit text ||[[Image:Open.gif]] || Open ||[[Image:Delete.gif]] || Delete  ||[[Image:Move.gif]] ||Move&lt;br /&gt;
|-&lt;br /&gt;
||[[Image:All.gif]] ||See all topics||[[Image:Closed.gif]] ||Close||[[Image:Right.gif]] || Indent  ||[[Image:Movehere.gif]] || Move here &lt;br /&gt;
|-&lt;br /&gt;
||[[Image:One.gif]] || See one topic||[[Image:Help.gif]] ||Help ||  ||   ||[[Image:Marker.gif]] ||Make Current&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Activity modules==&lt;br /&gt;
&lt;br /&gt;
[[Image:Activity_dropdown.JPG|frame|right|Add an activity drop-down menu]]  &lt;br /&gt;
There are a number of robust interactive learning [[Modules (teacher)|activity modules]] that you may [[Adding_resources_and_activities | add to your course]].&lt;br /&gt;
&lt;br /&gt;
Communication and collaboration may take place using [[Chats]] and [[Forums]] for conversational activities and [[Choices]] to gain group feedback. Adding [[Wikis]] to your courses is an excellent way to allow students to work together on a project.&lt;br /&gt;
&lt;br /&gt;
Work can be submitted by students and marked by teachers using [[Assignments]] or [[Workshops]]. The [[Quizzes]] offer several options for automatic scoring. You can even integrate your Hot Potato quizzes by adding a [[Hotpot]] activity.&lt;br /&gt;
&lt;br /&gt;
[[Lessons]] and [[SCORM]] activities deliever content and offer ways of individualizing your presentation based upon a student&#039;s choices. Key words can be added to [[Glossaries]] by yourself or, if you allow it, your students.&lt;br /&gt;
&lt;br /&gt;
[[Surveys]] and [[Database module|Databases]] are also very powerful additions to any course.&lt;br /&gt;
&lt;br /&gt;
If all of that isn&#039;t enough for you then you can also [[Non-standard modules|add other modules]] that are not part of the official Moodle release!&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
[[Image:Resource_pulldown_menu.JPG|frame|left|Add a resource drop-down menu]]  &lt;br /&gt;
&lt;br /&gt;
Moodle supports a range of different [[Resources|resource types]] that allow you to include almost any kind of digital content into your courses. These can be added by using the [[Adding_resources_and_activities | add a resource]] dropdown box when editing is turned on. &lt;br /&gt;
&lt;br /&gt;
A [[Text page]] is a simple page written using plain text. Text pages aren&#039;t pretty, but they&#039;re a good place to put some information or instructions. If you are after more options for your new page then you should be thinking about adding a [[Web page]] and making use of Moodle&#039;s WYSIWYG editor.&lt;br /&gt;
&lt;br /&gt;
Of course the resource may already exist in electronic form so you may want to [[File or website link|link to an uploaded file or external website]] or simply display the complete contents of a [[Directory|directory]] in your course files and let your users pick the file themselves. If you have an [[IMS content package]] then this can be easily added to your course.&lt;br /&gt;
&lt;br /&gt;
Use a [[Label|label]] to embed instructions or information in the course section.&lt;br /&gt;
&lt;br /&gt;
==Blocks==&lt;br /&gt;
[[Image:Block_add_dropdown_list2.JPG |thumb|150px|right|Add Block drop-down menu]] &lt;br /&gt;
Each course homepage generally contains [[Blocks_%28teacher%29|blocks]] on the left and right with the centre column containing the course content. Blocks may be added, hidden, deleted, and moved up, down and left/right when editing is turned on. Examples of blocks can be see in the Getting Starting image above. &amp;quot;Latest News&amp;quot;, &amp;quot;Blogs&amp;quot;, &amp;quot;Upcoming Events&amp;quot;, and &amp;quot;Recent Activity&amp;quot; are a few examples.&lt;br /&gt;
  &lt;br /&gt;
A wide range of [[Blocks_%28teacher%29#Block_types|over 16 differnt block types]] can provide additional information or functionality to the learner by the teacher. The standard blocks that come with Moodle are shown on the right.  There are also many [[Non-standard blocks]] developed by Moodlers that an administrator can add to this list. &lt;br /&gt;
&lt;br /&gt;
A teacher with editing rights will also have a course [[Administration_block|administration block]].&lt;br /&gt;
&lt;br /&gt;
==General advice==&lt;br /&gt;
&lt;br /&gt;
* Subscribe yourself to all of the [[forum]]s in your course so that you can keep in touch with your class activity. &lt;br /&gt;
* Encourage all of the students to fill out their [[Edit profile|user profile]] (including photos) and read them all - this will help provide some context to their later writings and help you to respond in ways that are tailored to their own needs. &lt;br /&gt;
* Keep notes to yourself in the private &amp;quot;Teacher&#039;s Forum&amp;quot; (under Administration). This is especially useful when team teaching. &lt;br /&gt;
* Use the [[Logs]] link (under Administration) to get access to complete, raw logs. In there you&#039;ll see a link to a popup window that updates every sixty seconds and shows the last hour of activity. This is useful to keep open on your desktop all day so you can feel in touch with what&#039;s going on in the course. &lt;br /&gt;
* Use the [[Recent_activity|Activity Reports]] (next to each name in the list of all people, or from any user profile page). These provide a great way to see what any particular person has been up to in the course.&lt;br /&gt;
* Respond quickly to students. Don&#039;t leave it for later - do it right away. Not only is it easy to become overwhelmed with the volume that can be generated, but it&#039;s a crucial part of building and maintaining a community feel in your course.&lt;br /&gt;
*Don&#039;t be afraid to experiment: feel free to poke around and change things. It&#039;s hard to break anything in a Moodle course, and even if you do it&#039;s usually easy to fix it. &lt;br /&gt;
* Use the [[Navigation bar|navigation bar]] at the top of each page - this should help remind you where you are and prevent getting lost&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[Blogs]] - blogs in Moodle&lt;br /&gt;
*[[Teaching with Moodle]] - inspiring links&lt;br /&gt;
*[[Teaching do&#039;s and don&#039;ts]] - hints&lt;br /&gt;
*[[Moodle manuals]] - a list of links to manuals and books&lt;br /&gt;
*[[Using Moodle book]] - a real book you can reprint!&lt;br /&gt;
*[[Teaching FAQ]] - common questions&lt;br /&gt;
*[http://moodle.tokem.fi/mod/book/view.php?id=5116&amp;amp;chapterid=256 Example of a course teaching checklist], &lt;br /&gt;
*One example of a site specific [[http://moodle.tokem.fi/mod/book/view.php?id=5116 Teacher&#039;s Moodle Manual]], done in Moodle with the book module&lt;br /&gt;
*[[Tips and tricks]]&lt;br /&gt;
*[[Student FAQ]] - students have questions about technology?&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[es:Documentación para Profesores]]&lt;br /&gt;
[[fr:Documentation enseignant]]&lt;br /&gt;
[[nl:Documentatie voor leraren]]&lt;br /&gt;
[[ru:Учителям]]&lt;br /&gt;
[[zh:教师文档]]&lt;br /&gt;
[[ja:教師ドキュメント]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Adding/editing_roles&amp;diff=17456</id>
		<title>Adding/editing roles</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/2x/ca/index.php?title=Adding/editing_roles&amp;diff=17456"/>
		<updated>2006-10-25T18:35:07Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Basic concept definations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.7}}Moodle 1.7 allows the administrator to add or edit existing roles available on the Moodle site. This is done through the Administration block&amp;gt;&amp;gt;User&amp;gt;&amp;gt;Permission&amp;gt;&amp;gt;Define roles menu area.  Remember that Moodle comes with 7 default roles and adding and editing roles is completely optional.&lt;br /&gt;
&lt;br /&gt;
==Define roles==&lt;br /&gt;
There are 3 tabs on the define role page.&lt;br /&gt;
[[Image:Roles_Define_tab.JPG|center]] &lt;br /&gt;
&lt;br /&gt;
===Manage roles===&lt;br /&gt;
The place to add and define permissions for a new role, or edit name and/or permissions associated with existing Moodle roles.&lt;br /&gt;
&lt;br /&gt;
===Allow role assignments===&lt;br /&gt;
A matrix which determines which role can assign users to other roles.&lt;br /&gt;
&lt;br /&gt;
===Allow role overrides===&lt;br /&gt;
A matric which determines which role can override a previously assigned role. The default is that only an administrator can override any role assigned by another role.&lt;br /&gt;
&lt;br /&gt;
==Permissions==&lt;br /&gt;
The permissions matrix allows a very granular approach to assigning rights to a role (a class of users).  Assigning or editing permissions should be done with great care.  A change can produce a profound unwanted effect, or an annoying effect that will be hard to understand the cause.&lt;br /&gt;
&lt;br /&gt;
There are over 150 lines of capabilities where any of 4 different permissions can be assigned.  The capabilities are grouped in 21 catagories.  We strongly recommend not to change the LEGACY roles. Here is the top of the list.&lt;br /&gt;
&lt;br /&gt;
[[Image:Roles_Define_Permissions_crop.JPG|center]]&lt;br /&gt;
&lt;br /&gt;
===Permission terms===&lt;br /&gt;
From lowest to highest, from general to specific.&lt;br /&gt;
&lt;br /&gt;
*Inherit - pass along from before [lowest level, always loses]&lt;br /&gt;
*Allow - let happen or permit [same level as prevent]&lt;br /&gt;
*Prevent - stop [same level as allow]&lt;br /&gt;
*Prohibit - forbid {highest level, always wins]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Permission examples===&lt;br /&gt;
&#039;&#039;&#039;Inherit&#039;&#039;&#039;: if no permission is defined, then the capability permission is inherited from a context that is more general than the current context. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Allow and prevent&#039;&#039;&#039; 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;
&#039;&#039;&#039;Prohibit&#039;&#039;&#039;: If we set prohibit on a capability, it means that the capability cannot be overridden. Prohibit always wins and creates a permenant stop. &lt;br /&gt;
&lt;br /&gt;
Since the capabilities in each role could be different and participants can be assigned different roles,  there could be a conflict in capabilities. The hierarchy of permissions  resolves this by saying that the capability defined for a more specific context will win, unless an prohibit is encountered in a less specific context. &lt;br /&gt;
&lt;br /&gt;
Example 1. Mark has a student role in Course One, which allows  all students to write into the wikis &amp;quot;Everyone&amp;quot; and &amp;quot;Homework&amp;quot;.  But Mark also got assigned a Visitor role at a module context level (for the wiki &amp;quot;Honors&amp;quot;) and Visitors are prevented writing in the Honors wiki.  Thus Mark can write into the &amp;quot;Everyone&amp;quot; and &amp;quot;Homework&amp;quot; wikis but not in &amp;quot;Honors&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example 2.Jeff has been assigned to a &amp;quot;naughty student&amp;quot; role that prohibits him from postings in any forums for the whole site. However his teacher assigned him a &amp;quot;facilitator&amp;quot; role in &amp;quot;Science forum&amp;quot; in the course Science and Math 101. Since a higher context prohibit permission always wins, Jeff is unable to post in &amp;quot;Science forum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Examples of roles==&lt;br /&gt;
Why would a site want different roles?  Consider&lt;br /&gt;
{|  border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
||*Site Designers||*Educational Authority Adviser||*Educational Inspector||&lt;br /&gt;
|-&lt;br /&gt;
||*Second Marker / Moderator||*Peer observer of teaching||*External Examiner&lt;br /&gt;
|-&lt;br /&gt;
||*Parent||*Manager||*Weekly Seminar Leader&lt;br /&gt;
|-&lt;br /&gt;
||*Mentor/Mentee||*Community-Designed Rating Criteria||*Visitor&lt;br /&gt;
|-&lt;br /&gt;
||*Guest Speaker||*Former Student||*Alumnus&lt;br /&gt;
|-&lt;br /&gt;
||*Librarian||*Teacher||*Community Education Tutors/Trainers&lt;br /&gt;
|-&lt;br /&gt;
||*Secretary/Student Worker||*Teaching Assistant||*Student - FERPA rights&lt;br /&gt;
|-&lt;br /&gt;
||*Help Desk|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Basic concept definitions==&lt;br /&gt;
&lt;br /&gt;
*A &#039;&#039;&#039;role&#039;&#039;&#039; is an identifier of the user&#039;s status in some context. For example, teacher, student and fourm moderator are examples of roles.&lt;br /&gt;
*A &#039;&#039;&#039;capability&#039;&#039;&#039; is a description of some particular Moodle feature. Capabilities are associated with roles. For example, being able to reply to a forum post is a capability.&lt;br /&gt;
*A &#039;&#039;&#039;permission&#039;&#039;&#039; is some value that is assigned for a capability for a particular role. For example, using the prevent permission to limit all students from posting to any forum.&lt;br /&gt;
*A &#039;&#039;&#039;context&#039;&#039;&#039; is a &amp;quot;space&amp;quot; in the Moodle, such as courses, activity modules, blocks, forums etc.&lt;br /&gt;
*A &#039;&#039;&#039;hierarchy of permissions&#039;&#039;&#039; determines which permission wins or is going to be in effect if there is an apparent conflict.   For example, the site allow all students the permission to  to post in forums, but a teacher might prevent that right in a particular course.  The hieracary of permissions would allow a student to post in one course but not in another course.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
Assign roles&lt;br /&gt;
User Policies&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=15804</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=15804"/>
		<updated>2006-09-12T22:26:33Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* The new roles and capability system */&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&lt;br /&gt;
#CONTEXT_PERSONAL&lt;br /&gt;
#CONTEXT_USERID&lt;br /&gt;
#CONTEXT_COURSECAT&lt;br /&gt;
#CONTEXT_COURSE&lt;br /&gt;
#CONTEXT_GROUP&lt;br /&gt;
#CONTEXT_MODULE&lt;br /&gt;
#CONTEXT_BLOCK&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not clear to me how CONTEXT_PERSONAL differs from CONTEXT_USERID. Under what circumstances would these be different?&lt;br /&gt;
::--[[User:Mark Pearson 2|Mark Pearson 2]] 17:26, 12 September 2006 (CDT)&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;
::Similarly, what is the distinction between CAP_PREVENT and CAP_PROHIBIT? Surely the semantic meaning of these words indicates that the functions are synonymous?&lt;br /&gt;
::--[[User:Mark Pearson 2|Mark Pearson 2]] 17:26, 12 September 2006 (CDT)&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 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: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: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). This ties in with the &amp;quot;visitor&amp;quot; scenario described below.&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/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:readentry - reads other people&#039;s entry&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: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;
#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;
Has this one been missed?&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 inpectors, 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;
&amp;lt;li&amp;gt;1. Give a student the role of forum-moderator with edit and chunk-rights&lt;br /&gt;
&amp;lt;li&amp;gt;2. Give students different roles &amp;amp; rights in a Webquest design (and change these roles next week&lt;br /&gt;
&amp;lt;li&amp;gt;3. Give students different resources, depending of their roles in a rolegame/simulation&lt;br /&gt;
&amp;lt;li&amp;gt;4. Give a student the rights to create the section content of next week (and only that week..)&lt;br /&gt;
&amp;lt;li&amp;gt;5. ..&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;br /&gt;
&lt;br /&gt;
[[ru:Роли]]&lt;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=9848</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=9848"/>
		<updated>2006-05-17T22:20:41Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and capabilities&#039;&#039;&#039; are planned to be included in Moodle 1.7. For now, we have some basic ideas of how to implement such a structure in Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note that none of the following is finalised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
By roles, we mean an identifier of the user&#039;s status, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a permission to access some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;forum_canreadpost&#039;&#039; is a capability.&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 performed 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;
The new system will allow authorized users to define an arbitrary number of roles. Each role can have a customizable set of capabilities in every context. A context can be the whole Moodle site, a course, or a module instance, e.g. quiz 5 in &#039;Introduction to Photography&#039;. An authorized user will be able to assign an arbitrary number of roles to each user. Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by giving roles different &#039;priorities&#039;. For example, to prevent a naughty student from posting, one could assign him a &#039;naughty student&#039; role that does not allow him to post. This role should have a priority higher than that of a normal &#039;student&#039; role. &lt;br /&gt;
&lt;br /&gt;
To facilitate exceptional cases in roles and capabilities, we can use exception rules. For example, we can specify a rule saying that all students are able to mark/read other students&#039; assignment in this particular course. Note that such rules need to have a priority as well. The capability of a user, in any context is then resolved by finding the highest priority role/rule.&lt;br /&gt;
&lt;br /&gt;
==The plan==&lt;br /&gt;
&lt;br /&gt;
There are a few major things that need to be done. Here&#039;s a list (in no particular order):&lt;br /&gt;
&lt;br /&gt;
#Identify permissions required for site/course/each module.&lt;br /&gt;
#Define the database structure for storing roles and capabilities.&lt;br /&gt;
#Recode the whole of Moodle, including all modules to support the new structure. Instead of using &amp;lt;code&amp;gt;isteacher()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;isstudent()&amp;lt;/code&amp;gt; we should be using &amp;lt;code&amp;gt;has_capabity($capability, $instanceid)&amp;lt;/code&amp;gt; etc. A new API for handling roles and capabilities will be implemented (accesslib.php).&lt;br /&gt;
#Add storage of capabilities for each module. Can be done either in a file, e.g. db/capability.xml, or as a sql file that gets installed to a central db whenever this module is installed. Either way, what do we do when we need to upgrade these capabilities? Some capabilities might needs refining/splitting later on. How do we control the &#039;version&#039; of a capability?&lt;br /&gt;
#Consider interface issues, especially how to manage conflicting role/exception rules.&lt;br /&gt;
#Upon logging in, we should use a cache to store capability, down to module level. How should that be structured?&lt;br /&gt;
#Consider the impact on backup/restore.&lt;br /&gt;
#Upgrade path for current users. The user information in table user_coursecreators, user_admins, user_teachers, and user_students will most likely be migrated to the new roles and capabilities tables. The users will most likely be assigned default roles that comes with default capabilities (e.g. teachers, admins, students, etc). The old tables themselves could possibly be dropped at the end of the upgrade.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This is a comprehensive list of capabilities, well, in the making. Please edit. Should we distinguish canedit and candelete?&lt;br /&gt;
&lt;br /&gt;
What about a canview capability? Like for choice, where a person is allowed to see the choice question but not participate in it? --[[User:N Hansen|N Hansen]] 19:29, 16 May 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Site-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#canreadblogs&lt;br /&gt;
#canpostblogs&lt;br /&gt;
#candeleteallblogs&lt;br /&gt;
#canbrowseuser&lt;br /&gt;
#canviewhiddenactivity&lt;br /&gt;
#cancreatecourse&lt;br /&gt;
#caneditownprofile&lt;br /&gt;
#caneditallprofiles&lt;br /&gt;
&lt;br /&gt;
===Course-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#canseecoursecontent&lt;br /&gt;
#caneditcourse&lt;br /&gt;
#cancreatebackups&lt;br /&gt;
#canrestorebackups&lt;br /&gt;
#cancreateblocks&lt;br /&gt;
#caneditblocks&lt;br /&gt;
#candeleteblocks&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##assignment_canadd&lt;br /&gt;
##assignment_canedit&lt;br /&gt;
##assignment_candelete&lt;br /&gt;
##assignment_cansubmit&lt;br /&gt;
##assignment_canmark&lt;br /&gt;
#Chat&lt;br /&gt;
##chat_canadd&lt;br /&gt;
##chat_canedit&lt;br /&gt;
##chat_candelete&lt;br /&gt;
##chat_canparticipate&lt;br /&gt;
#Choice&lt;br /&gt;
##choice_canadd&lt;br /&gt;
##choice_canedit&lt;br /&gt;
##choice_candelete&lt;br /&gt;
##choice_canparticipate&lt;br /&gt;
#Database&lt;br /&gt;
##database_canadd&lt;br /&gt;
##database_canedit&lt;br /&gt;
##databaes_candelete&lt;br /&gt;
##database_canaddentry&lt;br /&gt;
##database_canaddtemplates&lt;br /&gt;
##database_canedittemplates&lt;br /&gt;
##database_candeleteownentry&lt;br /&gt;
##database_candeleteallentry&lt;br /&gt;
#Exercise&lt;br /&gt;
##exercise_canadd&lt;br /&gt;
##exercise_canedit&lt;br /&gt;
##exercise_candelete&lt;br /&gt;
#Forum&lt;br /&gt;
##forum_canadd&lt;br /&gt;
##forum_canedit&lt;br /&gt;
##forum_candelete&lt;br /&gt;
##forum_canreadpost&lt;br /&gt;
##forum_canstartnewdiscussion&lt;br /&gt;
##forum_canreply&lt;br /&gt;
##forum_caneditallpost&lt;br /&gt;
##forum_candeleteallpost&lt;br /&gt;
#Glossary&lt;br /&gt;
##glossary_canadd&lt;br /&gt;
##glossary_canedit&lt;br /&gt;
##glossary_candelete&lt;br /&gt;
##glossary_canaddnewcat&lt;br /&gt;
##glossary_canadditem&lt;br /&gt;
#Hotpot&lt;br /&gt;
##hotpot_candd&lt;br /&gt;
##hotpot_canedit&lt;br /&gt;
##hotpot_candelete&lt;br /&gt;
#Label&lt;br /&gt;
##label_canadd&lt;br /&gt;
##label_canedit&lt;br /&gt;
##label_candelete&lt;br /&gt;
#Lams&lt;br /&gt;
##lams_canadd&lt;br /&gt;
##lams_canedit&lt;br /&gt;
##lams_candelete&lt;br /&gt;
#Lesson&lt;br /&gt;
##lesson_canadd&lt;br /&gt;
##lesson_canedit&lt;br /&gt;
##lesson_candelete&lt;br /&gt;
##lesson_canparticipate&lt;br /&gt;
#Quiz&lt;br /&gt;
##quiz_canadd&lt;br /&gt;
##quiz_canedit&lt;br /&gt;
##quiz_candelete&lt;br /&gt;
##quiz_cantake&lt;br /&gt;
#Resource&lt;br /&gt;
##resource_canadd&lt;br /&gt;
##resource_canedit&lt;br /&gt;
##resource_candelete&lt;br /&gt;
#Scorm&lt;br /&gt;
##scorm_canadd&lt;br /&gt;
##scorm_canedit&lt;br /&gt;
##socrm_candelete&lt;br /&gt;
#Survey&lt;br /&gt;
##survey_canadd&lt;br /&gt;
##survey_canedit&lt;br /&gt;
##survey_candelete&lt;br /&gt;
#Wiki&lt;br /&gt;
##wiki_canadd&lt;br /&gt;
##wiki_canedit&lt;br /&gt;
##wiki_candelete&lt;br /&gt;
##wiki_canstartnewwiki&lt;br /&gt;
##wiki_canparticipate&lt;br /&gt;
#Workshop&lt;br /&gt;
##workshop_canadd&lt;br /&gt;
##workshop_canedit&lt;br /&gt;
##workshop_candelete&lt;br /&gt;
##workshop_canparticipate&lt;br /&gt;
&lt;br /&gt;
==Scenarios==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support:&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&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;
===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;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at 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;
===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;
===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;
==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;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/2x/ca/index.php?title=Broken/Roles&amp;diff=9846</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=9846"/>
		<updated>2006-05-17T22:05:25Z</updated>

		<summary type="html">&lt;p&gt;Markpearson: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Roles and capabilities&#039;&#039;&#039; are planned to be included in Moodle 1.7. For now, we have some basic ideas of how to implement such a structure in Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note that none of the following is finalised.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Definitions==&lt;br /&gt;
&lt;br /&gt;
By roles, we mean an identifier of the user&#039;s status, for example, teacher, student and forum moderator are examples of roles.&lt;br /&gt;
&lt;br /&gt;
A capability is a permission to access some particular Moodle feature. Capabilities are associated with roles. For example, &#039;&#039;forum_canreadpost&#039;&#039; is a capability.&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 performed 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;
The new system will allow authorized users to define an arbitrary number of roles. Each role can have a customizable set of capabilities in every context. A context can be the whole Moodle site, a course, or a module instance, e.g. quiz 5 in &#039;Introduction to Photography&#039;. An authorized user will be able to assign an arbitrary number of roles to each user. Since the capabilities in each role could be different, there could be conflict in capabilities. This is resolved by giving roles different &#039;priorities&#039;. For example, to prevent a naughty student from posting, one could assign him a &#039;naughty student&#039; role that does not allow him to post. This role should have a priority higher than that of a normal &#039;student&#039; role. &lt;br /&gt;
&lt;br /&gt;
To facilitate exceptional cases in roles and capabilities, we can use exception rules. For example, we can specify a rule saying that all students are able to mark/read other students&#039; assignment in this particular course. Note that such rules need to have a priority as well. The capability of a user, in any context is then resolved by finding the highest priority role/rule.&lt;br /&gt;
&lt;br /&gt;
==The plan==&lt;br /&gt;
&lt;br /&gt;
There are a few major things that need to be done. Here&#039;s a list (in no particular order):&lt;br /&gt;
&lt;br /&gt;
#Identify permissions required for site/course/each module.&lt;br /&gt;
#Define the database structure for storing roles and capabilities.&lt;br /&gt;
#Recode the whole of Moodle, including all modules to support the new structure. Instead of using &amp;lt;code&amp;gt;isteacher()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;isstudent()&amp;lt;/code&amp;gt; we should be using &amp;lt;code&amp;gt;has_capabity($capability, $instanceid)&amp;lt;/code&amp;gt; etc. A new API for handling roles and capabilities will be implemented (accesslib.php).&lt;br /&gt;
#Add storage of capabilities for each module. Can be done either in a file, e.g. db/capability.xml, or as a sql file that gets installed to a central db whenever this module is installed. Either way, what do we do when we need to upgrade these capabilities? Some capabilities might needs refining/splitting later on. How do we control the &#039;version&#039; of a capability?&lt;br /&gt;
#Consider interface issues, especially how to manage conflicting role/exception rules.&lt;br /&gt;
#Upon logging in, we should use a cache to store capability, down to module level. How should that be structured?&lt;br /&gt;
#Consider the impact on backup/restore.&lt;br /&gt;
#Upgrade path for current users. The user information in table user_coursecreators, user_admins, user_teachers, and user_students will most likely be migrated to the new roles and capabilities tables. The users will most likely be assigned default roles that comes with default capabilities (e.g. teachers, admins, students, etc). The old tables themselves could possibly be dropped at the end of the upgrade.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
This is a comprehensive list of capabilities, well, in the making. Please edit. Should we distinguish canedit and candelete?&lt;br /&gt;
&lt;br /&gt;
What about a canview capability? Like for choice, where a person is allowed to see the choice question but not participate in it? --[[User:N Hansen|N Hansen]] 19:29, 16 May 2006 (WST)&lt;br /&gt;
&lt;br /&gt;
===Site-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#canreadblogs&lt;br /&gt;
#canpostblogs&lt;br /&gt;
#candeleteallblogs&lt;br /&gt;
#canbrowseuser&lt;br /&gt;
#canviewhiddenactivity&lt;br /&gt;
#cancreatecourse&lt;br /&gt;
#caneditownprofile&lt;br /&gt;
#caneditallprofiles&lt;br /&gt;
&lt;br /&gt;
===Course-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#canseecoursecontent&lt;br /&gt;
#caneditcourse&lt;br /&gt;
#cancreatebackups&lt;br /&gt;
#canrestorebackups&lt;br /&gt;
#cancreateblocks&lt;br /&gt;
#caneditblocks&lt;br /&gt;
#candeleteblocks&lt;br /&gt;
&lt;br /&gt;
===Module-level Capabilities===&lt;br /&gt;
&lt;br /&gt;
#Assignment&lt;br /&gt;
##assignment_canadd&lt;br /&gt;
##assignment_canedit&lt;br /&gt;
##assignment_candelete&lt;br /&gt;
##assignment_cansubmit&lt;br /&gt;
##assignment_canmark&lt;br /&gt;
#Chat&lt;br /&gt;
##chat_canadd&lt;br /&gt;
##chat_canedit&lt;br /&gt;
##chat_candelete&lt;br /&gt;
##chat_canparticipate&lt;br /&gt;
#Choice&lt;br /&gt;
##choice_canadd&lt;br /&gt;
##choice_canedit&lt;br /&gt;
##choice_candelete&lt;br /&gt;
##choice_canparticipate&lt;br /&gt;
#Database&lt;br /&gt;
##database_canadd&lt;br /&gt;
##database_canedit&lt;br /&gt;
##databaes_candelete&lt;br /&gt;
##database_canaddentry&lt;br /&gt;
##database_canaddtemplates&lt;br /&gt;
##database_canedittemplates&lt;br /&gt;
##database_candeleteownentry&lt;br /&gt;
##database_candeleteallentry&lt;br /&gt;
#Exercise&lt;br /&gt;
##exercise_canadd&lt;br /&gt;
##exercise_canedit&lt;br /&gt;
##exercise_candelete&lt;br /&gt;
#Forum&lt;br /&gt;
##forum_canadd&lt;br /&gt;
##forum_canedit&lt;br /&gt;
##forum_candelete&lt;br /&gt;
##forum_canreadpost&lt;br /&gt;
##forum_canstartnewdiscussion&lt;br /&gt;
##forum_canreply&lt;br /&gt;
##forum_caneditallpost&lt;br /&gt;
##forum_candeleteallpost&lt;br /&gt;
#Glossary&lt;br /&gt;
##glossary_canadd&lt;br /&gt;
##glossary_canedit&lt;br /&gt;
##glossary_candelete&lt;br /&gt;
##glossary_canaddnewcat&lt;br /&gt;
##glossary_canadditem&lt;br /&gt;
#Hotpot&lt;br /&gt;
##hotpot_candd&lt;br /&gt;
##hotpot_canedit&lt;br /&gt;
##hotpot_candelete&lt;br /&gt;
#Label&lt;br /&gt;
##label_canadd&lt;br /&gt;
##label_canedit&lt;br /&gt;
##label_candelete&lt;br /&gt;
#Lams&lt;br /&gt;
##lams_canadd&lt;br /&gt;
##lams_canedit&lt;br /&gt;
##lams_candelete&lt;br /&gt;
#Lesson&lt;br /&gt;
##lesson_canadd&lt;br /&gt;
##lesson_canedit&lt;br /&gt;
##lesson_candelete&lt;br /&gt;
##lesson_canparticipate&lt;br /&gt;
#Quiz&lt;br /&gt;
##quiz_canadd&lt;br /&gt;
##quiz_canedit&lt;br /&gt;
##quiz_candelete&lt;br /&gt;
##quiz_cantake&lt;br /&gt;
#Resource&lt;br /&gt;
##resource_canadd&lt;br /&gt;
##resource_canedit&lt;br /&gt;
##resource_candelete&lt;br /&gt;
#Scorm&lt;br /&gt;
##scorm_canadd&lt;br /&gt;
##scorm_canedit&lt;br /&gt;
##socrm_candelete&lt;br /&gt;
#Survey&lt;br /&gt;
##survey_canadd&lt;br /&gt;
##survey_canedit&lt;br /&gt;
##survey_candelete&lt;br /&gt;
#Wiki&lt;br /&gt;
##wiki_canadd&lt;br /&gt;
##wiki_canedit&lt;br /&gt;
##wiki_candelete&lt;br /&gt;
##wiki_canstartnewwiki&lt;br /&gt;
##wiki_canparticipate&lt;br /&gt;
#Workshop&lt;br /&gt;
##workshop_canadd&lt;br /&gt;
##workshop_canedit&lt;br /&gt;
##workshop_candelete&lt;br /&gt;
##workshop_canparticipate&lt;br /&gt;
&lt;br /&gt;
==Scenarios==&lt;br /&gt;
&lt;br /&gt;
This section is for brainstorming some example roles that we would like to support:&lt;br /&gt;
&lt;br /&gt;
===Parent===&lt;br /&gt;
&#039;&#039;Please add text here...&#039;&#039;&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;
===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;
===Librarian===&lt;br /&gt;
&lt;br /&gt;
Reference Librarians have an active role in most of the courses taught at 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;
==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;/div&gt;</summary>
		<author><name>Markpearson</name></author>
	</entry>
</feed>