Note:

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

Moodle 4.0 developer update: Difference between revisions

From MoodleDocs
(Update migration status and path)
Tag: Replaced
 
(60 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{Moodle 4.0}}This page will highlight the important changes that are coming in Moodle 4.0 for developers. Including how the UX improvements impact custom themes, relevant API changes, and what you can do as developer to prepare for the 4.0 release.
{{Template:Migrated|newDocId=/docs/4.1/devupdate}}
== UX and theme changes ==
== Component library ==
== Navigation ==
== The core_courseformat subsystem ==
Most of the logic for rendering and editing a course has been moved to a new subsystem called courseformat. The subsystem is located at "course/format" folder so it includes all the format plugins inside. The methods and modules which are distributes between the course and the course/format folders are now rearranged or refactored to be aligned with the current Moodle coding style. The major affected specifications are:
 
* Now format plugins must provide a renderer, which is not optional anymore
* The old base_format which plugins extends is now core_courseformat\base
* The methods to render a course are now deprecated and moved to output classes
* The majority of the javascript logic of the course editing is replaced by a new course editor AMD module. The old libraries are still available for third party formats but will eventually replace the previous ones.
* Gradually, all tests and templates are being moved to the subsystem folder
 
== API changes ==
== Behat changes ==
To make behat tests more readable and easy to maintain, it is recommended to use the most direct steps to get what the test needs. So since MDL-66335 was integrated, and the step was improved in MDL-72179 is highly recommended to use
I am on the "Activity name" "[modname] activity" page
or
I am on the "Activity name" "[modname] activity" page logged in as "user"
instead of navigating to the activity via
I am on "Course" course homepage
I follow "Activity name"
Now that [https://docs.moodle.org/dev/Prototypes#Course_creation_improvements Course index] (MDL-71209) is integrated but the project is not stable, these behat steps
I am on "Course" course homepage
I follow "Activity name"
will fail using Boost theme.
 
The reason for it is that the drawer used in Boost is hiding the course index. So when the test is trying to follow an "Activity name" link, it finds two different links:
* one in the course index
* another one in the course main content.
But the first one, the one in the course index, is hidden by the drawer, and the test fails.
 
However the recommended behat steps
I am on the "Activity name" "[modname] activity" page
or
I am on the "Activity name" "[modname] activity" page logged in as "user"
work '''fine'''.
 
Some of the failing behats are fixed in https://github.com/ferranrecio/moodle/commit/c79d58a50b48aa6891ff1d3ba92a7b0ab2393c88#diff-fdf8b0b1eade3b69eaad038de0ddd7c8dec2be7afa32dc693fb929739a49fa9dR32 - MDL-71209
 
For example:
And I am on the "Test assignment name" "assign activity" page logged in as teacher1
instead of:
When I log in as "teacher1"
And I am on "Course" course homepage
And I follow "Test assignment name"
== Core plugins review ==
A few plugins from core Moodle LMS which are no longer or hardly used have been removed and, if appropriate, added to the Moodle plugins directory.
 
More information about this project, the list of plugins to be removed and the process to follow for keeping them before upgrading to 4.0 can be found in the [[Core plugins review]] page.

Latest revision as of 05:03, 13 June 2023

Important:

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!