If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Moodle 2.0 release notes

From MoodleDocs

This content of this page has been updated and migrated to the new Moodle Developer Resources. The information contained on the page should no longer be seen up-to-date.

Why not view this page on the new site and help us to migrate more content to the new site!

Moodle 2.0

Release date: 24th November 2010

Moodle 2.0 contains a lot of large new features, some completely rewritten features, and hundreds of bug fixes. For full details (more than you probably want!), see the full list of fixed issues in 2.0.

Major new features

Community hubs

  • Anybody can set up a Community hub, which is a directory of courses for public use or for private communities. The code is implemented as separate GPL plugin for Moodle.
  • Sites can register to any Community hub (instead of just
  • Teachers on registered sites can publish their full courses to Community hubs, for download
  • Teachers on registered sites can also advertise their courses on Community hubs, for people to join
  • Teachers on any site can search all public Community hubs and download courses as templates for their own courses
  • Users on any Moodle site can also search Community hubs for courses (and communities of practice) to participate in. Initially we are encouraging 'communities of teaching practice' but any sort of course can be listed.

Repository support

  • File management has undergone a major change in both the interface and function.
  • The File picker presents a standard way to access the new File bank repository system.
  • This allows Moodle to integrate with external repositories of content, making it really simple to bring documents and media into Moodle via an AJAX interface that looks like a standard Open dialogue in desktop applications.
  • Initial plugins in 2.0 include: Alfresco, Amazon S3,, File system on Server, Flickr, Google Docs, MERLOT, Picasa, Recent Files, WebDAV servers, Wikimedia, Youtube. These are simple to develop, so many more are expected.
  • You can also import files from your desktop or by specifying a URL.
  • There are more attributes that can be added to a file, such as license and author.

Portfolio support

  • Modules can now export their data to external systems, particularly useful for portfolios where snapshots of forums, assignments and other things in Moodle are useful to record in a journal or a portfolio of evidence
  • Different formats are supported (currently LEAP2A, HTML, Images and Text, but others like PDF can be added)
  • Initial plugins in 2.0 include:, Flickr, Google Docs, Mahara and Picasa.

Course completion and prerequisites

  • Teachers can now specify a Course completion condition standard for all students. Conditions include activity completion, but could also be by grade, date or a number of other criteria.
  • Teachers can use the above standard as a prerequisite to other courses that allows ordered progression and scaffolding.
  • Teachers and students can see reports that show the progress within a course, or through a series of courses.

Conditional activities

  • Access to activities can be restricted based on certain criteria, such as dates, grade obtained, or the completion of another activity.
  • These can be chained together to enable progressive disclosure of the course content, if that is desired.
  • Teachers can now specify conditions that define when any activity is seen as completed by a student. For example, when a certain number of posts have been made, or a grade has been reached, or a choice has been made.


  • Also known as "Site-wide groups", these are site-wide collections of users that can be enrolled into courses in one action, either manually or synchronised automatically

Web services support

  • Support for standards-based web services across the entire Moodle code base, allowing the admin to expose particular functions of Moodle for use by:
    • Administrative systems such as HR or SIS applications
    • Mobile clients
  • Framework contains a very high-level of security with a detailed token system and complete control over the range of functions exposed
  • All defined functions are automatically available via:
    • XML-RPC
    • AMF (Flash)
    • REST
    • SOAP (PHP)

New blocks

Plagiarism prevention

  • Moodle supports integration with plagiarism prevention tools such as Turnitin

Major improvements to existing core features

Backup and restore

  • Completely rewritten Backup/Restore framework, no longer bound by memory (can work with any size course).
  • Completely new backup format.
  • Improved interface.
  • Backup can be made of whole courses, but also specific sections or activities.


  • Blocks are now consistently implemented on every page in Moodle
  • No longer any limit to placing blocks in only the left and right column regions but also at the top, center or bottom of areas of pages)
  • Any block can be forced to appear in all the page contexts below it (for example, in every course or throughout a course).
  • Blocks can placed in the Dock area on the side of the screen (if the theme supports it)


  • Support for comments on each blog entry
  • Removal of group-level and course-level blogs (these are converted into forums on upgrade)
  • Support for external blog feeds (synchronised to Moodle blog)


  • User comments (Glossaries, Databases, Blogs, etc) are now all consistently handled and displayed throughout Moodle, using AJAX if available

Enrolment plugins

  • Major improvements in the handling of guests and guest accounts
  • Support for multiple forms of enrolment at the same time
  • More detailed control over enrolment in courses

File handling

  • There is a new File picker interface that manages files for resources and when they are used in an activity, such as including an image in a content page.
  • Full support for Unicode file names on all operating systems.
  • Metadata about each file (author, date, license, etc) and what the file is used for are stored in the database.
  • Duplicate files (for example, a large video file use in two different courses) are only stored once, saving disk space.
  • Security has been improved because files have the same contexual permissions as the activity that uses them. (For example, a file may belong to a file resource, a forum post or a wiki page ). Files are no longer just "uploaded to the course".

Filters 2.0

  • In the past, you had to use the same filters everywhere in your Moodle site, and this could only be changed by admins.
  • Now, you can have different filters in different courses, activities or categories.
  • For example, you could turn on the LaTeX filter just for courses in the Maths and Physics categories.
  • Or you could turn off glossary linking in the end of course exam.

HTML editor

  • New editor based on TinyMCE
  • Works on more browsers
  • Resizable editing area
  • Cleaner XHTML output
  • Full integration with configured external repositories to import and embed media into text


  • All email sent by Moodle is now treated as a message
  • A message overview panel allows users to control how messages are sent to them
  • Initial message output plugins in Moodle 2.0 include: Email, Jabber and Popups

My Moodle page

  • More customisable My Moodle page with new blocks for showing relevant information
  • Admin can design (and optionally force) site-wide layouts for My Moodle
  • My Moodle page given more prominence as the main "home page" for users


  • Standard "Navigation" block on every page showing contextual links, while allowing you to jump elsewhere quickly
  • Standard "Settings" blocks on every page shows contextual settings as well as settings for anything else you have permissions for


  • User ratings (Glossaries, Databases, Forums, etc) are now all consistently handled and displayed throughout Moodle, using AJAX if available
  • Aggregation of using ratings into activity grades is now standardised in all activities

Roles and permissions

  • Simplified permission evaluation logic
  • Improved and simplified AJAX interfaces for defining and assigning roles
  • Improved and simplified interfaces for tweaking permissions in any given context
  • New "Archetypes" concept replacing the "Legacy roles" concept.
  • New archetype "manager" to define the role of most people with system-wide editing rights, separate from "admin" role.
  • Permission of "Administrator" superusers can not be modified

RSS feeds

  • All RSS feeds are now secured using a random per-user token in the URL
  • Tokens can be updated by the user at any time (if they suspect a feed URL has been compromised)
  • RSS feeds are now more accurate (eg they support forums with separate groups), and are generated efficiently whenever required


  • Many new themes in the core distribution - see Theme credits for a list
  • All HTML and JS ouput is now far more efficient (server-side caching) and consistent (tableless layout, new CSS, YUI Framework)
  • Themes can change the HTML of the page if they wish
  • Core support for custom menus in all themes (for example at the top of the page)

Translation system

User profile pages

  • Site-wide user profile page can be customised by users with blocks, news, feeds and so on
  • Course-specific user profile pages show course blocks and standard profile information, plus information for teachers of that course

Major improvements to activity modules


  • Refactored internal code
  • Forms are now standard Moodle forms

Quiz module and question bank


  • All the resource types have been refactored into real modules, and cleaned up
    • File - for displaying a file, possibly with supporting files (like a HTML mini-site)
    • Folder - for displaying a collection of documents
    • URL - for displaying a page with a given URL
    • Page - for a single page, edited online using the HTML editor
    • IMS - for showing a regular IMS content package
  • Better XHTML-compliant support for frames, iframes and embedding in all these modules


  • New SCORM module settings - display attempt status, display course structure, force completed, force new attempt, lock after final attempt - allowing the behaviour dictated to the SCORM object by the authoring package to be changed MDL-11501
  • New reporting interface including sortable/collapsible table with group select box and ability to download in Excel, ODS and text format MDL-21555
  • New SCORM player UI with better navigation, improved performance and better handling of stage size MDL-22951


  • Completely re-written from scratch, based on NWIki from UPC
  • Support for Mediawiki-style syntax, as well as Creole
  • Interface improvements


  • Completely rewritten from scratch
  • Vastly improved interface for managing stages and users

System requirements

Since Moodle 2.0 is such a major release, we are allowing ourselves some increases in the requirements.

  • PHP must be 5.2.8 or later (it was released 08-Dec-2008), PHP 5.3.3 or later is recommended
  • Databases should be one of the following:
    • MySQL 5.0.25 or later (InnoDB storage engine highly recommended)
    • PostgreSQL 8.3 or later
    • Oracle 10.2 or later
    • MS SQL 2005 or later
  • Any standards-supporting browser from the past few years, for example:


When upgrading to Moodle 2.0, you must have Moodle 1.9 or later. if you are using an earlier version of Moodle (eg 1.8.x) then you need to upgrade to Moodle 1.9.x first. We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.

For further information, see Upgrading to Moodle 2.0.

For developers: API changes

See Migrating contrib code to 2.0

  • Plugin system changes in Moodle 2.0 - all the different types of plugin are now handles more consistently when it comes to installation and upgrading, capabilities, events, and so on.
  • Database layer changes - you will need to update your code.
  • File handling changes - you will need to update your code.
  • Rendering layer changes - should be mostly backwards compatible, but you are advised to upgrade your code.
  • Require capability used to do an automatic require_login. It no longer does so. All pages must explicitly call require_login if they need it. MDL-19882
  • Changes to the question type API
  • MNet has been refactored and tidied up - related third party code needs to be checked
  • Changes and improvements to the Local customisation system.
  • Javascript
  • YUI
  • custom profile fields values are loaded into $USER->profile array instead of directly into $USER object


These people made check-ins to Moodle 2.0 code. Thanks to all of them, of course. Some of these people represent a team of people who actually worked on the code.

  • Robert Allerstorfer (
  • Aaron Barnes, Peter Bulmer, Matt Clarkson, Jonathan Harker, Piers Harding, Luke Hudson, Martin Langhoff, Dan Marsden, Francois Marier, Donal McMullan, Jonathan Newman (
  • Howard Miller (
  • Iñaki Arenaza (
  • Andreas Grabs (
  • Jamie Pratt (
  • Anthony Borrow (
  • Gordon Bateson (
  • Samuli Karevaara (
  • Penny Leach (
  • Dan Poltawski (
  • Matt Oquist (
  • Roberto Pinna (
  • Michael Ketcham (
  • Mitsuhiro Yoshida (
  • Aparup Banerjee, Dongsheng Cai, Nicolas Connault, Andrew Davis, Martin Dougiamas, Helen Foster, Sam Hemelryk, Eloy Lafuente, Jerome Mouneyrac, David Mudrak, Mathieu Petit-Clair, Petr Skoda, Rossiani Wijaya, Yu Zhang (
  • Mark Nielsen (
  • Andrea Bicciolo (
  • John Beedell, Nicholas Freear, Jenny Gray, Tim Hunt, Sam Marshall, Gareth Morgan, Derek Woolhead (
  • Ashley Holman (
  • Patrick Malley (
  • Eric Merrill (
  • Mike Churchward (
  • Shane Elliott (
  • Shamim Rezaie (
  • Joseph Rezeau (
  • Lukas Haemmerle (
  • Urs Hunkler (
  • Jordi Piguillem (
  • Pierre Pichet (
  • Gustav Delius (
  • Ethem Evlice, Valery Fremaux, Dariem Garces, Wen Hao Chuang, Luis Rodrigues, Olli Savolainen, John Stabinger

See also