Merge branch 'wip-mdl-31969' of git://github.com/rajeshtaneja/moodle
[moodle.git] / lib / upgrade.txt
1 This files describes API changes in core libraries and APIs,
2 information provided here is intended especially for developers.
4 === 2.5 ===
6 * The cron output has been changed to include time and memory usage (see cron_trace_time_and_memory()),
7   so any custom utility relying on the old output may require modification.
8 * Function get_max_file_sizes now returns an option for (for example) "Course limit (500MB)" or
9   "Site limit (200MB)" when appropriate with the option set to 0. This function no longer returns
10   an option for 0 bytes. Existing code that was replacing the 0 option in the return
11   from this function with a more sensible message, can now use the return from this function directly.
12 * Functions responsible for output in course/lib.php are deprecated, the code is moved to
13   appropriate renderers: print_section_add_menus()
14   See functions' phpdocs in lib/deprecatedlib.php
15 * Function get_print_section_cm_text() is deprecated, replaced with methods in cm_info
16 * zip_packer may create empty zip archives, there is a new option to ignore
17   problematic files when creating archive
18 * The function delete_course_module was deprecated and has been replaced with
19   course_delete_module. The reason for this was because the function delete_course_module
20   only partially deletes data, so wherever it was called extra code was needed to
21   perform the whole deletion process. The function course_delete_module now takes care
22   of the whole process.
23 * curl::setopt() does not accept constant values any more. As it never worked properly,
24   we decided to make the type check stricter. Now, the keys of the array pass must be a string
25   corresponding to the curl constant name.
26 * Function get_users_listing now return list of users except guest and deleted users. Previously
27   deleted users were excluded by get_users_listing. As guest user is not expected while browsing users,
28   and not included in get_user function, it will not be returned by get_users_listing.
29 * The add_* functions in course/dnduploadlib.php have been deprecated. Plugins should be using the
30   MODNAME_dndupload_register callback instead.
31 * The signature of the add() method of classes implementing the parentable_part_of_admin_tree
32   interface (such as admin_category) has been extended. The new parameter allows the caller
33   to prepend the new node before an existing sibling in the admin tree.
34 * condition_info:get_condition_user_fields($formatoptions) now accepts the optional
35   param $formatoptions, that will determine if the field names are processed by
36   format_string() with the passed options.
37 * remove all references to $CFG->gdversion, GD PHP extension is now required
38 * Formslib will now throw a developer warning if a PARAM_ type hasn't been set for elements which
39   need it. Please set PARAM_RAW explicitly if you do not want any cleaning.
40 * Functions responsible for managing and accessing course categories are moved to class coursecat
41   in lib/coursecatlib.php, functions responsible for rendering courses and categories lists are
42   moved to course/renderer.php. The following global functions are deprecated: make_categories_list(),
43   category_delete_move(), category_delete_full(), move_category(), course_category_hide(),
44   course_category_show(), get_course_category(), create_course_category(), get_all_subcategories(),
45   get_child_categories(), get_categories(), print_my_moodle(), print_remote_course(),
46   print_remote_host(), print_whole_category_list(), print_category_info(), get_course_category_tree(),
47   print_courses(), print_course(), get_category_courses_array(), get_category_courses_array_recursively(),
48   get_courses_wmanagers()
49   See http://docs.moodle.org/dev/Courses_lists_upgrade_to_2.5
50 * $core_renderer->block_move_target() changed to support more verbose move-block-here descriptions.
51 * Additional (optional) param $onlyactive has been added to get_enrolled_users, count_enrolled_users
52   functions to get information for only active (excluding suspended enrolments) users. Included two
53   helper functions extract_suspended_users, get_suspended_userids to extract suspended user information.
55 Database (DML) layer:
56 * $DB->sql_empty() is deprecated, you have to use sql parameters with empty values instead,
57   please note hardcoding of empty strings in SQL queries breaks execution in Oracle database.
59 YUI changes:
60 * M.util.help_icon has been deprecated. Code should be updated to use moodle-core-popuphelp
61   instead. To do so, remove any existing JS calls to M.util.help_icon from your PHP and ensure
62   that your help link is placed in a span which has the class 'helplink'.
64 === 2.4 ===
66 * Pagelib: Numerous deprecated functions were removed as classes page_base, page_course
67   and page_generic_activity.
68 * use $CFG->googlemapkey3 instead of removed $CFG->googlemapkey and migrate to Google Maps API V3
69 * Function settings_navigation::add_course_editing_links() is completely removed
70 * function global_navigation::format_display_course_content() is removed completely (the
71   functionality is moved to course format class)
72 * in the function global_navigation::load_generic_course_sections() the argument $courseformat is
73   removed
74 * New component and itemid columns in groups_members table - this allows plugin to create protected
75   group memberships using 'xx_yy_allow_group_member_remove' callback and there is also a new restore
76   callback 'xx_yy_restore_group_member()'.
77 * New general role assignment restore plugin callback 'xx_yy_restore_role_assignment()'.
78 * functions get_generic_section_name(), get_all_sections(), add_mod_to_section(), get_all_mods()
79   are deprecated. See their phpdocs in lib/deprecatedlib.php on how to replace them
81 YUI changes:
82 * moodle-enrol-notification has been renamed to moodle-core-notification
83 * YUI2 code must now use 2in3, see http://yuilibrary.com/yui/docs/yui/yui-yui2.html
84 * M.util.init_select_autosubmit() and M.util.init_url_select() have been deprecated. Code using this should be updated
85   to use moodle-core-formautosubmit
87 Unit testing changes:
88 * output debugging() is not sent to standard output any more,
89   use $this->assertDebuggingCalled(), $this->assertDebuggingNotCalled(),
90   $this->getDebuggingMessages() or $this->assertResetDebugging() instead.
92 === 2.3 ===
94 Database layer changes:
95 * objects are not allowed in paramters of DML functions, use explicit casting to strings if necessary
97 Note:
98 * DDL and DML methods which were deprecated in 2.0 have now been removed, they will no longer produce
99 debug messages and will produce fatal errors
101 API changes:
103 * send_stored_file() has changed its interface
104 * deleted several resourcelib_embed_* functions from resourcelib.php
106 === 2.2 ===
108 removed unused libraries:
109 * odbc, base32, CodeSniffer, overlib, apd profiling, kses, Smarty, PEAR Console, swfobject, cssshover.htc, md5.js
111 API changes:
112 * new admin/tool plugin type
113 * new context API - old API is still available
114 * deleted users do not have context any more
115 * removed global search
118 === 2.1 ===
120 API changes:
121 * basic suport for restore from 1.9
122 * new mobile devices API
123 * new questions API
126 === 2.0 ===
128 API changes:
129 * new DML API - http://docs.moodle.org/dev/DML_functions
130 * new DDL API - http://docs.moodle.org/dev/DDL_functions
131 * new file API - http://docs.moodle.org/dev/File_API
132 * new $PAGE and $OUTPUT API
133 * new navigation API
134 * new theme API - http://docs.moodle.org/dev/Theme_changes_in_2.0
135 * new javascript API - http://docs.moodle.org/dev/JavaScript_usage_guide
136 * new portfolio API
137 * new local plugin type
138 * new translation support - http://lang.moodle.org
139 * new web service API
140 * new cohorts API
141 * new messaging API
142 * new rating API
143 * new comment API
144 * new sessions API
145 * new enrolment API
146 * new backup/restore API
147 * new blocks API
148 * new filters API
149 * improved plugin support (aka Frankenstyle)
150 * new registration and hub API
151 * new course completion API
152 * new plagiarism API
153 * changed blog API
154 * new text editor API
155 * new my moodle and profiles API