Commit | Line | Data |
---|---|---|
690a55f6 | 1 | This files describes API changes in core libraries and APIs, |
ee362526 PS |
2 | information provided here is intended especially for developers. |
3 | ||
a74d4743 SH |
4 | === 2.9 === |
5 | ||
adeb96d2 | 6 | * Support for loading AMD javascript modules has been added. See MDL-49046. |
cf02542d | 7 | * Webservice core_course_delete_courses now return warning messages on any failures and does not try to rollback the entire deletion. |
a74d4743 | 8 | * \core\event\course_viewed 'other' argument renamed from coursesectionid to coursesectionnumber as it contains the section number. |
91fed57a | 9 | * New API core_filetypes::add_type (etc.) allows custom filetypes to be added and modified. |
556e3a9e AN |
10 | * PHPUnit: PHPMailer Sink is now started for all tests and is setup within the phpunit wrapper for advanced tests. |
11 | Catching debugging messages when sending mail will no longer work. Use $sink = $this->redirectEmails(); and then check | |
12 | the message in the sink instead. | |
c9bd4e41 | 13 | * The file pluginlib.php was deprecated since 2.6 and has now been removed, do not include or require it. |
9802bd61 | 14 | * \core_component::fetch_subsystems() now returns a valid path for completion component instead of null. |
7d0d3b36 | 15 | * Deprecated JS global methods have been removed (show_item, destroy_item, hide_item, addonload, getElementsByTagName, findChildNodes). |
8072628a NM |
16 | * For 3rd party plugin specific environment.xml files, it's now possible to specify version independent checks by using the |
17 | <PLUGIN name="component_name"> tag instead of the version dependent <MOODLE version="x.y"> one. If the PLUGIN tag is used any | |
18 | Moodle specific tags will be ignored. | |
7310dcff | 19 | * External function core_files_get_files returns additional fields (timecreated, filesize, author, license) |
3451a51c | 20 | * html_table: new API for adding captions to tables (new field, $table->caption) and subsequently hiding said captions from sighted users using accesshide (enabled using $table->captionhide). |
a74d4743 | 21 | |
4051685b AG |
22 | === 2.8 === |
23 | ||
47d6e6a7 DW |
24 | * Gradebook grade category option "aggregatesubcats" has been removed completely. |
25 | This means that the database column is removed, the admin settings are removed and | |
26 | the properties from the grade_category object have been removed. If any courses were | |
27 | found to be using this setting, a warning to check the grades will be shown in the | |
28 | course grader report after upgrading the site. The same warning will be shown on | |
29 | courses restored from backup that had this setting enabled (see MDL-47503). | |
4051685b | 30 | * lib/excelllib.class.php has been updated. The class MoodleExcelWorkbook will now only produce excel 2007 files. |
ebdcb292 SH |
31 | * renderers: We now remove the suffix _renderable when looking for a render method for a renderable. |
32 | If you have a renderable class named like "blah_renderable" and have a method on a renderer named "render_blah_renderable" | |
33 | you will need to change the name of your render method to "render_blah" instead, as renderable at the end is no longer accepted. | |
d25c41fb | 34 | * New functions get_course_and_cm_from_cmid($cmorid, $modulename) and |
35 | get_course_and_cm_from_instance($instanceorid, $modulename) can be used to | |
36 | more efficiently load these basic data objects at the start of a script. | |
37 | * New function cm_info::create($cm) can be used when you need a cm_info | |
38 | object, but have a $cm which might only be a standard database record. | |
061e6b28 | 39 | * $CFG->enablegroupmembersonly no longer exists. |
16078807 DP |
40 | * Scheduled tasks have gained support for syntax to introduce variability when a |
41 | task will run across installs. When a when hour or minute are defined as 'R' | |
42 | they will be installed with a random hour/minute value. | |
b79bf7a2 MG |
43 | * Several classes grade_edit_tree_column_xxx were removed since grades setup page |
44 | has been significantly changed. These classes should not be used outside of | |
45 | gradebook or developers can copy them into their plugins from 2.7 branch. | |
885b889d MG |
46 | * Google APIs Client Library (lib/google/) has been upgraded to 1.0.5-beta and |
47 | API has changed dramatically without backward compatibility. Any code accessing | |
48 | it must be amended. It does not apply to lib/googleapi.php. See MDL-47297 | |
27b6839f MN |
49 | * Added an extra parameter to the function get_formatted_help_string() (default null) which is used to specify |
50 | additional string parameters. | |
b9ba26b2 | 51 | * User settings node and course node in navigation now support callbacks from admin tools. |
a7888487 | 52 | * grade_get_grades() optional parameteres $itemtype, $itemmodule, $iteminstance are now required. |
4051685b | 53 | |
83988eb1 EL |
54 | DEPRECATIONS: |
55 | * completion_info->get_incomplete_criteria() is deprecated and will be removed in Moodle 3.0. | |
d6caf637 | 56 | * grade_category::aggregate_values() is deprecated and will be removed in Moodle 3.0. |
061e6b28 | 57 | * groups_filter_users_by_course_module_visible() is deprecated; replace with |
58 | core_availability\info::filter_user_list. Will be removed in Moodle 3.0. | |
59 | * groups_course_module_visible() is deprecated; replace with $cm->uservisible. | |
60 | * cm_info property $cm->groupmembersonly is deprecated and always returns 0. | |
61 | Use core_availability\info::filter_user_list if trying to determine which | |
62 | other users can see an activity. | |
63 | * cm_info method $cm->is_user_access_restricted_by_group() is deprecated and | |
64 | always returns false. Use $cm->uservisible to determine whether the user can | |
65 | access the activity. | |
66 | * Constant FEATURE_GROUPMEMBERSONLY (used in module _supports functions) is | |
67 | deprecated. | |
80f98467 MG |
68 | * cohort_get_visible_list() is deprecated. There is a better function cohort_get_available_cohorts() |
69 | that respects user capabilities to view cohorts. | |
58b5b04d MG |
70 | * enrol_cohort_get_cohorts() and enrol_cohort_search_cohorts() are deprecated since |
71 | functionality is removed. Please use cohort_get_available_cohorts() | |
72 | * enrol_cohort_enrol_all_users() is deprecated; enrol_manual is now responsible for this action | |
80f98467 | 73 | * enrol_cohort_can_view_cohort() is deprecated; replace with cohort_can_view_cohort() |
83988eb1 | 74 | |
2b55cb1b | 75 | === 2.6.4 / 2.7.1 === |
83988eb1 | 76 | |
2b55cb1b RT |
77 | * setnew_password_and_mail() and update_internal_user_password() will trigger |
78 | \core\event\user_password_updated. Previously they used to generate | |
79 | \core\event\user_updated event. | |
80 | * update_internal_user_password() accepts optional boolean $fasthash for fast | |
81 | hashing. | |
82 | * user_update_user() and user_create_user() api's accept optional param | |
83 | $triggerevent to avoid respective events to be triggred from the api's. | |
84 | ||
c4b0d6dc AA |
85 | === 2.7 === |
86 | ||
9e00d46b | 87 | * PHPUnit cannot be installed via PEAR any more, please use composer package manager instead. |
686e3b3a FM |
88 | * $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions. |
89 | ||
1480f6ea MG |
90 | Events and Logging: |
91 | * Significant changes in Logging API. For upgrading existing events_trigger() and | |
92 | add_to_log() see http://docs.moodle.org/dev/Migrating_logging_calls_in_plugins | |
e2cb3ffa | 93 | For accessing logs from plugins see http://docs.moodle.org/dev/Migrating_log_access_in_reports |
c446f41a MN |
94 | * The validation of the following events is now stricter (see MDL-45445): |
95 | - \core\event\blog_entry_created | |
96 | - \core\event\blog_entry_deleted | |
97 | - \core\event\blog_entry_updated | |
98 | - \core\event\cohort_member_added | |
99 | - \core\event\cohort_member_removed | |
100 | - \core\event\course_category_deleted | |
101 | - \core\event\course_completed | |
102 | - \core\event\course_content_deleted | |
103 | - \core\event\course_created | |
104 | - \core\event\course_deleted | |
105 | - \core\event\course_restored | |
106 | - \core\event\course_section_updated (see MDL-45229) | |
107 | - \core\event\email_failed | |
108 | - \core\event\group_member_added | |
109 | - \core\event\group_member_removed | |
110 | - \core\event\note_created | |
111 | - \core\event\note_deleted | |
112 | - \core\event\note_updated | |
113 | - \core\event\role_assigned | |
114 | - \core\event\role_deleted | |
115 | - \core\event\role_unassigned | |
116 | - \core\event\user_graded | |
117 | - \core\event\user_loggedinas | |
118 | - \core\event\user_profile_viewed | |
119 | - \core\event\webservice_token_created | |
1480f6ea | 120 | |
a4582a51 | 121 | DEPRECATIONS: |
994e5662 | 122 | * $module uses in mod/xxx/version.php files is now deprecated. Please use $plugin instead. It will be removed in Moodle 2.10. |
3345e24f | 123 | * Update init methods in all event classes - "level" property was renamed to "edulevel", the level property is now deprecated. |
c4b0d6dc | 124 | * Abstract class \core\event\course_module_instances_list_viewed is deprecated now, use \core\event\instances_list_viewed instead. |
e1b16f97 | 125 | * Abstract class core\event\content_viewed has been deprecated. Please extend base event or other relevant abstract class. |
45faf15d AA |
126 | * mod_book\event\instances_list_viewed has been deprecated. Please use mod_book\event\course_module_instance_list_viewed instead. |
127 | * mod_chat\event\instances_list_viewed has been deprecated. Please use mod_chat\event\course_module_instance_list_viewed instead. | |
128 | * mod_choice\event\instances_list_viewed has been deprecated. Please use mod_choice\event\course_module_instance_list_viewed instead. | |
129 | * mod_feedback\event\instances_list_viewed has been deprecated. Please use mod_feedback\event\course_module_instance_list_viewed instead. | |
130 | * mod_page\event\instances_list_viewed has been deprecated. Please use mod_page\event\course_module_instance_list_viewed instead. | |
1f1a8f03 | 131 | * The constants FRONTPAGECOURSELIST, FRONTPAGETOPICONLY & FRONTPAGECOURSELIMIT have been removed. |
8d1f33e1 | 132 | * Conditional availability API has moved and changed. The condition_info class is |
133 | replaced by \core_availability\info_module, and condition_info_section by | |
134 | \core_availability\info_section. (Code that uses the old classes will generally | |
135 | still work.) | |
136 | * coursemodule_visible_for_user() has been deprecated but still works - replaced | |
137 | by a new static function \core_availability\info_module::is_user_visible() | |
138 | * cm_info::is_user_access_restricted_by_conditional_access has been deprecated | |
139 | but still works (it has never done what its name suggests, and is | |
140 | unnecessary). | |
141 | * cm_info and section_info property showavailability has been deprecated, but | |
142 | still works (with the caveat that this information is now per-user). | |
143 | * cm_info and section_info properties availablefrom and availableuntil have been | |
144 | deprecated and always return zero (underlying data doesn't have these values). | |
145 | * section_info property groupingid has been deprecated and always returns zero, | |
146 | same deal. | |
07e78d93 DP |
147 | * Various cm_info methods have been deprecated in favour of their read-only properties (get_url(), get_content(), get_extra_classes(), |
148 | get_on_click(), get_custom_data(), get_after_link, get_after_edit_icons) | |
af64bc61 | 149 | * The ajaxenabled function has been deprecated and always returns true. All code should be fully functional in Javascript. |
52dc1de7 | 150 | * count_login_failures() has been deprecated, use user_count_login_failures() instead. Refer MDL-42891 for details. |
c4b0d6dc | 151 | |
8d1f33e1 | 152 | Conditional availability (activities and sections): |
153 | * New conditional availability API in /availability, including new availability | |
154 | condition plugins in /availability/condition. The new API is very similar with | |
155 | regard to checking availability, but any code that modifies availability settings | |
156 | for an activity or section is likely to need substantial changes. | |
157 | ||
5947ab33 AN |
158 | YUI: |
159 | * The lightbox attribute for moodle-core-notification-dialogue has been | |
160 | deprecated and replaced by the modal attribute. This was actually | |
161 | changed in Moodle 2.2, but has only been marked as deprecated now. It | |
162 | will be removed in Moodle 2.9. | |
0860dd78 AN |
163 | * When destroying any type of dialogue based on moodle-core-notification, the relevant content is also removed from |
164 | the DOM. Previously it was left orphaned. | |
5947ab33 | 165 | |
a4582a51 AN |
166 | JavaSript: |
167 | * The findChildNodes global function has been deprecated. Y.all should | |
168 | be used instead. | |
1d98ca14 AN |
169 | * The callback argument to confirm_action and M.util.show_confirm_dialog has been deprecated. If you need to write a |
170 | confirmation which includes a callback, please use moodle-core-notification-confirmation and attach callbacks to the | |
171 | events provided. | |
a4582a51 | 172 | |
9843e5ec | 173 | * New locking api and admin settings to configure the system locking type. |
3b635513 DM |
174 | * New "Time spent waiting for the database" performance metric displayed along with the |
175 | other MDL_PERF vars; the change affects both the error logs and the vars displayed in | |
176 | the page footer. | |
cc033d48 MN |
177 | * Changes in the tag API. The component and contextid are now saved when assigning tags to an item. Please see |
178 | tag/upgrade.txt for more information. | |
9843e5ec | 179 | |
9e19a0f0 | 180 | === 2.6 === |
8e8891b7 | 181 | |
cc8fecb5 | 182 | * Use new methods from core_component class instead of get_core_subsystems(), get_plugin_types(), |
d0cac8b5 FM |
183 | get_plugin_list(), get_plugin_list_with_class(), get_plugin_directory(), normalize_component(), |
184 | get_component_directory() and get_plugin_list_with_file(). The names of the new methods are | |
185 | exactly the same, the only differences are that core_component::get_plugin_types() now always returns | |
186 | full paths and core_component::get_plugin_list() does not accept empty parameter any more. | |
d534708f | 187 | * Use core_text::* instead of textlib:: and also core_collator::* instead of collatorlib::*. |
af578aec | 188 | * Use new function moodleform::mock_submit() to simulate form submission in unit tests (backported). |
85b38061 | 189 | * New $CFG->localcachedir setting useful for cluster nodes. Admins have to update X-Sendfile aliases if used. |
656250de PS |
190 | * MS SQL Server drivers are now using NVARCHAR(MAX) instead of NTEXT and VARBINARY(MAX) instead of IMAGE, |
191 | this change should be fully transparent and it should help significantly with add-on compatibility. | |
598a82c9 PS |
192 | * The string manager classes were renamed. Note that they should not be modified or used directly, |
193 | always use get_string_manager() to get instance of the string manager. | |
aae18d2a | 194 | * The ability to use an 'insecure' rc4encrypt/rc4decrypt key has been removed. |
96f81ea3 PS |
195 | * Use $CFG->debugdeveloper instead of debugging('', DEBUG_DEVELOPER). |
196 | * Use set_debugging(DEBUG_xxx) when changing debugging level for current request. | |
d55f05ef | 197 | * Function moveto_module() does not modify $mod argument and instead now returns the new module visibility value. |
db5f2d33 DM |
198 | * Use behat_selectors::get_allowed_text_selectors() and behat_selectors::get_allowed_selectors() instead of |
199 | behat_command::$allowedtextselectors and behat_command::$allowedselectors | |
ac2b2713 | 200 | * Subplugins are supported in admin tools and local plugins. |
71ab7e51 | 201 | * file_packer/zip_packer API has been modified so that key functions support a new file_progress interface |
202 | to report progress during long operations. Related to this, zip_archive now supports an estimated_count() | |
203 | function that returns an approximate number of entries in the zip faster than the count() function. | |
d872881f | 204 | * Class cm_info no longer extends stdClass. All properties are read-only and calculated on first request only. |
44ddd2a1 | 205 | * Class course_modinfo no longer extends stdClass. All properties are read-only. |
64501eee MG |
206 | * Database fields modinfo and sectioncache in table course are removed. Application cache core/coursemodinfo |
207 | is used instead. Course cache is still reset, rebuilt and retrieved using function rebuild_course_cache() and | |
208 | get_fast_modinfo(). Purging all caches and every core upgrade purges course modinfo cache as well. | |
209 | If function get_fast_modinfo() is called for multiple courses make sure to include field cacherev in course | |
210 | object. | |
3bcf6b3c RT |
211 | * Internal (noreply and support) user support has been added for sending/receiving message. |
212 | Use core_user::get_noreply_user() and core_user::get_support_user() to get noreply and support user's respectively. | |
213 | Real users can be used as noreply/support users by setting $CFG->noreplyuserid and $CFG->supportuserid | |
137885b7 | 214 | * New function readfile_allow_large() in filelib.php for use when very large files may need sending to user. |
e87214bd | 215 | * Use core_plugin_manager::reset_caches() when changing visibility of plugins. |
bde002b8 PS |
216 | * Implement new method get_enabled_plugins() method in subplugin info classes. |
217 | * Each plugin should include version information in version.php. | |
723a6e56 | 218 | * Module and block tables do not contain version column any more, use get_config('xx_yy', 'version') instead. |
5fed8433 | 219 | * $USER->password field is intentionally unset so that session data does not contain password hashes. |
38fc0130 | 220 | * Use core_shutdown_manager::register_function() instead of register_shutdown_function(). |
c858655d | 221 | * New file packer for .tar.gz files; obtain by calling get_file_packer('application/x-gzip'). Intended initially |
222 | for use in backup/restore only, as there are limitations on supported filenames. Also new packer for | |
223 | backups which supports both compression formats; get_file_packer('application/vnd.moodle.backup'). | |
224 | * New optional parameter to stored_file::get_content_file_handle to open file handle with 'gzopen' instead | |
225 | of 'fopen' to read gzip-compressed files if required. | |
6c679d15 | 226 | * update_internal_user_password() and setnew_password_and_mail() now trigger user_updated event. |
b2858b91 | 227 | * Add thirdpartylibs.xml file to plugins that bundle any 3rd party libraries. |
2dd8e935 DP |
228 | * New class introduced to help auto generate zIndex values for modal dialogues. Class "moodle-has-zindex" |
229 | should set on any element which uses a non-default zindex and needs to ensure it doesn't show above a | |
230 | dialogue. | |
0c431257 PS |
231 | * $CFG->filelifetime is now used consistently for most file serving operations, the default was lowered |
232 | to 6 hours from 24 hours because etags and x-sendfile support should make file serving less expensive. | |
d61d3e82 RT |
233 | * Date format locale charset for windows server will come from calendar type and for gregorian it will use |
234 | lang file. | |
2d5c7d50 FM |
235 | * The library to interact with Box.net (class boxclient) is only compatible with their APIv1 which |
236 | reaches its end of life on the 14th of Dec. You should migrate your scripts to make usage of the | |
237 | new class boxnet_client(). Note that the method names and return values have changed. | |
b404b1f4 AG |
238 | * Settings pages are now possible for Calendar type plugins. Calendar type plugins that require a settings page to |
239 | work properly will need to set their requires version to a number that is equal to or grater than the 2.6.1 release version. | |
fb16acf2 DP |
240 | * The admin/tool/generator tool was overhauled to use testing data generators and the previous interface to create |
241 | test data was removed (it was not working correctly anyway). If you were using this tool you will probably need to | |
242 | update your code. | |
05226d76 DP |
243 | |
244 | DEPRECATIONS: | |
245 | Various previously deprecated functions have now been altered to throw DEBUG_DEVELOPER debugging notices | |
246 | and will be removed in a future release (target: 2.8), a summary follows: | |
247 | ||
248 | Accesslib: | |
c3d2fbf9 SH |
249 | * get_context_instance() -> context_xxxx::instance() |
250 | * get_context_instance_by_id() -> context::instance_by_id($id) | |
251 | * get_system_context() -> context_system::instance() | |
252 | * context_moved() -> context::update_moved() | |
253 | * preload_course_contexts() -> context_helper::preload_course() | |
254 | * context_instance_preload() -> context_helper::preload_from_record() | |
255 | * context_instance_preload_sql() -> context_helper::get_preload_record_columns_sql() | |
256 | * get_contextlevel_name() -> context_helper::get_level_name() | |
257 | * create_contexts() -> context_helper::create_instances() | |
258 | * cleanup_contexts() -> context_helper::cleanup_instances() | |
259 | * build_context_path() -> context_helper::build_all_paths() | |
260 | * print_context_name() -> $context->get_context_name() | |
261 | * mark_context_dirty() -> $context->mark_dirty() | |
262 | * delete_context() -> $context->delete_content() or context_helper::delete_instance() | |
263 | * get_context_url() -> $context->get_url() | |
264 | * get_course_context() -> $context->get_course_context() | |
265 | * get_parent_contexts() -> $context->get_parent_context_ids() | |
266 | * get_parent_contextid() -> $context->get_parent_context() | |
267 | * get_child_contexts() -> $context->get_child_contexts() | |
268 | * rebuild_contexts() -> $context->reset_paths() | |
269 | * get_user_courses_bycap() -> enrol_get_users_courses() | |
270 | * get_courseid_from_context() -> $context->get_course_context(false) | |
271 | * get_role_context_caps() -> (no replacement) | |
272 | * load_temp_role() -> (no replacement) | |
273 | * remove_temp_roles() -> (no replacement) | |
274 | * get_related_contexts_string() -> $context->get_parent_context_ids(true) | |
275 | * get_recent_enrolments() -> (no replacement) | |
05226d76 DP |
276 | |
277 | Enrollment: | |
c3d2fbf9 SH |
278 | * get_course_participants() -> get_enrolled_users() |
279 | * is_course_participant() -> is_enrolled() | |
05226d76 DP |
280 | |
281 | Output: | |
c3d2fbf9 SH |
282 | * current_theme() -> $PAGE->theme->name |
283 | * skip_main_destination() -> $OUTPUT->skip_link_target() | |
284 | * print_container() -> $OUTPUT->container() | |
285 | * print_container_start() -> $OUTPUT->container_start() | |
286 | * print_container_end() -> $OUTPUT->container_end() | |
287 | * print_continue() -> $OUTPUT->continue_button() | |
288 | * print_header() -> $PAGE methods | |
289 | * print_header_simple() -> $PAGE methods | |
290 | * print_side_block() -> $OUTPUT->block() | |
291 | * print_arrow() -> $OUTPUT->arrow() | |
292 | * print_scale_menu_helpbutton() -> $OUTPUT->help_icon_scale($courseid, $scale) | |
293 | * print_checkbox() -> html_writer::checkbox() | |
05226d76 DP |
294 | |
295 | Navigation: | |
c3d2fbf9 SH |
296 | * print_navigation() -> $OUTPUT->navbar() |
297 | * build_navigation() -> $PAGE->navbar methods | |
298 | * navmenu() -> (no replacement) | |
50ae8814 MN |
299 | * settings_navigation:: |
300 | get_course_modules() -> (no replacement) | |
05226d76 | 301 | |
2a68ee0e MG |
302 | Files and repositories: |
303 | * stored_file::replace_content_with() -> stored_file::replace_file_with() | |
304 | * stored_file::set_filesize() -> stored_file::replace_file_with() | |
87355560 MG |
305 | * stored_file::get_referencelifetime() -> (no replacement) |
306 | * repository::sync_external_file() -> see repository::sync_reference() | |
307 | * repository::get_file_by_reference() -> repository::sync_reference() | |
308 | * repository:: | |
309 | get_reference_file_lifetime() -> (no replacement) | |
310 | * repository::sync_individual_file() -> (no replacement) | |
311 | * repository::reset_caches() -> (no replacement) | |
2a68ee0e | 312 | |
05226d76 | 313 | Calendar: |
c3d2fbf9 SH |
314 | * add_event() -> calendar_event::create() |
315 | * update_event() -> calendar_event->update() | |
316 | * delete_event() -> calendar_event->delete() | |
317 | * hide_event() -> calendar_event->toggle_visibility(false) | |
318 | * show_event() -> calendar_event->toggle_visibility(true) | |
05226d76 DP |
319 | |
320 | Misc: | |
c3d2fbf9 SH |
321 | * filter_text() -> format_text(), format_string()... |
322 | * httpsrequired() -> $PAGE->https_required() | |
323 | * detect_munged_arguments() -> clean_param([...], PARAM_FILE) | |
324 | * mygroupid() -> groups_get_all_groups() | |
325 | * js_minify() -> core_minify::js_files() | |
326 | * css_minify_css() -> core_minify::css_files() | |
64501eee | 327 | * course_modinfo::build_section_cache() -> (no replacement) |
3bcf6b3c | 328 | * generate_email_supportuser() -> core_user::get_support_user() |
c3d2fbf9 | 329 | |
d79d5ac2 PS |
330 | Sessions: |
331 | * session_get_instance()->xxx() -> \core\session\manager::xxx() | |
332 | * session_kill_all() -> \core\session\manager::kill_all_sessions() | |
333 | * session_touch() -> \core\session\manager::touch_session() | |
334 | * session_kill() -> \core\session\manager::kill_session() | |
335 | * session_kill_user() -> \core\session\manager::kill_user_sessions() | |
336 | * session_gc() -> \core\session\manager::gc() | |
337 | * session_set_user() -> \core\session\manager::set_user() | |
338 | * session_is_loggedinas() -> \core\session\manager::is_loggedinas() | |
339 | * session_get_realuser() -> \core\session\manager::get_realuser() | |
340 | * session_loginas() -> \core\session\manager::loginas() | |
341 | ||
c3d2fbf9 SH |
342 | User-agent related functions: |
343 | * check_browser_operating_system() -> core_useragent::check_browser_operating_system() | |
344 | * check_browser_version() -> core_useragent::check_browser_version() | |
345 | * get_device_type() -> core_useragent::get_device_type() | |
346 | * get_device_type_list() -> core_useragent::get_device_type_list() | |
347 | * get_selected_theme_for_device_type() -> core_useragent::get_device_type_theme() | |
348 | * get_device_cfg_var_name() -> core_useragent::get_device_type_cfg_var_name() | |
349 | * set_user_device_type() -> core_useragent::set_user_device_type() | |
350 | * get_user_device_type() -> core_useragent::get_user_device_type() | |
351 | * get_browser_version_classes() -> core_useragent::get_browser_version_classes() | |
9e19a0f0 | 352 | |
78686995 AN |
353 | YUI: |
354 | * moodle-core-notification has been deprecated with a recommendation of | |
73b4c1da | 355 | using its subclasses instead. This is to allow for reduced page |
78686995 AN |
356 | transport costs. Current subclasses include: |
357 | * dialogue | |
358 | * alert | |
359 | * confirm | |
360 | * exception | |
361 | * ajaxexception | |
362 | ||
f0f0e1fe PS |
363 | Event triggering and event handlers: |
364 | * All existing events and event handlers should be replaced by new | |
365 | event classes and matching new event observers. | |
366 | * See http://docs.moodle.org/dev/Event_2 for more information. | |
861b0510 FM |
367 | * The following events will be entirely removed, though they can still |
368 | be captured using handlers, but they should not be used any more. | |
369 | * groups_members_removed -> \core\event\group_member_removed | |
370 | * groups_groupings_groups_removed -> (no replacement) | |
371 | * groups_groups_deleted -> \core\event\group_deleted | |
372 | * groups_groupings_deleted -> \core\event\grouping_deleted | |
63deb5c3 | 373 | * edit_module_post_actions() does not trigger events any more. |
f0f0e1fe | 374 | |
a2602457 | 375 | === 2.5.1 === |
376 | ||
377 | * New get_course() function for use when obtaining the course record from database. Will | |
378 | reuse existing $COURSE or $SITE globals if possible to improve performance. | |
379 | ||
9a36be73 MG |
380 | === 2.5 === |
381 | ||
bae2846c EL |
382 | * The database drivers (moodle_database and subclasses) aren't using anymore the ::columns property |
383 | for caching database metadata. MUC (databasemeta) is used instead. Any custom DB driver should | |
384 | apply for that change. | |
cedc656b EL |
385 | * The cron output has been changed to include time and memory usage (see cron_trace_time_and_memory()), |
386 | so any custom utility relying on the old output may require modification. | |
6b219310 DW |
387 | * Function get_max_file_sizes now returns an option for (for example) "Course limit (500MB)" or |
388 | "Site limit (200MB)" when appropriate with the option set to 0. This function no longer returns | |
389 | an option for 0 bytes. Existing code that was replacing the 0 option in the return | |
390 | from this function with a more sensible message, can now use the return from this function directly. | |
9a36be73 | 391 | * Functions responsible for output in course/lib.php are deprecated, the code is moved to |
b1c2fc65 MG |
392 | appropriate renderers: print_section(), print_section_add_menus(), get_print_section_cm_text(), |
393 | make_editing_buttons() | |
9a36be73 MG |
394 | See functions' phpdocs in lib/deprecatedlib.php |
395 | * Function get_print_section_cm_text() is deprecated, replaced with methods in cm_info | |
3cb856c7 PS |
396 | * zip_packer may create empty zip archives, there is a new option to ignore |
397 | problematic files when creating archive | |
93cc145f MN |
398 | * The function delete_course_module was deprecated and has been replaced with |
399 | course_delete_module. The reason for this was because the function delete_course_module | |
400 | only partially deletes data, so wherever it was called extra code was needed to | |
401 | perform the whole deletion process. The function course_delete_module now takes care | |
402 | of the whole process. | |
91c8cf99 F |
403 | * curl::setopt() does not accept constant values any more. As it never worked properly, |
404 | we decided to make the type check stricter. Now, the keys of the array pass must be a string | |
405 | corresponding to the curl constant name. | |
043f1005 RT |
406 | * Function get_users_listing now return list of users except guest and deleted users. Previously |
407 | deleted users were excluded by get_users_listing. As guest user is not expected while browsing users, | |
408 | and not included in get_user function, it will not be returned by get_users_listing. | |
1c14b1c1 DW |
409 | * The add_* functions in course/dnduploadlib.php have been deprecated. Plugins should be using the |
410 | MODNAME_dndupload_register callback instead. | |
690a55f6 DM |
411 | * The signature of the add() method of classes implementing the parentable_part_of_admin_tree |
412 | interface (such as admin_category) has been extended. The new parameter allows the caller | |
413 | to prepend the new node before an existing sibling in the admin tree. | |
87b6981e EL |
414 | * condition_info:get_condition_user_fields($formatoptions) now accepts the optional |
415 | param $formatoptions, that will determine if the field names are processed by | |
416 | format_string() with the passed options. | |
689096bc | 417 | * remove all references to $CFG->gdversion, GD PHP extension is now required |
b45ba7f6 DP |
418 | * Formslib will now throw a developer warning if a PARAM_ type hasn't been set for elements which |
419 | need it. Please set PARAM_RAW explicitly if you do not want any cleaning. | |
4e0b6025 | 420 | * Functions responsible for managing and accessing course categories are moved to class coursecat |
09ae7ee0 MG |
421 | in lib/coursecatlib.php, functions responsible for rendering courses and categories lists are |
422 | moved to course/renderer.php. The following global functions are deprecated: make_categories_list(), | |
6e1d1ee0 | 423 | category_delete_move(), category_delete_full(), move_category(), course_category_hide(), |
8db5dcb7 | 424 | course_category_show(), get_course_category(), create_course_category(), get_all_subcategories(), |
09ae7ee0 MG |
425 | get_child_categories(), get_categories(), print_my_moodle(), print_remote_course(), |
426 | print_remote_host(), print_whole_category_list(), print_category_info(), get_course_category_tree(), | |
427 | print_courses(), print_course(), get_category_courses_array(), get_category_courses_array_recursively(), | |
428 | get_courses_wmanagers() | |
429 | See http://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5 | |
0e2ca62e | 430 | * $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions. |
38c1dd19 RT |
431 | * Additional (optional) param $onlyactive has been added to get_enrolled_users, count_enrolled_users |
432 | functions to get information for only active (excluding suspended enrolments) users. Included two | |
433 | helper functions extract_suspended_users, get_suspended_userids to extract suspended user information. | |
e87214bd | 434 | * The core_plugin_manager class now provides two new helper methods for getting information |
d7d48b40 | 435 | about known plugins: get_plugins_of_type() and get_subplugins_of_plugin(). |
e87214bd | 436 | * The get_uninstall_url() method of all subclasses of \core\plugininfo\base class is now expected |
73658371 DM |
437 | to always return moodle_url. Subclasses can use the new method is_uninstall_allowed() |
438 | to control the availability of the 'Uninstall' link at the Plugins overview page (previously | |
439 | they would do it by get_uninstall_url() returning null). By default, URL to a new general plugin | |
440 | uninstall tool is returned. Unless the plugin type needs extra steps that can't be handled by | |
441 | plugininfo_xxx::uninstall() method or xmldb_xxx_uninstall() function, this default URL should | |
442 | satisfy all plugin types. | |
9a36be73 | 443 | |
4efcfaa3 | 444 | Database (DML) layer: |
77a5c093 PS |
445 | * $DB->sql_empty() is deprecated, you have to use sql parameters with empty values instead, |
446 | please note hardcoding of empty strings in SQL queries breaks execution in Oracle database. | |
2d97513d PS |
447 | * Indexes must not be defined on the same columns as keys, this is now reported as fatal problem. |
448 | Please note that internally we create indexes instead of foreign keys. | |
9a36be73 | 449 | |
238b8bc9 ARN |
450 | YUI changes: |
451 | * M.util.help_icon has been deprecated. Code should be updated to use moodle-core-popuphelp | |
452 | instead. To do so, remove any existing JS calls to M.util.help_icon from your PHP and ensure | |
453 | that your help link is placed in a span which has the class 'helplink'. | |
454 | ||
6c2be903 DP |
455 | === 2.4 === |
456 | ||
457 | * Pagelib: Numerous deprecated functions were removed as classes page_base, page_course | |
458 | and page_generic_activity. | |
704533fc | 459 | * use $CFG->googlemapkey3 instead of removed $CFG->googlemapkey and migrate to Google Maps API V3 |
b874d5c6 | 460 | * Function settings_navigation::add_course_editing_links() is completely removed |
ee7084e9 MG |
461 | * function global_navigation::format_display_course_content() is removed completely (the |
462 | functionality is moved to course format class) | |
463 | * in the function global_navigation::load_generic_course_sections() the argument $courseformat is | |
464 | removed | |
7881024e PS |
465 | * New component and itemid columns in groups_members table - this allows plugin to create protected |
466 | group memberships using 'xx_yy_allow_group_member_remove' callback and there is also a new restore | |
467 | callback 'xx_yy_restore_group_member()'. | |
468 | * New general role assignment restore plugin callback 'xx_yy_restore_role_assignment()'. | |
97960146 MG |
469 | * functions get_generic_section_name(), get_all_sections(), add_mod_to_section(), get_all_mods() |
470 | are deprecated. See their phpdocs in lib/deprecatedlib.php on how to replace them | |
ee362526 | 471 | |
d2a27ab0 ARN |
472 | YUI changes: |
473 | * moodle-enrol-notification has been renamed to moodle-core-notification | |
3542e01a | 474 | * YUI2 code must now use 2in3, see http://yuilibrary.com/yui/docs/yui/yui-yui2.html |
7266bd3e ARN |
475 | * M.util.init_select_autosubmit() and M.util.init_url_select() have been deprecated. Code using this should be updated |
476 | to use moodle-core-formautosubmit | |
d2a27ab0 | 477 | |
94c9db54 PS |
478 | Unit testing changes: |
479 | * output debugging() is not sent to standard output any more, | |
480 | use $this->assertDebuggingCalled(), $this->assertDebuggingNotCalled(), | |
481 | $this->getDebuggingMessages() or $this->assertResetDebugging() instead. | |
482 | ||
e618cdf3 PS |
483 | === 2.3 === |
484 | ||
485 | Database layer changes: | |
486 | * objects are not allowed in paramters of DML functions, use explicit casting to strings if necessary | |
487 | ||
19526d91 DP |
488 | Note: |
489 | * DDL and DML methods which were deprecated in 2.0 have now been removed, they will no longer produce | |
490 | debug messages and will produce fatal errors | |
e618cdf3 | 491 | |
796495fe | 492 | API changes: |
daefd6eb | 493 | |
796495fe | 494 | * send_stored_file() has changed its interface |
daefd6eb | 495 | * deleted several resourcelib_embed_* functions from resourcelib.php |
796495fe | 496 | |
ee362526 PS |
497 | === 2.2 === |
498 | ||
499 | removed unused libraries: | |
500 | * odbc, base32, CodeSniffer, overlib, apd profiling, kses, Smarty, PEAR Console, swfobject, cssshover.htc, md5.js | |
501 | ||
502 | API changes: | |
503 | * new admin/tool plugin type | |
504 | * new context API - old API is still available | |
8e470797 | 505 | * deleted users do not have context any more |
ee362526 PS |
506 | * removed global search |
507 | ||
508 | ||
509 | === 2.1 === | |
510 | ||
511 | API changes: | |
512 | * basic suport for restore from 1.9 | |
513 | * new mobile devices API | |
514 | * new questions API | |
515 | ||
516 | ||
517 | === 2.0 === | |
518 | ||
519 | API changes: | |
520 | * new DML API - http://docs.moodle.org/dev/DML_functions | |
521 | * new DDL API - http://docs.moodle.org/dev/DDL_functions | |
522 | * new file API - http://docs.moodle.org/dev/File_API | |
523 | * new $PAGE and $OUTPUT API | |
524 | * new navigation API | |
525 | * new theme API - http://docs.moodle.org/dev/Theme_changes_in_2.0 | |
526 | * new javascript API - http://docs.moodle.org/dev/JavaScript_usage_guide | |
527 | * new portfolio API | |
528 | * new local plugin type | |
529 | * new translation support - http://lang.moodle.org | |
530 | * new web service API | |
531 | * new cohorts API | |
532 | * new messaging API | |
533 | * new rating API | |
534 | * new comment API | |
535 | * new sessions API | |
536 | * new enrolment API | |
537 | * new backup/restore API | |
538 | * new blocks API | |
539 | * new filters API | |
540 | * improved plugin support (aka Frankenstyle) | |
541 | * new registration and hub API | |
542 | * new course completion API | |
543 | * new plagiarism API | |
544 | * changed blog API | |
545 | * new text editor API | |
19526d91 | 546 | * new my moodle and profiles API |