Skip to main content

Moodle 2.3

Unsupported Moodle Version
This version of Moodle is no longer supported and will not receive fixes for security risks.
You are encouraged to upgrade to a supported version of Moodle.

Release date: 25th June 2012

Here is the full list of fixed issues in 2.3.

Many thanks to everyone that worked on the new features in this release, including those from Moodle HQ, The Open University, NetSpot, Synergy Learning, Lancaster University Network Services, Catalyst IT, CV&A Consulting (funded by ESADE and IL3-UB) and others. More details can be found below under each major feature, or look at the list of bugs fixed above.

A special thanks to our incredible 'Integration Team' from Moodle HQ who worked tirelessly with all developers to review, test and help finish code for inclusion in Moodle core:

  • Eloy Lafuente
  • Sam Hemelryk
  • Dan Poltawski
  • Aparup Bannerjee

Finally, thanks to all our testers both within Moodle HQ and from the whole community, who have contributed to producing our most exciting and stable release yet!


  • Minimum browser: Firefox 4, Internet Explorer 8 (IE 10 required for drag and drop of files from outside the browser into Moodle) , Safari 5, Google Chrome 11, Opera 9
  • Moodle upgrade: Moodle 2.2 or later (if upgrading from earlier versions, you must upgrade to 2.2 as a first step)
  • Minimum DB versions: Postgres 8.3, MySQL 5.1.33 (MDL-33984), MSSQL 2005 or Oracle 10.2
  • Minimum PHP version: PHP 5.3.2

Major new features

Files usability

  • MDL-31907 - A nicer-looking file picker with fewer clicks.
  • Images now display as true thumbnails in the file picker and file manager.
  • Other files have pretty icons for most file types.
  • Files view can be easily toggled between icons view or a table view with sizes and dates, or a hierarchical list view.
  • You can now drag and drop files directly from your desktop straight into file areas!
  • File info (eg license information, sizes, dates) can be easily edited and viewed in a popup dialogue.
  • Files can be created as "aliases/shortcuts" of other files. This allows you to, for example, use a single file in your private files area multiple times in all your courses. If you update the original file then all the aliases will automatically update!
  • Aliases are easily identifiable in the file manager interface.

Credits to Moodle HQ: Marina Glancy, Barbara Ramiro, Martin Dougiamas, David Mudrak, Dongsheng Cai and others.

File picker icon view

File picker table view

File picker hierarchical list view

File info popup dialogue

Creating an alias

Aliases are easily identifiable

Repository improvements

  • MDL-32117 - New EQUELLA repository enabling users to make aliases (shortcuts) to EQUELLA files.
  • MDL-28666 - If a repository supports it then it's possible to make an alias/shortcut to a file in an external repository. If the file is updated in the repository, then this change is reflected in Moodle. The file remains under Moodle access control however, and the original URL is not usually revealed. In the 2.3 core release, this is supported by private files, server files, file system, and EQUELLA repositories.
  • The repository plugin is now able to take over the whole right-hand pane of the file picker and provide its own searching/browsing interface.
  • MDL-31675 - Server files repository now available for database, forum and glossary activities.

Credits to Moodle HQ: Dongsheng Cai, Marina Glancy, Martin Dougiamas, Petr Skoda

Improvements to course pages

  • MDL-32476 - Courses can now choose to show sections on individual pages
  • MDL-31052 - All AJAX editing on the course pages has been modernised and cleaned up (YUI3). It's on by default now too.
  • MDL-31263 - Blocks can be dragged and dropped around the page (again)
  • MDL-30617 - An optional new popup "Activity chooser" has been added with full introduction, examples and links about each activity or resource module.
  • MDL-22504 - You can now drag files straight into the course page and they will be added as resources.
  • MDL-31215 - You can edit the name of any activity or resource directly on the course page without entering the settings (works particularly well with drag and drop).
  • MDL-32771 - You can now add/remove sections directly from the course page.
  • MDL-32770 - With paged sections, navigation is possible between sections (previous, next, main).

Credits to: Andrew Nicols and Ruslan Kabalin (LUNS) Davo Smith (Synergy Learning), Dan Poltawski and Martin Dougiamas (Moodle HQ)

File drag and drop

Activity chooser

Assignment module

  • MDL-26997 - Complete rewrite of the assignment module from scratch, by NetSpot (Moodle Partner in Australia)
  • Assignment subtypes are no longer needed. New plugins are possible for
  • Old Assignment module is still installed, and works, but is not necessary

Credits to Netspot: Damyon Wiese, Raymond Wijaya, Minh-Tam Nguyen

  • Upgrade Tool is provided to upgrade from old assigments

  • MDL-31731 - New marking guide advanced grading method, where a teacher enters a comment per criterion and a mark up to a maximum

Credits to Dan Marsden Catalyst IT (development); Lightwork Team at Massey University (concept); NetSpot Innovation Grant (funding)

Book module

  • MDL-32709 - The most popular third-party resource module ever, Book finally joins core. Welcome!

Credits to Petr Škoda, Moodle HQ

Quiz module

  • MDL-3030 - More robust handling of quiz attempts that are not submitted by the deadline.
  • MDL-3054 & MDL-11047 - There is now an option for teacher to force students to answer the quiz questions strictly in order. As part of this, the quiz remembers which page the student was last on, and will take them back there when they resume an attempt.

Credits to Tim Hunt, The Open University and Charles Fulton, Lafayette College

SCORM module

  • MDL-29745 - New SCORM graph report plugin (credits to Ankit Agarwal, Moodle HQ and Dan Marsden, Catalyst IT)
  • MDL-32937 - You can now drag a SCORM package straight into the course page and it will be added as SCORM activity (credits to Christopher Tombleson and Dan Marsden, Catalyst IT, and Davo Smith, Synergy Learning)

Workshop module

  • MDL-26099 - Option to make the workshop switch to the assessment phase automatically after the submissions deadline (including automatic allocation of submissions for assessment)
  • MDL-25660 - Workshop submission deadlines are shown in the calendar
  • MDL-27508 - Improved support for pagination and filtering workshop submissions by group
  • MDL-32638 - Workshop supports file browsing via Server files repository (including improved access control when serving submission files)

Credits to David Mudrak, Moodle HQ

Available update notifications

Credits to David Mudrak, Moodle HQ

Other highlights

Google Docs and Picasa plugins requirement

  • MDL-29857 - Due to a change in Google's service, Moodle has switched to a more secure and more user-friendly system for communicating with Google called 'OAuth 2.0'. An administrator must register their site with Google, as described in Google OAuth 2.0 setup in order to obtain a client ID and secret for use in configuring all Google Docs and Picasa plugins (the Google Docs and Picasa repositories and the Google Docs and Picasa portfolios).

Credits to Dan Poltawski, Moodle HQ

IMS Common Cartridge 1.1 Export

  • MDL-33079 - In Moodle 2.2 we introduced IMS CC import. Well, now you can also export to that format, via the normal Backup menu. Just look for the IMS CC checkbox.


  • MDL-31121 - Option in file resource settings to display file size and/or type on course page (credits to Sam Marshall, The Open University)
  • MDL-32009 - Admin option for uninstalling messaging outputs and report of messaging output statuses on plugins overview page
  • MDL-29941 - Admin option to enable a CSS optimiser that analyses and refactors CSS before caching it
  • MDL-24419 - Conditional activities setting enabling teachers to restrict access to a course section using similar logic to Conditional Activities (with thanks to the University of New South Wales for funding and NetSpot for developing this feature and Sam Marshall at the OU for integrating it to core)
  • MDL-26901 - Option to add extra fonts to the TinyMCE HTML editor
  • MDL-31315 - When editing a form, a warning will be displayed if trying to navigate away with content edited
  • MDL-33401 - Managers are now allowed the capability to edit blocks (moodle/block:edit) by default for new installs. This does not affect existing installations.
  • MDL-32005 - New group and groupings ID number setting for matching groups and groupings against external systems (credits to Andrew Nicols, LUNS)
  • MDL-30482 - New view glossary entries capability
  • MDL-31158 - New recover grades default setting
  • MDL-11378 - New SMTP security email setting
  • MDL-31654 - When uploading users with custom profile menu fields, fields are now uploaded by value rather than by index. Such values are now validated.
  • MDL-33122 - In a fresh install, more repositories are enabled by default. Default enabled repositories are Server files, Recent files, Upload a file, URL downloader, Private files, Wikimedia and YouTube.
  • MDL-27469 - SCORM activities now correctly work with activity completion.
  • MDL-22895 - Calendar events for a course are backed up and restored.
  • MDL-19125 - The ability to add activities/resources to a course is now controlled by capabilities.
  • MDL-31014 - The Glossary approval page now has a new page format.
  • MDL-29615 - A setting has been added that prevents users from overriding their default email address with another in their messaging settings.
  • MDL-31854 - The total grade column is now more prominent on the Quiz grades report.
  • MDL-29624 - Media embedding settings, applicable in a number of areas, are now applied consistently across the site. These settings are now available in Settings > Site admin > Appearance > Media embedding. (credits to Sam Marshall, The Open University)
  • MDL-27212 - On the Tags page, redundant anchor links have been removed.
  • MDL-31351 - The Splash theme has been updated.
  • MDL-31985 - Text and binary field size removed from XMLDB

Security issues

All security issues that were fixed in 2.2.x and 2.1.x were also fixed in 2.3.

For developers: API changes

Abbreviated descriptions of API changes are always kept up to date in the "upgrade.txt" within each plugin area. We do this so that the information is always exactly right for the version of Moodle you are using. Changes in this release:

Core API changes

  • MDL-31902 All xxx_get_participants() functions are removed from core
  • As a part of MDL-32471, the signature of send_stored_file() has been modified. The last two parameters $filename and $dontdie were replaced with a single array containing additional options for the file serving. The pluginfile callbacks in plugins are supposed to transfer these options from the caller to send_stored_file() - see the note below.
  • MDL-28666 Files API changes, added ability to create file reference using file_storage::create_file_from_reference() method, update file record attributes using stored_file class
  • MDL-28666 Repository API changes, added new APIs repository::get_file_reference(), repository::get_file_by_reference(), repository::get_reference_details(), repository::send_file(), the new APIs make serving files from external repository possible
  • MDL-33446 Make sure that areas in your plugins where you DON'T want content to change have support for file references turned OFF. Some areas in Moodle core that do not support references are assignment submissions, workshop submissions, forum posts, and quiz essay questions - this is so that students are not able to update files from outside Moodle after any due date
  • AJAX Flags: MDL-32509 and MDL-32908 The $CFG->enablecourseajax and $USER->ajax fields have been removed. The fields was not widely respected and all 'advanced JavaScript' should work in a progressive enhancement and accessible way. A site wide flag still exists but may be phased out in the future.
  • MDL-27982 problematic non-standardised unsigned number support was removed from the database abstraction layer, all number columns in MySQL databases are automatically converted to signed, all other databases were already using signed numbers
  • MDL-31985 problematic text field size support was removed was removed from the database abstraction layer, all text columns in MySQL databases are automatically converted to big sizes, all other databases were already using only one text size

Plugin API changes

  • As a part of MDL-32471, the API of the plugin function xyz_pluginfile() has been extended. There is a new array parameter passed to these callbacks containing additional options for the file serving. The array should be re-passed to send_stored_file(). The change is pretty trivial - see examples.
  • Activity modules can now declare support for course drag and drop upload Implementing Course drag and drop upload support in a module

Webservice changes

Few changes could break existing web service clients in 2.3 - untill this version we tried not to break anything. However these changes will make the client's developer life easier, so we prefered to do them now than later. Please take in consideration these improvements and retest your clients:

Unit tests

We have switched completely to using PHPUnit for all our unit tests now. All existing simpletests have been rewritten, and new tests have been added.

We intend to move towards a completely unit-test-driven development methodology (where the tests are written first!) for significant new code, and we also encourage all developers to implement unit tests covering at least the core features of their code.

Moodle HQ run these tests on an automated basis for all new code submitted for integration, as well as on each weekly release.

Community hub changes

Some bug fixes and improvements in core and in the plugin. Hub administrators must update their hub to the most recent version regarding CONTRIB-3646.

See also