Moodle 3.4
You are encouraged to upgrade to a supported version of Moodle.
Release date: 13 November 2017
Here is the full list of fixed issues in 3.4.
See our New Features page for a more user-friendly introduction to Moodle 3.4 with screenshots.
If you are upgrading from previous version, make sure you read the Upgrading documentation.
Server requirements
These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date.
- Moodle upgrade: Moodle 3.0 or later (if upgrading from earlier versions, you must upgrade to 3.0.10 as a first step)
- PHP version: minimum PHP 7.0.0 Note: minimum PHP version has increased since Moodle 3.3. PHP 7.1.x and 7.2.x are supported too. PHP 7.x could have some engine limitations.
- PHP extension intl is now required in Moodle 3.4 (it was recommended in 2.0 onwards)
Database requirements
Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.
Database | Minimum version | Recommended |
---|---|---|
PostgreSQL | 9.3 | Latest |
MySQL | 5.5.31 | Latest |
MariaDB | 5.5.31 | Latest |
Microsoft SQL Server | 2008 | Latest |
Oracle Database | 10.2 | Latest |
Client requirements
Browser support
Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:
Desktop:
- Chrome
- Firefox
- Safari
- Edge
- Internet Explorer
Mobile:
- MobileSafari
- Google Chrome
For the best experience and optimum security, we recommend that you keep your browser up to date. https://whatbrowser.org
Note: Legacy browsers with known compatibility issues with Moodle 3.4:
- Internet Explorer 10 and below
- Safari 7 and below
Major features
Calendar improvements
- MDL-59333 - Calendar Improvements
- MDL-1322 - Calendar entries in monthly view should include course shortname
- MDL-59382 - Create calendar event quick-add
- MDL-59390 - Add navigation of all calendar views without page reload
- MDL-59394 - Add support for drag and drop of calendar events
- MDL-59386 - Add support for creation and update of calendar events using a modal dialogue
- MDL-59890 - Add support for calendar events at the category level
Management of course participants
- MDL-59290 - Merge Course Participants and Enrolled Users pages
- MDL-59564 - Add bulk editing of enrolment status/dates for users in the course participants page
- MDL-59364 - Remove the "Brief / User Details" functionality from the participants page
- MDL-59365 - Enrol Users button on participants page
- MDL-59366 - Add filter controls to the participants page to allow custom filtering
- MDL-59367 - Add a roles column to participants page
- MDL-59368 - Add a groups column to the participants page
- MDL-59369 - Add a status column to the participants page
- MDL-59436 - Remove the columns from the participants page that are not in showuseridentity
- MDL-59821 - Add "Proceed to course content" to participants page
Other highlights
- MDL-57791 - Implement analytics engine in Moodle
- MDL-59313 - Add links and a drop down to navigate between activities
- MDL-37361 - Allow teachers to mark activities as completed
Backup, restore and import
- MDL-35429 - Correct the permissions required to download and restore course automated backups
- MDL-9367 - Restore with roll forward changes dates for user data
- MDL-59518 - Restore date should not roll for user created data - Core components
Global search
- MDL-55356 - Index contents of the restored courses
- MDL-59523 - Course reset doesn't always shift dates
- MDL-58957 - Global search: Make it possible to search blocks
- MDL-59039 - Global search: Allow partial indexing (in scheduled task)
Authentication
- MDL-30634 - Assign arbitrary system roles via LDAP sync
- MDL-58544 - Add option to trust email of an OAuth provider
- MDL-59844 - Enable OAuth 2 token-based authentication for requests in webdav_client
- MDL-59459 - Global Search: Increase file indexing coverage
- MDL-59913 - Global search: Allow search of non-enrolled courses
Functional changes
- MDL-55358 - LIS Group Variables support in LTI
- MDL-36501 - Should have checkbox for extra credit when you add a grade item
- MDL-28574 - Web services: Manage tokens page should show tokens for all users
- MDL-26976 - Display space used in My Private Files
- MDL-35668 - Performance improvement in Server files repository
- MDL-49398 - Performance improvement due to Role definition caching & accesslib refactoring
- MDL-60002 - Assignment grading: Adding back "Save and show next"
- MDL-58889 - Make section titles and course titles more accessible in Boost
- MDL-57455 - Allow to tag database entries
- MDL-36985 - Assignment: automatically remove embedded files that are no longer linked from submission text. Reduce the size of "Download all submissions"
- MDL-59702 - Lesson overview report does not respect value of showuseridentity setting
- MDL-59460 - Forum: make Subscription mode setting configurable
For administrators
Please read carefully: Possible issues that may affect you in Moodle 3.4
- MDL-42834 - Deprecate loginhttps. Sites that used to use this setting will now be served via https always
- MDL-46269 - Tool to convert http embedded content to https where available
- MDL-58388 - Let the admin control if the course end date form field in course settings is enabled by default
- MDL-60211 - New filters for User Tours
- MDL-59123 - Compile SCSS files on the command-line
- MDL-58567 - Upgrade: Show upgrade times
- MDL-55652 - Missing index on (timemodified) in grade_items_history table and several other grade history tables. This will increase performance of various reports but may also slow down Moodle upgrade
- MDL-60094 - Add CLI script to kill all sessions
- MDL-59495 - Register and publish courses with moodle.net only, remove support for alternative hubs
- MDL-59206 - Trigger an event in add_to_config_log function
- MDL-57115 - Move "Messages" block out from the standard Moodle distribution
- MDL-57734 - SEO - Create admin setting to be able to enable or disable search engine indexing for sites with forcelogin
- MDL-60309 - Boost: Add a setting for background image
- MDL-56751 - Create new security setting to configure the expiration time of tokens created via login/token.php or tool/mobile/launch.php
Security issues
- MSA-17-0021 Students can find out email addresses of other students in the same course
This list only includes security issues fixed after 3.3.2 release. Refer to other release notes for security issues fixed in earlier releases.
For developers
- MDL-60611 - Upgrade PHPUnit to 6.4 to ensure compatibility with PHP 7.2 - may require changes in unittests.
- MDL-58948 - Compatibility with chrome mink driver
- MDL-53169 - Provide a way to retrieve all courses a user can potentially access.
- MDL-59459 - Global Search: Increase file indexing coverage
- MDL-58957 - Global search: Make it possible to search blocks. See the new \core_search\base_block class.
- MDL-53240 - Form element and admin setting type to choose file types and type groups
- MDL-53848 - Formslib - add function to $mform that makes it possible to hide form elements dependent on selected values
- MDL-60234 - Add possibility to disable admin warning if a development libs directory exists
- MDL-57886 - Plagiarism: onlinetext submission should pass raw submissiontext to plagiarism get_links()
Upgrading plugins
1. Check for changes in core APIs
Read lib/upgrade.txt to check for the deprecations and core API changes, make sure you applied them to your plugin. Note that entries there are not sorted by priority but rather by integration time. Below is the list of upgrade.txt files that contain information about upgrading from Moodle 3.3 to Moodle 3.4 (note that if you upgrade from earlier versions there may be more files):
- lib/upgrade.txt changes to various core APIs, deprecations, functions removal
- calendar/upgrade.txt changes to Calendar API
- search/upgrade.txt changes to Global search API
- webservice/upgrade.txt changes to WebServices API
2. Check for changes in the API of your plugin type
Below is the list of plugin types that had API changes between Moodle 3.3 and 3.4:
- Block plugins
- Dataformat plugins
- Enrolment method plugins
- Activity module plugins
- Plagiarism plugins
- Repository plugins
- Themes
- User profile fields
3. Check for changes in the depended plugins
If your plugin depends on another plugin or calls methods from another plugin, read upgrade.txt in this plugin directory (if it exists). Below is the list of standard plugins that had changes between Moodle 3.3 and 3.4:
- logstore_database
- tool_mobile
- auth_ldap
- block_calendar_upcoming
- editor_atto
- mod_assign
- mod_data
- mod_forum
- mod_glossary
- mod_lesson
- mod_lti
- mod_workshop
- theme_boost
4. Do a smoke test of your plugin with developer debugging mode
5. Run all behat and phpunit tests