Moodle 2.0 release notes
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
- 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 moodle.org)
- 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.
- 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, Box.net, 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.
- 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: Box.net, 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.
- 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
- 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:
- AMF (Flash)
- SOAP (PHP)
- Comments block - like a shoutbox, allows comments to be added to any page. Great for student feedback.
- My private files block - allows access to a user's private files, which can then be accessed by them anywhere with the File picker. There is quota management available.
- Community block - keeps track of external courses one is interested in
- Course completion status block - reports on the completion status of your courses
- Moodle supports integration with plagiarism prevention tools such as Turnitin
Major improvements to existing core features
- 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
- 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
- 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".
- 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.
- 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
- 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
- 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
- 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)
- New web portal to make it easer for groups to collaborate on translating Moodle, and to keep their translations up-to-date.
- More efficient storage format for language strings should slightly improve performance.
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
- Quiz navigation improvements for students
- Flagging questions during a quiz attempt Student can mark a question that stays with their quiz.
- Quiz report enhancements - Major improvements to the quiz reports, especially regrading and item analysis
- Quiz report statistics - A brief guide
- Quiz editing interface improvements
- Different settings (open/close date, number of attempts, password, time limit) for each group or student (MDL-16478)
- Administration page for question types
- Question tagging and improved searching in the question bank
- MDL-8648 Essay questions can now be randomised by random questions
- 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
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:
- Firefox 3 or later
- Safari 3 or later
- Google Chrome 4 or later
- Opera 9 or later
- MS Internet Explorer 7 or later (Even Google don't support IE6 any more)
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
- Development: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.
- 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 (anet.at)
- Aaron Barnes, Peter Bulmer, Matt Clarkson, Jonathan Harker, Piers Harding, Luke Hudson, Martin Langhoff, Dan Marsden, Francois Marier, Donal McMullan, Jonathan Newman (catalyst.net.nz)
- Howard Miller (e-learndesign.co.uk)
- Iñaki Arenaza (mondragon.edu)
- Andreas Grabs (grabs-edv.de)
- Jamie Pratt (jamiep.org)
- Anthony Borrow (jesuits.net)
- Gordon Bateson (kanazawa-gu.ac.jp)
- Samuli Karevaara (lamk.fi)
- Penny Leach (liip.ch)
- Dan Poltawski (luns.net.uk)
- Matt Oquist (majen.net)
- Roberto Pinna (mfn.unipmn.it)
- Michael Ketcham (microsoft.com)
- Mitsuhiro Yoshida (mitstek.com)
- 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 (moodle.com)
- Mark Nielsen (moodlerooms.com)
- Andrea Bicciolo (mtouch.it)
- John Beedell, Nicholas Freear, Jenny Gray, Tim Hunt, Sam Marshall, Gareth Morgan, Derek Woolhead (open.ac.uk)
- Ashley Holman (netspot.com.au)
- Patrick Malley (newschoollearning.com)
- Eric Merrill (oakland.edu)
- Mike Churchward (oktech.ca)
- Shane Elliott (pukunui.com)
- Shamim Rezaie (rezaie.info)
- Joseph Rezeau (rezeau.org)
- Lukas Haemmerle (switch.ch)
- Urs Hunkler (unodo.de)
- Jordi Piguillem (upc.edu.es)
- Pierre Pichet (uqam.ca)
- Gustav Delius (york.ac.uk)
- Ethem Evlice, Valery Fremaux, Dariem Garces, Wen Hao Chuang, Luis Rodrigues, Olli Savolainen, John Stabinger
Release date: 25th December 2010
- MDL-25346 - Fixed some navigation issues on the user profile page
- MDL-25656 - Fixed problems with glossary filter
- MDL-21658 - Web services unit tests for external functions and for ws services servers
- MDL-25483 - phpmyadmin plugin upgraded to 184.108.40.206 and 220.127.116.11 (separate download)
- MDL-21671 - Fixed up permission checking when moving course categories
And many more ... see the full list of 80 fixed issues in 2.0.1.
Release date: 21st February 2011
- MDL-20617 - Options to show feedback, averages, range and other data in the user report
- MDL-26109 - All standard blocks have option to dock
- MDL-25616 - Recent messages and recent notifications interfaces
- MDL-17201 - Add index on user_info_data
- MDL-25669 - fix_course_sortorder() does way too many UPDATE queries
- MDL-25837 - disasterous caching bug in course_overview block
- MDL-22970 - Glossary import displays too many items in recent activity
- MDL-25677 - Differences between upgraded and installed sites detected in blocks subsystem
- MDL-24125 - Add in-memory cache of admin_category child objects
- MDL-25501 - Wikis with pages with the same title now upgrade from 1.9
- MDL-25932 - Upgrade fails for wikis with the same title
- MDL-25850 - Scorm score not checking for mod/scorm:viewscores
- MDL-25215 - File extension lost when using "Save As" field
- MDL-26071 - Upgrade fails when adding fields to tag_instance table
- MDL-26236 - Random essay questions give error
- MDL-25321 - sqlsrv_native's limit_to_top_n function destroys queries
- MDL-25626 - Error in "Course completion status" block
- MDL-25863 - Automated course backup function duplicates old versions when saved to non-default location
- MDL-26098 - Manual grading pop-up is confused between id and uniqueid
- MDL-25841 - Cloze question feedback appears in the wrong place
- MDL-26299 - Numerical questions units handling setting reverts to default upon editing
And many more ... see the full list of bug fixes and improvements in 2.0.2.
- MSA-11-0003 Cross-site scripting vulnerability in tag autocomplete
- MSA-11-0004 $CFG->forceloginforprofiles setting ignored in course profiles
- MSA-11-0005 Cross-site scripting vulnerability in spikephpcoverage
- MSA-11-0006 Cross-site request forgery and missing access control in course completion
- MSA-11-0007 Cross-site scripting vulnerability in course tags
- MSA-11-0008 IMS enterprise enrolment file may disclose sensitive information
- MSA-11-0009 My profile block may disclose private information if used in user context
- MSA-11-0010 Incorrect default for moodle/course:delete capability in teacher role
- MSA-11-0011 Multiple cross-site scripting problems in media filter
Release date: 5th May 2011
- MDL-9376 - Q and A forum posts only visible after editing time has expired
- MDL-4633 - Description field in user profile is no longer a required field
- MDL-26697 - Multiple multimedia plugin filter fixes and improvements
- MDL-24724 - There is now a link to send messages on basic profile pages
User interface changes
- MDL-26388 - Duplicate files uploaded through the file picker are now handled
- MDL-26535 - New capability mod/workshop:viewauthorpublished for controlling visibility of workshop published submission authors
- MDL-25834 - Fixes to themes for IE
A number of security issues were resolved, including changes to APIs. Administrators are advised to update before details of security issues are revealed, which will happen one week after release.
- MSA-11-0012 - Authentication issue
- MSA-11-0013 - Group/Quiz permissions issue
- MSA-11-0014 - Personal details displayed without permission
- MSA-11-0016 - Ability to fill a database with invalid records through ratings
- MSA-11-0017 - Ability to generate invalid records in the comments table in the database
Changes to APIs
- Multiple fixes to ratings
- Modules etc wanting to make use of ratings are now required to implement two callback functions, modname_rating_permissions() and modname_rating_validate(). Full details of the callbacks are available in the rating 2.0 documentation
- Comments API improvements
- Plugins intending to use comments are required to implement two callback functions: pluginname_comment_validate(), and pluginname_comment_permissions. Please read full details in Comments documentation.
Fixes and improvements
- MDL-26643 - Fixed blog visibility issue after update
- MDL-26768 - Grades from Lessons are now correctly set to null on non-attempt
- MDL-26798 - Fixes to Dropbox repository integration
- MDL-27116 - Fixed theme directory linking
- MDL-27246 - Able to checkout strings in the language customisation tool
- MDL-27251 - Added optional timeout estimation to file downloads based on file size as it can blocks upgrade
- MDL-27394 - Backup and restore might sometimes have scrambled the order of choices in question types.
A total of over 200 changes were made. See the full list of fixed issues in 2.0.3.