| 1 | This files describes API changes in /course/*, |
| 2 | information provided here is intended especially for developers. |
| 3 | |
| 4 | === 4.2 === |
| 5 | * course/mod.php now accepts parameter beforemod for adding course modules. It contains the course module id |
| 6 | of an existing course module. The new module is inserted before this module. |
| 7 | |
| 8 | === 4.1 === |
| 9 | * The function course_modchooser() has been finally deprecated and can not be used anymore. Please use |
| 10 | course_activitychooser() instead. |
| 11 | * A critical accessibility issue is been found (MDL-74800) at the output class |
| 12 | core_courseformat\output\local\content\cm\cmname. To solve the problem this output element is not |
| 13 | rendered anymore using inplace_editable but using a regular named_templatable interface. |
| 14 | Some format plugins that override the deprecated renderer method course_section_cm_name can be affected. |
| 15 | Check the current course_section_cm_name code to see how to render it properly. |
| 16 | |
| 17 | === 4.0 === |
| 18 | * All activity icons have been replaced with black monochrome icons. The background |
| 19 | colour for these icons is defined using a new 'FEATURE_MOD_PURPOSE' support variable in the module lib.php file |
| 20 | Available purpose types are: |
| 21 | - MOD_PURPOSE_COMMUNICATION |
| 22 | - MOD_PURPOSE_ASSESSMENT |
| 23 | - MOD_PURPOSE_COLLABORATION |
| 24 | - MOD_PURPOSE_CONTENT |
| 25 | - MOD_PURPOSE_ADMINISTRATION |
| 26 | - MOD_PURPOSE_INTERFACE |
| 27 | - MOD_PURPOSE_OTHER |
| 28 | The colours for these types are defined in theme/boost/scss/moodle/variables.scss |
| 29 | * The format_base is now deprecated. Use core_courseformat\base instead. |
| 30 | * The new course output components deprecate many renderer methods from course |
| 31 | renderer and course format renderer: |
| 32 | - core_courseformat\output\local\content: to render the general course structure |
| 33 | - core_courseformat\output\local\content\section: to render a section |
| 34 | - core_courseformat\output\local\content\cm: to render an activity card inside a section |
| 35 | - core_courseformat\output\local\content\cm\*: to render parts of the course structure |
| 36 | - core_courseformat\output\local\content\section\*: to render parts of the course section |
| 37 | * The previous format renderer page_title method has been moved to course_format::page_title |
| 38 | * New format renderer methods to interact with the new output components: |
| 39 | - render: override the default templatable mustache location for the new course components. |
| 40 | - course_section_updated_cm_item: used when the course editor needs to update a cm item HTML. |
| 41 | - render_content: contrib formats should override this method to change the default template. |
| 42 | * The following methods are adapted to use outputs but with a deprecation warning and should not be used anymore: |
| 43 | - print_single_section_page (replaced by core_courseformat\output\local\content) |
| 44 | - print_multiple_section_page (replaced by core_courseformat\output\local\content) |
| 45 | - course_activity_clipboard (integrated in replaced by core_courseformat\output\local\content) |
| 46 | - format_summary_text (replaced by core_courseformat\output\local\content\section\summay) |
| 47 | - change_number_sections (replaced by core_courseformat\output\local\content\addsection) |
| 48 | - course_section_cm_list_item (replaced by core_courseformat\output\local\content\section\cmitem) |
| 49 | - course_section_cm (replaced by core_courseformat\output\local\content\cm) |
| 50 | - course_section_cm_list (replaced by core_courseformat\output\local\content\section\cmlist) |
| 51 | - section_edit_control_menu (replaced by core_courseformat\output\local\content\section\controlmenu) |
| 52 | - section_right_content (integrated in core_courseformat\output\local\content\section) |
| 53 | - section_left_content (integrated in core_courseformat\output\local\content\section) |
| 54 | - section_header (replaced by core_courseformat\output\local\content\section\header) |
| 55 | - section_footer (integrated in core_courseformat\output\local\content\section) |
| 56 | - section_edit_control_items (replaced by core_courseformat\output\local\content\section\controlmenu) |
| 57 | - section_summary (replaced by core_courseformat\output\local\content\section\summary) |
| 58 | - section_activity_summary (replaced by core_courseformat\output\local\content\section\cmsummary) |
| 59 | - section_availability_message (integrated in core_courseformat\output\local\content\section\availability) |
| 60 | - section_availability (replaced by core_courseformat\output\local\content\section\availability) |
| 61 | - get_nav_links (replaced by core_courseformat\output\local\content\sectionnavigation) |
| 62 | - stealth_section_header (replaced by core_courseformat\output\local\content\section\header) |
| 63 | - stealth_section_footer (integrated in by core_courseformat\output\local\content\section) |
| 64 | - section_nav_selection (replaced by core_courseformat\output\local\content\sectionselector) |
| 65 | - course_section_cm_edit_actions (replaced by core_courseformat\output\local\content\cm\controlmenu) |
| 66 | - is_cm_conditionally_hidden (incorporated in core_availability\info_module::is_available_for_all) |
| 67 | - course_section_cm_name (replaced by core_courseformat\output\local\content\cm\cmname) |
| 68 | - course_section_cm_classes (integrated in core_courseformat\output\local\content\cm) |
| 69 | - course_section_cm_name_title (replaced by core_courseformat\output\local\cm\title) |
| 70 | - course_section_cm_text (integrated in core_courseformat\output\local\content\cm) |
| 71 | - course_section_cm_availability (replaced by core_courseformat\output\local\content\cm\availability)) |
| 72 | - start_section_list (integrated in core_courseformat\output\local\content) |
| 73 | - end_section_list (integrated in core_courseformat\output\local\content) |
| 74 | * The following abstract methods are deleted: |
| 75 | - page_title (moved to core_courseformat\output\local\content) |
| 76 | * Course formats should have a renderer (until now it was only highly recommended but not mandatory). For backwards |
| 77 | compatibility (to not break third-party plugins without it), legacy_format_renderer has been created and will be used when |
| 78 | course formats don't have their own renderer. |
| 79 | * New external core_courseformat\external\get_state returns current state information for a given course. |
| 80 | * New external core_courseformat\external\update_course runs given action to edit course and gets the affectated state objects. |
| 81 | * New external core_course\external\get_state returns current state information for a given course. |
| 82 | * New external function core_course_update_course runs given action to edit course status. |
| 83 | * The `\core\event\course_category_deleted` event is now created with a snapshot of the category record being deleted, |
| 84 | available inside event observers via `$event->get_record_snapshot` |
| 85 | * New include_course_editor() function to include and configure course editor modules. |
| 86 | * New core_course_drawer() function to render the message drawer in the top of the body of each page. |
| 87 | * New course_get_enrolled_courses_for_logged_in_user_from_search which hooks in with external\get_enrolled_courses_by_timeline_classification |
| 88 | given COURSE_TIMELINE_SEARCH is set then get_enrolled_courses_by_timeline_classification will deviate to use a string search of enrolled courses. |
| 89 | * Class core_course\output\course_module_name is deprecated. Now core_courseformat\output\local\content\cm\cmname controls inline edit. |
| 90 | * Calendar menu entry is now moved to User menu items, so the following methods will not return the calendar item anymore: |
| 91 | - course_get_user_navigation_options |
| 92 | - core_course_externalcore_course_external::get_user_navigation_options |
| 93 | * New external \core_course\external\get_enrolled_courses_with_action_events_by_timeline_classification: |
| 94 | - Returns courses the user is enrolled in which contain at least one action event in the supplied time/text filtering parameters. |
| 95 | - Provides a similar response to get_enrolled_courses_by_timeline_classification, but omits courses which have no matching |
| 96 | action events. |
| 97 | * The following functions have been deprecated in favour the tertiary navigation constructs: |
| 98 | - management_heading |
| 99 | - course_search_form |
| 100 | - print_course_request_buttons |
| 101 | * New page_setup() method in the core_course_category class. This method can be used for a general page setup in the course |
| 102 | category pages. |
| 103 | * New core_course_category::get_nearest_editable_subcategory(): |
| 104 | - Return the core_course_category object for the first subcategory that the current user has the permission on it. |
| 105 | * The method navigation() in the core_course_bulk_activity_completion_renderer class has been deprecated as the tabs navigation |
| 106 | structure in the course competency pages has been replaced with tertiary navigation. To render the navigation, please |
| 107 | render_course_completion_action_bar() instead. |
| 108 | * The following functions have been deprecated in favour partial course cache rebuild: |
| 109 | - course_purge_section_cache (replaced by course_modinfo::purge_course_section_cache_by_id() and course_modinfo::purge_course_section_cache_by_number()) |
| 110 | - course_purge_module_cache (replaced by course_modinfo::purge_course_module_cache()) |
| 111 | - get_array_of_activities (replaced by course_modinfo::get_array_of_activities() for better performance) |
| 112 | * New course_modinfo::purge_course_cache function was created to purge the cache of a given course. |
| 113 | |
| 114 | === 3.11 === |
| 115 | * A new callback xxx_coursemodule_definition_after_data that allows plugins to extend activity forms after the data is set. |
| 116 | * \core_course_renderer::course_section_cm_completion() has been deprecated. It is not being used anymore and is being replaced by |
| 117 | \core_renderer::activity_information(). |
| 118 | * New Behat steps for checking activity date information in the \behat_course class: |
| 119 | - activity_date_in_activity_should_contain_text() |
| 120 | - Given the activity date in "<ActivityName>" should contain "<Text>" |
| 121 | - activity_dates_information_in_activity_should_exist() |
| 122 | - Given the activity date information in "<ActivityName>" should exist |
| 123 | - activity_dates_information_in_activity_should_not_exist() |
| 124 | - Given the activity date information in "<ActivityName>" should not exist |
| 125 | * A user preference usemodchooser has been removed and the activities/resources (non-ajax) activity chooser has been deprecated and will be removed in the future. |
| 126 | |
| 127 | === 3.10 === |
| 128 | |
| 129 | * The function make_categories_options() has now been deprecated. Please use \core_course_category::make_categories_list() instead. |
| 130 | * External function core_course_external::get_course_contents now returns a new field contextid with the module context id. |
| 131 | * The core_course_external class methods get_courses(), get_courses_by_field() and search_courses() now return a "valueraw" property |
| 132 | for each custom course field, which contains the original/unformatted version of the custom field value. |
| 133 | |
| 134 | === 3.9 === |
| 135 | |
| 136 | * The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead. |
| 137 | * Activity module names are now PARAM_ALPHANUM instead of PARAM_ALPHA so integers can be used in activity module names |
| 138 | * The following functions have been added to core_course_renderer class to have more granularity. They can be overriden in |
| 139 | extending classes: |
| 140 | - course_name |
| 141 | - course_enrolment_icons |
| 142 | - course_summary |
| 143 | - course_contacts |
| 144 | - course_overview_files |
| 145 | - course_category_name |
| 146 | - course_custom_fields |
| 147 | |
| 148 | === 3.8 === |
| 149 | |
| 150 | * The following functions have been finally deprecated and can not be used any more: |
| 151 | - core_course_external::get_activities_overview |
| 152 | * External function core_course_external::get_enrolled_courses_by_timeline_classification now also supports the classification |
| 153 | 'allincludinghidden' which delivers all courses including hidden courses. The classification 'all' still returns all courses |
| 154 | without hidden courses. |
| 155 | |
| 156 | === 3.7 === |
| 157 | |
| 158 | * The course pattern function in course_summary_exporter::get_course_pattern has been moved to $OUTPUT->get_generated_image_for_id. |
| 159 | * The course color function in course_summary_exporter::coursecolor has been moved to $OUTPUT->get_generated_color_for_id. |
| 160 | * External function core_course_external::get_course_contents new returns the following additional completiondata field: |
| 161 | - valueused (indicates whether the completion state affects the availability of other content) |
| 162 | * External function core_course_external::get_course_contents now returns a new contentsinfo field with summary files information. |
| 163 | * External function core_course_external::get_course_contents now returns an additional field "tags" returning the content tags. |
| 164 | |
| 165 | === 3.6 === |
| 166 | |
| 167 | * External function core_course_external::get_course_public_information now returns the roles and the primary role of course |
| 168 | contacts. |
| 169 | * External function core_course_external::get_course_contents now return the following additional file fields: |
| 170 | - onclick (onclick javascript action code) |
| 171 | - afterlink (after link info to be displayed) |
| 172 | - customdata (module custom data (JSON encoded)) |
| 173 | - completion (to indicate if completion is enabled or not) |
| 174 | - completiondata (completion status for the current user in the module) |
| 175 | * External function core_group_external::get_course_user_groups now can return all user courses group information. |
| 176 | |
| 177 | === 3.5 === |
| 178 | |
| 179 | * There is a new capability 'moodle/course:setforcedlanguage' to control which users can force the course |
| 180 | language; create_course and update_course functions delegate access control to the caller code; if you |
| 181 | are calling those functions you may be interested in checking if the logged in user has 'moodle/course:setforcedlanguage' capability. |
| 182 | |
| 183 | === 3.3 === |
| 184 | |
| 185 | * External function core_course_external::get_courses_by_field now returns the course filters list and status. |
| 186 | * External function core_course_external::get_courses_by_field now returns the end date of the course. |
| 187 | * External function core_course_external::get_course_contents now return the following additional file fields: |
| 188 | - mimetype (the file mime type) |
| 189 | - isexternalfile (if is a file reference to a external repository) |
| 190 | - repositorytype (the repository name in case is a external file) |
| 191 | Those fields are VALUE_OPTIONAL for backwards compatibility. |
| 192 | * External function core_course_external::get_course_contents now return the following fields for section and modules: |
| 193 | - uservisible (whether the section or module is visible by the user) |
| 194 | - availabilityinfo (availability information if the course or module has any access restriction set |
| 195 | |
| 196 | === 3.2 === |
| 197 | |
| 198 | * External function core_course_external::get_course_contents now returns the section's number in the course (new section field). |
| 199 | * External function core_course_external::get_course_contents now returns if a section is hidden in the course format. |
| 200 | * External functions that were returning file information now return the following file fields: |
| 201 | filename, filepath, mimetype, filesize, timemodified and fileurl. |
| 202 | Those fields are now marked as VALUE_OPTIONAL for backwards compatibility. |
| 203 | * The modchooser now uses a renderable and a template, thus its associated renderer |
| 204 | methods have been deprecated. Note that the call to core_course_render::course_modchooser, |
| 205 | is still required. Deprecated methods: |
| 206 | - core_course_renderer::course_modchooser_module_types |
| 207 | - core_course_renderer::course_modchooser_module |
| 208 | - core_course_renderer::course_modchooser_title |
| 209 | * You can now specify a course end date when calling core_course_external::create_courses and core_course_external::update_courses |
| 210 | external functions. core_course_external::get_courses external function is now returning courses end date values. |