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