1 This files describes API changes in /enrol/* - plugins,
2 information provided here is intended especially for developers.
6 * External function core_enrol_external::get_users_courses now return more information to avoid multiple queries to build the
8 - displayname: Course display name for lists.
9 - marker: Course section active marker.
10 - completed: Whether the given user completed the course or not.
11 - lastaccess: Last time the user accessed the course.
12 - overviewfiles: Course overview files.
13 - completionhascriteria: Whether completion criteria is set for the course.
14 - isfavourite: Whether the user marked the course as favourite.
15 - hidden: Whether the user hide the course from the dashboard.
19 * Default sorting in enrol_get_my_courses(), enrol_get_all_users_courses() and enrol_get_users_courses() now respects
20 the site setting "navsortmycoursessort" and should be consistently used when displaying the courses in the UI.
24 * render_course_enrolment_users_table method has been removed from the renderer. The enrolled users page is now
25 combined with the participants page. /enrol/users.php no longer exists.
29 * External function core_enrol_external::get_users_courses now return the user progress, start and the end course dates.
33 * External function core_enrol_external::get_users_courses now return the category id as an additional optional field.
37 * core_enrol_external::get_enrolled_users now supports two additional parameters for ordering: sortby and sortdirection.
38 * Enrolment plugins UI have been consolidated. Plugins can implement use_standard_editing_ui() function
39 and add edit_instance_form() and edit_instance_validation() methods instead of providing their own edit.php and form.
40 They can then rely on the default implementation of get_action_icons and get_course_navigation. In future this will
41 mean they can be called by webservices/user upload tools because they can validate their data.
45 * Added new events enrol_instance_created, enrol_instance_updated and
46 enrol_instance_deleted . Always trigger them when changing records in the
48 * Constant CACHE_COURSE_CONTACTS_TTL was deleted.
49 * External function core_enrol_external::get_enrolled_users now returns only the viewable participants if the course has groups enabled and no groupid is passed.
53 * External function core_enrol_external::get_users_courses now returns additional optional fields:
54 - summary: Course summary.
55 - summaryformat: Course summary format.
56 - format: Course format.
57 - showgrades: True if grades are shown, otherwise false.
58 - lang: Forced course language.
59 - enablecompletion: Control or not via completion and activity settings.
63 * enrol_plugin::instance_deleteable() is deprecated and has been replaced by enrol_plugin::can_delete_instance()
64 * enrol_plugin::can_hide_show_instance() is a new function to control who can hide/show enrolment instances.
65 Returns true by default but plugins must implement their own logic.
69 * Enrolment plugin which supports self enrolment should implement can_self_enrol()
70 * Enrolment plugin should implement get_enrol_info() to expose instance information
71 with webservice or external interface.
72 * Webservice core_enrol_get_enrolled_users_with_capability was incorrectly specifing
73 float as the return type for user id. int is the actual returned type and is now
78 * plugins may use general enrol/editenrolment.php page to let users edit
80 * new support for grade recovery in enrol_plugin::enrol_user() method
84 required changes in code:
85 * use role_get_name() or role_fix_names() if you need any role names, using role.name
86 directly from database is not correct any more
87 * new restore support: ENROL_RESTORE_EXACT, ENROL_RESTORE_NOUSERS
88 and ENROL_RESTORE_CLASS were removed, implement new restore_* plugin methods instead
90 other changes and new features:
91 * course enrolment manager now works with disabled plugins too
92 * new support for protected group membership linked to enrol instance
93 * new support for expiry notifications - see enrol_plugin::send_expiry_notifications() method
98 required changes in code:
99 * load_temp_role() is deprecated, use load_temp_course_role() instead, temp role not loaded
100 * remove_temp_role() is deprecated, use remove_temp_course_roles() instead
101 * 'user_unenrol_modified' event was renamed to 'user_enrol_modified'
106 required changes in code:
107 * enrolment plugins need to be rewritten to use new API - see inline phpdocs and official plugins