Commit | Line | Data |
---|---|---|
9c82ff2a | 1 | This files describes API changes in /mod/* - activity modules, |
2 | information provided here is intended especially for developers. | |
3 | ||
c128ccc1 SA |
4 | === 3.8 === |
5 | ||
6 | * The final deprecation of xxx_print_overview() callback means that this function will no longer be called. | |
7 | ||
4bebed40 AG |
8 | === 3.6 === |
9 | ||
10 | * The final deprecation of xxx_get_types() callback means that this function will no longer be called. | |
11 | Please use get_shortcuts() instead. | |
12 | * lti_get_shortcuts has been deprecated. Please use get_shortcuts() instead to add items to the activity chooser. | |
95ae74a7 SR |
13 | * Now, when mod_<modname>_core_calendar_is_event_visible or mod_<modname>_core_calendar_provide_event_action callback functions |
14 | are called, the userid of the requesting user is also passed to them. | |
216b8947 MG |
15 | * The following functions have been finally deprecated and can not be used anymore: |
16 | - update_module_button() | |
605354de | 17 | * The final deprecation of xxx_delete_course callback means that this function will no longer be called. |
18 | Please use the observer for event \core\event\course_content_deleted instead. | |
4bebed40 | 19 | |
ef844148 MS |
20 | === 3.5 === |
21 | ||
4f41ae27 DM |
22 | * There is a new privacy API that every subsystem and plugin has to implement so that the site can become GDPR |
23 | compliant. Activity modules use this API to report what information they store or process regarding users, and provide | |
24 | ability to export and delete personal data. See https://docs.moodle.org/dev/Privacy_API for guidelines on how to | |
25 | implement the privacy API in your activity module. | |
8852faea MG |
26 | * Backup directory now can be outside of temp directory. Use make_backup_temp_directory($name) instead of |
27 | make_temp_directory('/backup/'.$name) | |
28 | * Modules that provide their own interactive content and call cm_info::set_content() from [MODULENAME]_cm_info_view() | |
29 | callback should format all user input and call set_content() with parameter $isformatted=true . Otherwise | |
30 | scripts will be cleaned on the course page in case of $CFG->forceclean=1. See example in mod_folder. | |
ef844148 | 31 | |
1678181a MN |
32 | === 3.4 === |
33 | ||
34 | * Navigation between activities via a previous and next link was added to Boost, Clean and Bootstrapbase. This | |
35 | was made possible by a new function core_renderer->activity_navigation(). However, there was an issue when linking | |
36 | to the mod_resource and mod_url view.php pages where it would automatically download the file, or redirect to | |
37 | the URL. It was noticed that this was not the case when editing the module and clicking 'Save and display' which would | |
38 | take you to the pages without downloading the file or redirecting to a link. The reason this worked was because of the | |
39 | hard-coded check 'if (strpos(get_local_referer(false), 'modedit.php') === false) {' in the view.php files. This check | |
40 | has been removed in favour of an optional_param('forceview'). If you are using the above hard-coded check in your | |
41 | plugin it is recommended to remove it and use the optional param as it will prevent the navigation from working as | |
42 | expected. | |
43 | ||
dbc404de JL |
44 | === 3.3 === |
45 | ||
59391e80 MN |
46 | * External functions that were returning file information now return the following additional file fields: |
47 | - mimetype (the file mime type) | |
48 | - isexternalfile (if is a file reference to a external repository) | |
49 | - repositorytype (the repository name in case is a external file) | |
50 | Those fields are VALUE_OPTIONAL for backwards compatibility. | |
c128ccc1 SA |
51 | * The block_course_overview has been removed and the related core module |
52 | *_print_overview functions have been deprecated. | |
59391e80 MN |
53 | * The block_myoverview has replaced block_course_overview to provide better information to students. To support this, |
54 | actions can now be attached to calendar events. Documentation for the following new API callbacks introduced in | |
55 | MDL-55611 can be found at https://docs.moodle.org/dev/Calendar_API. The 3 new callbacks are: | |
56 | - mod_<modname>_core_calendar_is_event_visible | |
57 | - mod_<modname>_core_calendar_provide_event_action | |
907b175c | 58 | - mod_<modname>_core_calendar_event_action_shows_item_count |
273d3106 JD |
59 | * Changes to the moodleform_mod class and its usage (MDL-58138): |
60 | - the get_data() method has been overriden. The implementation calls parent::get_data() and a new data_postprocessing() method | |
61 | - new data_postprocessing() method added. Mods can override this in their mod_form subclass to modify the submit data. Previously | |
62 | mods could only modify submitted data by overriding get_data() in the mod_form subclass. data_postprocessing() is now the way to | |
63 | do this correctly. | |
64 | - completion: \core_completion\manager calls the overriden mod_x_mod_form->data_postprocessing() to allow mods to modify their | |
65 | completion data before saving the bulk completion form. If you've overriden get_data() to modify submit data for completion in | |
66 | the past, you should now override the data_postprocessing() method in your mod_form and move your code there, so bulk completion | |
67 | editing will be properly supported for your plugin. | |
8fef061d MG |
68 | === 3.2 === |
69 | ||
70 | * Callback delete_course is deprecated and should be replaced with observer for event \core\event\course_content_deleted | |
d3932d2b JP |
71 | * update_module_button() and core_renderer::update_module_button() have been deprecated and should not be used anymore. |
72 | Activity modules should not add the edit module button, the link is already available in the Administration block. | |
73 | Themes can choose to display the link in the buttons row consistently for all module types. | |
02a73d76 JL |
74 | * New callback check_updates_since available. Check if the module has any update that affects the current user since the given time. |
75 | Please refer to mod/assign/lib.php, mod/forum/lib.php or mod/quiz/lib.php for sample code. | |
8fef061d | 76 | |
88acc87d DM |
77 | === 3.1 === |
78 | ||
79 | * Old /mod/MODULENAME/pix/icon.gif and enrol/paypal/pix/icon.gif GIF icons have been removed. Please use pix_icon | |
80 | renderable instead. | |
9ca0420e MG |
81 | * Callback get_types() is deprecated, instead activity modules can define callback get_shortcuts(). |
82 | See source code for get_module_metadata(). | |
88acc87d | 83 | |
0b9fc18b JL |
84 | === 3.0 === |
85 | ||
01889f01 DM |
86 | * Dropped support for the $module in mod/xxx/version.php files (deprecated |
87 | since 2.7). All activity modules must use the $plugin syntax now. See | |
88 | https://docs.moodle.org/dev/version.php for details (MDL-43896). | |
731c2712 AA |
89 | * Modules using rating component must implement a callback mod_x_rating_can_see_item_ratings(). Refer |
90 | to mod_forum_rating_can_see_item_ratings() for example. | |
0b9fc18b | 91 | |
8164fad4 | 92 | === 2.9 === |
f7a84c63 | 93 | |
8164fad4 | 94 | * Added Grade to pass field to mod_form for activities that support grading. |
f7a84c63 DM |
95 | * The method moodleform_mod::add_intro_editor() used in mod_form.php form |
96 | definitions has been deprecated. Replace it with the new | |
97 | moodleform_mod::standard_intro_elements() method that takes the new site | |
98 | configuration requiremodintro into account (MDL-49101). | |
8164fad4 | 99 | |
061e6b28 | 100 | === 2.8 === |
101 | ||
102 | * Constant FEATURE_GROUPMEMBERSONLY is deprecated. Modules should remove this | |
103 | constant from their module_supports() API function. | |
104 | * $CFG->enablegroupmembersonly no longer exists. | |
105 | ||
59766233 JM |
106 | === 2.7 === |
107 | ||
108 | * modgrade form element has been redesigned and allows setting the maximum grade point higher than 100. | |
09027084 DM |
109 | * The usage of $module in mod/xxx/version.php files is now deprecated. Please use |
110 | $plugin instead. The support for the legacy notation will be dropped in Moodle 2.10. | |
b2b4ec30 RT |
111 | * xxx_get_view_actions() and xxx_get_post_actions() will be ignored by new logging system for |
112 | participation report. view_action and post_action will be detected by event's crud and edulevel. | |
70279746 MN |
113 | * The functions xxx_user_outline() and xxx_user_complete() have been removed from the majority of core modules (see MDL-41286), |
114 | except for those that require unique functionality. These functions are used by the outline report, but now if they no longer | |
115 | exist, the default behaviour is chosen, which supports the legacy and standard log storages introduced in 2.7 (see MDL-41266). | |
116 | It is highly recommended you remove these functions from your module if they are simply performing the default behaviour. | |
59766233 | 117 | |
50ae8814 MN |
118 | === 2.6 === |
119 | ||
b07ef13b DP |
120 | * Modules using the question bank MUST now declare their use of it with the xxx_supports() |
121 | flag FEATURE_USES_QUESTIONS. | |
50ae8814 MN |
122 | * xxx_get_types() module callback can now return subtypes that have |
123 | a custom help text set. Also instead of array it can now return | |
124 | MOD_SUBTYPE_NO_CHILDREN. This is optional and still defaults to prior | |
125 | behavior. See get_module_metadata() in course/lib.php for details. | |
fb032ccb DP |
126 | * shift_course_mod_dates() has been modified to accept optional mod instance id. If mod instance id is passed then |
127 | dates changed will happen only on specific module instance and not on all instances of that module in course. | |
9c82ff2a | 128 | |
0662bd67 PS |
129 | === 2.5 === |
130 | ||
131 | * support for 'mod/*' filters was removed | |
132 | ||
7d59d8da PS |
133 | === 2.4 === |
134 | ||
135 | new features: | |
136 | ||
137 | * mod/xxx/adminlib.php may now include 'plugininfo_yoursubplugintype' class definition | |
138 | used by plugin_manager; it is recommended to store extra admin settings classes in this file | |
76fb0443 | 139 | |
27affa26 AA |
140 | optional - no changes needed: |
141 | ||
142 | * mod_lesson_renderer::header() now accepts an additional parameter $extrapagetitle | |
7d59d8da | 143 | |
76fb0443 AG |
144 | * mod/data/lib.php data_get_all_recordids() now has two new optional variables: $selectdata and $params. |
145 | ||
0f0c0228 TH |
146 | === 2.3 === |
147 | ||
148 | required changes in code: | |
daefd6eb | 149 | |
0f0c0228 TH |
150 | * define the capability mod/xxx:addinstance (and the corresponding lang string) |
151 | (unless your mod is a MOD_ARCHETYPE_SYSTEM). | |
261cbbac DM |
152 | * xxx_pluginfile() is now given the 7th parameter (hopefully the last one) that |
153 | contains additional options for the file serving. The array should be re-passed | |
154 | to send_stored_file(). | |
0f0c0228 | 155 | |
daefd6eb | 156 | * most resourcelib_embed_* functions are replaced with core_media_renderer; |
157 | for an example, see mod/resource/locallib.php, resource_display_embed() | |
158 | ||
652cc648 DS |
159 | optional - no changes needed: |
160 | ||
161 | * add support for handling course drag and drop types - functions | |
162 | xxx_dndupload_register() and xxx_dndupload_handle($uploadinfo) see: | |
163 | http://docs.moodle.org/dev/Implementing_Course_drag_and_drop_upload_support_in_a_module | |
0f0c0228 | 164 | |
ee362526 PS |
165 | === 2.2 === |
166 | ||
167 | required changes in code: | |
168 | * fix missing parameter types in optional_param() and required_param() | |
169 | * use new optional_param_array(), required_param_array() or clean_param_array() when dealing with array parameters | |
2f1e464a | 170 | * core_text::asort() replaced by specialized core_collator::asort() |
ee362526 PS |
171 | * use new make_temp_directory() and make_cache_directory() |
172 | ||
173 | ||
174 | === 2.1 === | |
175 | ||
176 | required changes in code: | |
177 | * add new support for basic restore from 1.9 | |
178 | ||
179 | ||
180 | === 2.0 === | |
44f2977c | 181 | |
9c82ff2a | 182 | required changes in code: |
183 | * use new DML syntax everywhere | |
728ebac7 | 184 | (http://docs.moodle.org/dev/DML_functions) |
9c82ff2a | 185 | * use new DDL syntax in db/upgrade.php |
728ebac7 | 186 | (http://docs.moodle.org/dev/DDL_functions) |
9c82ff2a | 187 | * replace defaults.php by settings.php and db/install.php |
847400a7 | 188 | * replace STATEMENTS section in db/install.xml with PHP code db/install.php or db/log.php |
9cb56578 | 189 | * move post installation code from lib.php into db/install.php |
56f7ff74 | 190 | * move uninstallation code from lib.php to db/uninstall.php |
8026a943 PS |
191 | * new mandatory naming of intro and introformat table fields in module tables, |
192 | the presence of these fields is indicated in xxx_plugin_supports() | |
9c82ff2a | 193 | * completely rewrite file handling |
728ebac7 | 194 | (http://docs.moodle.org/dev/File_API) |
9c82ff2a | 195 | * rewrite backup/restore |
44f2977c | 196 | (not finished yet) |
9cb56578 PS |
197 | * rewrite trusttext support - new db table columns needed |
198 | * migrate all module features from mod_edit.php form to lib.php/modulename_supports() function | |
398a160d | 199 | * implement new gradebook support (legacy 1.8.x grading not supported anymore) |
44f2977c PS |
200 | * migrate custom resource module subtypes into separate modules, |
201 | necessary only for custom plugins in mod/resource/ | |
af34490a | 202 | * use new $PAGE and $OUTPUT instead of old weblib functions |
78946b9b PS |
203 | * theme changes: move plugin styles into mod/xxx/styles.css and use new css markers for images, |
204 | move all images into new mod/xxx/pix/ directory and use new outputlib api | |
205 | move module icon to mod/xxx/pix/icon.gif | |
cbcc9852 | 206 | old global $THEME is fully replaced by $OUTPUT |
8026a943 | 207 | create plugin renderers |
728ebac7 | 208 | (http://docs.moodle.org/dev/Theme_changes_in_2.0) |
b7534190 | 209 | * migrate all javascript new coding style using YUI3+YUI2 |
728ebac7 | 210 | (http://docs.moodle.org/dev/JavaScript_usage_guide) |
2b0e098e PS |
211 | * remove '_utf8' from lang pack names, use new {a} syntax |
212 | * replace helps with new 'xxx_hlp' strings | |
7070ca36 | 213 | * please note the $plugin->requires in version.php has to be bigger than 2010000000, |
dae88219 | 214 | otherwise the plugin is marked as outdated and upgrade is interrupted |
9c82ff2a | 215 | |
216 | optional - no changes needed in older code: | |
dbf9e4ba | 217 | * settingstree.php replaced by settings.php - just unset the $settings if you want to make custom part of settings admin tree |
ff3ad2d9 PS |
218 | * support for new mforms editor element and embedded files |
219 | (not finished yet) | |
9c82ff2a | 220 | * portfolio support |
728ebac7 | 221 | (http://docs.moodle.org/dev/Portfolio_API) |
9c82ff2a | 222 | * course completion tracking support |
8026a943 PS |
223 | * new navigation features |
224 | * new comments API | |
728ebac7 | 225 | (http://docs.moodle.org/dev/Comments_2.0) |
8026a943 | 226 | * new ratings API |
728ebac7 | 227 | (http://docs.moodle.org/dev/Ratings_2.0) |
9c82ff2a | 228 |