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 | ||
c4b0d6dc AA |
4 | === 2.7 === |
5 | ||
686e3b3a FM |
6 | * $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions. |
7 | ||
a4582a51 | 8 | DEPRECATIONS: |
994e5662 | 9 | * $module uses in mod/xxx/version.php files is now deprecated. Please use $plugin instead. It will be removed in Moodle 2.10. |
3345e24f | 10 | * Update init methods in all event classes - "level" property was renamed to "edulevel", the level property is now deprecated. |
c4b0d6dc | 11 | * Abstract class \core\event\course_module_instances_list_viewed is deprecated now, use \core\event\instances_list_viewed instead. |
45faf15d AA |
12 | * mod_book\event\instances_list_viewed has been deprecated. Please use mod_book\event\course_module_instance_list_viewed instead. |
13 | * mod_chat\event\instances_list_viewed has been deprecated. Please use mod_chat\event\course_module_instance_list_viewed instead. | |
14 | * mod_choice\event\instances_list_viewed has been deprecated. Please use mod_choice\event\course_module_instance_list_viewed instead. | |
15 | * mod_feedback\event\instances_list_viewed has been deprecated. Please use mod_feedback\event\course_module_instance_list_viewed instead. | |
16 | * mod_page\event\instances_list_viewed has been deprecated. Please use mod_page\event\course_module_instance_list_viewed instead. | |
1f1a8f03 | 17 | * The constants FRONTPAGECOURSELIST, FRONTPAGETOPICONLY & FRONTPAGECOURSELIMIT have been removed. |
07e78d93 DP |
18 | * Various cm_info methods have been deprecated in favour of their read-only properties (get_url(), get_content(), get_extra_classes(), |
19 | get_on_click(), get_custom_data(), get_after_link, get_after_edit_icons) | |
af64bc61 | 20 | * The ajaxenabled function has been deprecated and always returns true. All code should be fully functional in Javascript. |
c4b0d6dc | 21 | |
5947ab33 AN |
22 | YUI: |
23 | * The lightbox attribute for moodle-core-notification-dialogue has been | |
24 | deprecated and replaced by the modal attribute. This was actually | |
25 | changed in Moodle 2.2, but has only been marked as deprecated now. It | |
26 | will be removed in Moodle 2.9. | |
0860dd78 AN |
27 | * When destroying any type of dialogue based on moodle-core-notification, the relevant content is also removed from |
28 | the DOM. Previously it was left orphaned. | |
5947ab33 | 29 | |
a4582a51 AN |
30 | JavaSript: |
31 | * The findChildNodes global function has been deprecated. Y.all should | |
32 | be used instead. | |
1d98ca14 AN |
33 | * The callback argument to confirm_action and M.util.show_confirm_dialog has been deprecated. If you need to write a |
34 | confirmation which includes a callback, please use moodle-core-notification-confirmation and attach callbacks to the | |
35 | events provided. | |
a4582a51 | 36 | |
9843e5ec | 37 | * New locking api and admin settings to configure the system locking type. |
3b635513 DM |
38 | * New "Time spent waiting for the database" performance metric displayed along with the |
39 | other MDL_PERF vars; the change affects both the error logs and the vars displayed in | |
40 | the page footer. | |
9843e5ec | 41 | |
9e19a0f0 | 42 | === 2.6 === |
8e8891b7 | 43 | |
cc8fecb5 | 44 | * Use new methods from core_component class instead of get_core_subsystems(), get_plugin_types(), |
d0cac8b5 FM |
45 | get_plugin_list(), get_plugin_list_with_class(), get_plugin_directory(), normalize_component(), |
46 | get_component_directory() and get_plugin_list_with_file(). The names of the new methods are | |
47 | exactly the same, the only differences are that core_component::get_plugin_types() now always returns | |
48 | full paths and core_component::get_plugin_list() does not accept empty parameter any more. | |
d534708f | 49 | * Use core_text::* instead of textlib:: and also core_collator::* instead of collatorlib::*. |
af578aec | 50 | * Use new function moodleform::mock_submit() to simulate form submission in unit tests (backported). |
85b38061 | 51 | * New $CFG->localcachedir setting useful for cluster nodes. Admins have to update X-Sendfile aliases if used. |
656250de PS |
52 | * MS SQL Server drivers are now using NVARCHAR(MAX) instead of NTEXT and VARBINARY(MAX) instead of IMAGE, |
53 | this change should be fully transparent and it should help significantly with add-on compatibility. | |
598a82c9 PS |
54 | * The string manager classes were renamed. Note that they should not be modified or used directly, |
55 | always use get_string_manager() to get instance of the string manager. | |
aae18d2a | 56 | * The ability to use an 'insecure' rc4encrypt/rc4decrypt key has been removed. |
96f81ea3 PS |
57 | * Use $CFG->debugdeveloper instead of debugging('', DEBUG_DEVELOPER). |
58 | * Use set_debugging(DEBUG_xxx) when changing debugging level for current request. | |
d55f05ef | 59 | * Function moveto_module() does not modify $mod argument and instead now returns the new module visibility value. |
db5f2d33 DM |
60 | * Use behat_selectors::get_allowed_text_selectors() and behat_selectors::get_allowed_selectors() instead of |
61 | behat_command::$allowedtextselectors and behat_command::$allowedselectors | |
ac2b2713 | 62 | * Subplugins are supported in admin tools and local plugins. |
71ab7e51 | 63 | * file_packer/zip_packer API has been modified so that key functions support a new file_progress interface |
64 | to report progress during long operations. Related to this, zip_archive now supports an estimated_count() | |
65 | function that returns an approximate number of entries in the zip faster than the count() function. | |
d872881f | 66 | * Class cm_info no longer extends stdClass. All properties are read-only and calculated on first request only. |
44ddd2a1 | 67 | * Class course_modinfo no longer extends stdClass. All properties are read-only. |
64501eee MG |
68 | * Database fields modinfo and sectioncache in table course are removed. Application cache core/coursemodinfo |
69 | is used instead. Course cache is still reset, rebuilt and retrieved using function rebuild_course_cache() and | |
70 | get_fast_modinfo(). Purging all caches and every core upgrade purges course modinfo cache as well. | |
71 | If function get_fast_modinfo() is called for multiple courses make sure to include field cacherev in course | |
72 | object. | |
3bcf6b3c RT |
73 | * Internal (noreply and support) user support has been added for sending/receiving message. |
74 | Use core_user::get_noreply_user() and core_user::get_support_user() to get noreply and support user's respectively. | |
75 | Real users can be used as noreply/support users by setting $CFG->noreplyuserid and $CFG->supportuserid | |
137885b7 | 76 | * New function readfile_allow_large() in filelib.php for use when very large files may need sending to user. |
e87214bd | 77 | * Use core_plugin_manager::reset_caches() when changing visibility of plugins. |
bde002b8 PS |
78 | * Implement new method get_enabled_plugins() method in subplugin info classes. |
79 | * Each plugin should include version information in version.php. | |
723a6e56 | 80 | * Module and block tables do not contain version column any more, use get_config('xx_yy', 'version') instead. |
5fed8433 | 81 | * $USER->password field is intentionally unset so that session data does not contain password hashes. |
38fc0130 | 82 | * Use core_shutdown_manager::register_function() instead of register_shutdown_function(). |
c858655d | 83 | * New file packer for .tar.gz files; obtain by calling get_file_packer('application/x-gzip'). Intended initially |
84 | for use in backup/restore only, as there are limitations on supported filenames. Also new packer for | |
85 | backups which supports both compression formats; get_file_packer('application/vnd.moodle.backup'). | |
86 | * New optional parameter to stored_file::get_content_file_handle to open file handle with 'gzopen' instead | |
87 | of 'fopen' to read gzip-compressed files if required. | |
6c679d15 | 88 | * update_internal_user_password() and setnew_password_and_mail() now trigger user_updated event. |
b2858b91 | 89 | * Add thirdpartylibs.xml file to plugins that bundle any 3rd party libraries. |
2dd8e935 DP |
90 | * New class introduced to help auto generate zIndex values for modal dialogues. Class "moodle-has-zindex" |
91 | should set on any element which uses a non-default zindex and needs to ensure it doesn't show above a | |
92 | dialogue. | |
0c431257 PS |
93 | * $CFG->filelifetime is now used consistently for most file serving operations, the default was lowered |
94 | to 6 hours from 24 hours because etags and x-sendfile support should make file serving less expensive. | |
d61d3e82 RT |
95 | * Date format locale charset for windows server will come from calendar type and for gregorian it will use |
96 | lang file. | |
2d5c7d50 FM |
97 | * The library to interact with Box.net (class boxclient) is only compatible with their APIv1 which |
98 | reaches its end of life on the 14th of Dec. You should migrate your scripts to make usage of the | |
99 | new class boxnet_client(). Note that the method names and return values have changed. | |
b404b1f4 AG |
100 | * Settings pages are now possible for Calendar type plugins. Calendar type plugins that require a settings page to |
101 | 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 |
102 | * The admin/tool/generator tool was overhauled to use testing data generators and the previous interface to create |
103 | test data was removed (it was not working correctly anyway). If you were using this tool you will probably need to | |
104 | update your code. | |
05226d76 DP |
105 | |
106 | DEPRECATIONS: | |
107 | Various previously deprecated functions have now been altered to throw DEBUG_DEVELOPER debugging notices | |
108 | and will be removed in a future release (target: 2.8), a summary follows: | |
109 | ||
110 | Accesslib: | |
c3d2fbf9 SH |
111 | * get_context_instance() -> context_xxxx::instance() |
112 | * get_context_instance_by_id() -> context::instance_by_id($id) | |
113 | * get_system_context() -> context_system::instance() | |
114 | * context_moved() -> context::update_moved() | |
115 | * preload_course_contexts() -> context_helper::preload_course() | |
116 | * context_instance_preload() -> context_helper::preload_from_record() | |
117 | * context_instance_preload_sql() -> context_helper::get_preload_record_columns_sql() | |
118 | * get_contextlevel_name() -> context_helper::get_level_name() | |
119 | * create_contexts() -> context_helper::create_instances() | |
120 | * cleanup_contexts() -> context_helper::cleanup_instances() | |
121 | * build_context_path() -> context_helper::build_all_paths() | |
122 | * print_context_name() -> $context->get_context_name() | |
123 | * mark_context_dirty() -> $context->mark_dirty() | |
124 | * delete_context() -> $context->delete_content() or context_helper::delete_instance() | |
125 | * get_context_url() -> $context->get_url() | |
126 | * get_course_context() -> $context->get_course_context() | |
127 | * get_parent_contexts() -> $context->get_parent_context_ids() | |
128 | * get_parent_contextid() -> $context->get_parent_context() | |
129 | * get_child_contexts() -> $context->get_child_contexts() | |
130 | * rebuild_contexts() -> $context->reset_paths() | |
131 | * get_user_courses_bycap() -> enrol_get_users_courses() | |
132 | * get_courseid_from_context() -> $context->get_course_context(false) | |
133 | * get_role_context_caps() -> (no replacement) | |
134 | * load_temp_role() -> (no replacement) | |
135 | * remove_temp_roles() -> (no replacement) | |
136 | * get_related_contexts_string() -> $context->get_parent_context_ids(true) | |
137 | * get_recent_enrolments() -> (no replacement) | |
05226d76 DP |
138 | |
139 | Enrollment: | |
c3d2fbf9 SH |
140 | * get_course_participants() -> get_enrolled_users() |
141 | * is_course_participant() -> is_enrolled() | |
05226d76 DP |
142 | |
143 | Output: | |
c3d2fbf9 SH |
144 | * current_theme() -> $PAGE->theme->name |
145 | * skip_main_destination() -> $OUTPUT->skip_link_target() | |
146 | * print_container() -> $OUTPUT->container() | |
147 | * print_container_start() -> $OUTPUT->container_start() | |
148 | * print_container_end() -> $OUTPUT->container_end() | |
149 | * print_continue() -> $OUTPUT->continue_button() | |
150 | * print_header() -> $PAGE methods | |
151 | * print_header_simple() -> $PAGE methods | |
152 | * print_side_block() -> $OUTPUT->block() | |
153 | * print_arrow() -> $OUTPUT->arrow() | |
154 | * print_scale_menu_helpbutton() -> $OUTPUT->help_icon_scale($courseid, $scale) | |
155 | * print_checkbox() -> html_writer::checkbox() | |
05226d76 DP |
156 | |
157 | Navigation: | |
c3d2fbf9 SH |
158 | * print_navigation() -> $OUTPUT->navbar() |
159 | * build_navigation() -> $PAGE->navbar methods | |
160 | * navmenu() -> (no replacement) | |
50ae8814 MN |
161 | * settings_navigation:: |
162 | get_course_modules() -> (no replacement) | |
05226d76 | 163 | |
2a68ee0e MG |
164 | Files and repositories: |
165 | * stored_file::replace_content_with() -> stored_file::replace_file_with() | |
166 | * stored_file::set_filesize() -> stored_file::replace_file_with() | |
87355560 MG |
167 | * stored_file::get_referencelifetime() -> (no replacement) |
168 | * repository::sync_external_file() -> see repository::sync_reference() | |
169 | * repository::get_file_by_reference() -> repository::sync_reference() | |
170 | * repository:: | |
171 | get_reference_file_lifetime() -> (no replacement) | |
172 | * repository::sync_individual_file() -> (no replacement) | |
173 | * repository::reset_caches() -> (no replacement) | |
2a68ee0e | 174 | |
05226d76 | 175 | Calendar: |
c3d2fbf9 SH |
176 | * add_event() -> calendar_event::create() |
177 | * update_event() -> calendar_event->update() | |
178 | * delete_event() -> calendar_event->delete() | |
179 | * hide_event() -> calendar_event->toggle_visibility(false) | |
180 | * show_event() -> calendar_event->toggle_visibility(true) | |
05226d76 DP |
181 | |
182 | Misc: | |
c3d2fbf9 SH |
183 | * filter_text() -> format_text(), format_string()... |
184 | * httpsrequired() -> $PAGE->https_required() | |
185 | * detect_munged_arguments() -> clean_param([...], PARAM_FILE) | |
186 | * mygroupid() -> groups_get_all_groups() | |
187 | * js_minify() -> core_minify::js_files() | |
188 | * css_minify_css() -> core_minify::css_files() | |
64501eee | 189 | * course_modinfo::build_section_cache() -> (no replacement) |
3bcf6b3c | 190 | * generate_email_supportuser() -> core_user::get_support_user() |
c3d2fbf9 | 191 | |
d79d5ac2 PS |
192 | Sessions: |
193 | * session_get_instance()->xxx() -> \core\session\manager::xxx() | |
194 | * session_kill_all() -> \core\session\manager::kill_all_sessions() | |
195 | * session_touch() -> \core\session\manager::touch_session() | |
196 | * session_kill() -> \core\session\manager::kill_session() | |
197 | * session_kill_user() -> \core\session\manager::kill_user_sessions() | |
198 | * session_gc() -> \core\session\manager::gc() | |
199 | * session_set_user() -> \core\session\manager::set_user() | |
200 | * session_is_loggedinas() -> \core\session\manager::is_loggedinas() | |
201 | * session_get_realuser() -> \core\session\manager::get_realuser() | |
202 | * session_loginas() -> \core\session\manager::loginas() | |
203 | ||
c3d2fbf9 SH |
204 | User-agent related functions: |
205 | * check_browser_operating_system() -> core_useragent::check_browser_operating_system() | |
206 | * check_browser_version() -> core_useragent::check_browser_version() | |
207 | * get_device_type() -> core_useragent::get_device_type() | |
208 | * get_device_type_list() -> core_useragent::get_device_type_list() | |
209 | * get_selected_theme_for_device_type() -> core_useragent::get_device_type_theme() | |
210 | * get_device_cfg_var_name() -> core_useragent::get_device_type_cfg_var_name() | |
211 | * set_user_device_type() -> core_useragent::set_user_device_type() | |
212 | * get_user_device_type() -> core_useragent::get_user_device_type() | |
213 | * get_browser_version_classes() -> core_useragent::get_browser_version_classes() | |
9e19a0f0 | 214 | |
78686995 AN |
215 | YUI: |
216 | * moodle-core-notification has been deprecated with a recommendation of | |
73b4c1da | 217 | using its subclasses instead. This is to allow for reduced page |
78686995 AN |
218 | transport costs. Current subclasses include: |
219 | * dialogue | |
220 | * alert | |
221 | * confirm | |
222 | * exception | |
223 | * ajaxexception | |
224 | ||
f0f0e1fe PS |
225 | Event triggering and event handlers: |
226 | * All existing events and event handlers should be replaced by new | |
227 | event classes and matching new event observers. | |
228 | * See http://docs.moodle.org/dev/Event_2 for more information. | |
861b0510 FM |
229 | * The following events will be entirely removed, though they can still |
230 | be captured using handlers, but they should not be used any more. | |
231 | * groups_members_removed -> \core\event\group_member_removed | |
232 | * groups_groupings_groups_removed -> (no replacement) | |
233 | * groups_groups_deleted -> \core\event\group_deleted | |
234 | * groups_groupings_deleted -> \core\event\grouping_deleted | |
63deb5c3 | 235 | * edit_module_post_actions() does not trigger events any more. |
f0f0e1fe | 236 | |
a2602457 | 237 | === 2.5.1 === |
238 | ||
239 | * New get_course() function for use when obtaining the course record from database. Will | |
240 | reuse existing $COURSE or $SITE globals if possible to improve performance. | |
241 | ||
9a36be73 MG |
242 | === 2.5 === |
243 | ||
bae2846c EL |
244 | * The database drivers (moodle_database and subclasses) aren't using anymore the ::columns property |
245 | for caching database metadata. MUC (databasemeta) is used instead. Any custom DB driver should | |
246 | apply for that change. | |
cedc656b EL |
247 | * The cron output has been changed to include time and memory usage (see cron_trace_time_and_memory()), |
248 | so any custom utility relying on the old output may require modification. | |
6b219310 DW |
249 | * Function get_max_file_sizes now returns an option for (for example) "Course limit (500MB)" or |
250 | "Site limit (200MB)" when appropriate with the option set to 0. This function no longer returns | |
251 | an option for 0 bytes. Existing code that was replacing the 0 option in the return | |
252 | from this function with a more sensible message, can now use the return from this function directly. | |
9a36be73 | 253 | * Functions responsible for output in course/lib.php are deprecated, the code is moved to |
b1c2fc65 MG |
254 | appropriate renderers: print_section(), print_section_add_menus(), get_print_section_cm_text(), |
255 | make_editing_buttons() | |
9a36be73 MG |
256 | See functions' phpdocs in lib/deprecatedlib.php |
257 | * Function get_print_section_cm_text() is deprecated, replaced with methods in cm_info | |
3cb856c7 PS |
258 | * zip_packer may create empty zip archives, there is a new option to ignore |
259 | problematic files when creating archive | |
93cc145f MN |
260 | * The function delete_course_module was deprecated and has been replaced with |
261 | course_delete_module. The reason for this was because the function delete_course_module | |
262 | only partially deletes data, so wherever it was called extra code was needed to | |
263 | perform the whole deletion process. The function course_delete_module now takes care | |
264 | of the whole process. | |
91c8cf99 F |
265 | * curl::setopt() does not accept constant values any more. As it never worked properly, |
266 | we decided to make the type check stricter. Now, the keys of the array pass must be a string | |
267 | corresponding to the curl constant name. | |
043f1005 RT |
268 | * Function get_users_listing now return list of users except guest and deleted users. Previously |
269 | deleted users were excluded by get_users_listing. As guest user is not expected while browsing users, | |
270 | and not included in get_user function, it will not be returned by get_users_listing. | |
1c14b1c1 DW |
271 | * The add_* functions in course/dnduploadlib.php have been deprecated. Plugins should be using the |
272 | MODNAME_dndupload_register callback instead. | |
690a55f6 DM |
273 | * The signature of the add() method of classes implementing the parentable_part_of_admin_tree |
274 | interface (such as admin_category) has been extended. The new parameter allows the caller | |
275 | to prepend the new node before an existing sibling in the admin tree. | |
87b6981e EL |
276 | * condition_info:get_condition_user_fields($formatoptions) now accepts the optional |
277 | param $formatoptions, that will determine if the field names are processed by | |
278 | format_string() with the passed options. | |
689096bc | 279 | * remove all references to $CFG->gdversion, GD PHP extension is now required |
b45ba7f6 DP |
280 | * Formslib will now throw a developer warning if a PARAM_ type hasn't been set for elements which |
281 | need it. Please set PARAM_RAW explicitly if you do not want any cleaning. | |
4e0b6025 | 282 | * Functions responsible for managing and accessing course categories are moved to class coursecat |
09ae7ee0 MG |
283 | in lib/coursecatlib.php, functions responsible for rendering courses and categories lists are |
284 | moved to course/renderer.php. The following global functions are deprecated: make_categories_list(), | |
6e1d1ee0 | 285 | category_delete_move(), category_delete_full(), move_category(), course_category_hide(), |
8db5dcb7 | 286 | course_category_show(), get_course_category(), create_course_category(), get_all_subcategories(), |
09ae7ee0 MG |
287 | get_child_categories(), get_categories(), print_my_moodle(), print_remote_course(), |
288 | print_remote_host(), print_whole_category_list(), print_category_info(), get_course_category_tree(), | |
289 | print_courses(), print_course(), get_category_courses_array(), get_category_courses_array_recursively(), | |
290 | get_courses_wmanagers() | |
291 | See http://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5 | |
0e2ca62e | 292 | * $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions. |
38c1dd19 RT |
293 | * Additional (optional) param $onlyactive has been added to get_enrolled_users, count_enrolled_users |
294 | functions to get information for only active (excluding suspended enrolments) users. Included two | |
295 | helper functions extract_suspended_users, get_suspended_userids to extract suspended user information. | |
e87214bd | 296 | * The core_plugin_manager class now provides two new helper methods for getting information |
d7d48b40 | 297 | about known plugins: get_plugins_of_type() and get_subplugins_of_plugin(). |
e87214bd | 298 | * The get_uninstall_url() method of all subclasses of \core\plugininfo\base class is now expected |
73658371 DM |
299 | to always return moodle_url. Subclasses can use the new method is_uninstall_allowed() |
300 | to control the availability of the 'Uninstall' link at the Plugins overview page (previously | |
301 | they would do it by get_uninstall_url() returning null). By default, URL to a new general plugin | |
302 | uninstall tool is returned. Unless the plugin type needs extra steps that can't be handled by | |
303 | plugininfo_xxx::uninstall() method or xmldb_xxx_uninstall() function, this default URL should | |
304 | satisfy all plugin types. | |
9a36be73 | 305 | |
4efcfaa3 | 306 | Database (DML) layer: |
77a5c093 PS |
307 | * $DB->sql_empty() is deprecated, you have to use sql parameters with empty values instead, |
308 | please note hardcoding of empty strings in SQL queries breaks execution in Oracle database. | |
2d97513d PS |
309 | * Indexes must not be defined on the same columns as keys, this is now reported as fatal problem. |
310 | Please note that internally we create indexes instead of foreign keys. | |
9a36be73 | 311 | |
238b8bc9 ARN |
312 | YUI changes: |
313 | * M.util.help_icon has been deprecated. Code should be updated to use moodle-core-popuphelp | |
314 | instead. To do so, remove any existing JS calls to M.util.help_icon from your PHP and ensure | |
315 | that your help link is placed in a span which has the class 'helplink'. | |
316 | ||
6c2be903 DP |
317 | === 2.4 === |
318 | ||
319 | * Pagelib: Numerous deprecated functions were removed as classes page_base, page_course | |
320 | and page_generic_activity. | |
704533fc | 321 | * use $CFG->googlemapkey3 instead of removed $CFG->googlemapkey and migrate to Google Maps API V3 |
b874d5c6 | 322 | * Function settings_navigation::add_course_editing_links() is completely removed |
ee7084e9 MG |
323 | * function global_navigation::format_display_course_content() is removed completely (the |
324 | functionality is moved to course format class) | |
325 | * in the function global_navigation::load_generic_course_sections() the argument $courseformat is | |
326 | removed | |
7881024e PS |
327 | * New component and itemid columns in groups_members table - this allows plugin to create protected |
328 | group memberships using 'xx_yy_allow_group_member_remove' callback and there is also a new restore | |
329 | callback 'xx_yy_restore_group_member()'. | |
330 | * New general role assignment restore plugin callback 'xx_yy_restore_role_assignment()'. | |
97960146 MG |
331 | * functions get_generic_section_name(), get_all_sections(), add_mod_to_section(), get_all_mods() |
332 | are deprecated. See their phpdocs in lib/deprecatedlib.php on how to replace them | |
ee362526 | 333 | |
d2a27ab0 ARN |
334 | YUI changes: |
335 | * moodle-enrol-notification has been renamed to moodle-core-notification | |
3542e01a | 336 | * YUI2 code must now use 2in3, see http://yuilibrary.com/yui/docs/yui/yui-yui2.html |
7266bd3e ARN |
337 | * M.util.init_select_autosubmit() and M.util.init_url_select() have been deprecated. Code using this should be updated |
338 | to use moodle-core-formautosubmit | |
d2a27ab0 | 339 | |
94c9db54 PS |
340 | Unit testing changes: |
341 | * output debugging() is not sent to standard output any more, | |
342 | use $this->assertDebuggingCalled(), $this->assertDebuggingNotCalled(), | |
343 | $this->getDebuggingMessages() or $this->assertResetDebugging() instead. | |
344 | ||
e618cdf3 PS |
345 | === 2.3 === |
346 | ||
347 | Database layer changes: | |
348 | * objects are not allowed in paramters of DML functions, use explicit casting to strings if necessary | |
349 | ||
19526d91 DP |
350 | Note: |
351 | * DDL and DML methods which were deprecated in 2.0 have now been removed, they will no longer produce | |
352 | debug messages and will produce fatal errors | |
e618cdf3 | 353 | |
796495fe | 354 | API changes: |
daefd6eb | 355 | |
796495fe | 356 | * send_stored_file() has changed its interface |
daefd6eb | 357 | * deleted several resourcelib_embed_* functions from resourcelib.php |
796495fe | 358 | |
ee362526 PS |
359 | === 2.2 === |
360 | ||
361 | removed unused libraries: | |
362 | * odbc, base32, CodeSniffer, overlib, apd profiling, kses, Smarty, PEAR Console, swfobject, cssshover.htc, md5.js | |
363 | ||
364 | API changes: | |
365 | * new admin/tool plugin type | |
366 | * new context API - old API is still available | |
8e470797 | 367 | * deleted users do not have context any more |
ee362526 PS |
368 | * removed global search |
369 | ||
370 | ||
371 | === 2.1 === | |
372 | ||
373 | API changes: | |
374 | * basic suport for restore from 1.9 | |
375 | * new mobile devices API | |
376 | * new questions API | |
377 | ||
378 | ||
379 | === 2.0 === | |
380 | ||
381 | API changes: | |
382 | * new DML API - http://docs.moodle.org/dev/DML_functions | |
383 | * new DDL API - http://docs.moodle.org/dev/DDL_functions | |
384 | * new file API - http://docs.moodle.org/dev/File_API | |
385 | * new $PAGE and $OUTPUT API | |
386 | * new navigation API | |
387 | * new theme API - http://docs.moodle.org/dev/Theme_changes_in_2.0 | |
388 | * new javascript API - http://docs.moodle.org/dev/JavaScript_usage_guide | |
389 | * new portfolio API | |
390 | * new local plugin type | |
391 | * new translation support - http://lang.moodle.org | |
392 | * new web service API | |
393 | * new cohorts API | |
394 | * new messaging API | |
395 | * new rating API | |
396 | * new comment API | |
397 | * new sessions API | |
398 | * new enrolment API | |
399 | * new backup/restore API | |
400 | * new blocks API | |
401 | * new filters API | |
402 | * improved plugin support (aka Frankenstyle) | |
403 | * new registration and hub API | |
404 | * new course completion API | |
405 | * new plagiarism API | |
406 | * changed blog API | |
407 | * new text editor API | |
19526d91 | 408 | * new my moodle and profiles API |