<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sunner</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sunner"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/Special:Contributions/Sunner"/>
	<updated>2026-04-07T20:06:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installations_10000_plus&amp;diff=95512</id>
		<title>Installations 10000 plus</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installations_10000_plus&amp;diff=95512"/>
		<updated>2012-01-27T04:10:18Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* China */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Large Installations}}&lt;br /&gt;
&lt;br /&gt;
Please add your school info here, if you have a Moodle installation catering (or expecting to cater) for 10,000 or more users.&lt;br /&gt;
==Austria==&lt;br /&gt;
* [http://elearning.tuwien.ac.at/ Moodle (TUWEL)] user statistics September 25th 2009 - Vienna University of Technology (TU Vienna)  &lt;br /&gt;
 &lt;br /&gt;
 - 19.250 users (students &amp;amp; teachers)&lt;br /&gt;
 - 13.400 students enrolled in courses&lt;br /&gt;
 - 1.030 teachers enrolled in courses&lt;br /&gt;
 - 5000+ active users per day&lt;br /&gt;
 &lt;br /&gt;
Our mission is „technology for people“. Through our research we „develop scientific excellence“, through our teaching we „enhance comprehensive competence“.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.uni-graz.at/ moodle @ uni-graz ] Primary moodle server of the Karl Franzens University Graz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Brazil==&lt;br /&gt;
&lt;br /&gt;
* [http://www.escolatecnica.ufrgs.br Escola Técnica da Universidade Federal do Rio Grande do Sul] - Professional school in Brazil, with 1,200 students. Adopted Moodle in 2004 and has been using it since then.&lt;br /&gt;
&lt;br /&gt;
==Canada==&lt;br /&gt;
&lt;br /&gt;
* [http://www.athabascau.ca/ Athabasca University] - Canada&#039;s leading distance-education and online university: Canada&#039;s Open University, serving about 30,000 students per year. Athabasca has decided to adopt Moodle as a single platform instead of WebCT Vista (i.e. the top of the line version). You can read their [http://www.athabascau.ca/media/index.php?id=132 press release] for more info.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.mala.bc.ca/ Malaspina University-College] - Malaspina U-C is located on Vancouver Island in British Columbia, Canada. MUC was established in 1969, and has over 10,000 full-time Canadian students, plus 1,000 international students from more than 50 countries. MUC offers graduate and undergraduate degrees, diplomas and certificates, and a 5-level English Language program. MUC offers classroom-student support through Moodle, as well as a range of fully online courses through [http://pr.malaonline.ca/ Malaspina Continuing Education]. MUC switched from WebCT to Moodle in 2006.&lt;br /&gt;
&lt;br /&gt;
* [http://www.usherbrooke.ca/ Université de Sherbrooke] - L&#039;Université de Sherbrooke accueille plus de 37 000 étudiantes et étudiants, provenant de plus de 100 pays, dont quelque 9000 inscrits à l’Université du troisième âge. Plus de 85 % de la population étudiante de l’Université de Sherbrooke provient de l’extérieur de Sherbrooke. L’Université de Sherbrooke emploie 6700 personnes. Elle compte 10 % du corps professoral québécois.&lt;br /&gt;
&lt;br /&gt;
==China==&lt;br /&gt;
&lt;br /&gt;
* [http://english.bit.edu.cn/ Beijing Institute of Technology]&lt;br /&gt;
* [http://www.hit.edu.cn/ Harbin Institute of Technology]&lt;br /&gt;
** 5,000 different users connected every month&lt;br /&gt;
** 100 teachers actually involved&lt;br /&gt;
** integration with LDAP&lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
==Colombia==&lt;br /&gt;
* [http://elearn.poligran.edu.co Politécnico Grancolombiano] &lt;br /&gt;
** More than 12,000 users - Bogota Campus - 1380 courses - 462 teachers&lt;br /&gt;
** Nearly 7,000 users in virtual education all over the country - 265 courses - 122 teachers&lt;br /&gt;
** Moodle 1.9.5&lt;br /&gt;
&lt;br /&gt;
==Czech Republic==&lt;br /&gt;
&lt;br /&gt;
* [https://moodle.czu.cz Czech University of Life Sciences Prague] &lt;br /&gt;
** 35,590 users in 911 courses (14,665 active users in last 15 days) / 18th October 2010&lt;br /&gt;
** Moodle 1.9.5&lt;br /&gt;
** integration with LDAP and Oracle&lt;br /&gt;
** Administration: [http://www.oikt.czu.cz/?r=1686 E-learning Support Centre, Division of IT, CULS Prague]&lt;br /&gt;
&lt;br /&gt;
==France==&lt;br /&gt;
&lt;br /&gt;
* [http://cursus.uhb.fr/ Université de Rennes 2 - Haute Bretagne] - 20,000 to 30,000 users in 1400 courses&lt;br /&gt;
** 8,000 different users connected every month&lt;br /&gt;
** 300 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal) ; &lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
* [http://cours.univ-tlse1.fr/ Université Toulouse 1 Capitole] - 18,000 users in 800 courses, Moodle 1.9.11+&lt;br /&gt;
** 300 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal)&lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
==Germany==&lt;br /&gt;
&lt;br /&gt;
* [http://www.isis.tu-berlin.de/ Technische Universität Berlin] - 10,400 Users in 402 courses (updated: 07.June.2007)&lt;br /&gt;
** After a test period, the Information System for Instructors and Students (ISIS) was launched in september 2006. &lt;br /&gt;
&lt;br /&gt;
==India==&lt;br /&gt;
* [http://www.amieindia.net AMIE India] is a website for [http://www.amieindia.net AMIE] students currently (as of September 2007) having 239 courses, 11246 users.&lt;br /&gt;
&lt;br /&gt;
* [http://www.visveswaraya.org/ AMIE] a residential AMIE Institute in Kerala, India, listed in LIMCA Book of Records with 130 All India Ranks, is best ever for AMIE coaching &amp;amp; IIT &amp;amp; NIT higher studies.&lt;br /&gt;
&lt;br /&gt;
==Ireland==&lt;br /&gt;
&lt;br /&gt;
* [http://www.dcu.ie Dublin City University] 18,000 users in 3,600 courses.&lt;br /&gt;
&lt;br /&gt;
==Italy==&lt;br /&gt;
&lt;br /&gt;
* [http://www.aulaweb.unige.it/ AulaWeb - University of Genoa] AulaWeb is an university-wide installation of Moodle, organized in virtual instances, one for each laurea degree. In March 2007, it hosts more than 78 instances used by 10.500 students.&lt;br /&gt;
&lt;br /&gt;
==Jamaica==&lt;br /&gt;
*[http://ourvle.mona.uwi.edu The University of the West Indies] - 23,000+ users in 1600+ courses&lt;br /&gt;
&lt;br /&gt;
==New Zealand==&lt;br /&gt;
&lt;br /&gt;
*[http://campus.openpolytechnic.ac.nz/ The Open Polytechnic of New Zealand] - 35,000+ students, 6,500+ courses, single sign-on for library services using Ezy Proxy, single sign-on for webmail, using SquirrelMail, uses LDAP for interface with Sears Student Management System. Comments by [https://eduforge.org/wiki/wiki/nzvle/wiki?pagename=Comments%20by%20Ken%20Udas%2C%20Director%20of%20eLearning%20at%20the%20Open%20Polytechnic Ken Udas, Director of eLearning at the Open Polytechnic]&lt;br /&gt;
&lt;br /&gt;
==Palestine==&lt;br /&gt;
&lt;br /&gt;
*[http://eclass.alquds.edu Al-Quds University] - 12,000+ users in 900+ courses. Al-Quds University started using moodle in 2004.&lt;br /&gt;
&lt;br /&gt;
== Philippines ==&lt;br /&gt;
* [http://uvle.up.edu.ph University Virtual Learning Environment] (UVLe) of the University of the Philippines Diliman - a highly customized Moodle for about 20,000 students and faculty. Maintained by the [http://dilc.upd.edu.ph UP Diliman Interactive Learning Center].&lt;br /&gt;
&lt;br /&gt;
* [http://eclass.adzu.edu.ph Ateneo de Zamboanga University] - with 10,000+ faculty, staff and students (started using Moodle since 2002)&lt;br /&gt;
&lt;br /&gt;
* http://online.benilde.edu.ph  - De La Salle - College of Saint Benilde with more than 15000+ users faculty &amp;amp; students (started using moodle since 2004)&lt;br /&gt;
&lt;br /&gt;
== Portugal ==&lt;br /&gt;
&lt;br /&gt;
[http://moodle.fct.unl.pt/ Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa] - 5000+ users in 400+ pages.&lt;br /&gt;
&lt;br /&gt;
==South Africa==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ru.ac.za Rhodes University] in Grahamstown runs an instance of Moodle as its institutional LMS [http://ruconnected.ru.ac.za RUconnected] currently with more than 10 000 registered users, including more than 550 teachers.&lt;br /&gt;
&lt;br /&gt;
== Spain ==&lt;br /&gt;
&lt;br /&gt;
*[http://aulavirtual.uji.es/ Universitat Jaume I]. Official VLE since 2004. 13.600 real users (12.500 students and 1.100 teachers) and 1.300 active courses on February 2009. Moodle 1.9.x.&lt;br /&gt;
&lt;br /&gt;
*[http://www.upc.edu La Universitat Politecnica de Cataluña] on september 2005 started a pilot Moodle installation with 3.000 Students. On september 2006 the migration from the old campus to Moodle will be complete with more than 30.00 students [http://atenea.upc.edu El campus Atenea 4] runs Moodle 1.4.5 y an will be updated to Moodle 1.5.3 in september 2006. [http://www.upc.edu UPC] has developed several applicatons adn bridges between its own informacion systems.&lt;br /&gt;
** Integration with the academic management informatio system &amp;quot;Prisma&amp;quot;.   &lt;br /&gt;
** [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=18 Internalmail] (developed also in  UPC) is used for as email internal system.&lt;br /&gt;
** Moodle integration with [http://bibliotecnica.upc.edu the upc library system].&lt;br /&gt;
** Adaptation of Moodle grades to spanish university grading system.&lt;br /&gt;
** And other stuff&lt;br /&gt;
&lt;br /&gt;
*[http://www.urv.cat/ Universitat Rovira i Virgili] using Moodle for three academic years. At present version 1.5.4+ to be updated to 1.6.4+ in short. In march 2007, 22701 users registered and 3500 courses created aprox.&lt;br /&gt;
** Integration with the academic management information system&lt;br /&gt;
** Integration with the corporative LDAP user’s directory&lt;br /&gt;
** Average of 504 courses used regularly (logs at least once a week)&lt;br /&gt;
** Average of 3200 students login at least once a day&lt;br /&gt;
** Average of 7200 students login at least once a week&lt;br /&gt;
** 10500 users (teachers and students) accessed at least once during the last month (data from 26th march 2007)&lt;br /&gt;
&lt;br /&gt;
*[http://www.ulpgc.es/index.php?pagina=campusvirtual&amp;amp;ver=inicio Universidad de Las Palmas de Gran Canaria (ULPGC)] - 24.000 users in aprox. 1800 courses. We started with Moodle 1.4 four years ago as a test pilot project for a small number of courses. Now offered as a basic service for all courses at ULPGC: 55 official EU titles and 5 more offered ONLY through Web. &lt;br /&gt;
** We are using version 1.6.3 with LDAP authentification&lt;br /&gt;
** Custom modules: ULPGCAssignment and ULPGCDialogUe, heavily modified Appointment/Scheduler&lt;br /&gt;
** Custom groupings/scopes for small team activities (e.g. group assignment)&lt;br /&gt;
** Regular-intense usage ranks by 60% of courses/students.&lt;br /&gt;
&lt;br /&gt;
*[http://campusvirtual.ub.edu/ Universitat de Barcelona] - 60.000 users in 7.300 courses. Started in September 2006 as a project, UB Moodle site will be open for all next September.&lt;br /&gt;
&lt;br /&gt;
*[http://campuvirtual.unex.es Universidad de Extremadura] - 15000 users in aprox. 700 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://www.juntadeandalucia.es/educacion/adistancia/semipresencial Andalusia Blended Learning ].VLE of [http://www.juntadeandalucia.es/educacion/permanente Lifelong Learning Service] of &#039;&#039;Junta de Andalucía&#039;&#039;.Actually (2009/2010) 1600 courses and 25000 in aprox. Between them 1500 teachers. It&#039;s expected 35000 users next year.  This VLE is complemented with [http://www.juntadeandalucia.es/educacion/adistancia/avep LifeLong Learning VLE] that offers and open access to educational materials developed for blended learning.&lt;br /&gt;
&lt;br /&gt;
== Sweden ==&lt;br /&gt;
&lt;br /&gt;
[http://lnu.se/?l=en Linnaeus University] - 35.000 students and and 2.000 employees in 2011 - 23.000 Moodle users in 2.000 Moodle courses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Taiwan==&lt;br /&gt;
&lt;br /&gt;
[http://www.thu.edu.tw/english/enindex.htm Tunghai University]&lt;br /&gt;
*More then 17,000 registed Users&lt;br /&gt;
*16,000 users login in one day( Max. )&lt;br /&gt;
*3,000 courses per semester&lt;br /&gt;
*integration with novell ichan for single sign on&lt;br /&gt;
*integration with school support system&lt;br /&gt;
&lt;br /&gt;
our moodle web site: [http://elearning.thu.edu.tw]&lt;br /&gt;
&lt;br /&gt;
==Trinidad and Tobago==&lt;br /&gt;
&lt;br /&gt;
[http://myelearning.sta.uwi.edu The University of the West Indies]&lt;br /&gt;
St. Augustine Campus&lt;br /&gt;
*More then 22,000 registed Users&lt;br /&gt;
*Over 500 Courses per semester&lt;br /&gt;
*Over 1500 Teachers&lt;br /&gt;
&lt;br /&gt;
Using Moodle since 2006.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==United Kingdom==&lt;br /&gt;
&lt;br /&gt;
*[http://www.open.ac.uk/ The Open University (OU)] - the United Kingdom&#039;s only university dedicated to distance learning. They have around 150,000 undergraduate and more than 30,000 postgraduate students. As of October 2010, the OU&#039;s Moodle database contains over 700,000 users and 7,000 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://openlearn.open.ac.uk/ OpenLearn] The Open University&#039;s open content initiative. Website development began in May 2006 and the site was launched in October 2006, supported by a grant from The William and Flora Hewlett Foundation. By April 2008, 5,400 learning hours of content will be available online. Currenly (early 2007) over 10,000 unique users.&lt;br /&gt;
&lt;br /&gt;
*[http://www.gla.ac.uk/ The University of Glasgow] - A long-established (founded 1451) and high-profile research university in the UK, with 20,000 students (16,000 undergrad, 4,000 postgrad), 6,000 staff, 20,000 unique users of Moodle (as of Jan 2008). Uses LDAP for integration with Novell and a custom MIS system for user authentication. Their site is organised on a one Moodle site per faculty basis to facilitate both appropriate themeing and to simplify balancing across servers.&lt;br /&gt;
&lt;br /&gt;
==United States==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.cpcc.edu Central Piedmont Community College (CPCC) ] uses moodle for both curriculum and Corporate and Continuing Education. For curriculum it runs in parallel to Blackboard as faculty migrate to moodle over time. There are currently no plans to go moodle only, although many administrators favor this option. The server has 30,000 or so users on it, but the actual number of active users varies widely. It is used for both hybrid and full-online classes. Corporate and Continuing Education runs its own branded instance and uses only moodle for distance education. We have about 80,000 students total, covering the range from GED, adult-ed, curriculum, and other areas serviced by 7 campuses in and around Charlotte, North Carolina. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://ilearn.sfsu.edu San Francisco State University (SFSU) ] uses moodle for more than three years now. We use moodle for our main campus and the College of Extended Learning (CEL). For curriculum, moodle used to run in parallel with Blackboard as faculty migrate to moodle over time (SFSU officially phased out Blackboard, as of 6/30/2007). The servers have total of 89K users (as of 09/05/2007), among these 89K users, 28K are considered as currently active. As for courses, we have total of 57K courses sitting on our database, and among them, around 53K are considered as active. We also have integrated Moodle with our SIMS/R system (see http://www.sfsu.edu/sims/overview.htm). We also have courses that have more than 1,300+ students in one course with lots of quizzes (20+) and quiz attempts. The student population in SFSU covers the range from undergraduate, graduate, and first professional students.&lt;br /&gt;
&lt;br /&gt;
== Venezuela ==&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.unica.edu.ve Cecilio Acosta Catholic University (UNICA)] - with 10,000+ faculty, staff and students (started using Moodle since 2005)&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installations_10000_plus&amp;diff=95511</id>
		<title>Installations 10000 plus</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installations_10000_plus&amp;diff=95511"/>
		<updated>2012-01-27T04:08:26Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* China */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Large Installations}}&lt;br /&gt;
&lt;br /&gt;
Please add your school info here, if you have a Moodle installation catering (or expecting to cater) for 10,000 or more users.&lt;br /&gt;
==Austria==&lt;br /&gt;
* [http://elearning.tuwien.ac.at/ Moodle (TUWEL)] user statistics September 25th 2009 - Vienna University of Technology (TU Vienna)  &lt;br /&gt;
 &lt;br /&gt;
 - 19.250 users (students &amp;amp; teachers)&lt;br /&gt;
 - 13.400 students enrolled in courses&lt;br /&gt;
 - 1.030 teachers enrolled in courses&lt;br /&gt;
 - 5000+ active users per day&lt;br /&gt;
 &lt;br /&gt;
Our mission is „technology for people“. Through our research we „develop scientific excellence“, through our teaching we „enhance comprehensive competence“.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.uni-graz.at/ moodle @ uni-graz ] Primary moodle server of the Karl Franzens University Graz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Brazil==&lt;br /&gt;
&lt;br /&gt;
* [http://www.escolatecnica.ufrgs.br Escola Técnica da Universidade Federal do Rio Grande do Sul] - Professional school in Brazil, with 1,200 students. Adopted Moodle in 2004 and has been using it since then.&lt;br /&gt;
&lt;br /&gt;
==Canada==&lt;br /&gt;
&lt;br /&gt;
* [http://www.athabascau.ca/ Athabasca University] - Canada&#039;s leading distance-education and online university: Canada&#039;s Open University, serving about 30,000 students per year. Athabasca has decided to adopt Moodle as a single platform instead of WebCT Vista (i.e. the top of the line version). You can read their [http://www.athabascau.ca/media/index.php?id=132 press release] for more info.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.mala.bc.ca/ Malaspina University-College] - Malaspina U-C is located on Vancouver Island in British Columbia, Canada. MUC was established in 1969, and has over 10,000 full-time Canadian students, plus 1,000 international students from more than 50 countries. MUC offers graduate and undergraduate degrees, diplomas and certificates, and a 5-level English Language program. MUC offers classroom-student support through Moodle, as well as a range of fully online courses through [http://pr.malaonline.ca/ Malaspina Continuing Education]. MUC switched from WebCT to Moodle in 2006.&lt;br /&gt;
&lt;br /&gt;
* [http://www.usherbrooke.ca/ Université de Sherbrooke] - L&#039;Université de Sherbrooke accueille plus de 37 000 étudiantes et étudiants, provenant de plus de 100 pays, dont quelque 9000 inscrits à l’Université du troisième âge. Plus de 85 % de la population étudiante de l’Université de Sherbrooke provient de l’extérieur de Sherbrooke. L’Université de Sherbrooke emploie 6700 personnes. Elle compte 10 % du corps professoral québécois.&lt;br /&gt;
&lt;br /&gt;
==China==&lt;br /&gt;
&lt;br /&gt;
* [http://english.bit.edu.cn/ Beijing Institute of Technology]&lt;br /&gt;
* [http://www.hit.edu.cn/ Harbin Institute of Technology]&lt;br /&gt;
&lt;br /&gt;
==Colombia==&lt;br /&gt;
* [http://elearn.poligran.edu.co Politécnico Grancolombiano] &lt;br /&gt;
** More than 12,000 users - Bogota Campus - 1380 courses - 462 teachers&lt;br /&gt;
** Nearly 7,000 users in virtual education all over the country - 265 courses - 122 teachers&lt;br /&gt;
** Moodle 1.9.5&lt;br /&gt;
&lt;br /&gt;
==Czech Republic==&lt;br /&gt;
&lt;br /&gt;
* [https://moodle.czu.cz Czech University of Life Sciences Prague] &lt;br /&gt;
** 35,590 users in 911 courses (14,665 active users in last 15 days) / 18th October 2010&lt;br /&gt;
** Moodle 1.9.5&lt;br /&gt;
** integration with LDAP and Oracle&lt;br /&gt;
** Administration: [http://www.oikt.czu.cz/?r=1686 E-learning Support Centre, Division of IT, CULS Prague]&lt;br /&gt;
&lt;br /&gt;
==France==&lt;br /&gt;
&lt;br /&gt;
* [http://cursus.uhb.fr/ Université de Rennes 2 - Haute Bretagne] - 20,000 to 30,000 users in 1400 courses&lt;br /&gt;
** 8,000 different users connected every month&lt;br /&gt;
** 300 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal) ; &lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
* [http://cours.univ-tlse1.fr/ Université Toulouse 1 Capitole] - 18,000 users in 800 courses, Moodle 1.9.11+&lt;br /&gt;
** 300 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal)&lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
==Germany==&lt;br /&gt;
&lt;br /&gt;
* [http://www.isis.tu-berlin.de/ Technische Universität Berlin] - 10,400 Users in 402 courses (updated: 07.June.2007)&lt;br /&gt;
** After a test period, the Information System for Instructors and Students (ISIS) was launched in september 2006. &lt;br /&gt;
&lt;br /&gt;
==India==&lt;br /&gt;
* [http://www.amieindia.net AMIE India] is a website for [http://www.amieindia.net AMIE] students currently (as of September 2007) having 239 courses, 11246 users.&lt;br /&gt;
&lt;br /&gt;
* [http://www.visveswaraya.org/ AMIE] a residential AMIE Institute in Kerala, India, listed in LIMCA Book of Records with 130 All India Ranks, is best ever for AMIE coaching &amp;amp; IIT &amp;amp; NIT higher studies.&lt;br /&gt;
&lt;br /&gt;
==Ireland==&lt;br /&gt;
&lt;br /&gt;
* [http://www.dcu.ie Dublin City University] 18,000 users in 3,600 courses.&lt;br /&gt;
&lt;br /&gt;
==Italy==&lt;br /&gt;
&lt;br /&gt;
* [http://www.aulaweb.unige.it/ AulaWeb - University of Genoa] AulaWeb is an university-wide installation of Moodle, organized in virtual instances, one for each laurea degree. In March 2007, it hosts more than 78 instances used by 10.500 students.&lt;br /&gt;
&lt;br /&gt;
==Jamaica==&lt;br /&gt;
*[http://ourvle.mona.uwi.edu The University of the West Indies] - 23,000+ users in 1600+ courses&lt;br /&gt;
&lt;br /&gt;
==New Zealand==&lt;br /&gt;
&lt;br /&gt;
*[http://campus.openpolytechnic.ac.nz/ The Open Polytechnic of New Zealand] - 35,000+ students, 6,500+ courses, single sign-on for library services using Ezy Proxy, single sign-on for webmail, using SquirrelMail, uses LDAP for interface with Sears Student Management System. Comments by [https://eduforge.org/wiki/wiki/nzvle/wiki?pagename=Comments%20by%20Ken%20Udas%2C%20Director%20of%20eLearning%20at%20the%20Open%20Polytechnic Ken Udas, Director of eLearning at the Open Polytechnic]&lt;br /&gt;
&lt;br /&gt;
==Palestine==&lt;br /&gt;
&lt;br /&gt;
*[http://eclass.alquds.edu Al-Quds University] - 12,000+ users in 900+ courses. Al-Quds University started using moodle in 2004.&lt;br /&gt;
&lt;br /&gt;
== Philippines ==&lt;br /&gt;
* [http://uvle.up.edu.ph University Virtual Learning Environment] (UVLe) of the University of the Philippines Diliman - a highly customized Moodle for about 20,000 students and faculty. Maintained by the [http://dilc.upd.edu.ph UP Diliman Interactive Learning Center].&lt;br /&gt;
&lt;br /&gt;
* [http://eclass.adzu.edu.ph Ateneo de Zamboanga University] - with 10,000+ faculty, staff and students (started using Moodle since 2002)&lt;br /&gt;
&lt;br /&gt;
* http://online.benilde.edu.ph  - De La Salle - College of Saint Benilde with more than 15000+ users faculty &amp;amp; students (started using moodle since 2004)&lt;br /&gt;
&lt;br /&gt;
== Portugal ==&lt;br /&gt;
&lt;br /&gt;
[http://moodle.fct.unl.pt/ Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa] - 5000+ users in 400+ pages.&lt;br /&gt;
&lt;br /&gt;
==South Africa==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ru.ac.za Rhodes University] in Grahamstown runs an instance of Moodle as its institutional LMS [http://ruconnected.ru.ac.za RUconnected] currently with more than 10 000 registered users, including more than 550 teachers.&lt;br /&gt;
&lt;br /&gt;
== Spain ==&lt;br /&gt;
&lt;br /&gt;
*[http://aulavirtual.uji.es/ Universitat Jaume I]. Official VLE since 2004. 13.600 real users (12.500 students and 1.100 teachers) and 1.300 active courses on February 2009. Moodle 1.9.x.&lt;br /&gt;
&lt;br /&gt;
*[http://www.upc.edu La Universitat Politecnica de Cataluña] on september 2005 started a pilot Moodle installation with 3.000 Students. On september 2006 the migration from the old campus to Moodle will be complete with more than 30.00 students [http://atenea.upc.edu El campus Atenea 4] runs Moodle 1.4.5 y an will be updated to Moodle 1.5.3 in september 2006. [http://www.upc.edu UPC] has developed several applicatons adn bridges between its own informacion systems.&lt;br /&gt;
** Integration with the academic management informatio system &amp;quot;Prisma&amp;quot;.   &lt;br /&gt;
** [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=18 Internalmail] (developed also in  UPC) is used for as email internal system.&lt;br /&gt;
** Moodle integration with [http://bibliotecnica.upc.edu the upc library system].&lt;br /&gt;
** Adaptation of Moodle grades to spanish university grading system.&lt;br /&gt;
** And other stuff&lt;br /&gt;
&lt;br /&gt;
*[http://www.urv.cat/ Universitat Rovira i Virgili] using Moodle for three academic years. At present version 1.5.4+ to be updated to 1.6.4+ in short. In march 2007, 22701 users registered and 3500 courses created aprox.&lt;br /&gt;
** Integration with the academic management information system&lt;br /&gt;
** Integration with the corporative LDAP user’s directory&lt;br /&gt;
** Average of 504 courses used regularly (logs at least once a week)&lt;br /&gt;
** Average of 3200 students login at least once a day&lt;br /&gt;
** Average of 7200 students login at least once a week&lt;br /&gt;
** 10500 users (teachers and students) accessed at least once during the last month (data from 26th march 2007)&lt;br /&gt;
&lt;br /&gt;
*[http://www.ulpgc.es/index.php?pagina=campusvirtual&amp;amp;ver=inicio Universidad de Las Palmas de Gran Canaria (ULPGC)] - 24.000 users in aprox. 1800 courses. We started with Moodle 1.4 four years ago as a test pilot project for a small number of courses. Now offered as a basic service for all courses at ULPGC: 55 official EU titles and 5 more offered ONLY through Web. &lt;br /&gt;
** We are using version 1.6.3 with LDAP authentification&lt;br /&gt;
** Custom modules: ULPGCAssignment and ULPGCDialogUe, heavily modified Appointment/Scheduler&lt;br /&gt;
** Custom groupings/scopes for small team activities (e.g. group assignment)&lt;br /&gt;
** Regular-intense usage ranks by 60% of courses/students.&lt;br /&gt;
&lt;br /&gt;
*[http://campusvirtual.ub.edu/ Universitat de Barcelona] - 60.000 users in 7.300 courses. Started in September 2006 as a project, UB Moodle site will be open for all next September.&lt;br /&gt;
&lt;br /&gt;
*[http://campuvirtual.unex.es Universidad de Extremadura] - 15000 users in aprox. 700 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://www.juntadeandalucia.es/educacion/adistancia/semipresencial Andalusia Blended Learning ].VLE of [http://www.juntadeandalucia.es/educacion/permanente Lifelong Learning Service] of &#039;&#039;Junta de Andalucía&#039;&#039;.Actually (2009/2010) 1600 courses and 25000 in aprox. Between them 1500 teachers. It&#039;s expected 35000 users next year.  This VLE is complemented with [http://www.juntadeandalucia.es/educacion/adistancia/avep LifeLong Learning VLE] that offers and open access to educational materials developed for blended learning.&lt;br /&gt;
&lt;br /&gt;
== Sweden ==&lt;br /&gt;
&lt;br /&gt;
[http://lnu.se/?l=en Linnaeus University] - 35.000 students and and 2.000 employees in 2011 - 23.000 Moodle users in 2.000 Moodle courses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Taiwan==&lt;br /&gt;
&lt;br /&gt;
[http://www.thu.edu.tw/english/enindex.htm Tunghai University]&lt;br /&gt;
*More then 17,000 registed Users&lt;br /&gt;
*16,000 users login in one day( Max. )&lt;br /&gt;
*3,000 courses per semester&lt;br /&gt;
*integration with novell ichan for single sign on&lt;br /&gt;
*integration with school support system&lt;br /&gt;
&lt;br /&gt;
our moodle web site: [http://elearning.thu.edu.tw]&lt;br /&gt;
&lt;br /&gt;
==Trinidad and Tobago==&lt;br /&gt;
&lt;br /&gt;
[http://myelearning.sta.uwi.edu The University of the West Indies]&lt;br /&gt;
St. Augustine Campus&lt;br /&gt;
*More then 22,000 registed Users&lt;br /&gt;
*Over 500 Courses per semester&lt;br /&gt;
*Over 1500 Teachers&lt;br /&gt;
&lt;br /&gt;
Using Moodle since 2006.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==United Kingdom==&lt;br /&gt;
&lt;br /&gt;
*[http://www.open.ac.uk/ The Open University (OU)] - the United Kingdom&#039;s only university dedicated to distance learning. They have around 150,000 undergraduate and more than 30,000 postgraduate students. As of October 2010, the OU&#039;s Moodle database contains over 700,000 users and 7,000 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://openlearn.open.ac.uk/ OpenLearn] The Open University&#039;s open content initiative. Website development began in May 2006 and the site was launched in October 2006, supported by a grant from The William and Flora Hewlett Foundation. By April 2008, 5,400 learning hours of content will be available online. Currenly (early 2007) over 10,000 unique users.&lt;br /&gt;
&lt;br /&gt;
*[http://www.gla.ac.uk/ The University of Glasgow] - A long-established (founded 1451) and high-profile research university in the UK, with 20,000 students (16,000 undergrad, 4,000 postgrad), 6,000 staff, 20,000 unique users of Moodle (as of Jan 2008). Uses LDAP for integration with Novell and a custom MIS system for user authentication. Their site is organised on a one Moodle site per faculty basis to facilitate both appropriate themeing and to simplify balancing across servers.&lt;br /&gt;
&lt;br /&gt;
==United States==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.cpcc.edu Central Piedmont Community College (CPCC) ] uses moodle for both curriculum and Corporate and Continuing Education. For curriculum it runs in parallel to Blackboard as faculty migrate to moodle over time. There are currently no plans to go moodle only, although many administrators favor this option. The server has 30,000 or so users on it, but the actual number of active users varies widely. It is used for both hybrid and full-online classes. Corporate and Continuing Education runs its own branded instance and uses only moodle for distance education. We have about 80,000 students total, covering the range from GED, adult-ed, curriculum, and other areas serviced by 7 campuses in and around Charlotte, North Carolina. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://ilearn.sfsu.edu San Francisco State University (SFSU) ] uses moodle for more than three years now. We use moodle for our main campus and the College of Extended Learning (CEL). For curriculum, moodle used to run in parallel with Blackboard as faculty migrate to moodle over time (SFSU officially phased out Blackboard, as of 6/30/2007). The servers have total of 89K users (as of 09/05/2007), among these 89K users, 28K are considered as currently active. As for courses, we have total of 57K courses sitting on our database, and among them, around 53K are considered as active. We also have integrated Moodle with our SIMS/R system (see http://www.sfsu.edu/sims/overview.htm). We also have courses that have more than 1,300+ students in one course with lots of quizzes (20+) and quiz attempts. The student population in SFSU covers the range from undergraduate, graduate, and first professional students.&lt;br /&gt;
&lt;br /&gt;
== Venezuela ==&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.unica.edu.ve Cecilio Acosta Catholic University (UNICA)] - with 10,000+ faculty, staff and students (started using Moodle since 2005)&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Plagiarism_Prevention_Moss&amp;diff=93945</id>
		<title>Plagiarism Prevention Moss</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Plagiarism_Prevention_Moss&amp;diff=93945"/>
		<updated>2011-11-21T06:09:32Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Created page with &amp;quot;A plagiarism plugin for Moodle 2.x. The underlying anti-plagiarism engine is Moss[http://theory.stanford.edu/~aiken/moss/] which can detect plagiarism in source code and plain te...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A plagiarism plugin for Moodle 2.x. The underlying anti-plagiarism engine is Moss[http://theory.stanford.edu/~aiken/moss/] which can detect plagiarism in source code and plain text files. Supports C, C++, Java, C#, Python, Visual Basic, Javascript, FORTRAN, ML, Haskell, Lisp, Scheme, Pascal, Modula2, Ada, Perl, TCL, Matlab, VHDL, Verilog, Spice, MIPS assembly, a8086 assembly, a8086 assembly, MIPS assembly and HCL2.&lt;br /&gt;
&lt;br /&gt;
Check it out at http://git.io/moss&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Managing_plagiarism_prevention&amp;diff=93944</id>
		<title>Managing plagiarism prevention</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Managing_plagiarism_prevention&amp;diff=93944"/>
		<updated>2011-11-21T06:05:52Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Plagiarism prevention}}&lt;br /&gt;
==Enabling plagiarism prevention==&lt;br /&gt;
&lt;br /&gt;
To make use of plagiarism prevention, the feature must be enabled by an administrator by checking the enable plagiarism plugins box in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; [[Advanced features]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Enableplagiarism.png]]&lt;br /&gt;
&lt;br /&gt;
==Plagiarism prevention plugins==&lt;br /&gt;
&lt;br /&gt;
An administrator then needs to install and configure one or more plagiarism prevention plugins in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Plagiarism prevention &amp;gt; Plagiarism settings&#039;&#039;. Possible plugins include:&lt;br /&gt;
&lt;br /&gt;
*[[Plagiarism Prevention Crot 2.0|Crot]] - Open source tool&lt;br /&gt;
*[[Plagiarism Prevention Moss|Moss]] - Free for non-commercial usage&lt;br /&gt;
*[[Plagiarism Prevention Turnitin|Turnitin]] - Commercial tool requires subscription&lt;br /&gt;
*[[Plagiarism Prevention URKUND|URKUND]] - Commercial tool requires subscription&lt;br /&gt;
&lt;br /&gt;
[[Category:Site administration]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Using_the_File_API&amp;diff=82558</id>
		<title>Development:Using the File API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Using_the_File_API&amp;diff=82558"/>
		<updated>2011-04-05T04:35:03Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* File areas */ Fix a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 2.0}}&lt;br /&gt;
The File API is for managing all the files stored by Moodle. If you are interested in how the file API works internally, see [[Development:File API]]. The page is just about what you need to know to use the file API. Related is the [[Development:Repository API]], which lets users get files into Moodle.&lt;br /&gt;
&lt;br /&gt;
If you are looking for an explanation on how to upgrade pre-2.0 code to using the file API, you most likely need to read [[Development:Using_the_File_API_in_Moodle_forms|Using the File API in Moodle forms]].&lt;br /&gt;
&lt;br /&gt;
==File areas==&lt;br /&gt;
&lt;br /&gt;
Files are conceptually stored in &#039;&#039;&#039;file areas&#039;&#039;&#039;. A file area is uniquely identified by:&lt;br /&gt;
* A context id.&lt;br /&gt;
* full component name, for example &#039;course&#039;, &#039;mod_forum&#039;, &#039;mod_glossary&#039;.&lt;br /&gt;
* A file area type, for example &#039;intro&#039; or &#039;post&#039;.&lt;br /&gt;
* A unique itemid. Normally, the itemid relates to something depending on the file area type. For example, for a &#039;course&#039;, &#039;intro&#039; file area, the itemid is 0. For forum post, it is the post id.&lt;br /&gt;
&lt;br /&gt;
File areas are not listed separately anywhere, they are stored implicitly in the files table. Please note that each subsystem is allowed to access only own file areas, for example only code in /mod/assignment/* may access files with component &#039;mod_assignment&#039;.&lt;br /&gt;
&lt;br /&gt;
===Naming file areas===&lt;br /&gt;
&lt;br /&gt;
The names of the file areas are not strictly defined, but it is strongly recommended to use singulars and common names of areas if possible (intro, post, attachment, description, ...).&lt;br /&gt;
&lt;br /&gt;
==Serving files to users==&lt;br /&gt;
&lt;br /&gt;
You must refer to the file with a URL that includes a file-serving script, often pluginfile.php. For example&lt;br /&gt;
&lt;br /&gt;
The general form of the URL is something like&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$url = $CFG-&amp;gt;wwwroot/pluginfile.php/$contextid/$component/$filearea/arbitrary/extra/infomation.ext&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A specific example might be&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$url = $CFG-&amp;gt;wwwroot/pluginfile.php/$forumcontextid/mod_forum/post/$postid/image.jpg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file serving script then looks at the context id, and component name, and the file area name, and based on that arranges for the file to be served, following appropriate security checks.&lt;br /&gt;
&lt;br /&gt;
In most cases this is done by calling a callback function in the appropriate plugin, these functions are stored in lib.php files and named component_name_pluginfile() . The arbitrary/extra/infomation.ext is passed to the callback. For example, files in the mod_forum+post file area end up being served by the mod_forum_pluginfile function in mod/forum/lib.php.&lt;br /&gt;
&lt;br /&gt;
You normally use an API function to generate these URL automatically, most often the file_rewrite_pluginfile_urls function.&lt;br /&gt;
&lt;br /&gt;
==Getting files from the user==&lt;br /&gt;
&lt;br /&gt;
* See [[Development:Using_the_File_API_in_Moodle_forms|Using the File API in Moodle forms]]&lt;br /&gt;
==Examples==&lt;br /&gt;
Please note that in reality developers outside of core will not deal with file api directly in majority of cases, instead use formslib elements which are doing all this automatically.&lt;br /&gt;
&lt;br /&gt;
===Browsing files===&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$browser = get_file_browser();&lt;br /&gt;
$context = get_system_context();&lt;br /&gt;
&lt;br /&gt;
$filearea = null;&lt;br /&gt;
$itemid   = null;&lt;br /&gt;
$filename = null;&lt;br /&gt;
if ($fileinfo = $browser-&amp;gt;get_file_info($context, $component, $filearea, $itemid, &#039;/&#039;, $filename)) {&lt;br /&gt;
    // build a Breadcrumb trail&lt;br /&gt;
    $level = $fileinfo-&amp;gt;get_parent();&lt;br /&gt;
    while ($level) {&lt;br /&gt;
        $params = base64_encode(serialize($level-&amp;gt;get_params()));&lt;br /&gt;
        $path[] = array(&#039;name&#039;=&amp;gt;$level-&amp;gt;get_visible_name(), &#039;path&#039;=&amp;gt;$params);&lt;br /&gt;
        $level = $level-&amp;gt;get_parent();&lt;br /&gt;
    }&lt;br /&gt;
    $path = array_reverse($path);&lt;br /&gt;
    $children = $fileinfo-&amp;gt;get_children();&lt;br /&gt;
    foreach ($children as $child) {&lt;br /&gt;
        if ($child-&amp;gt;is_directory()) {&lt;br /&gt;
            echo $child-&amp;gt;get_visible_name();&lt;br /&gt;
            // display contextid, itemid, component, filepath and filename&lt;br /&gt;
            var_dump($child-&amp;gt;get_params());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Moving files around===&lt;br /&gt;
&lt;br /&gt;
For example, if you have just built a file at the path&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
 $from_zip_file = $CFG-&amp;gt;dataroot . &#039;/temp/backup/&#039; . $preferences-&amp;gt;backup_unique_code .&lt;br /&gt;
         &#039;/&#039; . $preferences-&amp;gt;backup_name;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
And you want to move it into the course_backup file area, do&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
 $context = get_context_instance(CONTEXT_COURSE, $preferences-&amp;gt;backup_course);&lt;br /&gt;
 $fs = get_file_storage();&lt;br /&gt;
 $file_record = array(&#039;contextid&#039;=&amp;gt;$context-&amp;gt;id, &#039;component&#039;=&amp;gt;&#039;course&#039;, &#039;filearea&#039;=&amp;gt;&#039;backup&#039;,&lt;br /&gt;
         &#039;itemid&#039;=&amp;gt;0, &#039;filepath&#039;=&amp;gt;&#039;/&#039;, &#039;filename&#039;=&amp;gt;$preferences-&amp;gt;backup_name,&lt;br /&gt;
         &#039;timecreated&#039;=&amp;gt;time(), &#039;timemodified&#039;=&amp;gt;time());&lt;br /&gt;
 $fs-&amp;gt;create_file_from_pathname($file_record, $from_zip_file);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create a copy of stored file===&lt;br /&gt;
 TODO: this example is bogus, nobody should ever write code like this (skodak)&lt;br /&gt;
If you need to create a copy of stored file (actually, it add a new record in database):&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$context  = get_context_instance_by_id($contextid);&lt;br /&gt;
$file_info = $browser-&amp;gt;get_file_info($context, $component, $filearea, $fileitemid, $filepath, $filename);&lt;br /&gt;
// copy this file to draft area&lt;br /&gt;
$file_info-&amp;gt;copy_to_storage($user_context-&amp;gt;id, &#039;user&#039;, &#039;draft&#039;, $newitemid, &#039;/&#039;, $title);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above code is intended for user-interface behaviour which respects the current user&#039;s permissions. If you need to write code which copies files at the back-end in areas which are not directly editable by users (for example, when copying a glossary entry to another glossary, and you want to copy its attachments), you do not need to use the user-level $browser at all. All operations are carried out with the file_storage object (usually $fs). The method to use is create_file_from_storedfile.&lt;br /&gt;
&lt;br /&gt;
For example, the glossary stores per-entry files in two areas (&#039;mod_glossary&#039;, &#039;attachment&#039; which stores attachments and &#039;mod_glossary&#039;, &#039;entry&#039; which stores files directly related to the HTML definition, such as embedded images). The following code copies all the files relating to a specific glossary entry from one such area to a different glossary item in a different glossary. Note that it changes the context ID and item ID of each file to represent the new context (for the different glossary module) and the new glossary entry (a new row was added to glossary_entries).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
if ($files = $fs-&amp;gt;get_area_files($oldcontextid, &#039;mod_glossary&#039;, &#039;attachment&#039;, $oldentryid)) {&lt;br /&gt;
    foreach ($files as $file) {&lt;br /&gt;
        $fs-&amp;gt;create_file_from_storedfile(array(&lt;br /&gt;
                &#039;contextid&#039; =&amp;gt; $newcontextid,&lt;br /&gt;
                &#039;itemid&#039; =&amp;gt; $newentryid), $file);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List area files ===&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
$files = $fs-&amp;gt;get_area_files($contextid, &#039;mod_assignment&#039;, &#039;submission&#039;, $submission-&amp;gt;id);&lt;br /&gt;
foreach ($files as $f) {&lt;br /&gt;
    // $f is an instance of stored_file&lt;br /&gt;
    echo $f-&amp;gt;get_filename();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create file ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to create a file whose contents will be a text string. This is the equivalent of the PHP function &amp;lt;tt&amp;gt;file_put_contents&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;component&#039; =&amp;gt; &#039;mod_mymodule&#039;,     // usually = table name&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Create file containing text &#039;hello world&#039;&lt;br /&gt;
$fs-&amp;gt;create_file_from_string($fileinfo, &#039;hello world&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to create a file in the Moodle file area based on a &#039;real&#039; file e.g. in a temporary folder, you can use &amp;lt;tt&amp;gt;create_file_from_pathname&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Unlike with ordinary files, this method will not automatically overwrite an existing file. If you wish to overwrite a file, you must first get the file and (if it exists) delete it, and only then create it again.&lt;br /&gt;
&lt;br /&gt;
=== Read file ===&lt;br /&gt;
&lt;br /&gt;
This is a way to read a file, equivalent to &amp;lt;tt&amp;gt;file_get_contents&amp;lt;/tt&amp;gt;. &#039;&#039;&#039;Please note your are allowed to do this ONLY from mod/mymodule/* code, it is not acceptable to do this anywhere else.&#039;&#039;&#039; Other code has to use file_browser interface instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;component&#039; =&amp;gt; &#039;mod_mymodule&#039;,     // usually = table name&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Get file&lt;br /&gt;
$file = $fs-&amp;gt;get_file($fileinfo-&amp;gt;contextid, $fileinfo-&amp;gt;component, $fileinfo-&amp;gt;filearea, &lt;br /&gt;
        $fileinfo-&amp;gt;itemid, $fileinfo-&amp;gt;filepath, $fileinfo-&amp;gt;filename);&lt;br /&gt;
&lt;br /&gt;
// Read contents&lt;br /&gt;
if ($file) {&lt;br /&gt;
    $contents = $file-&amp;gt;get_content();&lt;br /&gt;
} else {&lt;br /&gt;
    // file doesn&#039;t exist - do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to access the file directly on disk, this is not permitted. Instead, you need to make a copy of the file in a temporary area and use that. You can do this with &amp;lt;tt&amp;gt;$file-&amp;gt;copy_content_to($pathname)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Delete file ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;mod_mymodule&#039;,&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Get file&lt;br /&gt;
$file = $fs-&amp;gt;get_file($fileinfo-&amp;gt;contextid, $fileinfo-&amp;gt;component, $fileinfo-&amp;gt;filearea, &lt;br /&gt;
        $fileinfo-&amp;gt;itemid, $fileinfo-&amp;gt;filepath, $fileinfo-&amp;gt;filename);&lt;br /&gt;
&lt;br /&gt;
// Delete it if it exists&lt;br /&gt;
if ($file) {&lt;br /&gt;
    $file-&amp;gt;delete();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Development:File API]] how the File API works internally.&lt;br /&gt;
* [[Roadmap|Moodle 2.0 roadmap]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Files]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Using_the_File_API&amp;diff=82557</id>
		<title>Development:Using the File API</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Using_the_File_API&amp;diff=82557"/>
		<updated>2011-04-05T04:33:59Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* File areas */ Remove a duplicated &amp;#039;is&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 2.0}}&lt;br /&gt;
The File API is for managing all the files stored by Moodle. If you are interested in how the file API works internally, see [[Development:File API]]. The page is just about what you need to know to use the file API. Related is the [[Development:Repository API]], which lets users get files into Moodle.&lt;br /&gt;
&lt;br /&gt;
If you are looking for an explanation on how to upgrade pre-2.0 code to using the file API, you most likely need to read [[Development:Using_the_File_API_in_Moodle_forms|Using the File API in Moodle forms]].&lt;br /&gt;
&lt;br /&gt;
==File areas==&lt;br /&gt;
&lt;br /&gt;
Files are conceptually stored in &#039;&#039;&#039;file areas&#039;&#039;&#039;. A file area is uniquely identified by:&lt;br /&gt;
* A context id.&lt;br /&gt;
* full component name, for example &#039;course&#039;, &#039;mod_forum&#039;, &#039;mod_glossary&#039;.&lt;br /&gt;
* A file area type, for example &#039;intro&#039; or &#039;post&#039;.&lt;br /&gt;
* A unique itemid. Normally, the itemid relates to something depending on the file area type. For example, for a &#039;course&#039;, &#039;intro&#039; file area, the itemid is 0. For forum post, it is the post id.&lt;br /&gt;
&lt;br /&gt;
File areas are not listed separately anywhere, they are stored implicitly in the files table. Please note that each subsystem is allowed to access only own file areas, for example onnly code in /mod/assignment/* may access files with component &#039;mod_assignment&#039;.&lt;br /&gt;
&lt;br /&gt;
===Naming file areas===&lt;br /&gt;
&lt;br /&gt;
The names of the file areas are not strictly defined, but it is strongly recommended to use singulars and common names of areas if possible (intro, post, attachment, description, ...).&lt;br /&gt;
&lt;br /&gt;
==Serving files to users==&lt;br /&gt;
&lt;br /&gt;
You must refer to the file with a URL that includes a file-serving script, often pluginfile.php. For example&lt;br /&gt;
&lt;br /&gt;
The general form of the URL is something like&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$url = $CFG-&amp;gt;wwwroot/pluginfile.php/$contextid/$component/$filearea/arbitrary/extra/infomation.ext&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A specific example might be&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$url = $CFG-&amp;gt;wwwroot/pluginfile.php/$forumcontextid/mod_forum/post/$postid/image.jpg&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file serving script then looks at the context id, and component name, and the file area name, and based on that arranges for the file to be served, following appropriate security checks.&lt;br /&gt;
&lt;br /&gt;
In most cases this is done by calling a callback function in the appropriate plugin, these functions are stored in lib.php files and named component_name_pluginfile() . The arbitrary/extra/infomation.ext is passed to the callback. For example, files in the mod_forum+post file area end up being served by the mod_forum_pluginfile function in mod/forum/lib.php.&lt;br /&gt;
&lt;br /&gt;
You normally use an API function to generate these URL automatically, most often the file_rewrite_pluginfile_urls function.&lt;br /&gt;
&lt;br /&gt;
==Getting files from the user==&lt;br /&gt;
&lt;br /&gt;
* See [[Development:Using_the_File_API_in_Moodle_forms|Using the File API in Moodle forms]]&lt;br /&gt;
==Examples==&lt;br /&gt;
Please note that in reality developers outside of core will not deal with file api directly in majority of cases, instead use formslib elements which are doing all this automatically.&lt;br /&gt;
&lt;br /&gt;
===Browsing files===&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$browser = get_file_browser();&lt;br /&gt;
$context = get_system_context();&lt;br /&gt;
&lt;br /&gt;
$filearea = null;&lt;br /&gt;
$itemid   = null;&lt;br /&gt;
$filename = null;&lt;br /&gt;
if ($fileinfo = $browser-&amp;gt;get_file_info($context, $component, $filearea, $itemid, &#039;/&#039;, $filename)) {&lt;br /&gt;
    // build a Breadcrumb trail&lt;br /&gt;
    $level = $fileinfo-&amp;gt;get_parent();&lt;br /&gt;
    while ($level) {&lt;br /&gt;
        $params = base64_encode(serialize($level-&amp;gt;get_params()));&lt;br /&gt;
        $path[] = array(&#039;name&#039;=&amp;gt;$level-&amp;gt;get_visible_name(), &#039;path&#039;=&amp;gt;$params);&lt;br /&gt;
        $level = $level-&amp;gt;get_parent();&lt;br /&gt;
    }&lt;br /&gt;
    $path = array_reverse($path);&lt;br /&gt;
    $children = $fileinfo-&amp;gt;get_children();&lt;br /&gt;
    foreach ($children as $child) {&lt;br /&gt;
        if ($child-&amp;gt;is_directory()) {&lt;br /&gt;
            echo $child-&amp;gt;get_visible_name();&lt;br /&gt;
            // display contextid, itemid, component, filepath and filename&lt;br /&gt;
            var_dump($child-&amp;gt;get_params());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Moving files around===&lt;br /&gt;
&lt;br /&gt;
For example, if you have just built a file at the path&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
 $from_zip_file = $CFG-&amp;gt;dataroot . &#039;/temp/backup/&#039; . $preferences-&amp;gt;backup_unique_code .&lt;br /&gt;
         &#039;/&#039; . $preferences-&amp;gt;backup_name;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
And you want to move it into the course_backup file area, do&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
 $context = get_context_instance(CONTEXT_COURSE, $preferences-&amp;gt;backup_course);&lt;br /&gt;
 $fs = get_file_storage();&lt;br /&gt;
 $file_record = array(&#039;contextid&#039;=&amp;gt;$context-&amp;gt;id, &#039;component&#039;=&amp;gt;&#039;course&#039;, &#039;filearea&#039;=&amp;gt;&#039;backup&#039;,&lt;br /&gt;
         &#039;itemid&#039;=&amp;gt;0, &#039;filepath&#039;=&amp;gt;&#039;/&#039;, &#039;filename&#039;=&amp;gt;$preferences-&amp;gt;backup_name,&lt;br /&gt;
         &#039;timecreated&#039;=&amp;gt;time(), &#039;timemodified&#039;=&amp;gt;time());&lt;br /&gt;
 $fs-&amp;gt;create_file_from_pathname($file_record, $from_zip_file);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create a copy of stored file===&lt;br /&gt;
 TODO: this example is bogus, nobody should ever write code like this (skodak)&lt;br /&gt;
If you need to create a copy of stored file (actually, it add a new record in database):&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$context  = get_context_instance_by_id($contextid);&lt;br /&gt;
$file_info = $browser-&amp;gt;get_file_info($context, $component, $filearea, $fileitemid, $filepath, $filename);&lt;br /&gt;
// copy this file to draft area&lt;br /&gt;
$file_info-&amp;gt;copy_to_storage($user_context-&amp;gt;id, &#039;user&#039;, &#039;draft&#039;, $newitemid, &#039;/&#039;, $title);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above code is intended for user-interface behaviour which respects the current user&#039;s permissions. If you need to write code which copies files at the back-end in areas which are not directly editable by users (for example, when copying a glossary entry to another glossary, and you want to copy its attachments), you do not need to use the user-level $browser at all. All operations are carried out with the file_storage object (usually $fs). The method to use is create_file_from_storedfile.&lt;br /&gt;
&lt;br /&gt;
For example, the glossary stores per-entry files in two areas (&#039;mod_glossary&#039;, &#039;attachment&#039; which stores attachments and &#039;mod_glossary&#039;, &#039;entry&#039; which stores files directly related to the HTML definition, such as embedded images). The following code copies all the files relating to a specific glossary entry from one such area to a different glossary item in a different glossary. Note that it changes the context ID and item ID of each file to represent the new context (for the different glossary module) and the new glossary entry (a new row was added to glossary_entries).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
if ($files = $fs-&amp;gt;get_area_files($oldcontextid, &#039;mod_glossary&#039;, &#039;attachment&#039;, $oldentryid)) {&lt;br /&gt;
    foreach ($files as $file) {&lt;br /&gt;
        $fs-&amp;gt;create_file_from_storedfile(array(&lt;br /&gt;
                &#039;contextid&#039; =&amp;gt; $newcontextid,&lt;br /&gt;
                &#039;itemid&#039; =&amp;gt; $newentryid), $file);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List area files ===&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
$files = $fs-&amp;gt;get_area_files($contextid, &#039;mod_assignment&#039;, &#039;submission&#039;, $submission-&amp;gt;id);&lt;br /&gt;
foreach ($files as $f) {&lt;br /&gt;
    // $f is an instance of stored_file&lt;br /&gt;
    echo $f-&amp;gt;get_filename();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create file ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to create a file whose contents will be a text string. This is the equivalent of the PHP function &amp;lt;tt&amp;gt;file_put_contents&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;component&#039; =&amp;gt; &#039;mod_mymodule&#039;,     // usually = table name&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Create file containing text &#039;hello world&#039;&lt;br /&gt;
$fs-&amp;gt;create_file_from_string($fileinfo, &#039;hello world&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to create a file in the Moodle file area based on a &#039;real&#039; file e.g. in a temporary folder, you can use &amp;lt;tt&amp;gt;create_file_from_pathname&amp;lt;/tt&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Unlike with ordinary files, this method will not automatically overwrite an existing file. If you wish to overwrite a file, you must first get the file and (if it exists) delete it, and only then create it again.&lt;br /&gt;
&lt;br /&gt;
=== Read file ===&lt;br /&gt;
&lt;br /&gt;
This is a way to read a file, equivalent to &amp;lt;tt&amp;gt;file_get_contents&amp;lt;/tt&amp;gt;. &#039;&#039;&#039;Please note your are allowed to do this ONLY from mod/mymodule/* code, it is not acceptable to do this anywhere else.&#039;&#039;&#039; Other code has to use file_browser interface instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;component&#039; =&amp;gt; &#039;mod_mymodule&#039;,     // usually = table name&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Get file&lt;br /&gt;
$file = $fs-&amp;gt;get_file($fileinfo-&amp;gt;contextid, $fileinfo-&amp;gt;component, $fileinfo-&amp;gt;filearea, &lt;br /&gt;
        $fileinfo-&amp;gt;itemid, $fileinfo-&amp;gt;filepath, $fileinfo-&amp;gt;filename);&lt;br /&gt;
&lt;br /&gt;
// Read contents&lt;br /&gt;
if ($file) {&lt;br /&gt;
    $contents = $file-&amp;gt;get_content();&lt;br /&gt;
} else {&lt;br /&gt;
    // file doesn&#039;t exist - do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to access the file directly on disk, this is not permitted. Instead, you need to make a copy of the file in a temporary area and use that. You can do this with &amp;lt;tt&amp;gt;$file-&amp;gt;copy_content_to($pathname)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Delete file ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$fs = get_file_storage();&lt;br /&gt;
&lt;br /&gt;
// Prepare file record object&lt;br /&gt;
$fileinfo = array(&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;mod_mymodule&#039;,&lt;br /&gt;
    &#039;filearea&#039; =&amp;gt; &#039;myarea&#039;,     // usually = table name&lt;br /&gt;
    &#039;itemid&#039; =&amp;gt; 0,               // usually = ID of row in table&lt;br /&gt;
    &#039;contextid&#039; =&amp;gt; $context-&amp;gt;id, // ID of context&lt;br /&gt;
    &#039;filepath&#039; =&amp;gt; &#039;/&#039;,           // any path beginning and ending in /&lt;br /&gt;
    &#039;filename&#039; =&amp;gt; &#039;myfile.txt&#039;); // any filename&lt;br /&gt;
&lt;br /&gt;
// Get file&lt;br /&gt;
$file = $fs-&amp;gt;get_file($fileinfo-&amp;gt;contextid, $fileinfo-&amp;gt;component, $fileinfo-&amp;gt;filearea, &lt;br /&gt;
        $fileinfo-&amp;gt;itemid, $fileinfo-&amp;gt;filepath, $fileinfo-&amp;gt;filename);&lt;br /&gt;
&lt;br /&gt;
// Delete it if it exists&lt;br /&gt;
if ($file) {&lt;br /&gt;
    $file-&amp;gt;delete();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Development:File API]] how the File API works internally.&lt;br /&gt;
* [[Roadmap|Moodle 2.0 roadmap]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Files]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Plagiarism_prevention&amp;diff=75179</id>
		<title>Plagiarism prevention</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Plagiarism_prevention&amp;diff=75179"/>
		<updated>2010-08-25T23:49:17Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 2.0}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Plugins &amp;gt; Plagiarism Prevention&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plagiarism Prevention is a method used to prevent users from cheating and submitting content they have copied instead of writing it themselves.&lt;br /&gt;
&lt;br /&gt;
==Plagiarism Prevention Plugins==&lt;br /&gt;
&lt;br /&gt;
Plagiarism Prevention plugins currently include:&lt;br /&gt;
&lt;br /&gt;
*[[Plagiarism Prevention Turnitin|Turnitin]] - Integration with the turnitin.com Plagiarism prevention tool&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Development:Plagiarism API]]&lt;br /&gt;
* [[Turnitin|Turnitin Plugins for older Moodle versions]]&lt;br /&gt;
* [http://code.google.com/p/sunner-projects/wiki/AntiPlagiarismBlock Anti-Plagiarism Block] for Moodle 1.9 - Integration with the [http://theory.stanford.edu/~aiken/moss/ MOSS], an automatic system for determining the similarity of program&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:DB_layer_2.0_migration_docs&amp;diff=74661</id>
		<title>Development:DB layer 2.0 migration docs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:DB_layer_2.0_migration_docs&amp;diff=74661"/>
		<updated>2010-08-11T08:02:20Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* The golden changes */  fix a typo (actually two)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Development:dmllib 2.0}}{{Moodle_2.0}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Much of the following documentation will not make much sense unless you first read [[Development:XMLDB_Documentation|the XMLDB documentation]]. Please read it first if you would like to join the effort to convert Moodle&#039;s code to the new dmllib.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s recommended to read the whole [[wikipedia:Data_Definition_Language|DDL]] and [[wikipedia:Data_Manipulation_Language|DML]] documentation before start with the migration. That will allow you to have some initial knowledge about the new architecture.&lt;br /&gt;
&lt;br /&gt;
This article defines all the changes that need to be performed in Moodle 1.9 code in order to make it run properly under new Moodle 2.0 DB layer. Changes below are grouped into 2 main blocks ([[Development:XMLDB_Documentation|xmldb]] and [[wikipedia:Data_Manipulation_Language|dml]]) to have them organised. Additional minor changes may be required in the [[wikipedia:Data_Definition_Language|ddl]] code, but won&#039;t be documented here.&lt;br /&gt;
&lt;br /&gt;
Although the order of changes showed in this page isn&#039;t mandatory at all, it can be interesting to follow it in the migration progress to be able to understand and learn a bit more about all them. That way, you&#039;ll end up knowing not only what to change but how and why those changes are required.&lt;br /&gt;
&lt;br /&gt;
Each change will be as simple as possible, representing one easy rule to follow to adapt the code. When anything become too complex to be explained as one simple rule, it will contain one link to the [[Development:dmllib_2.0_examples|examples page]].&lt;br /&gt;
&lt;br /&gt;
For any problem in the migration of code, it&#039;s recommended to use the [http://moodle.org/mod/forum/view.php?id=45 Databases forum] at [http://moodle.org moodle.org]. Also if you find any bug in the process, please report it in the [http://tracker.moodle.org/browse/MDL-14679 Moodle Tracker], that way developers will be able to fix it ASAP.&lt;br /&gt;
&lt;br /&gt;
The Glossary module was used as the basis for many of the examples below.&lt;br /&gt;
&lt;br /&gt;
And finally, feel free to complete/fix the list below with the changes you find in the progress of migration, that will certainly help many developers. Thanks!&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== check_db_syntax: One helper script ==&lt;br /&gt;
&lt;br /&gt;
Before start migrating your code to Moodle 2.0, it&#039;s recommended to install and run the [http://cvs.moodle.org/contrib/tools/check_db_syntax/ check_db_syntax.php] script. Simply copy it to the main folder of your plugin and execute it (from command line or via web). I&#039;ll show you the list of old DB usages that need to be transformed following the information below in this article.&lt;br /&gt;
&lt;br /&gt;
If you think that something is missing in the script or have any idea to improve it, feel free to do that yourself, commenting about it in MDL-15237. Thanks!&lt;br /&gt;
&lt;br /&gt;
Also, this (perl-compatible - works in Eclipse, hopefully elsewhere) regex:&lt;br /&gt;
&lt;br /&gt;
 (?&amp;lt;!-&amp;gt;)(?&amp;lt;!function )(?&amp;lt;!\$)\b(?:(?:count|delete|get|insert|update)_record(?!s_csv)|[gs]et_field|record_exists|execute_sql)|\$CFG-&amp;gt;prefix|rs_(?:fetch|close)|(add|strip)slashes(?!_js)&lt;br /&gt;
&lt;br /&gt;
Will find most of the things in your code that need attention, with few false positives.&lt;br /&gt;
&lt;br /&gt;
== XMLDB/DDL changes ==&lt;br /&gt;
&lt;br /&gt;
=== Some comments ===&lt;br /&gt;
&lt;br /&gt;
* When changing DB structures it&#039;s highly recommended to use the [[XMLDB editor|XMLDB Editor]] (Admin-&amp;gt;Development-&amp;gt;XMLDB Editor). It is a safe way to edit install.xml files and to get correct PHP code to be used in upgrade.php scripts.&lt;br /&gt;
* If you have some doubts about the list of changes below, it&#039;s highly recommended to take a look at some code in core modules, blocks... whatever you need. They are a good reference.&lt;br /&gt;
* The most noticeable change (from a migration perspective) in the DDL stuff is that, starting with Moodle 2.0, we have decided to &#039;&#039;&#039;drop support for enum (check constraint) fields completely&#039;&#039;&#039;. See MDL-18577 and [http://moodle.org/mod/forum/discuss.php?d=118852 this discussion]. That implies changes in different parts of the DB stuff (xml files, function parameters, dropping existing enums...) and are commented with more detail below.&lt;br /&gt;
&lt;br /&gt;
=== The changes ===&lt;br /&gt;
&lt;br /&gt;
* No changes are required in install.xml files at all (that&#039;s good news!). Although you must know these:&lt;br /&gt;
** The &#039;&#039;&#039;ENUM&#039;&#039;&#039; and &#039;&#039;&#039;ENUMVALUES&#039;&#039;&#039; attributes present in your install.xml files will be completely ignored both by the DLL generation stuff and by the XMLDB Editor.&lt;br /&gt;
** In Moodle 2.1, those attributes (&#039;&#039;&#039;ENUM&#039;&#039;&#039; and &#039;&#039;&#039;ENUMVALUES&#039;&#039;&#039;) will be 100% forbidden, so it&#039;s highly recommended to erase them since now (Moodle 2.0).&lt;br /&gt;
** The XMLDB Editor will detect them when loading any install.xml file and will suggest you to fix that easily with one 1-click® option.&lt;br /&gt;
** No matter if you have fixed that with the 1-click® option when loading the files... the [[XMLDB editor|XMLDB Editor]] will save any edited install.xml files without those attributes.&lt;br /&gt;
** If your Moodle 1.9.x code &#039;&#039;&#039;has some enum defined in the database&#039;&#039;&#039;, you will need to create one upgrade block (in db/upgrade.php) to drop it (the enum, not the field! ;-) as part of the migration from Moodle 1.9 to 2.0 by using the new &#039;&#039;&#039;[[Development:DB layer 2.0 examples#Dropping one enum from one field|drop_enum_from_field()]]&#039;&#039;&#039; method.&lt;br /&gt;
** Of course, if you don&#039;t use/like the XMLDB Editor, you can erase them manually with something like this:&lt;br /&gt;
 perl -p -e &#039;s/ENUM(VALUES)?=&amp;quot;.*?&amp;quot; //g&#039; &amp;lt; install.xml &amp;gt; install.xml.new&lt;br /&gt;
&lt;br /&gt;
* All upgrade.php scripts, within the main xxxx_upgrade function must have &#039;&#039;&#039;$DB&#039;&#039;&#039; (uppercase) in the globals declaration (along with others if needed). Example (from glossary module):&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
function xmldb_glossary_upgrade($oldversion=0) {&lt;br /&gt;
    &lt;br /&gt;
    global $CFG, $THEME, $DB;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* All upgrade.php scripts, must NOT have &#039;&#039;&#039;$db&#039;&#039;&#039; (lowercase) in the globals declaration. Delete it if present.&lt;br /&gt;
* After the global declaration in the points above, this line must be present (we&#039;ll need it later):&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$dbman = $DB-&amp;gt;get_manager(); /// loads ddl manager and xmldb classes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* All &#039;&#039;&#039;XMLDBTable&#039;&#039;&#039; instances in your upgrade code must be replaced by &#039;&#039;&#039;xmldb_table&#039;&#039;&#039; (no change in parameters)&lt;br /&gt;
* All &#039;&#039;&#039;XMLDBField&#039;&#039;&#039; instances in your upgrade code must be replaced by &#039;&#039;&#039;xmldb_field&#039;&#039;&#039; (with change in params, both enum and enumvalues are out from function declaration!)&lt;br /&gt;
* All &#039;&#039;&#039;XMLDBIndex&#039;&#039;&#039; instances in your upgrade code must be replaced by &#039;&#039;&#039;xmldb_index&#039;&#039;&#039; (no change in parameters)&lt;br /&gt;
* All &#039;&#039;&#039;XMLDBKey&#039;&#039;&#039; instances in your upgrade code must be replaced by &#039;&#039;&#039;xmldb_key&#039;&#039;&#039; (no change in parameters)&lt;br /&gt;
* All the &#039;&#039;&#039;addFieldInfo()&#039;&#039;&#039; methods must be replaced by &#039;&#039;&#039;add_field()&#039;&#039;&#039; (with change in params, both enum and enumvalues are out from function declaration!)&lt;br /&gt;
* All the &#039;&#039;&#039;addIndexInfo()&#039;&#039;&#039; methods must be replaced by &#039;&#039;&#039;add_index()&#039;&#039;&#039; (no change in parameters)&lt;br /&gt;
* All the &#039;&#039;&#039;addKeyInfo()&#039;&#039;&#039; methods must be replaced by &#039;&#039;&#039;add_key()&#039;&#039;&#039; (no change in parameters)&lt;br /&gt;
* All the &#039;&#039;&#039;setAttributes()&#039;&#039;&#039; methods must be replaced by &#039;&#039;&#039;set_attributes()&#039;&#039;&#039; (with change in params, both enum and enumvalues are out from function declaration!)&lt;br /&gt;
* All the DDL functions used in upgrade code, must be transformed as detailed below (it&#039;s only about to add &#039;&#039;&#039;&amp;quot;$dbman-&amp;gt;&amp;quot;&#039;&#039;&#039; - without the quotes - before each function call). No changes in parameters are required:&lt;br /&gt;
** table_exists ==&amp;gt; $dbman-&amp;gt;table_exists&lt;br /&gt;
** field_exists ==&amp;gt; $dbman-&amp;gt;field_exists&lt;br /&gt;
** index_exists ==&amp;gt; $dbman-&amp;gt;index_exists&lt;br /&gt;
** find_index_name ==&amp;gt; $dbman-&amp;gt;find_index_name&lt;br /&gt;
** find_check_constraint_name ==&amp;gt; $dbman-&amp;gt;find_check_constraint_name (&#039;&#039;&#039;DEPRECATED in 2.0. OUT in 2.1&#039;&#039;&#039;)&lt;br /&gt;
** check_constraint_exists ==&amp;gt; $dbman-&amp;gt;check_constraint_exists (&#039;&#039;&#039;DEPRECATED in 2.0. OUT in 2.1&#039;&#039;&#039;)&lt;br /&gt;
** find_sequence_name ==&amp;gt; &#039;&#039;&#039;OUT in 2.0&#039;&#039;&#039;, see MDL-20349&lt;br /&gt;
** create_table ==&amp;gt; $dbman-&amp;gt;create_table&lt;br /&gt;
** drop_table ==&amp;gt; $dbman-&amp;gt;drop_table&lt;br /&gt;
** rename_table ==&amp;gt; $dbman-&amp;gt;rename_table&lt;br /&gt;
** add_field ==&amp;gt; $dbman-&amp;gt;add_field&lt;br /&gt;
** drop_field ==&amp;gt; $dbman-&amp;gt;drop field&lt;br /&gt;
** rename_field ==&amp;gt; $dbman-&amp;gt;rename_field&lt;br /&gt;
** change_field_type ==&amp;gt; $dbman-&amp;gt;change_field_type&lt;br /&gt;
** change_field_precision =&amp;gt; $dbman-&amp;gt;change_field_precision&lt;br /&gt;
** change_field_unsigned ==&amp;gt; $dbman-&amp;gt;change_field_unsigned&lt;br /&gt;
** change_field_notnull ==&amp;gt; $dbman-&amp;gt;change_field_notnull&lt;br /&gt;
** change_field_enum ==&amp;gt; $dbman-&amp;gt;change_field_enum (&#039;&#039;&#039;OUT in 2.0&#039;&#039;&#039;, see &#039;&#039;&#039;[[Development:DB layer 2.0 examples#Dropping one enum from one field|drop_enum_from_field()]]&#039;&#039;&#039; to get rid of remaining ENUMs in code).&lt;br /&gt;
** change_field_default ==&amp;gt; $dbman-&amp;gt;change_field_default&lt;br /&gt;
** add_key ==&amp;gt; $dbman-&amp;gt;add_key&lt;br /&gt;
** drop_key ==&amp;gt; $dbman-&amp;gt;drop_key&lt;br /&gt;
** add_index ==&amp;gt; $dbman-&amp;gt;add_index&lt;br /&gt;
** drop_index ==&amp;gt; $dbman-&amp;gt;drop_index&lt;br /&gt;
* Finally, and not less important, your code (module, block... plugin) must guarantee that it can be upgraded &#039;&#039;&#039;ONLY&#039;&#039;&#039; from Moodle 1.9, so any previous upgrade code can be safely deleted. &#039;&#039;&#039;Moodle 2.0 requires Moodle 1.9&#039;&#039;&#039; to be upgraded, so everybody will run the 1.9 =&amp;gt; 2.0 upgrade (with other paths like 1.8 =&amp;gt; 2.0 not being possible). One good time to clean-up a bit your upgrade code ;-). Don&#039;t forget to take a look to the [[XMLDB editor|XMLDB Editor]] and to core modules to see how [http://cvs.moodle.org/moodle/lib/db/upgrade.php?view=markup upgrade.php] files look like in Moodle 2.0.&lt;br /&gt;
&lt;br /&gt;
== DML changes ==&lt;br /&gt;
&lt;br /&gt;
=== Some comments ===&lt;br /&gt;
* The ENTIRE CODEBASE requires an update of ALL database query function calls. Expect most moodle files to be affected by this change.&lt;br /&gt;
&lt;br /&gt;
* This is the more complex part to migrate to have the code working under Moodle 2.0, not because of the complexity of the changes themselves (90% of them will be really easy), but because you&#039;ll need to triple-check everything works as expected after changes.&lt;br /&gt;
&lt;br /&gt;
* Along the changes below, you&#039;ll find links to some examples that will try to make things easier. Anyway, if you are blocked at any point, please ask in forums or tracker (see links at the beginning of the page). Sure it has a good enough solution.&lt;br /&gt;
&lt;br /&gt;
* Once more it&#039;s highly recommended to take a look to Moodle core code, searching for similar examples. Of course, new meaningful examples are welcome, and also any clarification in the list of changes below. Feel free to do it, this is a wiki!&lt;br /&gt;
&lt;br /&gt;
* Finally, one more explanation: The changes below have been split into three sections. First one, (called &#039;&#039;&#039;&amp;quot;The golden changes&amp;quot;&#039;&#039;&#039;) are modifications that must be applied to ALL the transformations defined in the second section (&#039;&#039;&#039;&amp;quot;The iron changes&amp;quot;&#039;&#039;&#039;). Sure you&#039;ll understand that after reading them (it&#039;s basically a matter of not repeating the golden ones within each iron one, just imagine they are everywhere). Finally other changes details can be found in the &#039;&#039;&#039;&amp;quot;The tin changes&amp;quot;&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
=== The golden changes ===&lt;br /&gt;
&#039;&#039;PLEASE read the API before going crazy with search &amp;amp; replace&#039;&#039;! You can find all the new methods in lib/dml/moodle_database.php. This is essential because some method signatures have changed (params are different), and some method names have even changed (execute_sql() is now execute()).&lt;br /&gt;
&lt;br /&gt;
Each of the golden changes below is given one short name (G1, G2, G3...) for further reference in the rest of the documentation. Let&#039;s go:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g1&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G1&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Wherever old functions are used (get_record*, get_field*, set_field, insert_record, update_record, count_records*, delete_records, record_exists), the global $DB must be used as the object on which these functions are called (e.g. get_record_select() becomes $DB-&amp;gt;get_record_select()).&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
$sql = &amp;quot;WHERE id = 1&amp;quot;;&lt;br /&gt;
get_record_select($sql);&lt;br /&gt;
  &lt;br /&gt;
// New syntax&lt;br /&gt;
global $DB;&lt;br /&gt;
$sql = &amp;quot;WHERE id = 1&amp;quot;;&lt;br /&gt;
$DB-&amp;gt;get_record_select($sql);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
::Note: for some functions, the $params array is not the second function parameter. For example, set_field:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
// Old syntax&lt;br /&gt;
set_field(&#039;user&#039;, &#039;firstname&#039;, &#039;Peter&#039;, &#039;id&#039;, 1);&lt;br /&gt;
  &lt;br /&gt;
// New syntax&lt;br /&gt;
global $DB;&lt;br /&gt;
$DB-&amp;gt;set_field(&#039;user&#039;, &#039;firstname&#039;, &#039;Peter&#039;, array(&#039;id&#039; =&amp;gt; 1));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G2&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: All uses of addslashes() &#039;&#039;&#039;must be removed&#039;&#039;&#039;. They are no longer needed&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g3&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G3&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: All the functions that used to accept a list of string params in the form &amp;quot;param1, value1, param2, value2&amp;quot; now need to be given an array of key=&amp;gt;value pairs as a replacement for these params. Other params remain as before. Check the new API for any exceptions.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax:&lt;br /&gt;
$user = get_record(&amp;quot;user&amp;quot;, &amp;quot;firstname&amp;quot;, &amp;quot;Peter&amp;quot;, &amp;quot;lastname&amp;quot;, &amp;quot;Cantrophus&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// New syntax:&lt;br /&gt;
global $DB;&lt;br /&gt;
$conditions = array(&amp;quot;firstname&amp;quot; =&amp;gt; &amp;quot;Peter&amp;quot;, &amp;quot;lastname&amp;quot; =&amp;gt; &amp;quot;Cantrophus&amp;quot;);&lt;br /&gt;
$user = $DB-&amp;gt;get_record(&amp;quot;user&amp;quot;, $conditions);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
::Note: The example above has been written out in full for clarity. You can use the array() directly within the function call, without using a temporary variable, if you prefer:&#039;&#039;&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
global $DB;&lt;br /&gt;
$user = $DB-&amp;gt;get_record(&amp;quot;user&amp;quot;, array(&amp;quot;firstname&amp;quot; =&amp;gt; &amp;quot;Peter&amp;quot;, &amp;quot;lastname&amp;quot; =&amp;gt; &amp;quot;Cantrophus&amp;quot;) );&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g4&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G4&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: rs_fetch_next_record($rs) is deprecated, in favour of the simple foreach($rs as $var). Calls to rs_close() must be replaced by $rs-&amp;gt;close();&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
while($result = rs_fetch_next_record($rs)) {&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
rs_close();&lt;br /&gt;
&lt;br /&gt;
// New syntax&lt;br /&gt;
foreach ($rs as $result) {&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
$rs-&amp;gt;close();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G5&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Placeholders must be used for table names. Instead of {$CFG-&amp;gt;prefix}tablename, use {tablename}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
$sql = &amp;quot;SELECT * FROM {$CFG-&amp;gt;prefix}user&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// New syntax&lt;br /&gt;
$sql = &amp;quot;SELECT * FROM {user}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g6&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G6&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: When PHP variables are used in SQL queries, they must be replaced by parameters. You have the choice between two approaches: ordered parameters, or named parameters.&lt;br /&gt;
** Ordered parameters use a simple array of values, which are given to the DML function as $params. The values in the SQL code are simply question marks (?) replacing the values. They are replaced by the DML code one by one, substituting each question mark (?) with the next value in the $params array.&lt;br /&gt;
** Named parameters use an associative array of name =&amp;gt; value pairs as the $params array. The values in the SQL code are replaced with a colon (:) followed by the key associated with the value, in the $params array. Note that named params &#039;&#039;&#039;must be unique&#039;&#039;&#039;, no matter if the value passed is the same.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
$sql = &amp;quot;SELECT id, firstname FROM {$CFG-&amp;gt;prefix}user WHERE firstname = &#039;Peter&#039; AND lastname = &#039;Cantrophus&#039;&amp;quot;;&lt;br /&gt;
$user = get_record_sql($sql);&lt;br /&gt;
  &lt;br /&gt;
// New syntax: ordered params&lt;br /&gt;
global $DB;&lt;br /&gt;
$params = array(&#039;Peter&#039;, &#039;Cantrophus&#039;);&lt;br /&gt;
$sql = &amp;quot;SELECT id, firstname FROM {user} WHERE firstname = ? AND lastname = ?&amp;quot;;&lt;br /&gt;
$user = $DB-&amp;gt;get_record_sql($sql, $params);&lt;br /&gt;
&lt;br /&gt;
// New syntax: named params&lt;br /&gt;
global $DB;&lt;br /&gt;
$params = array(&#039;firstname&#039; =&amp;gt; &#039;Peter&#039;, &#039;lastname&#039; =&amp;gt; &#039;Cantrophus&#039;);&lt;br /&gt;
$sql = &amp;quot;SELECT id, firstname FROM {user} WHERE firstname = :firstname AND lastname = :lastname&amp;quot;;&lt;br /&gt;
$user = $DB-&amp;gt;get_record_sql($sql, $params);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain a value for the LIKE operator, include any % signs into the parameter string. For example, code that was previously &amp;lt;tt&amp;gt;&amp;quot;LIKE &#039;$value%&#039;&amp;quot;&amp;lt;/tt&amp;gt; becomes &amp;lt;tt&amp;gt;&amp;quot;LIKE ?&amp;quot;&amp;lt;/tt&amp;gt; with the parameter &amp;lt;tt&amp;gt;$value.&#039;%&#039;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g7&amp;quot;&amp;gt;&amp;lt;b&amp;gt;G7&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Replacement of the IN(...) syntax: We no longer hard-code this in our SQL queries, we use a function which determines whether the IN() syntax is needed, or, if there is only one value to compare, the equal (=) sign can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax:&lt;br /&gt;
$depends_on = array(1, 43, 553);&lt;br /&gt;
$gis = implode(&#039;,&#039;, $depends_on);&lt;br /&gt;
$sql = &amp;quot;SELECT *&lt;br /&gt;
          FROM {$CFG-&amp;gt;prefix}grade_items&lt;br /&gt;
         WHERE id IN ($gis)&amp;quot;;&lt;br /&gt;
$items = $DB-&amp;gt;get_records_sql($sql);&lt;br /&gt;
  &lt;br /&gt;
// new syntax&lt;br /&gt;
global $DB;&lt;br /&gt;
$depends_on = array(1, 43, 553);&lt;br /&gt;
list($usql, $params) = $DB-&amp;gt;get_in_or_equal($depends_on);&lt;br /&gt;
$sql = &amp;quot;SELECT *&lt;br /&gt;
          FROM {grade_items}&lt;br /&gt;
         WHERE id $usql&amp;quot;;&lt;br /&gt;
$items = $DB-&amp;gt;get_records_sql($sql, $params);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; to combine the last two, do the G7 IN SQL stuff first to generate the params array, then do something like&lt;br /&gt;
  $param[&#039;firstname&#039;] = &#039;peter&#039;;&lt;br /&gt;
to add the stuff for G6&lt;br /&gt;
&lt;br /&gt;
=== The iron changes ===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span id=&amp;quot;I1&amp;quot;&amp;gt;&amp;lt;b&amp;gt;I1&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Originally the &#039;&#039;&#039;sql_substr()&#039;&#039;&#039; function was used without parameters and it returned only the name of the &amp;quot;substring&amp;quot; function to be used under each DB. In Moodle 2.0 and upwards, it has 3 parameters (2 being mandatory) and it returns the complete SQL text to be used when handling substrings. Note that positions in this function are 1-based (first char has index 1).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
$records = get_records_sql(&amp;quot;SELECT &amp;quot; . sql_substr() . &amp;quot;(firstname, 1, 20)&amp;quot; . &amp;quot; FROM ... ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// New syntax&lt;br /&gt;
$records = $DB-&amp;gt;get_records_sql(&amp;quot;SELECT &amp;quot; . $DB-&amp;gt;sql_substr(&#039;firstname&#039;, 1, 20) . &amp;quot; FROM ... ...&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The tin changes ===&lt;br /&gt;
List of minor changes&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g1&amp;quot;&amp;gt;&amp;lt;b&amp;gt;T1&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Originally get_records() and similar functions were returning false if no records found. All these methods are now always returning arrays, empty array in case of no records found. Please note that get_record() still returns false if specified record not found.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
if (!$posts = get_records(&#039;forum_posts&#039;, &#039;parent&#039;, 666)) {&lt;br /&gt;
    $posts = array()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// New syntax&lt;br /&gt;
global $DB;&lt;br /&gt;
$posts = $DB-&amp;gt;get_records(&#039;forum_posts&#039;, array(&#039;parent&#039;=&amp;gt;666));&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;g1&amp;quot;&amp;gt;&amp;lt;b&amp;gt;T2&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;: Originally DML functions were returning &#039;&#039;false&#039;&#039; if error occurred - &#039;&#039;dml_exception&#039;&#039; is thrown now instead.&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
// Old syntax&lt;br /&gt;
$record = new object();&lt;br /&gt;
$record-&amp;gt;course = 5;&lt;br /&gt;
if (!$id = insert_record(&#039;sometable&#039;, $record)) {&lt;br /&gt;
   error(&#039;can not insert new record&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// New syntax&lt;br /&gt;
global $DB;&lt;br /&gt;
$record = new object();&lt;br /&gt;
$record-&amp;gt;course = 5;&lt;br /&gt;
$id = $DB-&amp;gt;insert_record(&#039;sometable&#039;, $record);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Development:XMLDB Documentation|XMLDB Documentation]]: where both xmldb and ddl stuff is explained.&lt;br /&gt;
* [[Development:DDL functions|DDL functions]] - Documentation for all the Data Definition Language (DDL) functions available inside Moodle.&lt;br /&gt;
* [[Development:DML functions|DML functions]] - Documentation for all the Data Manipulation Language (DML) functions available inside Moodle.&lt;br /&gt;
* [[Development:DDL exceptions|DDL exceptions]] - DDL exceptions information.&lt;br /&gt;
* [[Development:DML exceptions|DML exceptions]] - DML exceptions information.&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Plagiarism_prevention&amp;diff=74128</id>
		<title>Plagiarism prevention</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Plagiarism_prevention&amp;diff=74128"/>
		<updated>2010-07-23T12:27:47Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* Plagiarism Prevention Plugins */  Add contrib plugin, moss&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 2.0}}&lt;br /&gt;
Location: &#039;&#039;Administration &amp;gt; Plugins &amp;gt; Plagiarism Prevention&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plagiarism Prevention is a method used to prevent users from cheating and submitting content they have copied instead of writing it themselves.&lt;br /&gt;
&lt;br /&gt;
==Plagiarism Prevention Plugins==&lt;br /&gt;
&lt;br /&gt;
Plagiarism Prevention plugins currently include:&lt;br /&gt;
&lt;br /&gt;
*[[Plagiarism Prevention Turnitin|Turnitin]] - Integration with the turnitin.com Plagiarism prevention tool&lt;br /&gt;
*[http://code.google.com/p/sunner-projects/wiki/AntiPlagiarismBlock Anti-Plagiarism Block] - Integration with the [http://theory.stanford.edu/~aiken/moss/ MOSS], an automatic system for determining the similarity of program&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Development:Plagiarism API]]&lt;br /&gt;
* [[Turnitin|Turnitin Plugins for older Moodle versions]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=error/moodle/guestsarenotallowed&amp;diff=69938</id>
		<title>error/moodle/guestsarenotallowed</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=error/moodle/guestsarenotallowed&amp;diff=69938"/>
		<updated>2010-03-20T00:20:01Z</updated>

		<summary type="html">&lt;p&gt;Sunner: New page: Only registered user can request a course. Please register first.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Only registered user can request a course. Please register first.&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Upload_users&amp;diff=21868</id>
		<title>Upload users</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Upload_users&amp;diff=21868"/>
		<updated>2007-03-28T02:23:12Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Users may be imported, enrolled on courses and organised into groups via flat file.&lt;br /&gt;
&lt;br /&gt;
Firstly, note that &#039;&#039;&#039;it is usually not necessary to import users in bulk&#039;&#039;&#039; - to keep your own maintenance work down you should first explore forms of authentication that do not require manual maintenance, such as connecting to existing external databases or letting the users create their own accounts. See the Authentication section in the admin menus.&lt;br /&gt;
&lt;br /&gt;
If you are sure you want to import multiple user accounts from a text file, then you need to format your text file as follows:&lt;br /&gt;
&lt;br /&gt;
* Each line of the file contains one record&lt;br /&gt;
* Each record is a series of data separated by commas&lt;br /&gt;
* The first record of the file is special, and contains a list of fieldnames. This defines the format of the rest of the file.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Required fieldnames&#039;&#039;&#039;: these fields must be included in the first record, and defined for each user&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;username, password, firstname, lastname, email&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Default fieldnames&#039;&#039;&#039;: these are optional - if they are not included then the values are taken from the primary admin&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;institution, department, city, country, lang, auth, timezone&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Optional fieldnames&#039;&#039;&#039;: all of these are completely optional. The course names are the &amp;quot;shortnames&amp;quot; of the courses - if present then the user will be enrolled as students in those courses. Group names must be associated to the corresponding courses, i.e. group1 to course1, etc.&lt;br /&gt;
:&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;idnumber, icq, phone1, phone2, address, url, description, mailformat, maildisplay, htmleditor, autosubscribe, course1, course2, course3, course4, course5, group1, group2, group3, group4, group5, type1, type2, type3, type4, type5&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Commas within the data should be encoded as &amp;amp;#44 - the script will automatically decode these back to commas.&lt;br /&gt;
* For Boolean fields, use 0 for false and 1 for true.&lt;br /&gt;
* Types are used to tell Moodle whether the user is a student or a teacher if a corresponding course exists (e.g. type2 corresponds to course2). 1 = Student, 2 = Editing Teacher, and 3 = Non-editing Teacher. If type is left blank, or if no course is specified, the user is default to student.&lt;br /&gt;
* For courses, use the short name for the course&lt;br /&gt;
* Note: The help file claims that if a user is already registered in the Moodle user database, this script will return the userid number (database index) for that user, and will enrol the user as a student in any of the specified courses WITHOUT updating the other specified data. This is not actually true. The enrolments are not affected, though the userids are in fact returned.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a valid import file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username, password, firstname, lastname, email, lang, idnumber, maildisplay, course1, group1, type1&amp;lt;br /&amp;gt;&lt;br /&gt;
jonest, verysecret, Tom, Jones, jonest@someplace.edu, en, 3663737, 1, Intro101, Section 1, 1&amp;lt;br /&amp;gt;&lt;br /&gt;
reznort, somesecret, Trent, Reznor, reznort@someplace.edu, en_us, 6736733, 0, Advanced202, Section 3, 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Updating existing accounts==&lt;br /&gt;
&lt;br /&gt;
By default Moodle assumes that you will be creating new user accounts, and skips records where the username matches an existing account. However, if you set &amp;quot;Update existing accounts&amp;quot; to &#039;&#039;&#039;Yes&#039;&#039;&#039;, the existing user account will be updated.&lt;br /&gt;
&lt;br /&gt;
When updating existing accounts you can change usernames as well. Set &amp;quot;Allow renames&amp;quot; to &#039;&#039;&#039;Yes&#039;&#039;&#039; and include in your file a field called &amp;lt;code&amp;gt;oldusername&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: any errors updating existing accounts can affect your users badly. Be careful when using the options to update.&lt;br /&gt;
&lt;br /&gt;
==Hints==&lt;br /&gt;
&lt;br /&gt;
If you use a spreadsheet program such as Excel to create your .csv file, check the resulting output in a text editor before you upload it.  It is possible to get trailing commas on each line from an empty field if you have added and deleted columns of information prior to saving the final file.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/help.php?file=uploadusers.html Upload users help file] also contains information on flat file formatting&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=13289 How does flat file work?] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=36851 Can I auto enroll from Excel?] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Authentication]]&lt;br /&gt;
[[Category:Enrolment]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Importer des utilisateurs]]&lt;br /&gt;
[[ja:ユーザのアップロード]]&lt;br /&gt;
[[zh:上传用户]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Upgrading&amp;diff=20161</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Upgrading&amp;diff=20161"/>
		<updated>2007-02-11T17:00:59Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Moodle is designed to upgrade cleanly from any earlier version to any later version. Please refer to &#039;&#039;&#039;[[Upgrading to Moodle 1.6]]&#039;&#039;&#039; for particular considerations related to Moodle 1.6 features.&lt;br /&gt;
&lt;br /&gt;
When upgrading a Moodle installation you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
==Re-read the installation documentation==&lt;br /&gt;
Spend some time re-reading the [[Installing Moodle | installation documentation]]. Look in particular for any changes in webserver, database and PHP requirements for the version of Moodle you are upgrading to.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
&lt;br /&gt;
Although it is not strictly necessary, it is always a good idea to make a backup of any production system before a major upgrade, just in case you need to revert back to the older version for some reason. In fact, it&#039;s a good idea to automate your server to backup your Moodle installation daily, so that you can skip this step.&lt;br /&gt;
&lt;br /&gt;
There are three areas that need backing up:&lt;br /&gt;
&lt;br /&gt;
=== 1. The Moodle software directory itself ===&lt;br /&gt;
&lt;br /&gt;
Make a separate copy of these files before the upgrade, so that you can retrieve your config.php and any modules you have added like themes, languages etc&lt;br /&gt;
&lt;br /&gt;
=== 2. Your data directory ===&lt;br /&gt;
&lt;br /&gt;
This is where uploaded content resides (such as course resources and student assignments) so it is very important to have a backup of these files anyway. Sometimes upgrades may move or rename directories within your data directory.&lt;br /&gt;
&lt;br /&gt;
=== 3. Your database ===&lt;br /&gt;
&lt;br /&gt;
Most Moodle upgrades will alter the database tables, adding or changing fields. Each database has different ways to backup. One way of backing up a MySQL database is to &#039;dump&#039; it to a single SQL file. The following example shows Unix commands to dump the database called &amp;quot;moodle&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 mysqldump -u username -p -C -Q -e -a moodle &amp;gt; moodle-backup-2002-10-26.sql&lt;br /&gt;
&lt;br /&gt;
Substitute your database user account for username. The -p flag will prompt you for the password for the username specified by -u.&lt;br /&gt;
&lt;br /&gt;
If your database host is different from the host you want to execute the backup command (usually the web server), you have to specify it with the -h option to mysqldump:&lt;br /&gt;
&lt;br /&gt;
 mysqldump -u username -p -h databasehost -C -Q -e -a moodle &amp;gt; moodle-backup-2002-10-26.sql &lt;br /&gt;
&lt;br /&gt;
You can also use the &amp;quot;Export&amp;quot; feature in Moodle&#039;s optional &amp;quot;MySQL Admin&amp;quot; web interface to do the same thing on all platforms. This interface can be downloaded from http://download.moodle.org/modules/integrations.php. It is an integration of PHPMyAdmin for the Moodle administration interface.&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
&lt;br /&gt;
=== Using a downloaded archive ===&lt;br /&gt;
&lt;br /&gt;
Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new installations. The best way is to rename the current Moodle directory to something else, then unpack the new Moodle archive into the old location.&lt;br /&gt;
&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-1.1.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php and any other plugins such as custom themes:&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
&lt;br /&gt;
=== Using CVS ===&lt;br /&gt;
&lt;br /&gt;
You can use CVS for updating or upgrading your Moodle.&lt;br /&gt;
First you need to do a CVS checkout in your (empty) Moodle root directory.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Linux servers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To do a CVS checkout of Moodle, you first have to logon to the Moodle CVS server.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;cvs -d:pserver:anonymous@moodle.cvs.sourceforge.net:/cvsroot/moodle login&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  No password for anonymous, so just hit the Enter button.&lt;br /&gt;
&lt;br /&gt;
Go to the directory where you want the Moodle root to come and type&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;cvs -z3 -d:pserver:anonymous@moodle.cvs.sourceforge.net:/cvsroot/moodle&lt;br /&gt;
  co -r MOODLE_15_STABLE moodle&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
  (where MOODLE_15_STABLE is the desired version)&lt;br /&gt;
&lt;br /&gt;
To update, just go into the Moodle root directory and update to the new files:&lt;br /&gt;
&lt;br /&gt;
  cvs update -dP&lt;br /&gt;
To update to a new version type in the following and change 17 to whatever newest version upgrade number is&lt;br /&gt;
  cvs -Q update -dP -r MOODLE_17_STABLE&lt;br /&gt;
&lt;br /&gt;
Make sure you use the &amp;quot;d&amp;quot; parameter to create new directories if necessary, and the &amp;quot;P&amp;quot; parameter to prune empty directories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows servers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can use Tortoise CVS to do the initial checkout and the updates.&lt;br /&gt;
&lt;br /&gt;
If you have been editing Moodle files, watch the messages very closely for possible conflicts. All your customised themes and non-standard plugins will be untouched.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to visit the admin page after the CVS update proces has completed.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle.&lt;br /&gt;
&lt;br /&gt;
To do this just visit the admin page of your installation e.g. &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It doesn&#039;t matter if you are logged in as admin or not.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the database or filesystem upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems] forum&lt;br /&gt;
*[[Upgrading to Moodle 1.6]]&lt;br /&gt;
*[[Installing Moodle]]&lt;br /&gt;
*[[Installation FAQ]]&lt;br /&gt;
*[[Installing Apache, MySQL and PHP]]&lt;br /&gt;
*[[Step by Step Installation Guide for Windows]]&lt;br /&gt;
*[[Step by Step Installation Guide for RedHat]]&lt;br /&gt;
*[[Step by Step Installation Guide for Debian GNU/Linux]]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=26731&amp;amp;parent=125858 Using cvs] forum discussion&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=56915 Upgrading from 1.5.2 to 1.7] forum discussion&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=56991 Upgrade nightmares.... any help appreciated] forum discussion with a happy ending :-)&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=62463 After upgrading i get &amp;quot;Your site may not be secure.&amp;quot; msg.] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[nl:Upgraden]]&lt;br /&gt;
[[zh:升级]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/blog:manageentries&amp;diff=19843</id>
		<title>Capabilities/moodle/blog:manageentries</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/blog:manageentries&amp;diff=19843"/>
		<updated>2007-02-01T07:54:58Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;allows a user to edit and delete blog entries from other users. (system context only?)&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Capability]]&lt;br /&gt;
&lt;br /&gt;
[[zh:能力/moodle/blog:manageentries]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/role:viewhiddenassigns&amp;diff=19842</id>
		<title>Capabilities/moodle/role:viewhiddenassigns</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/role:viewhiddenassigns&amp;diff=19842"/>
		<updated>2007-02-01T07:47:22Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;allows a user to view hidden participants (e.g. parents, hidden teachers) currently not yet implemented&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Capability]]&lt;br /&gt;
&lt;br /&gt;
[[zh:能力/moodle/role:viewhiddenassigns]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/role:override&amp;diff=19840</id>
		<title>Capabilities/moodle/role:override</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/role:override&amp;diff=19840"/>
		<updated>2007-02-01T07:35:22Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;allows a user to override a capability in a role in context. note that to override a capability in role A, the user doing the override has to hold a role B so that role B is permitted to override role A. This is controlled in the roles allow override settings.&lt;br /&gt;
&lt;br /&gt;
This is logical because even though a teacher might have moodle/role:override, in most situations we only want him to be able to override capabilities of the student role, and not the admin role in his own course.&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Capability]]&lt;br /&gt;
&lt;br /&gt;
[[zh:能力/moodle/role:override]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/site:accessallgroups&amp;diff=19833</id>
		<title>Capabilities/moodle/site:accessallgroups</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/site:accessallgroups&amp;diff=19833"/>
		<updated>2007-02-01T07:16:49Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;moodle/site:accessallgroups allows a user to access all groups in the given context, regardless of the group mode. For example, a user with this capability set can browse forum posting of other groups when group mode of the forum activity is set to SEPARATE_GROUPS.&lt;br /&gt;
&lt;br /&gt;
In Moodle 1.6 terms, non-editing teachers do not have this capability (bound to own group settings), but editing teachers do.&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Capability]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[zh:能力/moodle/site:accessallgroups]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/legacy:admin&amp;diff=19830</id>
		<title>Capabilities/moodle/legacy:admin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Capabilities/moodle/legacy:admin&amp;diff=19830"/>
		<updated>2007-02-01T06:31:41Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;moodle/legacy:admin is implemented for backward compatibility. It is flag to tell Moodle that this role is a admin role. It is not required to set any legacy flags.&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Capability]]&lt;br /&gt;
&lt;br /&gt;
[[zh:能力/moodle/legacy:admin]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Risks&amp;diff=19760</id>
		<title>Risks</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Risks&amp;diff=19760"/>
		<updated>2007-01-30T15:47:28Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Roles}}&lt;br /&gt;
{{Moodle 1.7}}&lt;br /&gt;
This page describes the different types of risks that different capabilities can raise. (This page is incomplete and needs more information.)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
Users could change site configuration and behaviour&lt;br /&gt;
&lt;br /&gt;
==XSS (Cross-Site Scripting)==&lt;br /&gt;
Users could add files and texts that allow cross-site scripting.&lt;br /&gt;
&lt;br /&gt;
==Privacy==&lt;br /&gt;
Users could gain access to private information of other users&lt;br /&gt;
&lt;br /&gt;
==Spam==&lt;br /&gt;
Users could send spam to site users or others&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Roles]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Risques]]&lt;br /&gt;
[[zh:风险]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Moodle_myths&amp;diff=17051</id>
		<title>Moodle myths</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Moodle_myths&amp;diff=17051"/>
		<updated>2006-10-14T14:37:16Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add zh link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The top 10 list started life in [http://moodle.org/mod/forum/discuss.php?d=33044 a post by Josie Fraser], as part of the 2005-6 [http://helpusgettobett.com HUGToB campaign].&lt;br /&gt;
&lt;br /&gt;
{{About Moodle}}&lt;br /&gt;
&lt;br /&gt;
==Once Moodle is stable, it will be put under licence. If it were any good, they’d already be charging for it==&lt;br /&gt;
Martin Dougiamas is [http://moodle.org/mod/forum/discuss.php?d=41253 on record] that Moodle will always be free and under the GPL. Even if it weren&#039;t, the community could take the latest GPL code and continue development from there. One of the reasons why Moodle&#039;s so good is that it&#039;s open source code, and so the world wide educational community can contribute to making it better still.&lt;br /&gt;
&lt;br /&gt;
==There’s no point in looking at Moodle unless you have a full time, php developer on your staff. At the very least you need a lot of technical support to run it in house==&lt;br /&gt;
There are &#039;&#039;plenty&#039;&#039; of institutions running Moodle as is, without any php developers in sight. You don&#039;t need to know any programming if you just want to run a copy of Moodle. That said, PHP is actually a fairly easy language to pick up, and the Moodle code is well documented, so if you did want to help with development, it&#039;s a fairly gentle learning curve.&lt;br /&gt;
&lt;br /&gt;
It&#039;s fair to say you need a certain amount of technical know-how to run your own instance of Moodle securely, but this has more to do with getting a web-server, SQL database and scripting language up and integrated than the Moodle scripts themselves. If you can run your own webserver, you should be OK to run Moodle on it. &lt;br /&gt;
&lt;br /&gt;
You don&#039;t actually have to run Moodle in house though - there are well respected [http://moodle.com Moodle Partners] who&#039;ll run Moodle for you, some of the more enlightened Local Authorities and Regional Broadband Consortia (in the UK) will provide Moodle hosting, and Moodle will work on plenty of commercially hosted webspaces too.&lt;br /&gt;
&lt;br /&gt;
==Moodle won’t be compatible with our other systems/software==&lt;br /&gt;
Moodle will run on Linux, Windows and Mac OS-X. It&#039;s compatible with a huge range of databases through ADODB integration. There&#039;s a whole host of authentication and enrolment mechanisms, including LDAP. Moodle will allow teachers to integrate content in a range of different formats, including SCORM, Flash, MP3s and RSS feeds. On the [[Roadmap]] for future releases is a Web API which will allow easy integration with other web-based applications. &lt;br /&gt;
&lt;br /&gt;
Finally, remember that this is open source software, with a well documented data and file structure. If Moodle&#039;s not compatible with a particular application at the moment, then you can pay a developer to code up that integration, or develop it in-house.&lt;br /&gt;
&lt;br /&gt;
==Moodle just doesn’t have the commercial experience we’re looking for==&lt;br /&gt;
Check out the [http://moodle.com partners]. Moodle is currently used by some big name corporate clients for in-house CPD.&lt;br /&gt;
&lt;br /&gt;
==You can’t just use Moodle out of the box – the basic Moodle install just isn’t that sophisticated==&lt;br /&gt;
Have a look at the [[Features|feature list]], all of which comes as standard. Additional themes, blocks and activities are easy to integrate and the vast majority are free, open source code too.&lt;br /&gt;
&lt;br /&gt;
==There’s no documentation, training or technical support available – you’re on your own==&lt;br /&gt;
There&#039;s excellent (and expanding)documentation online, provided by the user and developer community. The Open University&#039;s [http://moodle.org/user/view.php?id=9318&amp;amp;course=5 Jason Cole] has written an excellent introduction to Moodle for teachers, available as a [http://www.amazon.com/gp/product/0596008635/ proper book] from O&#039;Reilly. &lt;br /&gt;
&lt;br /&gt;
Most users find the Moodle interface intuitive and this helps reduce the training requirements.   It&#039;s possible for institutions to run in-house training and many have successfully adopted this approach. Some Moodle Partners [http://moodle.com/training/ moodle.com] also specialize in training.&lt;br /&gt;
&lt;br /&gt;
High quality, timely technical support is available from the user and developer community in the Using Moodle course on [http://moodle.org moodle.org]. Some LAs and RBCs (Local Authorities and Regional Broadband Consortia in the UK) support Moodle in their areas. Commercial support contracts are available from authorised Moodle Partners [http://moodle.com/support/ moodle.com].&lt;br /&gt;
&lt;br /&gt;
==The total Cost of Ownership is actually higher for Moodle than it would be with a wholly commercial platform==&lt;br /&gt;
Stop and think for a moment. With both Moodle and commercial platforms, you&#039;ll still need to pay for hosting, support, training and content, one way or another: with Moodle, more of these costs &#039;&#039;can&#039;&#039; be brought in-house, because the code&#039;s open source and Moodle&#039;s great at providing the tools teachers need to write online activities themselves, but that doesn&#039;t mean you have to.&lt;br /&gt;
&lt;br /&gt;
The difference is that with Moodle, there are &#039;&#039;&#039;no&#039;&#039;&#039; licence fees to pay. None. The money you do spend can go back into making the software better, or remain within the educational community for the common good. None of it needs to go to meet shareholder dividends or pay back the venture capitalists. Furthermore, you&#039;re not exposed to the risks of commercial suppliers unilaterally increase their licence fees, or going out of business.&lt;br /&gt;
&lt;br /&gt;
It&#039;s therefore not that surprising that when the UK government agency [http://www.becta.org.uk Becta] examined the [http://www.becta.org.uk/corporate/publications/documents/BEC5606_Full_report18.pdf Total Cost of Ownership of open-source software] on desktops in UK schools, they found significant savings compared to commercial alternatives. The savings on support costs were particularly impressive. It&#039;s likely that these savings would have been greater still had they examined web-based applications like Moodle.&lt;br /&gt;
&lt;br /&gt;
==Moodle is just no good for an institution as large as mine==&lt;br /&gt;
So, that would be one larger than the UK&#039;s Open University, with 180,000 students, yes? The OU has [http://www3.open.ac.uk/events/7/2005118_40887_nr.doc announced] that they&#039;re moving to Moodle as their institutional VLE, and there are plenty of other [[Large_installations|large institutions]] officially using Moodle, and a good number of others where sections are.&lt;br /&gt;
&lt;br /&gt;
==Moodle is just not designed to cope with my specific group of learners or customers==&lt;br /&gt;
Moodle&#039;s being used successfully from elementary education, including early years provision, up to higher education, in all subject areas including art, languages, the humanities and mathematics. It&#039;s also established itself in the world of life-long learning, teachers&#039; CPD and corporate training. &lt;br /&gt;
&lt;br /&gt;
==We have all our stuff on *******, it’s just not worth the hassle of switching to Moodle==&lt;br /&gt;
The switch may not be that much of a hassle, as Moodle will happily import content in a wide range of standard formats, including SCORM. There are an increasing number of Further and Higher Education institutions that are making the move.&lt;br /&gt;
&lt;br /&gt;
Pedagogically, there&#039;s much to be gained from moving to a VLE which puts social, collaborative learning at the centre, and acknowledges the vital role that learners have to play, as well as providing teachers with the tools that they need to build effective on-line learning communities, rather than just presenting resources and activities. &lt;br /&gt;
&lt;br /&gt;
From a financial perspective, the costs involved in switching to Moodle should be quickly recouped through savings in licence fees.&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[es:Los 10 mitos de Moodle]]&lt;br /&gt;
[[zh:Moodle十大流言]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Authentication&amp;diff=16935</id>
		<title>MoodleDocs:Authentication</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Authentication&amp;diff=16935"/>
		<updated>2006-10-12T04:22:14Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add zh link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MoodleDocs development}}&lt;br /&gt;
&lt;br /&gt;
MoodleDocs now authenticates against [http://moodle.org/ moodle.org] i.e. your moodle.org username and password are required to login to MoodleDocs.&lt;br /&gt;
&lt;br /&gt;
==Full name usage==&lt;br /&gt;
&lt;br /&gt;
When you first login to MoodleDocs, a check will be performed to determine whether your full name already exists. If so, you will be allocated a full name suffixed with 2 (or 3, 4 etc.).&lt;br /&gt;
&lt;br /&gt;
==User page redirects==&lt;br /&gt;
&lt;br /&gt;
If you have made a number of contributions to MoodleDocs prior to the authentication change, you may wish to redirect your old user and talk pages to your permanent user and talk pages. If so, please copy the text then add a redirect to your old user and talk pages using &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[User:Full name]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#REDIRECT [[User talk:Full name]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Profile updates==&lt;br /&gt;
&lt;br /&gt;
Please note that you may update your email address via your moodle.org profile page and the change will be reflected in MoodleDocs. However, if you update your full name then the change will NOT be reflected in MoodleDocs.&lt;br /&gt;
&lt;br /&gt;
==Bugs==&lt;br /&gt;
&lt;br /&gt;
Please report any MoodleDocs authentication bugs in the [http://moodle.org/bugs/ Moodle bug tracker], selecting the component &amp;quot;documentation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:MoodleDocs|Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Autenticación]]&lt;br /&gt;
[[zh:MoodleDocs:认证]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Viewing_an_assignment&amp;diff=16743</id>
		<title>Viewing an assignment</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Viewing_an_assignment&amp;diff=16743"/>
		<updated>2006-10-08T12:27:19Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add zh link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Assignments}}&lt;br /&gt;
&lt;br /&gt;
Viewing/submitting an assignment you will see the assignment name and its description with the &#039;View x submitted assignments&#039; link (where &#039;x&#039; is the number of assignments submitted) and the opening/closing dates and hours (&#039;Available from&#039; and &#039;Due date&#039;) of a given assignment. What&#039;s (and if there is anything) below depends on the type of assignment. &lt;br /&gt;
&lt;br /&gt;
* In the Offline activity assignment there are no additional options. &lt;br /&gt;
&lt;br /&gt;
* In the Online text assignment you will also see your assignment submission (if you have done so) with the Edit my submission option as well as the Feedback from the Teacher field. &lt;br /&gt;
&lt;br /&gt;
* In the Upload a single file assignment, you can go for the Upload a file option, the execution of which demands using the Browse link allowing you to choose the file on your computer you wish to be uploaded.&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[zh:查看作业]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Question_bank&amp;diff=16560</id>
		<title>Question bank</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Question_bank&amp;diff=16560"/>
		<updated>2006-10-03T05:22:05Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questions}}&lt;br /&gt;
{{Moodle 1.6}}&lt;br /&gt;
This feature allows a teacher to create, preview, and edit questions in a course question bank, a database of questions. These questions can then be used in any supported course activity such as [[Quizzes]] and certain types imported into [[Lesson module|lessons]]. The teacher enters the question bank by creating or editing a quiz activity or through the Administration block [[Image:Question Icon Administration Block.JPG]]&lt;br /&gt;
&lt;br /&gt;
The initial quiz edit page has tabs that allow you (as teacher) to edit questions, [[Question categories|categories]], [[Import questions|import questions]] and [[Export questions|export questions]].&lt;br /&gt;
[[Image:Quiz_edit_tabs.JPG]] &lt;br /&gt;
==Select a category==&lt;br /&gt;
Questions are organised into categories. Initially each course has only one category called &amp;quot;Default&amp;quot;. It is good practice to create more categories to organize your questions. You can create a hierarchy of categories because you can create subcategories inside parent categories. To add or edit categories click on the &amp;quot;[[Question categories|Categories]]&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
The question editing screen shows the questions from the currently selected category. You choose this category from the &#039;&#039;&#039;Category:&#039;&#039;&#039; drop-down menu. Using the tick box below that menu you determine whether to also show the questions from all subcategories.&lt;br /&gt;
&lt;br /&gt;
==Add a new question==&lt;br /&gt;
#From the &#039;&#039;&#039;Category:&#039;&#039;&#039; drop-down menu, select a category you want to add a question to.&lt;br /&gt;
#The area below the category will then display the question creation block.&lt;br /&gt;
#Select the question type you want to create from the &#039;&#039;&#039;Create new question&#039;&#039;&#039; drop-down menu.&lt;br /&gt;
#Fill in the form for the question type you are creating. &lt;br /&gt;
#Click Save Changes at the bottom of the form. &lt;br /&gt;
Each [[Question types|question type]] has its own form and has its own options.&lt;br /&gt;
&lt;br /&gt;
==Preview, Edit, Delete, and Move==&lt;br /&gt;
The first column in the list of questions contains a number of icons and a selection box.&lt;br /&gt;
&lt;br /&gt;
Clicking on the &#039;&#039;&#039;Preview&#039;&#039;&#039; icon will open a preview window in which you can test the question. The &#039;&#039;&#039;Edit&#039;&#039;&#039; icon allows you to edit the question via the same form that you used to create it. The &#039;&#039;&#039;Delete&#039;&#039;&#039; icon deletes the question, provided it is not already in use in some activity. The selection box allows you to select a subset of questions that you can then move to another category using the controls below the list of questions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Put the answer into the question name so you can quickly see the answers when students are asking for answers. This is especially useful if you&#039;re dealing with large sets of questions! (No option yet for viewing category or answer of question in the list of questions.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[Category:Question]]&lt;br /&gt;
[[Category:Quiz]]&lt;br /&gt;
&lt;br /&gt;
[[es:Preguntas]]&lt;br /&gt;
[[ja:問題]]&lt;br /&gt;
[[zh:题库]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Question_bank&amp;diff=16559</id>
		<title>Question bank</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Question_bank&amp;diff=16559"/>
		<updated>2006-10-03T05:21:37Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questions}}&lt;br /&gt;
{{Moodle 1.6}}&lt;br /&gt;
This feature allows a teacher to create, preview, and edit questions in a course question bank, a database of questions. These questions can then be used in any supported course activity such as [[Quizzes]] and certain types imported into [[Lesson module|lessons]]. The teacher enters the question bank by creating or editing a quiz activity or through the Administration block [[Image:Question Icon Administration Block.JPG]]&lt;br /&gt;
&lt;br /&gt;
The initial quiz edit page has tabs that allow you (as teacher) to edit questions, [[Question categories|categories]], [[Import questions|import questions]] and [[Export questions|export questions]].&lt;br /&gt;
[[Image:Quiz_edit_tabs.JPG]] &lt;br /&gt;
==Select a category==&lt;br /&gt;
Questions are organised into categories. Initially each course has only one category called &amp;quot;Default&amp;quot;. It is good practice to create more categories to organize your questions. You can create a hierarchy of categories because you can create subcategories inside parent categories. To add or edit categories click on the &amp;quot;[[Question categories|Categories]]&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
The question editing screen shows the questions from the currently selected category. You choose this category from the &#039;&#039;&#039;Category:&#039;&#039;&#039; drop-down menu. Using the tick box below that menu you determine whether to also show the questions from all subcategories.&lt;br /&gt;
&lt;br /&gt;
==Add a new question==&lt;br /&gt;
#From the &#039;&#039;&#039;Category:&#039;&#039;&#039; drop-down menu, select a category you want to add a question to.&lt;br /&gt;
#The area below the category will then display the question creation block.&lt;br /&gt;
#Select the question type you want to create from the &#039;&#039;&#039;Create new question&#039;&#039;&#039; drop-down menu.&lt;br /&gt;
#Fill in the form for the question type you are creating. &lt;br /&gt;
#Click Save Changes at the bottom of the form. &lt;br /&gt;
Each [[Question types|question type]] has its own form and has its own options.&lt;br /&gt;
&lt;br /&gt;
==Preview, Edit, Delete, and Move==&lt;br /&gt;
The first column in the list of questions contains a number of icons and a selection box.&lt;br /&gt;
&lt;br /&gt;
Clicking on the &#039;&#039;&#039;Preview&#039;&#039;&#039; icon will open a preview window in which you can test the question. The &#039;&#039;&#039;Edit&#039;&#039;&#039; icon allows you to edit the question via the same form that you used to create it. The &#039;&#039;&#039;Delete&#039;&#039;&#039; icon deletes the question, provided it is not already in use in some activity. The selection box allows you to select a subset of questions that you can then move to another category using the controls below the list of questions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Put the answer into the question name so you can quickly see the answers when students are asking for answers. This is especially useful if you&#039;re dealing with large sets of questions! (No option yet for viewing category or answer of question in the list of questions.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[Category:Question]]&lt;br /&gt;
[[Category:Quiz]]&lt;br /&gt;
&lt;br /&gt;
[[es:Preguntas]]&lt;br /&gt;
[[ja:問題]]&lt;br /&gt;
[[zh:题目]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=LDAP_authentication&amp;diff=16551</id>
		<title>LDAP authentication</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=LDAP_authentication&amp;diff=16551"/>
		<updated>2006-10-02T13:26:26Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how to set up LDAP authentication in Moodle. You can find a [[#Basic Scenario|Basic Scenario]], where everything is simple and straightforward, and that should be enough for most installations. If your installation is a little bigger and you are using multiple LDAP servers, or multiple locations (contexts) for your users in your LDAP tree, then have a look at the [[#Advanced Scenarios|Advanced Scenarios]].&lt;br /&gt;
&lt;br /&gt;
==Basic Scenario==&lt;br /&gt;
&lt;br /&gt;
===Assumptions===&lt;br /&gt;
&lt;br /&gt;
# Your Moodle site is located at &#039;&#039;&#039;http://your.moodle.site/&#039;&#039;&#039;&lt;br /&gt;
# You have configured your PHP installation with the LDAP extension. It is loaded and activated, and it shows when you go to &#039;&#039;&#039;http://your.moodle.site/admin/phpinfo.php&#039;&#039;&#039; (logged in as user &#039;admin&#039;).&lt;br /&gt;
# Your LDAP server has &#039;&#039;&#039;192.168.1.100&#039;&#039;&#039; as its IP address.&lt;br /&gt;
# You are not using LDAP with SSL (also known as LDAPS) in your settings. This might prevent certain operations from working (e.g., you cannot update data if you are using MS Active Directory -- MS-AD from here on --), but should be OK if you just want to authenticate your users.&lt;br /&gt;
# You don&#039;t want your users to change their passwords the first time they log in into Moodle.&lt;br /&gt;
# You are using a single domain as the source of your authentication data in case you are using MS-AD (more on this in the Appendices).&lt;br /&gt;
# You are using a top level distinguished name (DN) of &#039;&#039;&#039;dc=my,dc=organization,dc=domain&#039;&#039;&#039; as the root of your LDAP tree. &lt;br /&gt;
# You have a non-privileged LDAP user account you will use to bind to the LDAP server. This is not necessary with certain LDAP servers, but MS-AD requires this and it won&#039;t hurt if you use it even if your LDAP server doesn&#039;t need it. Make sure &#039;&#039;&#039;this account and its password don&#039;t expire&#039;&#039;&#039;, and make this password as strong as possible. Remember you only need to type this password once, when configuring Moodle, so don&#039;t be afraid of making it as hard to guess as possible. Let&#039;s say this user account has a DN of &#039;&#039;&#039;cn=ldap-user,dc=my,dc=organization,dc=domain&#039;&#039;&#039;, and password &#039;&#039;&#039;hardtoguesspassword&#039;&#039;&#039;.&lt;br /&gt;
# All of your Moodle users are in an organizational unit (OU) called &#039;&#039;&#039;moodleusers&#039;&#039;&#039;, which is right under your LDAP root. That OU has a DN of &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039;.&lt;br /&gt;
# You &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want your LDAP users&#039; passwords to be stored in Moodle at all.&lt;br /&gt;
&lt;br /&gt;
===Configuring Moodle authentication===&lt;br /&gt;
&lt;br /&gt;
Log in as an admin user and go to Administration &amp;gt;&amp;gt; Users &amp;gt;&amp;gt; Authentication. In the drop down listbox titled  &amp;quot;Choose an authentication method&amp;quot; select &amp;quot;Use an LDAP Server&amp;quot;. You will get a page similar to this one:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::: [[Image:auth_ldap_config_screenshot.jpg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you just have to fill in the values. Let&#039;s go step by step.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| ldap_host_url&lt;br /&gt;
| As the IP of your LDAP server is 192.168.1.100, type &amp;quot;&#039;&#039;&#039;ldap://192.168.1.100&#039;&#039;&#039;&amp;quot; (without the quotes).&lt;br /&gt;
|-&lt;br /&gt;
| ldap_version&lt;br /&gt;
| Unless you are using a really old LDAP server, &#039;&#039;&#039;version 3&#039;&#039;&#039; is the one you should choose.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_preventpassindb&lt;br /&gt;
| As you &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want to store the users&#039;s password in Moodle&#039;s database, choose &#039;&#039;&#039;Yes&#039;&#039;&#039; here.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_bind_dn&lt;br /&gt;
| This is the distinguished name of the bind user defined above. Just type &amp;quot;&#039;&#039;&#039;cn=ldap-user,dc=my,dc=organization,dc=domain&#039;&#039;&#039;&amp;quot; (without the quotes).&lt;br /&gt;
|-&lt;br /&gt;
| ldap_bind_pw&lt;br /&gt;
| This is the bind user password defined above. Type &amp;quot;&#039;&#039;&#039;hardtoguesspassword&#039;&#039;&#039;&amp;quot; (without the quotes).&lt;br /&gt;
|-&lt;br /&gt;
| ldap_user_type&lt;br /&gt;
| Choose: &lt;br /&gt;
* &#039;&#039;&#039;Novel Edirectory&#039;&#039;&#039; if your LDAP server is running Novell&#039;s eDdirectory.&lt;br /&gt;
* &#039;&#039;&#039;posixAccount (rfc2307)&#039;&#039;&#039; if your LDAP server is running a RFC-2307 compatible LDAP server (choose this is your server is running OpenLDAP).&lt;br /&gt;
* &#039;&#039;&#039;posixAccount (rfc2307bis)&#039;&#039;&#039; if your LDAP server is running a RFC-2307bis compatible LDAP server.&lt;br /&gt;
* &#039;&#039;&#039;sambaSamAccount (v.3.0.7)&#039;&#039;&#039; if your LDAP server is running with SAMBA&#039;s 3.x LDAP schema extension and you want to use it.&lt;br /&gt;
* &#039;&#039;&#039;MS ActiveDirectory&#039;&#039;&#039; if your LDAP server is running Microsoft&#039;s Active Directory (MS-AD)&lt;br /&gt;
|-&lt;br /&gt;
| ldap_contexts&lt;br /&gt;
| The DN of the context (container) where all of your Moodle users are found. Type &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; here.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_search_sub&lt;br /&gt;
| If you have any sub organizational units (subcontexts) hanging from &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; and you want Moodle to search there too, set this to &#039;&#039;&#039;yes&#039;&#039;&#039;. Otherwise, set this to &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_opt_deref&lt;br /&gt;
| Sometimes your LDAP server will tell you that the real value you are searching for is in fact in another part of the LDAP tree (this is called an alias). If you want Moodle to &#039;dereference&#039; the alias and fetch the real value from the original location, set this to &#039;&#039;&#039;yes&#039;&#039;&#039;. If you don&#039;t want Moodle to dereference it, set this to &#039;&#039;&#039;no&#039;&#039;&#039;. If you are using MS-AD, set this to &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_user_attribute&lt;br /&gt;
| The attribute used to name/search users in your LDAP tree. This option takes a default value based on the &#039;&#039;ldap_user_type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
By the way, it&#039;s usually &#039;&#039;&#039;cn&#039;&#039;&#039; (Novell eDirectory and MS-AD) or &#039;&#039;&#039;uid&#039;&#039;&#039; (RFC-2037, RFC-2037bis and SAMBA 3.x LDAP extension), but if you are using MS-AD you could use &#039;&#039;&#039;sAMAccountName&#039;&#039;&#039; (the pre-Windows 2000 logon account name) if you need too.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_memberattribute&lt;br /&gt;
| The attribute used to list the members of a given group. This option takes a default value based on the &#039;&#039;ldap_user_type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By the way, the usual values are &#039;&#039;&#039;member&#039;&#039;&#039; and &#039;&#039;&#039;memberUid&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_objectclass&lt;br /&gt;
| The type of LDAP object used to search for users. This option takes a default value based on the &#039;&#039;ldap_user_type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the default values for each of the &#039;&#039;ldap_user_type&#039;&#039; values:&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039; for Novel eDirectory&lt;br /&gt;
* &#039;&#039;&#039;posixAccount&#039;&#039;&#039; for RFC-2037 and RFC-2037bis&lt;br /&gt;
* &#039;&#039;&#039;sambaSamAccount&#039;&#039;&#039; for SAMBA 3.0.x LDAP extension&lt;br /&gt;
* &#039;&#039;&#039;user&#039;&#039;&#039; for MS-AD&lt;br /&gt;
|-&lt;br /&gt;
| Force change password&lt;br /&gt;
| Set this to &#039;&#039;Yes&#039;&#039; if you want to force your users to change their password on the first login into Moodle. Otherwise, set this to &#039;&#039;no&#039;&#039;. Bear in mind the password they are forced to change is the one stored in your LDAP server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;As you don&#039;t want your users to change their passwords in their first login, leave this set to &#039;&#039;No&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Use standard Change Password Page&lt;br /&gt;
|&lt;br /&gt;
* Setting this to &#039;&#039;Yes&#039;&#039; makes Moodle use it&#039;s own standard password change page, everytime users want to change their passwords.&lt;br /&gt;
* Setting this to &#039;&#039;No&#039;&#039; makes Moodle use the the page specified in the field called &amp;quot;Change password URL&amp;quot; (at the bottom of the configuration page).&lt;br /&gt;
&lt;br /&gt;
Bear in mind that changing your LDAP passwords from Moodle might require a LDAPS connection (this is true at least for MS-AD).&lt;br /&gt;
&lt;br /&gt;
Also, code for changing passwords from Moodle for anything but Novell eDirectory is almost not tested, so this may or may not work for other LDAP servers.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_expiration&lt;br /&gt;
| &lt;br /&gt;
* Setting this to &#039;&#039;No&#039;&#039; will make Moodle not to check if the password of the user has expired or not.&lt;br /&gt;
* Setting this to &#039;&#039;LDAP&#039;&#039; will make Moodle check if the LDAP password of the user has expired or not, and warn her a number of days before the password expires.&lt;br /&gt;
&lt;br /&gt;
Current code only deals with Novell eDirectory LDAP server, but there is a patch floating around to make it work with MS-AD too (search in the authentication forum).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So unless you have Novell eDirectory server (or use the patch), choose &#039;&#039;No&#039;&#039; here.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ldap_expiration_warning&lt;br /&gt;
| This value sets how many days in advance of password expiration the user is warned that her password is about to expire.&lt;br /&gt;
|-&lt;br /&gt;
| ldap_exprireattr&lt;br /&gt;
| The LDAP user attribute used to check password expiration. This option takes a default value based on the &#039;&#039;ldap_user_type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ldap_gracelogins&lt;br /&gt;
| This setting is specific to Novell eDirectory. If set to &#039;&#039;Yes&#039;&#039;, enable LDAP gracelogin support. After password has expired the user can login until gracelogin count is 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So unless you have Novell eDirectory server and want to allow gracelogin support, choose &#039;&#039;No&#039;&#039; here.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ldap_graceattr&lt;br /&gt;
| This setting is currently not used in the code (and is specific to Novell eDirectory). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ldap_create_context&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ldap_creators&lt;br /&gt;
| The DN of the group that contains all of your Moodle creators. This is typically a posixGroup with a &amp;quot;memberUid&amp;quot; attribute for each user you want to be a creator.  If your group is called &#039;&#039;creators&#039;&#039;, type &#039;&#039;&#039;cn=creators,ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; here.  Each memberUid attribute contains the CN of a user who is authorized to be a creator.  Do not use the user&#039;s full DN (e.g.,  not &#039;&#039;&#039;memberUid: cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain&#039;&#039;&#039;, but rather &#039;&#039;&#039;memberUid: JoeTeacher&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
In eDirectory, the objectClass for a group is (by default) not &#039;&#039;&#039;posixGroup&#039;&#039;&#039; but &#039;&#039;&#039;groupOfNames,&#039;&#039;&#039; whose member attribute is &#039;&#039;&#039;member,&#039;&#039;&#039; not &#039;&#039;&#039;memberUid,&#039;&#039;&#039; and whose value is the full DN of the user in question.  Although you can probably modify Moodle&#039;s code to use this field, a better solution is just to add a new &#039;&#039;&#039;objectClass&#039;&#039;&#039; attribute of &#039;&#039;&#039;posixGroup&#039;&#039;&#039; to your creators group and put the CNs for each creator in a &#039;&#039;&#039;memberUid&#039;&#039;&#039; attribute.&lt;br /&gt;
&lt;br /&gt;
In MS Active Directory, you will need to create a security group for your creators to be part of and then add them all. If your ldap context above is &#039;ou=staff,dc=my,dc=org&#039; then your group should then be &#039;cn=creators,ou=staff,dc=my,dc=org&#039;. If some of the users are from other contexts and have been added to the same security group, you&#039;ll have to add these as separate contexts after the first one using the same format.&lt;br /&gt;
|-&lt;br /&gt;
| First name&lt;br /&gt;
| The name of the attribute that holds the first name of your users in your LDAP server. This is usually &#039;&#039;&#039;givenName&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Surname&lt;br /&gt;
| The name of the attribute that holds the surname of your users in your LDAP server. This is usually &#039;&#039;&#039;sn&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email address&lt;br /&gt;
| The name of the attribute that holds the email address of your users in your LDAP server. This is usually &#039;&#039;&#039;mail&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone 1&lt;br /&gt;
| The name of the attribute that holds the telephone number of your users in your LDAP server. This is usually &#039;&#039;&#039;telephoneNumber&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone 2&lt;br /&gt;
|  The name of the attribute that holds an additional telephone number of your users in your LDAP server. This can be &#039;&#039;&#039;homePhone&#039;&#039;&#039;, &#039;&#039;&#039;mobile&#039;&#039;&#039;, &#039;&#039;&#039;pager&#039;&#039;&#039;, &#039;&#039;&#039;facsimileTelephoneNumber&#039;&#039;&#039; or even others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Department&lt;br /&gt;
| The name of the attribute that holds the department name of your users in your LDAP server. This is usully &#039;&#039;&#039;departmentNumber&#039;&#039;&#039; (for posixAccount and maybe eDirectory) or &#039;&#039;&#039;department&#039;&#039;&#039; (for MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Address&lt;br /&gt;
| The name of the attribute that holds the street address of your users in your LDAP server. This is usully &#039;&#039;&#039;streetAddress&#039;&#039;&#039; or &#039;&#039;&#039;street&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| City/town&lt;br /&gt;
| The name of the attribute that holds the city/town of your users in your LDAP server. This is usully &#039;&#039;&#039;l&#039;&#039;&#039; (lowercase L) or &#039;&#039;&#039;localityName&#039;&#039;&#039; (not valid in MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Country&lt;br /&gt;
| The name of the attribute that holds the couuntry of your users in your LDAP server. This is usully &#039;&#039;&#039;c&#039;&#039;&#039; or &#039;&#039;&#039;countryName&#039;&#039;&#039; (not valid in MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| &#039;&#039;&#039;description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ID Number&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Language&lt;br /&gt;
| &#039;&#039;&#039;preferredLanguage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Instructions&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rest of the fields are common to all authentication methods and will not be discussed here.&lt;br /&gt;
&lt;br /&gt;
==Advanced Scenarios==&lt;br /&gt;
&lt;br /&gt;
===Using multiple LDAP Servers===&lt;br /&gt;
Entering more than one name in the ldap_host_url field can provide some sort of resilience to your system. Simply use the syntax :&lt;br /&gt;
ldap://my.first.server ; ldap://my.second.server ; ...&lt;br /&gt;
&lt;br /&gt;
Of course, this will only work if all the servers share the same directory information, using a replication or synchronization mecanism once introduced in eDirectory and now generalized to the main LDAP-compatible directories.&lt;br /&gt;
&lt;br /&gt;
There is one drawback in Moodle 1.5 - 1.6 implementation of LDAP authentication : the auth_ldap_connect() function processes the servers sequentially, not in a round robin mode. Thus, if the primary server fails, you will have to wait for the connection to time out before switching to the following one.&lt;br /&gt;
&lt;br /&gt;
===Using multiple user locations (contexts) in your LDAP tree===&lt;br /&gt;
There is no need to use multiple user locations if your directory tree is flat, i.e. if all user accounts reside in a &#039;&#039;&#039;ou=people,dc=my,dc=organization,dc=domain&#039;&#039;&#039; or &#039;&#039;&#039;ou=people,o=myorg&#039;&#039;&#039; container. &lt;br /&gt;
&lt;br /&gt;
At the opposite, if you use the ACL mecanism to delegate user management, there are chances that your users will be stored in containers like &#039;&#039;&#039;ou=students,ou=dept1,o=myorg&#039;&#039;&#039; and &#039;&#039;&#039;ou=students,ou=dept2,o=myorg&#039;&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
Then there is an alternative :&lt;br /&gt;
* Look at the &#039;&#039;&#039;o=myorg&#039;&#039;&#039; level with the ldap_search_sub attribute set to &#039;&#039;&#039;yes&#039;&#039;&#039;.&lt;br /&gt;
* Set the ldap_context to &#039;&#039;&#039;ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Choosing between these two solutions supposes some sort of benchmarking, as the result depends heavily on the structure of your directory tree &#039;&#039;&#039;and&#039;&#039;&#039; on your LDAP software indexing capabilities. Simply note that there is a probability in such deep trees that two users share the same &#039;&#039;common name&#039;&#039; (cn), while having different &#039;&#039;distinguished names&#039;&#039;. Then only the second solution will have a deterministic result (returning allways the same user).&lt;br /&gt;
&lt;br /&gt;
===Using LDAPS (LDAP + SSL)===&lt;br /&gt;
====MS Active Directory + SSL ====&lt;br /&gt;
&lt;br /&gt;
If the Certificate Authority is not installed you&#039;ll have to install it first as follows:&lt;br /&gt;
# Click &#039;&#039;&#039;Start&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Control Panel&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Add or Remove programs.&#039;&#039;&#039;&lt;br /&gt;
# Click &#039;&#039;&#039;Add/Remove Windows Components&#039;&#039;&#039; and select &#039;&#039;&#039;Certificate Services.&#039;&#039;&#039;&lt;br /&gt;
# Follow the procedure provided to install the &#039;&#039;&#039;Certificate Authority&#039;&#039;&#039;. Enterprise level is a good choice.&lt;br /&gt;
&lt;br /&gt;
Verify that SSL has been enabled on the server by installing suptools.msi from Windows installation cd&#039;s \Support\tools directory. After support tools installation:&lt;br /&gt;
# Select &#039;&#039;&#039;Start&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Run&#039;&#039;&#039;, write &#039;&#039;&#039;ldp&#039;&#039;&#039; in the Open field.&lt;br /&gt;
# From the ldp window select &#039;&#039;&#039;Connection&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Connect&#039;&#039;&#039; and supply valid hostname and port number &#039;&#039;&#039;636&#039;&#039;&#039;. Also select the SSL check box.&lt;br /&gt;
&lt;br /&gt;
If successful, you should get information about the connection.&lt;br /&gt;
&lt;br /&gt;
Next step is to tell PHP&#039;s OpenLDAP extension to disable SSL certificate checking. On Windows servers you&#039;re most likely using pre-compiled PHP version, where you must create a path &#039;&#039;C:\OpenLDAP\sysconf&#039;&#039;. In this path create a file called &amp;quot;ldap.conf&amp;quot; with content:&lt;br /&gt;
&lt;br /&gt;
 TLS_REQCERT never.&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use &#039;&#039;&#039;ldaps://&#039;&#039;&#039; when connecting to MS-AD.&lt;br /&gt;
&lt;br /&gt;
==Appendices==&lt;br /&gt;
&lt;br /&gt;
===Child Domains and the Global Catalog in MS Active Directory===&lt;br /&gt;
&lt;br /&gt;
Moodle currently only has limited support for multiple domain controllers; specifically it expects each of the LDAP servers listed to contain identical sets of information. If you have users in multiple domains this presents an issue. One solution when working with MS-AD is to use the Global Catalog. The Global Catalog is designed to be a read-only, partial representation of an entire MS-AD forest, designed for searching the entire directory when the domain of the required object is not known.&lt;br /&gt;
&lt;br /&gt;
For example your organisation has a main domain example.org, staff and students are contained in two child domains staff.example.org and students.example.org. The 3 domains (example.org, staff.example.org and students.example.org) each have a domain controller (dc01, dc02 and dc03 respectively.) Each domain controller contains a full, writable, representation of only the objects that belong to its domain. However, assuming that the Global Catalog has been enabled (see below) on one of the domain controllers (for example dc01) a query to the Global Catalog would reveal matching objects from all three domains. The Global Catalog is automatically maintained through replication across the active directory forest, it can also be enabled on multiple servers (if, for example, you need redundancy / load balancing.)&lt;br /&gt;
&lt;br /&gt;
To make use of this in Moodle to allow logins from multiple domains is simple. The Global Catalog runs on port 3268 as opposed to 389 for standard LDAP queries. As a result, still assuming the Global Catalog is running on dc01, the &#039;&#039;&#039;&#039;ldap_host_url&#039;&#039;&#039;&#039; would be &#039;&#039;ldap://dc01.example.org:3268&#039;&#039;. The rest of the settings are the same as for other MS-AS Auth setups.&lt;br /&gt;
&lt;br /&gt;
You should use the &#039;&#039;&#039;&#039;ldap_contexts&#039;&#039;&#039;&#039; setting to indicate the locations of individuals you wish to grant access. To extend the example above a little: In the example.org domain users are all in the&#039;&#039; &#039;Users&#039; &#039;&#039;OU, in the staff.example.org domain users are in two OUs at the root of the domain,&#039;&#039; &#039;Support Staff&#039; &#039;&#039;and&#039;&#039; &#039;Teaching Staff&#039; &#039;&#039;, and in the students.example.org domain students are in an OU indicating the year that they enrolled, all of which are under the&#039;&#039; &#039;Students&#039; &#039;&#039;OU. As a result our &#039;&#039;&#039;&#039;ldap_contexts&#039;&#039;&#039;&#039; setting may look a little like this:&#039;&#039; &#039;OU=Users,DC=example,DC=org; OU=Support Staff,DC=staff,DC=example,DC=org; OU=Teaching Staff,DC=staff,DC=example,DC=org; OU=Students,DC=students,DC=example,DC=org&#039;&#039;.&#039; The &#039;&#039;&#039;&#039;ldap_search_sub&#039;&#039;&#039;&#039; option should be set to&#039;&#039; &#039;Yes&#039; &#039;&#039;to allow moodle to search within the child OUs.&lt;br /&gt;
&lt;br /&gt;
Its worth noting that the Global Catalog only contains a partial representation of the attributes of each object, as defined in the Partial Attribute Set supplied by Microsoft. However common information likely to be of use to a general Moodle installation (Forename, Surname, Email Address, sAMAccountName etc) is included in the set. For specific needs the schema can be altered to remove or add various attributes.&lt;br /&gt;
&lt;br /&gt;
In most cases the Global Catalog is read-only, update queries must be made over the standard LDAP ports to the domain controller that holds the object in question (in our example, updating a student&#039;s details would require an LDAP query to the students.example.org domain controller - dc03, it would not be possible to update details by querying the Global Catalog.) The exception to this would be in an environment where there is only a single domain in the active directory forest; in this case the Global Catalog holds a writable full set of attributes for each object in the domain. However, for the purposes of Moodle authorisation, there would be no need to use the Global Catalog in this case.&lt;br /&gt;
&lt;br /&gt;
====Enabling the Global Catalog====&lt;br /&gt;
&lt;br /&gt;
The Global Catalog is available on Windows 2000 and Windows 2003 Active Directory servers. To enable, open the ‘Active Directory Sites and Services’ MMC (Microsoft Management Console) snap-in. Extend ‘Sites’ and then the name of the Site containing the active directory forest you wish to use. Expand the server you wish to enable the Global Catalog on, right click ‘NTDS settings’ and select the ‘Properties’ tab. To enable, simply click the ‘Global Catalog’ checkbox. Under a Windows 2000 server it is necessary to restart the server (although it won’t prompt you to); under Windows 2003 server it is not necessary to restart the server. In either case you will generally have to wait for the AD forest to replicate before the Global Catalog offers a representation of the entire AD forest. Changes made in Active Directory will also be subject to a short delay due to the latency involved with replication. If your AD servers are firewalled port 3268 will need to be opened for Global Catalog servers.&lt;br /&gt;
If your organisation uses Microsoft Exchange then it its highly likely that at least one Domain Controller will already have Global Catalog enabled – Exchange 2000 and 2003 rely on the Global Catalog for address information, users also access the Global Catalog when using the GAL (Global Address List)&lt;br /&gt;
&lt;br /&gt;
====ldap auth_user_create() only suports Novell====&lt;br /&gt;
&lt;br /&gt;
After configuring user authentication with ldap I realized ldap only support edir (Novell) when combining ldap an email user confirmation. For example in my case (I use openldap) I have the following error after filling the user form:&lt;br /&gt;
&lt;br /&gt;
auth: ldap auth_user_create() does not support selected usertype:&amp;quot;rfc2307&amp;quot; (..yet)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.org/mod/forum/view.php?id=42 Using Moodle: User authentication] forum&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=32168 PHP LDAP module does not seem to be present] forum discussion&lt;br /&gt;
* [[LDAP enrolment]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[zh:LDAP认证]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Assignment_activity&amp;diff=16549</id>
		<title>Assignment activity</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Assignment_activity&amp;diff=16549"/>
		<updated>2006-10-02T10:19:53Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Assignments}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assignments&#039;&#039;&#039; allow the teacher to grade various types of student submissions.&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
Moodle supports plug-in assignment types.&lt;br /&gt;
&lt;br /&gt;
===Official types===&lt;br /&gt;
There are three official types:&lt;br /&gt;
&lt;br /&gt;
;Upload&lt;br /&gt;
:A student can upload a single file. This could be a Word document, spreadsheet or anything digital. Multiple files could be zipped and then submitted.&lt;br /&gt;
;Online Text&lt;br /&gt;
:This assignment type asks users to edit a text, using the normal editing tools. Teachers can grade them online, and even add inline comments or changes.&lt;br /&gt;
;Offline assignment&lt;br /&gt;
:This is useful when the assignment is performed outside of Moodle. It could be something elsewhere on the web or face-to-face. Students can see a description of the assignment, but can&#039;t upload files or anything. Grading works normally, and students will get notifications of their grades.&lt;br /&gt;
&lt;br /&gt;
===Contrib modules===&lt;br /&gt;
These assignment types have been contributed by users:&lt;br /&gt;
&lt;br /&gt;
;[http://moodle.org/mod/forum/discuss.php?d=30613 Group Assignment] (by Patrick Jermann)&lt;br /&gt;
:One user uploads the file but all the members of his or her group &amp;quot;benefit&amp;quot; from the submission.&lt;br /&gt;
&lt;br /&gt;
;[http://moodle.org/mod/forum/discuss.php?d=33940 uploadmulti] (by Brian Jones)&lt;br /&gt;
:Allows uploading multiple files.&lt;br /&gt;
&lt;br /&gt;
;[http://moodle.org/mod/forum/discuss.php?d=39979 Multiple Files Upload] (by Gustav W Delius)&lt;br /&gt;
:Allows uploading multiple files.&lt;br /&gt;
&lt;br /&gt;
;[http://cdc.humboldt.edu/moodle/mod/resource/view.php?id=21 Review assignment] (by Humboldt University)&lt;br /&gt;
:A new assignment type that adds the ability to send back to the student a graded copy of their file. For Moodle 1.5.&lt;br /&gt;
&lt;br /&gt;
;[http://moodle.org/mod/forum/discuss.php?d=34887 Form] (by Michael Robellard)&lt;br /&gt;
:allows students to enter information in a form (multiple textarea boxes) and then the teacher can grade each textarea with a number of points (or other grading scale) and give a comment for each form field&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[http://download.moodle.org/docs/using_moodle/ch7_assignments.pdf Using Moodle Chapter 7: Assignments and Exercises]&lt;br /&gt;
&lt;br /&gt;
== Assignment - Read Only Personal Report Access for Students ==&lt;br /&gt;
* Use to provide access to secure personalised student information such as reports.  (Needs to be moved to a seperate page - How ??)&lt;br /&gt;
* Using &amp;quot;Upload a single file&amp;quot; Assignment to provide individual report access for students:&lt;br /&gt;
* Create report files commencing with the moodle user code (easier to create correct &amp;quot;batch&amp;quot; command file with code at start of filename)&lt;br /&gt;
* Create pdf files from all reports (pdf&#039;s with the right security settings reduce the likelihood of tampering with final reports cf. other editable files)&lt;br /&gt;
* Open moodle database table mdl_user and copy the fields id and username to a spreadsheet file for manipulation e.g.&lt;br /&gt;
** 2 admin&lt;br /&gt;
** 3 tsp80902&lt;br /&gt;
** 4 che&lt;br /&gt;
* Use a spreadsheet formula to construct the correct command lines to create a folder with the moodle id and move the file starting with the matching username into the new folder:&lt;br /&gt;
** e.g. for Excel in a Windows environment use :   =&amp;quot;mkdir&amp;quot;&amp;amp;A2&amp;amp;&amp;quot;CarraigeReturn&amp;quot;&amp;amp;&amp;quot;move &amp;quot;&amp;amp;B2&amp;amp;&amp;quot;_2006_MidSem2.pdf &amp;quot;&amp;amp;A2&lt;br /&gt;
** mkdir2CarraigeReturnmove admin_2006_MidSem2.pdf 2&lt;br /&gt;
** mkdir3CarraigeReturnmove tsp80902_2006_MidSem2.pdf 3&lt;br /&gt;
** mkdir4CarraigeReturnmove che_2006_MidSem2.pdf 4&lt;br /&gt;
* Use an editor to replace the &amp;quot;CarraigeReturn&amp;quot; marker with a real carraige return, and insert a space after the &amp;quot;mkdir&amp;quot; command:&lt;br /&gt;
** mkdir 2&lt;br /&gt;
** move admin_2006_MidSem2.pdf 2&lt;br /&gt;
** mkdir 3&lt;br /&gt;
** move tsp80902_2006_MidSem2.pdf 3&lt;br /&gt;
** mkdir 4&lt;br /&gt;
** move che_2006_MidSem2.pdf 4&lt;br /&gt;
* Go to the course where you want to add the documents and note the course id from the URL displayed in the browser:&lt;br /&gt;
** e.g. http://infonet.cheltsec.vic.edu.au/course/view.php?id=5&lt;br /&gt;
* Create an &amp;quot;Upload a single file&amp;quot; Assignment in moodle&lt;br /&gt;
* Upload an marker file for yourself as a test.&lt;br /&gt;
* Update the assignment witht the &amp;quot;available&amp;quot; and &amp;quot;due&amp;quot; dates in the past (so students cannot upload their own amended report !) and check the &amp;quot;Prevent Late Submissions&amp;quot; box.&lt;br /&gt;
* Use a file explorer to go to the moodledata folder and look for this course, then open moddate (module data) and open the last assignment.  You should see a folder created with your id that should contain the marker file that you uploaded.&lt;br /&gt;
* Paste all the files that you want to allow studenst to access in the assignment folder:&lt;br /&gt;
** e.g. \\infonet\c$\Webstore\moodledata\5\moddata\assignment\112&lt;br /&gt;
* Paste the batch file in the dame folder&lt;br /&gt;
* Add a line at the start of the batch file to make it start in the correct physical network folder when it starts making new folders: e.g. &lt;br /&gt;
** net use /d R: &lt;br /&gt;
** net use R: \\infonet\c$\Webstore\moodledata\5\moddata\assignment\125&lt;br /&gt;
** cd /d R:\&lt;br /&gt;
* the final batch command file should look like:&lt;br /&gt;
** net use /d R: &lt;br /&gt;
** net use R: \\infonet\c$\Webstore\moodledata\5\moddata\assignment\125&lt;br /&gt;
** cd /d R:\&lt;br /&gt;
** mkdir 9&lt;br /&gt;
** move bou0010_2006_MidSem2.pdf 9 &lt;br /&gt;
** mkdir 10&lt;br /&gt;
** move wol0002_2006_MidSem2.pdf 10 &lt;br /&gt;
** mkdir 11&lt;br /&gt;
** etc.....&lt;br /&gt;
* Run the batch file, and the folders will be created as if the students had uploaded their own reports themselves.  &lt;br /&gt;
* Open moodle database table mdl_assignment_submissions and copy the database record of your marker file as a template.&lt;br /&gt;
** e.g  id=11823;  assignment=125  userid = 6; timecreated = 1157503128 ;  timemodified = 1157503128 ; numfiles=1 data1=(blank) data2=(blank) grade=-1 comment=(blank) format=0;  teacher=0;  timemarked=0; mailed=0 &lt;br /&gt;
* Paste the record into a spreadsheet and then paste the list of moodle id&#039;s under the userid field;  increment the mdl_assignmnet id by one for every user; fill down the same assignment number and all other fields: e.g.&lt;br /&gt;
** 11823 125 6 1157503128 1157503128 1 -1 0 0 0 0&lt;br /&gt;
** 11824 125 2 1157503128 1157503128 1 -1 0 0 0 0&lt;br /&gt;
** 11825 125 3 1157503128 1157503128 1 -1 0 0 0 0&lt;br /&gt;
** 11826 125 4 1157503128 1157503128 1 -1 0 0 0 0&lt;br /&gt;
** 11827 125 5 1157503128 1157503128 1 -1 0 0 0 0&lt;br /&gt;
** 11828 125 6 1157503128 1157503128 1 -1 0 0 0 0 &lt;br /&gt;
* These records ensure that the database &amp;quot;knows&amp;quot; that there are documents already submitted into the assignment so that students can read but not change the document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[category:Modules]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Devoir]]&lt;br /&gt;
[[nl:Opdracht]]&lt;br /&gt;
[[zh:作业模块]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Language_packs&amp;diff=15616</id>
		<title>Language packs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Language_packs&amp;diff=15616"/>
		<updated>2006-09-09T14:14:55Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.6}}&lt;br /&gt;
Desired language packs may be selected from the list in the right pane and installed directly. Updating the language packs can now easily be done by following the update link.&lt;br /&gt;
&lt;br /&gt;
* the new location for lang files is &#039;&#039;&#039;$CFG-&amp;gt;dataroot/lang&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Upgrading to Moodle 1.6]]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=48492 Language import utility broken] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
[[Category:Language]]&lt;br /&gt;
&lt;br /&gt;
[[zh:语言倒入工具]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Language_editing&amp;diff=15530</id>
		<title>Language editing</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Language_editing&amp;diff=15530"/>
		<updated>2006-09-07T00:24:13Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
== Manage language ==&lt;br /&gt;
{{Moodle 1.6}}&lt;br /&gt;
Moodle 1.6 includes a [[Language import utility]].&lt;br /&gt;
&lt;br /&gt;
== Edit strings ==&lt;br /&gt;
{{Moodle 1.6}}&lt;br /&gt;
Text in Moodle may be changed by editing the language strings, either via Administration &amp;gt;&amp;gt; [[Configuration]] &amp;gt;&amp;gt; Language or directly i.e. in &#039;&#039;moodledata/lang/&#039;&#039;.&lt;br /&gt;
* Click the button &amp;quot;switch&amp;quot; and a local language folder, &#039;&#039;parentlanguage_local&#039;&#039;, will automatically be created in &#039;&#039;moodledata/lang/&#039;&#039;. Files of edited strings will then be saved in this folder.&lt;br /&gt;
* When returning to edit further strings, check that files of edited strings will again be saved to the folder &#039;&#039;parentlanguage_local&#039;&#039;, switching folder if necessary.&lt;br /&gt;
&lt;br /&gt;
==Local language pack==&lt;br /&gt;
Sometimes, you may wish to change the default terms or language strings used in Moodle. For example, you may wish to replace all occurences of &amp;quot;course&amp;quot; with &amp;quot;class.&amp;quot; To ensure that any changes are not overwritten by a new version when upgrading, you need to create your own local language pack as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the &#039;&#039;langconfig.php&#039;&#039; of your language folder (e.g. &#039;&#039;moodledata/lang/parentlanguage_utf8 or lang/en_utf8&#039;&#039;) into a new folder (e.g. &#039;&#039;moodledata/lang/parentlanguage_utf8_local&#039;&#039;). You will need access to the server to achieve this step - it cannot be done from within Moodle.&lt;br /&gt;
* Add a string for parentlanguage to this file, which points to the language which is the most similar to yours (e.g. $string[&#039;&#039;parentlanguage&#039;&#039;] = &#039;&#039;parentlanguage_utf8&#039;&#039;;).&lt;br /&gt;
* Edit only those strings you want to change with the built-in language editor, to be found in Administration &amp;gt;&amp;gt; [[Configuration]] &amp;gt;&amp;gt; Language.&lt;br /&gt;
&lt;br /&gt;
The hierarchy of language packs can support up to three levels, the parent language, a sitewide local language pack, and a course level language pack. Moodle will first look for a string in the course level language pack, and if it does not find it, it will use the sitewide language pack, and then use the parent language string by default.&lt;br /&gt;
&lt;br /&gt;
If you are having trouble figuring out where a particular string you wish to change is located, you will need to perform a search for it. An easy way to do this is to use a program like [http://www.webattack.com/get/amcodesearch.html AM Code Search] which allows you to search for strings inside php files, unlike the Windows search.&lt;br /&gt;
&lt;br /&gt;
==Previous admin/lang==&lt;br /&gt;
{{Moodle 1.5}}&lt;br /&gt;
Text in Moodle may be changed by editing the language strings, either via Administration &amp;gt;&amp;gt; [[Configuration]] &amp;gt;&amp;gt; Language or directly e.g. in &#039;&#039;lang/en&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local language pack&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To ensure that any changes are not overwritten by a new version when upgrading, you need to create your own local language pack as follows:&lt;br /&gt;
&lt;br /&gt;
* Copy the contents of your language folder (e.g. &#039;&#039;lang/en&#039;&#039;) into a new folder (e.g. &#039;&#039;lang/en_local&#039;&#039;) - you will need access to the server to achieve this step, it cannot be done from within Moodle.&lt;br /&gt;
* Make your local language pack the default for the site via Administration &amp;gt;&amp;gt; [[Configuration]] &amp;gt;&amp;gt; [[Variables]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Translation]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=43 Languages] forum&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=49150 Local language] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
[[Category:Language]]&lt;br /&gt;
&lt;br /&gt;
[[es:admin/lang]]&lt;br /&gt;
[[fr:Langue]]&lt;br /&gt;
[[zh:语言]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Scales&amp;diff=15229</id>
		<title>Scales</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Scales&amp;diff=15229"/>
		<updated>2006-09-02T14:58:16Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Course admin}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scales&#039;&#039;&#039; may be used in [[Forums]], [[Glossaries]] (for rating) and [[Assignments]] (for grading). Custom scales can be created where you would like to assign non-numerical or non-numerically assigned lettered grades.&lt;br /&gt;
&lt;br /&gt;
* The interface for creating scales is accessed by clicking the &amp;quot;Scales&amp;quot; link in any course [[Administration block]].&lt;br /&gt;
* Scales may be created for individual courses by Teachers with editing rights or Administrators.&lt;br /&gt;
* Administrators may create site-wide scales by &amp;quot;promoting&amp;quot; a scale created for a course. To achieve this, add a new scale, then use the move down arrow to move the scale from custom scales to standard scales (i.e. site-wide).&lt;br /&gt;
&lt;br /&gt;
==Creating a scale==&lt;br /&gt;
&lt;br /&gt;
If you choose to &#039;&#039;Add a new scale&#039;&#039; from the &#039;&#039;&#039;Scales&#039;&#039;&#039; administration menu, you can create a custom scale for your course.&lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:A recognisable name for your scale that will identify it among other scales.&lt;br /&gt;
&lt;br /&gt;
;Scale&lt;br /&gt;
:Define the options for your scale using comma separated options. For example if you would like two options in your scale (complete and incomplete) type: &#039;&#039;incomplete, complete&#039;&#039;. You can use as many options here as you require. Other examples could include a four option scale &#039;&#039;refer, pass, merit, distinction&#039;&#039; or &#039;&#039;Excellent, Average, Acceptable, Hesitant (Fail)&#039;&#039; depending on your curriculum/course needs.&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
:Explain the methodology and/or purpose of this grading scale if necessary.&lt;br /&gt;
&lt;br /&gt;
==Using a custom scale==&lt;br /&gt;
&lt;br /&gt;
When you create a new graded or rated activity, you should find the name of your scale in the drop-down &#039;&#039;&#039;Grade:&#039;&#039;&#039; option. When you mark the activity you will now be given the options defined in your scale rather than the standard numerical values.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[http://download.moodle.org/docs/using_moodle/ch12_grades.pdf Using Moodle Chapter 12: Grades and Scales]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[Category:Forum]]&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
[[Category:Assignment]]&lt;br /&gt;
&lt;br /&gt;
[[zh:等级]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installing_Moodle&amp;diff=15190</id>
		<title>Installing Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installing_Moodle&amp;diff=15190"/>
		<updated>2006-09-01T12:48:59Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Firstly don&#039;t panic! :-)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This guide explains how to install Moodle for the first time. For some of these steps it goes into a lot of detail to try and cover the majority of possible web server setups, so this page may look long and complicated. Don&#039;t panic, once you know how to do it you can install Moodle in minutes!&lt;br /&gt;
&lt;br /&gt;
If you have problems please read this page carefully - most common issues are answered in here. If you still have trouble, you can seek help from the Moodle community via [http://moodle.org/course/view.php?id=5 moodle.org Using Moodle].&lt;br /&gt;
&lt;br /&gt;
Another option is to contact a [http://moodle.com/hosting/ Moodle Partner providing Moodle hosting] who can completely maintain Moodle for you, so that you can ignore all this and get straight into educating!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
Moodle is primarily developed in Linux using [[Apache]], [[MySQL]] and [[PHP]] (also sometimes known as the LAMP platform), but is also regularly tested with PostgreSQL and on Windows XP, Mac OS X and Netware 6 operating systems.&lt;br /&gt;
&lt;br /&gt;
The requirements for Moodle are as follows:&lt;br /&gt;
&lt;br /&gt;
* Web server software. Most people use [[Apache]], but Moodle should work fine under any web server that supports [[PHP]], such as [[IIS]] on Windows platforms. PHP does impose requirements on versions of web servers, however these are complex and the general advice is to use the newest version possible of your chosen web server. &lt;br /&gt;
* PHP scripting language (version 4.1.0 or later). PHP 5 (version 5.1.0 or later) is supported as of Moodle 1.4. (Please note that there have been issues installing Moodle with [http://www.php-accelerator.co.uk PHP-Accelerator]).  From Moodle version 1.6, the minimum version of PHP will be 4.3.0.&lt;br /&gt;
* a working database server: [[MySQL]] or [[PostgreSQL]] are completely supported and recommended for use with Moodle. MySQL is &#039;&#039;the&#039;&#039; choice for many people because it is very popular, but there are some [[Arguments in favour of PostgreSQL|arguments in favour of PostgreSQL]], especially if you are planning a large deployment. The minimum version of MySql required for Moodle 1.5 is 3.23. Moodle 1.6 requires MySQL 4.1.16 (4.1.12 if you use latin languages only). The minimum version of PostgreSQL is 7.4 and it is widely used with 8.0 and 8.1.&lt;br /&gt;
&lt;br /&gt;
Most web hosts support all of this by default. If you are signed up with one of the few webhosts that does not support these features ask them why, and consider taking your business elsewhere.&lt;br /&gt;
&lt;br /&gt;
If you want to run Moodle on your own computer and all this looks a bit daunting, then please see our guide: [[Installing Apache, MySQL and PHP]]. It provides some step-by-step instructions to install all this on most popular platforms.&lt;br /&gt;
&lt;br /&gt;
Additional requirements:&lt;br /&gt;
&lt;br /&gt;
PHP Extensions:&lt;br /&gt;
* [http://www.boutell.com/gd/ GD library] and the [http://www.freetype.org/ FreeType 2] library on Linux/Unix boxes to be able to look at the dynamic graphs that the logs pages make.&lt;br /&gt;
* mbstring - is required for multi-byte string handling. (iconv is also recommended for Moodle 1.6)&lt;br /&gt;
* the mysql extension is required if you are using the MySql database. Note that in some Linux distributions (notably Red Hat) this is an optional installation.&lt;br /&gt;
* the pgsql extension is required if you are using the PostgreSQL database.&lt;br /&gt;
* the zlib extension is required for zip/unzip functionality&lt;br /&gt;
* other PHP extensions may be required to support optional Moodle functionality, especially external authentication and/or enrolment (e.g., LDAP extension)&lt;br /&gt;
&lt;br /&gt;
== Download and copy files into place ==&lt;br /&gt;
&lt;br /&gt;
There are two ways to get Moodle, as a compressed package or via CVS. These are explained in detail on the download page: http://download.moodle.org/&lt;br /&gt;
&lt;br /&gt;
After downloading and unpacking the archive, or checking out the files via CVS, you will be left with a directory called &amp;quot;moodle&amp;quot;, containing a number of files and folders.&lt;br /&gt;
&lt;br /&gt;
You can either place the whole folder in your web server documents directory, in which case the site will be located at &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://yourwebserver.com/moodle&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, or you can copy all the contents straight into the main web server documents directory, in which case the site will be simply &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://yourwebserver.com&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are downloading Moodle to your local computer and then uploading it to your web site, it is usually better to upload the whole archive as one file, and then do the unpacking on the server. Even web hosting interfaces like Cpanel allow you to uncompress archives in the &amp;quot;File Manager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Site structure ==&lt;br /&gt;
&lt;br /&gt;
You can safely skip this section, but here is a quick summary of the contents of the Moodle folder, to help get you oriented:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;config.php&#039;&#039; - contains basic settings. This file does not come with Moodle - you will create it.&lt;br /&gt;
:&#039;&#039;install.php&#039;&#039; - the script you will run to create config.php&lt;br /&gt;
:&#039;&#039;version.php&#039;&#039; - defines the current version of Moodle code&lt;br /&gt;
:&#039;&#039;index.php&#039;&#039; - the front page of the site&lt;br /&gt;
:&#039;&#039;admin/&#039;&#039; - code to administrate the whole server&lt;br /&gt;
:&#039;&#039;auth/&#039;&#039; - plugin modules to authenticate users&lt;br /&gt;
:&#039;&#039;blocks/&#039;&#039; - plugin modules for the little side blocks on many pages&lt;br /&gt;
:&#039;&#039;calendar/&#039;&#039; - all the code for managing and displaying calendars&lt;br /&gt;
:&#039;&#039;course/&#039;&#039; - code to display and manage courses&lt;br /&gt;
:&#039;&#039;doc/&#039;&#039; - help documentation for Moodle (eg this page)&lt;br /&gt;
:&#039;&#039;files/&#039;&#039; - code to display and manage uploaded files&lt;br /&gt;
:&#039;&#039;lang/&#039;&#039; - texts in different languages, one directory per language&lt;br /&gt;
:&#039;&#039;lib/&#039;&#039; - libraries of core Moodle code&lt;br /&gt;
:&#039;&#039;login/&#039;&#039; - code to handle login and account creation&lt;br /&gt;
:&#039;&#039;mod/&#039;&#039; - all the main Moodle course modules are in here&lt;br /&gt;
:&#039;&#039;pix/&#039;&#039; - generic site graphics&lt;br /&gt;
:&#039;&#039;theme/&#039;&#039; - theme packs/skins to change the look of the site.&lt;br /&gt;
:&#039;&#039;user/&#039;&#039; - code to display and manage users&lt;br /&gt;
&lt;br /&gt;
== Run the installer script to create config.php ==&lt;br /&gt;
&lt;br /&gt;
To run the installer script (install.php), just try to access your Moodle main URL using a web browser, or access &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://yourserver/install.php&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; directly.&lt;br /&gt;
&lt;br /&gt;
(The Installer will try to set a session cookie. If you get a popup warning in your browser make sure you accept that cookie!)&lt;br /&gt;
&lt;br /&gt;
Moodle will detect that configuration is necessary and will lead you through some screens to help you create a new configuration file called &#039;&#039;&#039;config.php&#039;&#039;&#039;. At the end of the process Moodle will try and write the file into the right location, otherwise you can press a button to download it from the installer and then upload &#039;&#039;&#039;config.php&#039;&#039;&#039; into the main Moodle directory on the server.&lt;br /&gt;
&lt;br /&gt;
Along the way the installer will test your server environment and give you suggestions about how to fix any problems. For most common issues these suggestions should be sufficient, but if you get stuck, look below for more information about some of common things that might be holding you up. &lt;br /&gt;
&lt;br /&gt;
=== Check web server settings ===&lt;br /&gt;
&lt;br /&gt;
Firstly, make sure that your web server is set up to use index.php as a default page (perhaps in addition to index.html, default.htm and so on). In Apache, this is done using a DirectoryIndex parameter in your httpd.conf file. Mine usually looks like this:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;DirectoryIndex&#039;&#039;&#039; index.php index.html index.htm&lt;br /&gt;
&lt;br /&gt;
Just make sure index.php is in the list (and preferably towards the start of the list, for efficiency).&lt;br /&gt;
&lt;br /&gt;
Secondly, &#039;&#039;&#039;if you are using Apache 2&#039;&#039;&#039;, then you should turn on the &#039;&#039;AcceptPathInfo&#039;&#039; variable, which allows scripts to be passed arguments like &amp;lt;nowiki&amp;gt;http://server/file.php/arg1/arg2&amp;lt;/nowiki&amp;gt;. This is essential to allow relative links between your resources, and also provides a performance boost for people using your Moodle web site. You can turn this on by adding these lines to your httpd.conf file.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;AcceptPathInfo&#039;&#039;&#039; on&lt;br /&gt;
&lt;br /&gt;
Thirdly, Moodle requires a number of PHP settings to be active for it to work. &#039;&#039;&#039;On most servers these will already be the default settings&#039;&#039;&#039;.  However, some PHP servers (and some of the more recent PHP versions) may have things set differently. These are defined in PHP&#039;s configuration file (usually called &#039;&#039;&#039;php.ini&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 magic_quotes_gpc = 1    (preferred but not necessary)&lt;br /&gt;
 magic_quotes_runtime = 0    (necessary)&lt;br /&gt;
 file_uploads = 1&lt;br /&gt;
 session.auto_start = 0&lt;br /&gt;
 session.bug_compat_warn = 0&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have access to &#039;&#039;&#039;httpd.conf&#039;&#039;&#039; or &#039;&#039;&#039;php.ini&#039;&#039;&#039; on your server, or you have Moodle on a server with other applications that require different settings, then don&#039;t worry, you can often still OVERRIDE the default settings.&lt;br /&gt;
&lt;br /&gt;
To do this, you need to create a file called &#039;&#039;&#039;.htaccess&#039;&#039;&#039; in Moodle&#039;s main directory that contains lines like the following. This only works on Apache servers and only when Overrides have been allowed in the main configuration.&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex index.php index.html index.htm&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;IfDefine APACHE2&amp;gt;&lt;br /&gt;
     &#039;&#039;&#039;AcceptPathInfo&#039;&#039;&#039; on&lt;br /&gt;
 &amp;lt;/IfDefine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 php_flag magic_quotes_gpc 1&lt;br /&gt;
 php_flag magic_quotes_runtime 0&lt;br /&gt;
 php_flag file_uploads 1&lt;br /&gt;
 php_flag session.auto_start 0&lt;br /&gt;
 php_flag session.bug_compat_warn 0&lt;br /&gt;
&lt;br /&gt;
You can also do things like define the maximum size for uploaded files:&lt;br /&gt;
&lt;br /&gt;
 LimitRequestBody 0&lt;br /&gt;
 php_value upload_max_filesize 2M&lt;br /&gt;
 php_value post_max_size 2M&lt;br /&gt;
     &lt;br /&gt;
The easiest thing to do is just copy the sample file from lib/htaccess and edit it to suit your needs. It contains further instructions. For example, in a Unix shell:&lt;br /&gt;
&lt;br /&gt;
 cp lib/htaccess .htaccess&lt;br /&gt;
&lt;br /&gt;
=== Creating a database ===&lt;br /&gt;
&lt;br /&gt;
You need to create an empty database (eg &amp;quot;&#039;&#039;moodle&#039;&#039;&amp;quot;) in your database system along with a special user (eg &amp;quot;moodleuser&amp;quot;) that has access to that database (and that database only). You could use the &amp;quot;root&amp;quot; user if you wanted to for a test server, but this is not recommended for a production system: if hackers manage to discover the password then your whole database system would be at risk, rather than just one database.&lt;br /&gt;
&lt;br /&gt;
::Bear in mind that currently (as of 1.5.x) Moodle doesn&#039;t work with MySQL 5.x&#039;s new &amp;quot;STRICT_TRANS_TABLES&amp;quot; setting. So if you are using MySQL 5.x, edit MySQL&#039;s configuration file (called &amp;quot;my.ini&amp;quot; in Windows and &amp;quot;my.cnf&amp;quot; on Unix/Linux) and comment out that option (or simply delete it). You have to restart MySQL after changing this setting.&lt;br /&gt;
&lt;br /&gt;
If you are using a webhost, they will probably have a control panel web interface for you to create your database.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Cpanel&#039;&#039;&#039; system is one of the most popular of these. To create a database in Cpanel,&lt;br /&gt;
&lt;br /&gt;
# Click on the &amp;quot;&#039;&#039;&#039;MySQL Databases&#039;&#039;&#039;&amp;quot; icon.&lt;br /&gt;
# Type &amp;quot;moodle&amp;quot; in the database field and click &amp;quot;&#039;&#039;&#039;Add Database&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
# Type a username and password (not one you use elsewhere) in the respective fields and click &amp;quot;&#039;&#039;&#039;Add User&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
# Now use the &amp;quot;&#039;&#039;&#039;Add User to Database&#039;&#039;&#039;&amp;quot; button to give this new user account &amp;quot;&#039;&#039;&#039;ALL&#039;&#039;&#039;&amp;quot; rights to the new database.&lt;br /&gt;
# Note that the username and database names may be prefixed by your Cpanel account name. When entering this information into the Moodle installer - use the full names.&lt;br /&gt;
&lt;br /&gt;
If you have access to Unix command lines then you can do the same sort of thing by typing commands.&lt;br /&gt;
&lt;br /&gt;
Here are some example Unix command lines for MySQL (the red part is for Moodle 1.6 and later, leave it out for Moodle 1.5.x or earlier):&lt;br /&gt;
&lt;br /&gt;
   # mysql -u root -p&lt;br /&gt;
   &amp;gt; CREATE DATABASE moodle &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci&amp;lt;/font&amp;gt;; &lt;br /&gt;
   &amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*&lt;br /&gt;
           TO moodleuser@localhost IDENTIFIED BY &#039;yourpassword&#039;; &lt;br /&gt;
   &amp;gt; quit &lt;br /&gt;
   # mysqladmin -p reload&lt;br /&gt;
&lt;br /&gt;
If you are using MySQL 4.0.2 or later, you need to specify CREATE TEMPORARY TABLES as well in the GRANT statement:&lt;br /&gt;
&lt;br /&gt;
   &amp;gt; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,&lt;br /&gt;
           DROP,INDEX,ALTER ON moodle.* &lt;br /&gt;
           TO moodleuser@localhost IDENTIFIED BY &#039;yourpassword&#039;; &lt;br /&gt;
&lt;br /&gt;
And some example command lines for PostgreSQL:&lt;br /&gt;
&lt;br /&gt;
   # su - postgres&lt;br /&gt;
   &amp;gt; psql -c &amp;quot;create user moodleuser createdb;&amp;quot; template1&lt;br /&gt;
   &amp;gt; psql -c &amp;quot;create database moodle &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;with encoding &#039;unicode&#039;&amp;lt;/font&amp;gt;;&amp;quot; -U moodleuser template1&lt;br /&gt;
   &amp;gt; psql -c &amp;quot;alter user moodleuser nocreatedb;&amp;quot; template1&lt;br /&gt;
   &amp;gt; psql -c &amp;quot;alter user moodleuser with encrypted password &#039;yourpassword&#039;;&amp;quot; template1&lt;br /&gt;
   &amp;gt; su - root&lt;br /&gt;
   # /etc/init.d/postgresql reload&lt;br /&gt;
&lt;br /&gt;
=== Creating a data directory ===&lt;br /&gt;
&lt;br /&gt;
Moodle will also need some space on your server&#039;s hard disk to store uploaded files, such as course documents and user pictures.&lt;br /&gt;
&lt;br /&gt;
The Moodle installer tries hard to create this directory for you but if it fails then you will have to create a directory for this purpose manually.&lt;br /&gt;
&lt;br /&gt;
For security, it&#039;s best that this directory is NOT accessible directly via the web. The easiest way to do this is to simply locate it OUTSIDE the web directory, but if you must have it in the web directory then protect it by creating a file in the data directory called .htaccess, containing this line:&lt;br /&gt;
&lt;br /&gt;
 deny from all&lt;br /&gt;
&lt;br /&gt;
To make sure that Moodle can save uploaded files in this directory, check that the web server software (eg Apache) has permission to read, write and execute in this directory.&lt;br /&gt;
&lt;br /&gt;
On Unix machines, this means setting the owner of the directory to be something like &amp;quot;nobody&amp;quot; or &amp;quot;apache&amp;quot;, and then giving that user read, write and execute permissions.&lt;br /&gt;
&lt;br /&gt;
On Cpanel systems you can use the &amp;quot;File Manager&amp;quot; to find the folder, click on it, then choose &amp;quot;Change Permissions&amp;quot;. On many shared hosting servers, you will probably need to restrict all file access to your &amp;quot;group&amp;quot; (to prevent other webhost customers from looking at or changing your files), but provide full read/write access to everyone else (which will allow the web server to access your files).&lt;br /&gt;
&lt;br /&gt;
Speak to your server administrator if you are having trouble setting this up securely. In particular some sites that use a PHP feature known as &amp;quot;Safe Mode&amp;quot; may &#039;&#039;require&#039;&#039; the administrator to create this directory properly for you.&lt;br /&gt;
&lt;br /&gt;
== Go to the admin page to continue configuration ==&lt;br /&gt;
&lt;br /&gt;
Once the basic config.php has been correctly created in the previous step, trying to access the front page of your site will take you the &amp;quot;admin&amp;quot; page for the rest of the configuration.&lt;br /&gt;
&lt;br /&gt;
The first time you access this admin page, you will be presented with a GPL &amp;quot;shrinkwrap&amp;quot; agreement with which you must agree before you can continue with the setup.&lt;br /&gt;
&lt;br /&gt;
Now Moodle will start setting up your database and creating tables to store data. Firstly, the main database tables are created. You should see a number of SQL statements followed by status messages (in green or red) that look like this:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default &#039;0&#039;, password varchar(50) NOT NULL default &#039;&#039;, fullname varchar(254) NOT NULL default &#039;&#039;, shortname varchar(15) NOT NULL default &#039;&#039;, summary text NOT NULL, format tinyint(4) NOT NULL default &#039;1&#039;, teacher varchar(100) NOT NULL default &#039;Teacher&#039;, startdate int(10) unsigned NOT NULL default &#039;0&#039;, enddate int(10) unsigned NOT NULL default &#039;0&#039;, timemodified int(10) unsigned NOT NULL default &#039;0&#039;, PRIMARY KEY (id)) TYPE=MyISAM&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;SUCCESS&amp;lt;/font&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
...and so on, followed by: &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Main databases set up successfully.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t see these, then there must have been some problem with the database or the configuration settings you defined in config.php. Check that PHP isn&#039;t in a restricted &amp;quot;Safe Mode&amp;quot; (commercial web hosts sometimes have safe mode turned on). You can check PHP variables by creating a little file containing &#039;&#039;&#039;&amp;lt;?php phpinfo() ?&amp;gt;&#039;&#039;&#039; and looking at it through a browser. Check all these and try this page again.&lt;br /&gt;
&lt;br /&gt;
Scroll down the very bottom of the page and press the &amp;quot;Continue&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
You should now see a form where you can define more configuration variables for your installation, such as the default language, SMTP hosts and so on. Don&#039;t worry too much about getting everything right just now - you can always come back and edit these later on using the admin interface. The defaults are designed to be useful and secure for most sites. Scroll down to the bottom and click &amp;quot;Save changes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If (and only if) you find yourself getting stuck on this page, unable to continue, then your server probably has what I call the &amp;quot;buggy referrer&amp;quot; problem. This is easy to fix: just turn off the &amp;quot;secureforms&amp;quot; setting, then try to continue again.&lt;br /&gt;
&lt;br /&gt;
Next you will see more pages that print lots of status messages as they set up all the tables required by the various Moodle module. As before, they should all be &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;green&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Scroll down the very bottom of the page and press the &amp;quot;Continue&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
The next page is a form where you can define parameters for your Moodle site and the front page, such as the name, format, description and so on. Fill this out (you can always come back and change these later) and then press &amp;quot;Save changes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Finally, you will then be asked to create a top-level administration user for future access to the admin pages. Fill out the details with your own name, email etc and then click &amp;quot;Save changes&amp;quot;. Not all the fields are required, but if you miss any important fields you&#039;ll be re-prompted for them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Make sure you remember the username and password you chose for the administration user account, as they will be necessary to access the administration page in future.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(If for any reason your install is interrupted, or there is a system error of some kind that prevents you from logging in using the admin account, you can usually log in using the default username of &amp;quot;&#039;&#039;&#039;admin&#039;&#039;&#039;&amp;quot;, with password &amp;quot;&#039;&#039;&#039;admin&#039;&#039;&#039;&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
Once successful, you will be returned to the home page of your new site! Note the administration links that appear down the left hand side of the page (these items also appear on a separate Admin page) - these items are only visible to you because you are logged in as the admin user. All your further administration of Moodle can now be done using this menu, such as:&lt;br /&gt;
&lt;br /&gt;
* creating and deleting courses&lt;br /&gt;
* creating and editing user accounts&lt;br /&gt;
* administering teacher accounts&lt;br /&gt;
* changing site-wide settings like themes etc&lt;br /&gt;
&lt;br /&gt;
But you are not done installing yet! There is one very important thing still to do (see the next section on cron).&lt;br /&gt;
&lt;br /&gt;
== Set up cron ==&lt;br /&gt;
&lt;br /&gt;
Please refer to the [[Cron|cron instructions]].&lt;br /&gt;
&lt;br /&gt;
== Create a new course ==&lt;br /&gt;
&lt;br /&gt;
Now that Moodle is running properly, you can try creating a new course to play with.&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Create a new course&amp;quot; from the Admin page (or the admin links on the home page).&lt;br /&gt;
&lt;br /&gt;
Fill out the form, paying special attention to the course format. You don&#039;t have to worry about the details too much at this stage, as everything can be changed later by the teacher. Note that the yellow help icons are everywhere to provide contextual help on any aspect.&lt;br /&gt;
&lt;br /&gt;
Press &amp;quot;Save changes&amp;quot;, and you will be taken to a new form where you can assign teachers to the course. You can only add existing user accounts from this form - if you want to create a new teacher account then either ask the teacher to create one for themselves (see the login page), or create one for them using the &amp;quot;Add a new user&amp;quot; on the Admin page.&lt;br /&gt;
&lt;br /&gt;
Once done, the course is ready to customise, and is accessible via the &amp;quot;Courses&amp;quot; link on the home page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Installation FAQ]]&lt;br /&gt;
* [[Installing Apache, MySQL and PHP]]&lt;br /&gt;
* [[Upgrading Moodle]]&lt;br /&gt;
* [[Windows installation|Windows installation]]&lt;br /&gt;
* [[RedHat Linux installation|Step by Step Installation Guide for RedHat]]&lt;br /&gt;
* [[Debian GNU/Linux installation|Step by Step Installation Guide for Debian GNU/Linux]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=42688 Selecting a webhost for Moodle] forum discussion&lt;br /&gt;
* [[masquerading]] - Running Moodle behind a masquerading/NAT firewall&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Instalación de moodle]]&lt;br /&gt;
[[fr:Installation de Moodle]]&lt;br /&gt;
[[nl:Installatiegids]]&lt;br /&gt;
[[ja:Moodleのインストール]]&lt;br /&gt;
[[zh:安装Moodlezh:]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Documentation_philosophy&amp;diff=15116</id>
		<title>Documentation philosophy</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Documentation_philosophy&amp;diff=15116"/>
		<updated>2006-08-31T03:58:59Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help}}&lt;br /&gt;
&lt;br /&gt;
* Focus on &#039;&#039;&#039;Moodle Docs&#039;&#039;&#039; as the central Moodle knowledge-base&lt;br /&gt;
* Transfer content from [http://moodle.org/course/view.php?id=5 Using Moodle] forum discussions (e.g. answers to how-to questions, ideas/suggestions of ways of using a particular feature) to Moodle Docs&lt;br /&gt;
* Encourage newcomers to contribute to Moodle Docs&lt;br /&gt;
:&amp;quot;New users are ideal for writing system-level documentation aimed at new users. They have the point of view and experience with the current software at the system level rather than at the library level. The most common evidence of this is FAQ lists, in which issues repeatedly raised on mailing lists and chat sessions are answered.&amp;quot; Source: [http://www.oss-watch.ac.uk/resources/documentation.xml Documentation issues in open source]&lt;br /&gt;
* Encourage Using Moodle regulars to contribute to Moodle Docs by adding content in response to a question in the forums, then provide a link to the Moodle Docs page in the forum discussion&lt;br /&gt;
* Provide &amp;quot;See also&amp;quot; links in Moodle Docs to additional information in Using Moodle discussions e.g. [[Forums]] (though if the Using Moodle discussion leads to a conclusion/agreement then this should be transferred to MoodleDocs)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[MoodleDocs development]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Filosofía de la documentación]]&lt;br /&gt;
[[zh:文档的哲学]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Style_guide&amp;diff=15115</id>
		<title>MoodleDocs:Style guide</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Style_guide&amp;diff=15115"/>
		<updated>2006-08-31T02:59:14Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help}}&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
&lt;br /&gt;
*Please add at least one category to each page by typing one or more of the following at the bottom of the page: &lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Teacher]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Administrator]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Developer]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*[[Special:Categories&amp;amp;article=MoodleDocs%3AStyle_guide|Categories]] lists all Moodle Docs categories.&lt;br /&gt;
&lt;br /&gt;
==Screenshots==&lt;br /&gt;
&lt;br /&gt;
* You are encouraged to illustrate documentation with screenshots. Please use the official [http://demo.moodle.com/ Moodle demo site], or any other site or course using one of the standard themes, and ensure that the screenshot is as small as possible.&lt;br /&gt;
* Screenshots should be GIF, JPEG or PNG format, with 72ppp resolution, and maximum width 800px.&lt;br /&gt;
* Screenshots may be uploaded using the toolbox [[Special:Upload|Upload file]] link.&lt;br /&gt;
* Please name screenshots descriptively to avoid confusion.&lt;br /&gt;
* To include the screenshot in an article, use a link in the form &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Image:Screenshot.jpg]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Image:Screenshot.png|alt text]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Please do not apply effects such as borders, watermarks or drop shadows to screenshots. This will allow others to add or replace screenshots over time and still maintain a consistent look and feel to articles.&lt;br /&gt;
* For help on image placement and adding an image caption, please refer to the [[Wikipedia:Wikipedia:Picture_tutorial|Wikipedia Picture tutorial]].&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
&lt;br /&gt;
* In MediaWiki, a template is a page which can be inserted into another page. For example, the Moodle Docs help block on this page is a template.&lt;br /&gt;
* A template may be added to a page by typing &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Name}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for Template:&#039;&#039;Name&#039;&#039;.&lt;br /&gt;
* [[Special%3AAllpages&amp;amp;from=&amp;amp;namespace=10|All pages (Template namespace)]] lists all Moodle Docs templates.&lt;br /&gt;
* Please refer to the [http://meta.wikimedia.org/wiki/Help:Template MediaWiki Template help] for further information.&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs|Style guide]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Guía de Estilo]]&lt;br /&gt;
[[fr:MoodleDocs:Guide de style]]&lt;br /&gt;
[[zh:MoodleDocs:风格指引]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Background&amp;diff=15095</id>
		<title>Background</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Background&amp;diff=15095"/>
		<updated>2006-08-30T08:23:52Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese inter-lang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is an active and evolving work in progress. Development was started by [http://moodle.org/user/view.php?id=1&amp;amp;course=1 Martin Dougiamas] who continues to lead the project:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I&#039;ve been working on it, in some way or other, for several years. It started in the 90&#039;s when I was webmaster at [http://www.curtin.edu.au/ Curtin University of Technology] and a system administrator of their WebCT installation. I encountered many frustrations with the WebCT beast and developed an itch that needed scratching - there had to be a better way (no, not Blackboard :-)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I also know a lot of people in schools and smaller institutions (and some big ones!) who want to make better use of the Internet but don&#039;t know where to start in the maze of technologies and pedagogies that are out there. I&#039;ve always hoped there would be a Free alternative that such people could use to help them move their teaching skills into the online environment.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;My strong beliefs in the unrealised possibilities of Internet-based education led me to complete a Masters and then a PhD in Education, combining my former career in Computer Science with newly constructed knowledge about the nature of learning and collaboration. In particular, I am particularly influenced by the epistemology of social constructionism - which not only treats learning as a social activity, but focusses attention on the learning that occurs while actively constructing artifacts (such as texts) for others to see or use.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;It is crucial to me that this software be easy to use - in fact it should be as intuitive as possible.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I&#039;m committed to continuing my work on Moodle and on keeping it Open and Free. I have a deeply-held belief in the importance of unrestricted education and empowered teaching, and Moodle is the main way I can contribute to the realisation of these ideals.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A number of early prototypes were produced and discarded before he released version 1.0 upon a largely unsuspecting world on August 20, 2002. This version was targeted towards smaller, more intimate classes at University level, and was the subject of research case studies that closely analysed the nature of collaboration and reflection that occurred among these small groups of adult participants.&lt;br /&gt;
&lt;br /&gt;
Since then there has been steady series of new releases adding new features, better scalability and improved performance.&lt;br /&gt;
&lt;br /&gt;
As Moodle has spread and the community has grown, more input is being drawn from a wider variety of people in different teaching situations. For example, Moodle is now used not only in Universities, but in high schools, primary schools, non-profit organisations, private companies, by independent teachers and even homeschooling parents. A growing number of people from around the world are contributing to Moodle in different ways - for more details see the [[Credits]] page.&lt;br /&gt;
&lt;br /&gt;
An important feature of the Moodle project is [http://moodle.org/ moodle.org], which provides a central point for information, discussion and collaboration among Moodle users, who include system administrators, teachers, researchers, instructional designers and of course, developers. Like Moodle, this site is always evolving to suit the needs of the community, and like Moodle it will always be Free.&lt;br /&gt;
&lt;br /&gt;
In 2003, the company [http://moodle.com/ moodle.com] was launched to provide additional commercial support for those who need it, as well as managed hosting, consulting and other services.&lt;br /&gt;
&lt;br /&gt;
For more about our future plans for Moodle, see the [[Future]] roadmap.&lt;br /&gt;
&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
&lt;br /&gt;
[[es:Antecedentes]]&lt;br /&gt;
[[ja:背景]]&lt;br /&gt;
[[zh:背景]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Help:Contents&amp;diff=15084</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Help:Contents&amp;diff=15084"/>
		<updated>2006-08-30T07:40:47Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Fix Chinese inter-lang link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help}}&lt;br /&gt;
&lt;br /&gt;
*You are welcome to explore Moodle Docs using the links on the [[Main Page|main page]] and/or browse the various [[Special:Categories|categories]]. Alternatively, you may try [[MoodleDocs:Searching|searching]] Moodle Docs.&lt;br /&gt;
*Please feel free to [[MoodleDocs:Guidelines for contributors|contribute]] to Moodle Docs and help create the best documentation for Moodle!&lt;br /&gt;
*If you wish to ask a question about Moodle, please visit the moodle.org [http://moodle.org/course/view.php?id=5 Using Moodle] forums.&lt;br /&gt;
*If you&#039;d like to experiment with this wiki, please do so in the [[Sandbox|sandbox]].&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
&lt;br /&gt;
* Email: &#039;&#039;docs AT moodle DOT org&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Ayuda]]&lt;br /&gt;
[[zh:帮助:目录]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=About_Moodle&amp;diff=15080</id>
		<title>About Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=About_Moodle&amp;diff=15080"/>
		<updated>2006-08-30T05:39:36Z</updated>

		<summary type="html">&lt;p&gt;Sunner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is a software package for producing internet-based courses and web sites. It&#039;s an ongoing development project designed to support a [[Philosophy|social constructionist]] framework of education.&lt;br /&gt;
&lt;br /&gt;
Moodle is provided freely as [http://www.opensource.org/docs/definition_plain.html Open Source] software (under the [http://www.gnu.org/copyleft/gpl.html GNU Public License]). Basically this means Moodle is copyrighted, but that you have additional freedoms. You are allowed to copy, use and modify Moodle provided that you agree to: &#039;&#039;&#039;provide the source to others; not modify or remove the original license and copyrights&#039;&#039;&#039;, and &#039;&#039;&#039;apply this same license to any derivative work&#039;&#039;&#039;. Read the [[License|license]] for full details and please contact the [http://moodle.org/user/view.php?id=1&amp;amp;course=1 copyright holder] directly if you have any questions.&lt;br /&gt;
&lt;br /&gt;
Moodle will run on any computer that can run [http://www.php.net/ PHP], and can support many types of database (particularly [http://www.mysql.com/ MySQL]).&lt;br /&gt;
&lt;br /&gt;
The word Moodle was originally an acronym for Modular Object-Oriented Dynamic Learning Environment, which is mostly useful to programmers and education theorists.  It&#039;s also a verb that describes the process of lazily meandering through something, doing things as it occurs to you to do them, an enjoyable tinkering that often leads to insight and creativity. As such it applies both to the way Moodle was developed, and to the way a student or teacher might approach studying or teaching an online course. Anyone who uses Moodle is a Moodler.&lt;br /&gt;
&lt;br /&gt;
Come [http://moodle.org/community/ moodle with us]!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Moodle Moodle at Wikipedia]&lt;br /&gt;
*[[Using Moodle book]]&lt;br /&gt;
*[[Moodle presentations|Presentations]]&lt;br /&gt;
* Moodle Conferences: [http://www.google.com/search?hl=en&amp;amp;q=moodlemoot Moodlemoots]&lt;br /&gt;
&lt;br /&gt;
[[es:Acerca de Moodle]]&lt;br /&gt;
[[fr:À propos de Moodle]]&lt;br /&gt;
[[nl:Over Moodle]]&lt;br /&gt;
[[de:Was ist Moodle?]]&lt;br /&gt;
[[hr:O_Moodle_rješenju]]&lt;br /&gt;
[[ja:Moodleとは]]&lt;br /&gt;
[[zh:关于Moodle]]&lt;br /&gt;
[[Category:Core]]&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Teacher]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=15079</id>
		<title>Development:Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Development:Developer_documentation&amp;diff=15079"/>
		<updated>2006-08-30T05:39:07Z</updated>

		<summary type="html">&lt;p&gt;Sunner: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Guidelines==&lt;br /&gt;
The following guidelines are crucial reading for anyone wanting to contribute to the Moodle code base:&lt;br /&gt;
*[[Coding|Coding guidelines]] have to be followed by all Moodle developers&lt;br /&gt;
*[[Moodle architecture]] spells out the basic design goals behind Moodle&lt;br /&gt;
*[[Interface guidelines]] aim to provide a common feel to the Moodle user interface&lt;br /&gt;
*[[CVS (developer)|Moodle CVS for developers]] explains how to work with the Moodle code in CVS&lt;br /&gt;
*[[Unit tests]] explains how to run the unit tests, and how to write new test cases.&lt;br /&gt;
*[[Tracker]] explains the Moodle Tracker for keeping track of bugs, issues, feature requests etc &lt;br /&gt;
&lt;br /&gt;
== Resources and tools ==&lt;br /&gt;
&lt;br /&gt;
*[[Developer FAQ]] - frequently asked questions, especially useful for newcomers to Moodle&lt;br /&gt;
*[http://tracker.moodle.org/ Moodle bug tracker] - bug reports, feature requests and other tracked issues&lt;br /&gt;
*[http://moodle.org/mod/forum/view.php?id=55 General developer forum]&lt;br /&gt;
*[http://moodle.cvs.sourceforge.net/moodle/moodle/ CVS code] - browse the Moodle code via the web&lt;br /&gt;
*[http://moodle.org/xref/nav.html?index.html Cross reference] - phpxref output for browsing Moodle source code&lt;br /&gt;
*[http://moodle.sourceforge.net/dhawes-phpdoc/ Moodle PHP doc reference] - automatically generated documentation&lt;br /&gt;
*[http://moodle.org/course/view.php?id=5#4 Development news and discussion] section of Using Moodle course&lt;br /&gt;
*[http://developer.yahoo.com/yui YUI documentation] - YUI is the official AJAX library in moodle.&lt;br /&gt;
*[[Setting up Eclipse for Moodle development]] - Eclipse is a great editor to use for php development, if you can work out how to set it up.&lt;br /&gt;
*[[Unmerged files]] - changes on the stable branch in CVS that have not been merged to HEAD&lt;br /&gt;
&lt;br /&gt;
==How you can contribute==&lt;br /&gt;
&lt;br /&gt;
The M in Moodle stands for &#039;Modular&#039;. There are many different types of components that you can contribute that can be plugged into Moodle to provide additional functionality. When you have developed a new component please publish it in the [http://moodle.org/mod/data/view.php?id=6009 database of Moodle modules and plugins]. The following types of plugins currently exist (in alphabetical order):&lt;br /&gt;
*[[Modules (developer)|Activity modules]]&lt;br /&gt;
*[[Assignment types]]&lt;br /&gt;
*[[Authentication|Authentication methods]]&lt;br /&gt;
*[[Blocks Howto|Blocks]]&lt;br /&gt;
*[[Course formats]]&lt;br /&gt;
*[[Database fields (developer)|Database fields]]&lt;br /&gt;
*[[Database presets]]&lt;br /&gt;
*[[Enrolment plugins (developer)|Enrolment plugins]]&lt;br /&gt;
*[[Filters (developer)|Filters]]&lt;br /&gt;
*[[Question_engine]]&lt;br /&gt;
*[[Question import/export formats]]&lt;br /&gt;
*[[Question types|Question types teacher docs]]&lt;br /&gt;
*[[Question_engine#Question_types|Question types developper docs]]&lt;br /&gt;
*[[Quiz reports]]&lt;br /&gt;
*[[Resource types]]&lt;br /&gt;
*[[SSO plugins]]&lt;br /&gt;
&lt;br /&gt;
There are also ways you can contribute that don&#039;t involve PHP programming:&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Translation]]&lt;br /&gt;
*[[Database Schemas|Database schemas]]&lt;br /&gt;
&lt;br /&gt;
You can also help a lot by&lt;br /&gt;
*[[Tests|Testing]]&lt;br /&gt;
*[[Bug tracker|Participating in the bug tracker]]&lt;br /&gt;
&lt;br /&gt;
==Plans for the future==&lt;br /&gt;
Ideas for and details of planned future features of Moodle are initially discussed on the forums in the [http://moodle.org/course/view.php?id=5 Using Moodle] course at moodle.org. That developer discussions are intermixed with user discussions in the same forums may seem strange at first but is one of the reasons for the success of Moodle. It is important that both end-users and developers discuss the future features together.&lt;br /&gt;
&lt;br /&gt;
Once ideas begin to crystalize on the forums they can be summarized in this wiki, either as part of the [[Roadmap]] or in the form of [[Developer notes]]. These pages then form the basis for further discussion in the forums.&lt;br /&gt;
*[[Roadmap]]&lt;br /&gt;
*[[Developer notes]]&lt;br /&gt;
*[[Student projects]]&lt;br /&gt;
*[[Developer conference|Developer conferences]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for core components==&lt;br /&gt;
This section is for documentation of specific components of the existing core Moodle code. Discussion of components that are under discussion or in development can be found in the [[Developer notes]] or on the [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
*[[UTF-8 migration|Migration to UTF-8]]&lt;br /&gt;
*[[Question engine]]&lt;br /&gt;
*[[Quiz developer docs|Quiz module]]&lt;br /&gt;
*[[SCORM schema|SCORM module 1.5 schema]]&lt;br /&gt;
*[[Authentication API]]&lt;br /&gt;
*[[Stats package]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Cookieless Sessions]]&lt;br /&gt;
&lt;br /&gt;
==Documentation for contributed code==&lt;br /&gt;
Many Moodle users contribute code for the benefit of other Moodle users. This can take the form of new activity modules, blocks, themes, resource plug-ins, assignment plug-ins, question type plug-ins, question import/export formats, quiz report plug-ins, course formats, ... This code is initially posted on the forums in the [http://moodle.org/course/view.php?id=5 Using Moodle] course and then often go into the [http://cvs.sourceforge.net/viewcvs.py/moodle/contrib/ contrib area] of the Moodle [[CVS]] repository. When you have developed a new component please publish it in the [http://moodle.org/mod/data/view.php?id=6009 database of Moodle modules and plugins]. Developer documentation for these components should be listed here.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://security.moodle.org/ Moodle Security Centre]&lt;br /&gt;
*[http://moodle.com/partners/ Moodle Partners] - providers of custom Moodle development services&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[es:Documentación para Desarrolladores]]&lt;br /&gt;
[[fr:Documentation développeur]]&lt;br /&gt;
[[zh:开发者文档]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Help:Contents&amp;diff=15062</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Help:Contents&amp;diff=15062"/>
		<updated>2006-08-29T15:33:46Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help}}&lt;br /&gt;
&lt;br /&gt;
*You are welcome to explore Moodle Docs using the links on the [[Main Page|main page]] and/or browse the various [[Special:Categories|categories]]. Alternatively, you may try [[MoodleDocs:Searching|searching]] Moodle Docs.&lt;br /&gt;
*Please feel free to [[MoodleDocs:Guidelines for contributors|contribute]] to Moodle Docs and help create the best documentation for Moodle!&lt;br /&gt;
*If you wish to ask a question about Moodle, please visit the moodle.org [http://moodle.org/course/view.php?id=5 Using Moodle] forums.&lt;br /&gt;
*If you&#039;d like to experiment with this wiki, please do so in the [[Sandbox|sandbox]].&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
&lt;br /&gt;
* Email: &#039;&#039;docs AT moodle DOT org&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Ayuda]]&lt;br /&gt;
[[zh:MoodleDocs:帮助:目录]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=15056</id>
		<title>MoodleDocs:Guidelines for contributors</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Guidelines_for_contributors&amp;diff=15056"/>
		<updated>2006-08-29T14:13:41Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help}}&lt;br /&gt;
&lt;br /&gt;
You are welcome to &#039;&#039;&#039;contribute to Moodle Docs&#039;&#039;&#039;. Find something that can be improved, either in content, grammar or formatting, and fix it!&lt;br /&gt;
&lt;br /&gt;
* If you&#039;ve not done so already, please [[Special:Userlogin|login]].&lt;br /&gt;
* Please note that all contributions are released here under [[License|GNU General Public License]].&lt;br /&gt;
* Moodle 1.6 will have a button on each page that links to pages in Moodle Docs with the same path as the pages in Moodle. You can see this already on [http://moodle.org moodle.org] and, from an administrator&#039;s perspective, on the [http://demo.moodle.com/ Moodle demo site].&lt;br /&gt;
* Please note that the [http://moodle.org/help.php?file=index.html Moodle help files] will remain in each language pack and so their text need not be included in this documentation.&lt;br /&gt;
* You are encouraged to illustrate documentation with screenshots. Please refer to the [[MoodleDocs:Style guide|style guide]] for further information.&lt;br /&gt;
* If you find any page requiring deletion, please type &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Deletion}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; at the top of the page.&lt;br /&gt;
&lt;br /&gt;
==Creating new pages==&lt;br /&gt;
&lt;br /&gt;
* You are welcome to create pages for additional documentation. Simply type the name of your new page between double brackets &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[New page name]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and follow the link to start editing the new page. Please choose a short name and capitalize the first word only (with a few exceptions, such as the word Moodle).&lt;br /&gt;
* Please follow the [[MoodleDocs:Style guide|style guide]], in particular ensuring that new pages are categorised.&lt;br /&gt;
* Page titles may be changed in the future by redirecting/moving pages, as part of documentation restructuring.&lt;br /&gt;
&lt;br /&gt;
==Inter-language linking==&lt;br /&gt;
&lt;br /&gt;
* You are welcome to add inter-language links between pages in different languages. Simply type, for example, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[es:Corresponding page title in Spanish]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the English MoodleDocs, or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[en:Corresponding page title in English]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [[:es:Portada|Spanish MoodleDocs]], at the bottom of the page, below the category link. Inter-language links will appear automatically in the &amp;quot;In other languages&amp;quot; block.&lt;br /&gt;
&lt;br /&gt;
== Page comments ==&lt;br /&gt;
&lt;br /&gt;
* For comments about a particular page, and/or short discussions, please use the corresponding talk page (click on the page comments tab). Please sign and date your talk page contribution by typing four tildes &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
* For longer discussions about the documentation, please use the Using Moodle [http://moodle.org/mod/forum/view.php?id=5838 Documentation forum].&lt;br /&gt;
&lt;br /&gt;
[[Category:MoodleDocs|Guidelines for contributors]]&lt;br /&gt;
&lt;br /&gt;
[[es:MoodleDocs:Normas para colaboradores]]&lt;br /&gt;
[[fr:MoodleDocs:Recommandations pour contributeurs]]&lt;br /&gt;
[[ja:MoodleDocs:寄稿のガイドライン]]&lt;br /&gt;
[[zh:MoodleDocs:贡献者指引]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Moodle_in_education&amp;diff=15055</id>
		<title>Moodle in education</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Moodle_in_education&amp;diff=15055"/>
		<updated>2006-08-29T14:07:32Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to give an overview of a course, which is the overall organizing feature that most teachers will use in Moodle.&lt;br /&gt;
&lt;br /&gt;
If you are a &#039;&#039;&#039;new user&#039;&#039;&#039; and would like a list of all the documents that are for teachers in MoodleDocs have a look at the [[:Category:Teacher | teacher category index by clicking here]] or the See Also section at the bottom of this page for other links, including good old fashion books in PDF files.   We encourage you to try the search feature on the left side of this page to find other useful pages.&lt;br /&gt;
&lt;br /&gt;
==Getting started==&lt;br /&gt;
We are assuming that your site administrator has set up Moodle and given you a new, blank course to start with. &lt;br /&gt;
{| align=&amp;quot;left&amp;quot; &lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Image:Course_edit_on_new_2.jpg ]]  &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
You will need to be  [[Log in | logged into]] the course using an account that has been assigned [[Teacher|teacher status]] (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 in Moodle]]&lt;br /&gt;
&lt;br /&gt;
The example on the left shows a new course set up with topic sections, edit is on and there are blocks on the right side of the topics. Resourses and activities are ready to be added.&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Editing A Course==&lt;br /&gt;
&lt;br /&gt;
To add or alter activities or resources you will need to [[Turn editing on|turn editing on]]. You can do this by pressing the button at the top right of the course homepage or following the turn editing on link in the administration block. You can turn editing off again by pressing the button or the admin block link again (now renamed turn editing off)&lt;br /&gt;
&lt;br /&gt;
When editing is on you will see the following icons:&lt;br /&gt;
&lt;br /&gt;
:[[Image:Edit.gif]] - the edit icon lets you alter/update whatever resource or activity it is next to by taking you to its setup page.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Help.gif]] - the help icon will pop-up a relevant help window.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Open.gif]] - the open-eye icon means an item is visible to students. Clicking it will make the item invisible to participants and change the icon to the closed eye.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Closed.gif]] - the closed-eye icon means an item is hidden from students. Clicking it will make the item visible to participants and change the icon to the open eye.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Right.gif]] - the left icon is used to outdent course elements. There is also a right icon for indenting items.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Move.gif]] - the move icon allows course elements to be moved up or down throughout the course.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Movehere.gif]] - the move here icon appears when moving a course element. It appears only after you&#039;ve clicked the move icon, and indicates the destination of the item you&#039;re moving.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Delete.gif]] - the delete icon will permanently delete something from the course after you confirm a warning on a second page.&lt;br /&gt;
&lt;br /&gt;
:[[Image:Marker.gif]] - the marker icon allows you to make a section current.&lt;br /&gt;
&lt;br /&gt;
:[[Image:One.gif]] - the one icon hides all other sections of the course, showing only this one.&lt;br /&gt;
&lt;br /&gt;
:[[Image:All.gif]] - the all icon redisplays all sections in a course.&lt;br /&gt;
&lt;br /&gt;
If you are running version 1.6 or above you will see a &#039;&#039;&#039;Student View&#039;&#039;&#039; toggle button at the top right of the course homepage. This allows you to see the course almost exactly as your students will see it.&lt;br /&gt;
&lt;br /&gt;
==Activity modules==&lt;br /&gt;
{| align=&amp;quot;left&amp;quot; &lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Image:Activity_dropdown.JPG]]  &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
There are a number of 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 single piece.&lt;br /&gt;
&lt;br /&gt;
Work can be submitted by students and marked by teachers using [[Assignments]] or [[Workshops]]. Automatic marking can be achieved by using [[Quizzes]]. You can even integrate your Hot Potato quizzes by adding a [[Hotpot]] activity.&lt;br /&gt;
&lt;br /&gt;
Content may be delivered and supported using [[Lessons]] and [[SCORM]] activities. 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;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
{| align=&amp;quot;left&amp;quot; &lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Image:Resource_pulldown_menu.JPG]]  &lt;br /&gt;
|- &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;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
==Blocks==&lt;br /&gt;
&lt;br /&gt;
Each course homepage generally contains 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.&lt;br /&gt;
&lt;br /&gt;
A  [[Blocks (teacher)|wide range of blocks]] exist that provide additional information or functionality to the learner or teacher. These are included with the standard Moodle package but a range of [[Non-standard blocks]] exist which an administrator can add.&lt;br /&gt;
&lt;br /&gt;
===Administration Block===&lt;br /&gt;
&lt;br /&gt;
All of the links in the administration block are only available to teachers of the course. Students will receive their own version of the block which will display a link to their own gradebook and, if enabled, their own course logs.&lt;br /&gt;
&lt;br /&gt;
Features in the administration block allow teachers to manage [[Students | student]] and [[Teachers | teacher]] enrollments and their [[Groups | groups]], view the course [[Grades | gradebook]], create custom [[Scales | grading scales]] and access the Teacher forum. The teacher forum is a private forum only available to teachers of that course. It can be used to discuss the course content, the direction the course could take or even to attach files to that can be shared among the course teachers.&lt;br /&gt;
&lt;br /&gt;
You can change the way students (and other teachers) access and view your course by exploring the [[Settings]] option in the [[Administration | administration block]]. &lt;br /&gt;
&lt;br /&gt;
There are lots of possible ways to set up a course using blocks, but teachers may be particularly interested in  [[Settings#Format | course formats]] which change how the course is presented to the learner.  The weekly format is suitable for courses that have a clear start date and activities are presented in weekly blocks. Topic formatted courses are actually presented in a similar way but with the dates removed so activities can belong to general or specific areas of study. The social format doesn&#039;t use much content at all and is based around just one forum  which is displayed on the main course page. &lt;br /&gt;
&lt;br /&gt;
In the course homepage there is a white square icon on the top right of a [[Course_sections | section]] which can be used to expand and collapse sections. You can also use the lightbulb icon to mark a topic as current.&lt;br /&gt;
&lt;br /&gt;
Another much used feature of the adminstration block is the [[Files]] link. From here you can upload any digital content for inclusion in an activity, resource, course section or for a direct download. These files can be moved, renamed, edited directly on the server (if they are HTML or text) or deleted. You can also create a directory and display the whole contents of that directory to course students using the add resource drop down in any course section.&lt;br /&gt;
Of course if your content resides out on the web then you don&#039;t need to upload the files at all - you can link directly to them from inside the course  using the link to file or website option.&lt;br /&gt;
&lt;br /&gt;
==General Advice==&lt;br /&gt;
&lt;br /&gt;
* Subscribe yourself to all of the [[forum]]s 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;
*[[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 A course checklist in english]&lt;br /&gt;
*[[Tips and tricks]] - &lt;br /&gt;
*[[Student FAQ]] - students have questions about technology?&lt;br /&gt;
*[[Presentations]] - PowerPoints and stuff on different subjects relating to Moodle&lt;br /&gt;
*[https://docs.moodle.org/en/Category:Lesson Lesson Module Basics] - Index of Lesson topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For an index of teacher topics go [[:Category:Teacher | here ]] or below:&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;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Administrator_documentation&amp;diff=15034</id>
		<title>Administrator documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Administrator_documentation&amp;diff=15034"/>
		<updated>2006-08-28T16:22:05Z</updated>

		<summary type="html">&lt;p&gt;Sunner: Add Chinese interlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to list useful links by general topics for administrators.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
*[[Installing Moodle]]&lt;br /&gt;
*[[Installing AMP|Installing Apache, MySQL and PHP]]&lt;br /&gt;
* [[Installation Quickstart]]&lt;br /&gt;
*[[Installation FAQ]]&lt;br /&gt;
*[[Upgrading|Upgrading Moodle]]&lt;br /&gt;
&lt;br /&gt;
==Security and performance==&lt;br /&gt;
&lt;br /&gt;
*[[Security]]&lt;br /&gt;
*[[Performance]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*[[Variables]]&lt;br /&gt;
*[[Site settings]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Language]]&lt;br /&gt;
*[[Modules (administrator)|Modules]]&lt;br /&gt;
*[[Blocks (administrator)|Blocks]]&lt;br /&gt;
*[[Filters (administrator)|Filters]]&lt;br /&gt;
*[[Backup (administrator)|Backup]]&lt;br /&gt;
*[[Editor settings]]&lt;br /&gt;
*[[Calendar (administrator)|Calendar]]&lt;br /&gt;
*[[Maintenance mode]]&lt;br /&gt;
&lt;br /&gt;
==Users==&lt;br /&gt;
&lt;br /&gt;
*[[Authentication]]&lt;br /&gt;
*[[Edit user accounts]]&lt;br /&gt;
*[[Edit profile|Add a new user]]&lt;br /&gt;
*[[Flat file|Upload users]]&lt;br /&gt;
*[[Enrolment plugins]]&lt;br /&gt;
*[[Courses (administrator)|Enrol students]]&lt;br /&gt;
*[[Courses (administrator)|Assign teachers]]&lt;br /&gt;
*[[Assign creators]]&lt;br /&gt;
*[[Assign admins]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Courses (administrator)|Courses]]&lt;br /&gt;
**[[Course formats|Course formats]]&lt;br /&gt;
*[[Logs]]&lt;br /&gt;
*[[Site files]]&lt;br /&gt;
*[[Moodle database|Database]]&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[CVS (administrator)|CVS documentation]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Search engine optimization]]&lt;br /&gt;
*[[Messaging]]&lt;br /&gt;
*[[Migration]]&lt;br /&gt;
*[[Metacourses]]&lt;br /&gt;
*[[Block layout]]&lt;br /&gt;
*[[Backup FAQ]]&lt;br /&gt;
*[[Administration FAQ]]&lt;br /&gt;
*[[Administrator do&#039;s and don&#039;ts]]&lt;br /&gt;
*[http://download.moodle.org/docs/using_moodle/ch16_server_admin.pdf Using Moodle Chapter 16: Moodle Administration]&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
[[es:Documentación para Administradores]]&lt;br /&gt;
[[fr:Documentation administrateur]]&lt;br /&gt;
[[nl:Documentatie voor beheerders]]&lt;br /&gt;
[[zh:管理员文档]]&lt;/div&gt;</summary>
		<author><name>Sunner</name></author>
	</entry>
</feed>