1 |
efrain |
1 |
This files describes API changes in /course/*,
|
|
|
2 |
information provided here is intended especially for developers.
|
|
|
3 |
|
|
|
4 |
=== 4.4 ===
|
|
|
5 |
* The following behat steps are now deprecated and replaced by new ones with no Javascript dependencies:
|
|
|
6 |
- I add a ":activityname" to section ":sectionnum"
|
|
|
7 |
- I add a ":activityname" to section ":sectionnum and I fill the form with:"
|
|
|
8 |
The new steps are:
|
|
|
9 |
- I add a :activityname to section :sectionnum using the activity chooser
|
|
|
10 |
- I add a :activitypluginname activity to course :coursefullname section :sectionnum
|
|
|
11 |
- I add a :activitypluginname activity to course :coursefullname section :sectionnum and I fill the form with:
|
|
|
12 |
* set_coursemodule_visible() has a new $rebuildcache parameter. If this is being called multiple times in the same request,
|
|
|
13 |
consider passing `false` for this parameter and rebuilding the cache once after all the course modules have been updated.
|
|
|
14 |
See course_update_section() for an example.
|
|
|
15 |
* The external function core_course::get_courses_by_field now returns the communication tool configuration for the course.
|
|
|
16 |
- communicationroomname: the room name
|
|
|
17 |
- communicationroomurl: the tool url
|
|
|
18 |
* The following previously deprecated methods have been removed and can no longer be used:
|
|
|
19 |
- `course_purge_section_cache`
|
|
|
20 |
- `course_purge_module_cache`
|
|
|
21 |
- `get_array_of_activities`
|
|
|
22 |
- `core_course_management_renderer::management_heading`
|
|
|
23 |
- `core_course_management_renderer::course_search_form`
|
|
|
24 |
* New format actions classes. Those classes will eventually replace all course/lib.php content editing functions.
|
|
|
25 |
All new methods are distributed in three classes formats can extend. Method can be accessed using static
|
|
|
26 |
methods (see doc block of core_courseformat\formatactions for more information).
|
|
|
27 |
* The monologo activity icons have been improved and .png files have been removed (although the API still supports them).
|
|
|
28 |
The background for these icons has been removed and the color is used now for outlining their shapes.
|
|
|
29 |
About the categories supported by the FEATURE_MOD_PURPOSE:
|
|
|
30 |
* A new category has been added: MOD_PURPOSE_INTERACTIVECONTENT.
|
|
|
31 |
* The MOD_PURPOSE_INTERFACE category has been deprecated. The styles associated with this category have been removed.
|
|
|
32 |
The colors for all these purposes and the filters applied to outline them are defined in theme/boost/scss/moodle/variables.scss
|
|
|
33 |
* New hooks for extending course form:
|
|
|
34 |
- core_course\hook\after_form_definition
|
|
|
35 |
- core_course\hook\after_form_definition_after_data
|
|
|
36 |
- core_course\hook\after_form_validation
|
|
|
37 |
- core_course\hook\after_form_submission
|
|
|
38 |
* New behat step using the URL resolvers:
|
|
|
39 |
- When I am on the "Course > <section> "course > section" page logged in as "<username>". When utilizing 'Section x'
|
|
|
40 |
it first searches by section name (Section x). If it's not found, then it searches by the section number (x).
|
|
|
41 |
* The template core_course/course_search_form has been removed following its cessation of use upon MDL-69454 in version 3.11.
|
|
|
42 |
* New parameter 'requiredfields' added to \core_course_external::get_enrolled_courses_by_timeline_classification() to allow
|
|
|
43 |
callers of this function to specify only the required course fields.
|
|
|
44 |
* Set default values for the following course_summary_exporter properties:
|
|
|
45 |
- summary (null)
|
|
|
46 |
- summaryformat (FORMAT_MOODLE)
|
|
|
47 |
- pdfexportfont (null)
|
|
|
48 |
|
|
|
49 |
=== 4.3 ===
|
|
|
50 |
* The `core_course_renderer::course_section_cm_completion` method has been removed, and can no longer be used
|
|
|
51 |
* External function core_course_external::get_course_contents() now returns a new field activitybadge with the data to display
|
|
|
52 |
the activity badge when the module implements it.
|
|
|
53 |
* prepare_new_moduleinfo_data() now accepts a parameter "suffix" that will be added to the name of the completion rules.
|
|
|
54 |
* The method core_course_bulk_activity_completion_renderer:: edit_default_completion() has been deprecated and will be removed.
|
|
|
55 |
* The `core_course\output\activity_information` output class has been deprecated. Use `core_course\output\activity_completion`
|
|
|
56 |
and `core_course\output\activity_dates` instead.
|
|
|
57 |
Alongside with that, the following methods have been deprecated too:
|
|
|
58 |
- `core_course_renderer::render_activity_information()`
|
|
|
59 |
- `renderer_base::activity_information()`
|
|
|
60 |
|
|
|
61 |
=== 4.2 ===
|
|
|
62 |
* course/mod.php now accepts parameter beforemod for adding course modules. It contains the course module id
|
|
|
63 |
of an existing course module. The new module is inserted before this module.
|
|
|
64 |
* The function duplicate_module() now has two new optional parameters:
|
|
|
65 |
- $sectionid to specify section the duplicated course module is placed in
|
|
|
66 |
- $changename to disable changing the name of the course module using the 'duplicatedmodule' lang string
|
|
|
67 |
* The method `make_categories_options`, deprecated since 3.10, has been removed
|
|
|
68 |
* External function core_course_external::get_courses_by_field and core_course_external::search_courses now return a field
|
|
|
69 |
called "courseimage" containing a URL pointing to the course image.
|
|
|
70 |
* External function core_course_external::get_course_contents() does not throw exceptions for invalid course formats anymore.
|
|
|
71 |
|
|
|
72 |
=== 4.1 ===
|
|
|
73 |
* The function course_modchooser() has been finally deprecated and can not be used anymore. Please use
|
|
|
74 |
course_activitychooser() instead.
|
|
|
75 |
* A critical accessibility issue is been found (MDL-74800) at the output class
|
|
|
76 |
core_courseformat\output\local\content\cm\cmname. To solve the problem this output element is not
|
|
|
77 |
rendered anymore using inplace_editable but using a regular named_templatable interface.
|
|
|
78 |
Some format plugins that override the deprecated renderer method course_section_cm_name can be affected.
|
|
|
79 |
Check the current course_section_cm_name code to see how to render it properly.
|
|
|
80 |
|
|
|
81 |
=== 4.0 ===
|
|
|
82 |
* All activity icons have been replaced with black monochrome icons. The background
|
|
|
83 |
colour for these icons is defined using a new 'FEATURE_MOD_PURPOSE' support variable in the module lib.php file
|
|
|
84 |
Available purpose types are:
|
|
|
85 |
- MOD_PURPOSE_COMMUNICATION
|
|
|
86 |
- MOD_PURPOSE_ASSESSMENT
|
|
|
87 |
- MOD_PURPOSE_COLLABORATION
|
|
|
88 |
- MOD_PURPOSE_CONTENT
|
|
|
89 |
- MOD_PURPOSE_ADMINISTRATION
|
|
|
90 |
- MOD_PURPOSE_INTERFACE
|
|
|
91 |
- MOD_PURPOSE_OTHER
|
|
|
92 |
The colours for these types are defined in theme/boost/scss/moodle/variables.scss
|
|
|
93 |
* The format_base is now deprecated. Use core_courseformat\base instead.
|
|
|
94 |
* The new course output components deprecate many renderer methods from course
|
|
|
95 |
renderer and course format renderer:
|
|
|
96 |
- core_courseformat\output\local\content: to render the general course structure
|
|
|
97 |
- core_courseformat\output\local\content\section: to render a section
|
|
|
98 |
- core_courseformat\output\local\content\cm: to render an activity card inside a section
|
|
|
99 |
- core_courseformat\output\local\content\cm\*: to render parts of the course structure
|
|
|
100 |
- core_courseformat\output\local\content\section\*: to render parts of the course section
|
|
|
101 |
* The previous format renderer page_title method has been moved to course_format::page_title
|
|
|
102 |
* New format renderer methods to interact with the new output components:
|
|
|
103 |
- render: override the default templatable mustache location for the new course components.
|
|
|
104 |
- course_section_updated_cm_item: used when the course editor needs to update a cm item HTML.
|
|
|
105 |
- render_content: contrib formats should override this method to change the default template.
|
|
|
106 |
* The following methods are adapted to use outputs but with a deprecation warning and should not be used anymore:
|
|
|
107 |
- print_single_section_page (replaced by core_courseformat\output\local\content)
|
|
|
108 |
- print_multiple_section_page (replaced by core_courseformat\output\local\content)
|
|
|
109 |
- course_activity_clipboard (integrated in replaced by core_courseformat\output\local\content)
|
|
|
110 |
- format_summary_text (replaced by core_courseformat\output\local\content\section\summay)
|
|
|
111 |
- change_number_sections (replaced by core_courseformat\output\local\content\addsection)
|
|
|
112 |
- course_section_cm_list_item (replaced by core_courseformat\output\local\content\section\cmitem)
|
|
|
113 |
- course_section_cm (replaced by core_courseformat\output\local\content\cm)
|
|
|
114 |
- course_section_cm_list (replaced by core_courseformat\output\local\content\section\cmlist)
|
|
|
115 |
- section_edit_control_menu (replaced by core_courseformat\output\local\content\section\controlmenu)
|
|
|
116 |
- section_right_content (integrated in core_courseformat\output\local\content\section)
|
|
|
117 |
- section_left_content (integrated in core_courseformat\output\local\content\section)
|
|
|
118 |
- section_header (replaced by core_courseformat\output\local\content\section\header)
|
|
|
119 |
- section_footer (integrated in core_courseformat\output\local\content\section)
|
|
|
120 |
- section_edit_control_items (replaced by core_courseformat\output\local\content\section\controlmenu)
|
|
|
121 |
- section_summary (replaced by core_courseformat\output\local\content\section\summary)
|
|
|
122 |
- section_activity_summary (replaced by core_courseformat\output\local\content\section\cmsummary)
|
|
|
123 |
- section_availability_message (integrated in core_courseformat\output\local\content\section\availability)
|
|
|
124 |
- section_availability (replaced by core_courseformat\output\local\content\section\availability)
|
|
|
125 |
- get_nav_links (replaced by core_courseformat\output\local\content\sectionnavigation)
|
|
|
126 |
- stealth_section_header (replaced by core_courseformat\output\local\content\section\header)
|
|
|
127 |
- stealth_section_footer (integrated in by core_courseformat\output\local\content\section)
|
|
|
128 |
- section_nav_selection (replaced by core_courseformat\output\local\content\sectionselector)
|
|
|
129 |
- course_section_cm_edit_actions (replaced by core_courseformat\output\local\content\cm\controlmenu)
|
|
|
130 |
- is_cm_conditionally_hidden (incorporated in core_availability\info_module::is_available_for_all)
|
|
|
131 |
- course_section_cm_name (replaced by core_courseformat\output\local\content\cm\cmname)
|
|
|
132 |
- course_section_cm_classes (integrated in core_courseformat\output\local\content\cm)
|
|
|
133 |
- course_section_cm_name_title (replaced by core_courseformat\output\local\cm\title)
|
|
|
134 |
- course_section_cm_text (integrated in core_courseformat\output\local\content\cm)
|
|
|
135 |
- course_section_cm_availability (replaced by core_courseformat\output\local\content\cm\availability))
|
|
|
136 |
- start_section_list (integrated in core_courseformat\output\local\content)
|
|
|
137 |
- end_section_list (integrated in core_courseformat\output\local\content)
|
|
|
138 |
* The following abstract methods are deleted:
|
|
|
139 |
- page_title (moved to core_courseformat\output\local\content)
|
|
|
140 |
* Course formats should have a renderer (until now it was only highly recommended but not mandatory). For backwards
|
|
|
141 |
compatibility (to not break third-party plugins without it), legacy_format_renderer has been created and will be used when
|
|
|
142 |
course formats don't have their own renderer.
|
|
|
143 |
* New external core_courseformat\external\get_state returns current state information for a given course.
|
|
|
144 |
* New external core_courseformat\external\update_course runs given action to edit course and gets the affectated state objects.
|
|
|
145 |
* New external core_course\external\get_state returns current state information for a given course.
|
|
|
146 |
* New external function core_course_update_course runs given action to edit course status.
|
|
|
147 |
* The `\core\event\course_category_deleted` event is now created with a snapshot of the category record being deleted,
|
|
|
148 |
available inside event observers via `$event->get_record_snapshot`
|
|
|
149 |
* New include_course_editor() function to include and configure course editor modules.
|
|
|
150 |
* New core_course_drawer() function to render the message drawer in the top of the body of each page.
|
|
|
151 |
* New course_get_enrolled_courses_for_logged_in_user_from_search which hooks in with external\get_enrolled_courses_by_timeline_classification
|
|
|
152 |
given COURSE_TIMELINE_SEARCH is set then get_enrolled_courses_by_timeline_classification will deviate to use a string search of enrolled courses.
|
|
|
153 |
* Class core_course\output\course_module_name is deprecated. Now core_courseformat\output\local\content\cm\cmname controls inline edit.
|
|
|
154 |
* Calendar menu entry is now moved to User menu items, so the following methods will not return the calendar item anymore:
|
|
|
155 |
- course_get_user_navigation_options
|
|
|
156 |
- core_course_externalcore_course_external::get_user_navigation_options
|
|
|
157 |
* New external \core_course\external\get_enrolled_courses_with_action_events_by_timeline_classification:
|
|
|
158 |
- Returns courses the user is enrolled in which contain at least one action event in the supplied time/text filtering parameters.
|
|
|
159 |
- Provides a similar response to get_enrolled_courses_by_timeline_classification, but omits courses which have no matching
|
|
|
160 |
action events.
|
|
|
161 |
* The following functions have been deprecated in favour the tertiary navigation constructs:
|
|
|
162 |
- management_heading
|
|
|
163 |
- course_search_form
|
|
|
164 |
- print_course_request_buttons
|
|
|
165 |
* New page_setup() method in the core_course_category class. This method can be used for a general page setup in the course
|
|
|
166 |
category pages.
|
|
|
167 |
* New core_course_category::get_nearest_editable_subcategory():
|
|
|
168 |
- Return the core_course_category object for the first subcategory that the current user has the permission on it.
|
|
|
169 |
* The method navigation() in the core_course_bulk_activity_completion_renderer class has been deprecated as the tabs navigation
|
|
|
170 |
structure in the course competency pages has been replaced with tertiary navigation. To render the navigation, please
|
|
|
171 |
render_course_completion_action_bar() instead.
|
|
|
172 |
* The following functions have been deprecated in favour partial course cache rebuild:
|
|
|
173 |
- course_purge_section_cache (replaced by course_modinfo::purge_course_section_cache_by_id() and course_modinfo::purge_course_section_cache_by_number())
|
|
|
174 |
- course_purge_module_cache (replaced by course_modinfo::purge_course_module_cache())
|
|
|
175 |
- get_array_of_activities (replaced by course_modinfo::get_array_of_activities() for better performance)
|
|
|
176 |
* New course_modinfo::purge_course_cache function was created to purge the cache of a given course.
|
|
|
177 |
|
|
|
178 |
=== 3.11 ===
|
|
|
179 |
* A new callback xxx_coursemodule_definition_after_data that allows plugins to extend activity forms after the data is set.
|
|
|
180 |
* \core_course_renderer::course_section_cm_completion() has been deprecated. It is not being used anymore and is being replaced by
|
|
|
181 |
\core_renderer::activity_information().
|
|
|
182 |
* New Behat steps for checking activity date information in the \behat_course class:
|
|
|
183 |
- activity_date_in_activity_should_contain_text()
|
|
|
184 |
- Given the activity date in "<ActivityName>" should contain "<Text>"
|
|
|
185 |
- activity_dates_information_in_activity_should_exist()
|
|
|
186 |
- Given the activity date information in "<ActivityName>" should exist
|
|
|
187 |
- activity_dates_information_in_activity_should_not_exist()
|
|
|
188 |
- Given the activity date information in "<ActivityName>" should not exist
|
|
|
189 |
* 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.
|
|
|
190 |
|
|
|
191 |
=== 3.10 ===
|
|
|
192 |
|
|
|
193 |
* The function make_categories_options() has now been deprecated. Please use \core_course_category::make_categories_list() instead.
|
|
|
194 |
* External function core_course_external::get_course_contents now returns a new field contextid with the module context id.
|
|
|
195 |
* The core_course_external class methods get_courses(), get_courses_by_field() and search_courses() now return a "valueraw" property
|
|
|
196 |
for each custom course field, which contains the original/unformatted version of the custom field value.
|
|
|
197 |
|
|
|
198 |
=== 3.9 ===
|
|
|
199 |
|
|
|
200 |
* The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead.
|
|
|
201 |
* Activity module names are now PARAM_ALPHANUM instead of PARAM_ALPHA so integers can be used in activity module names
|
|
|
202 |
* The following functions have been added to core_course_renderer class to have more granularity. They can be overriden in
|
|
|
203 |
extending classes:
|
|
|
204 |
- course_name
|
|
|
205 |
- course_enrolment_icons
|
|
|
206 |
- course_summary
|
|
|
207 |
- course_contacts
|
|
|
208 |
- course_overview_files
|
|
|
209 |
- course_category_name
|
|
|
210 |
- course_custom_fields
|
|
|
211 |
|
|
|
212 |
=== 3.8 ===
|
|
|
213 |
|
|
|
214 |
* The following functions have been finally deprecated and can not be used any more:
|
|
|
215 |
- core_course_external::get_activities_overview
|
|
|
216 |
* External function core_course_external::get_enrolled_courses_by_timeline_classification now also supports the classification
|
|
|
217 |
'allincludinghidden' which delivers all courses including hidden courses. The classification 'all' still returns all courses
|
|
|
218 |
without hidden courses.
|
|
|
219 |
|
|
|
220 |
=== 3.7 ===
|
|
|
221 |
|
|
|
222 |
* The course pattern function in course_summary_exporter::get_course_pattern has been moved to $OUTPUT->get_generated_image_for_id.
|
|
|
223 |
* The course color function in course_summary_exporter::coursecolor has been moved to $OUTPUT->get_generated_color_for_id.
|
|
|
224 |
* External function core_course_external::get_course_contents new returns the following additional completiondata field:
|
|
|
225 |
- valueused (indicates whether the completion state affects the availability of other content)
|
|
|
226 |
* External function core_course_external::get_course_contents now returns a new contentsinfo field with summary files information.
|
|
|
227 |
* External function core_course_external::get_course_contents now returns an additional field "tags" returning the content tags.
|
|
|
228 |
|
|
|
229 |
=== 3.6 ===
|
|
|
230 |
|
|
|
231 |
* External function core_course_external::get_course_public_information now returns the roles and the primary role of course
|
|
|
232 |
contacts.
|
|
|
233 |
* External function core_course_external::get_course_contents now return the following additional file fields:
|
|
|
234 |
- onclick (onclick javascript action code)
|
|
|
235 |
- afterlink (after link info to be displayed)
|
|
|
236 |
- customdata (module custom data (JSON encoded))
|
|
|
237 |
- completion (to indicate if completion is enabled or not)
|
|
|
238 |
- completiondata (completion status for the current user in the module)
|
|
|
239 |
* External function core_group_external::get_course_user_groups now can return all user courses group information.
|
|
|
240 |
|
|
|
241 |
=== 3.5 ===
|
|
|
242 |
|
|
|
243 |
* There is a new capability 'moodle/course:setforcedlanguage' to control which users can force the course
|
|
|
244 |
language; create_course and update_course functions delegate access control to the caller code; if you
|
|
|
245 |
are calling those functions you may be interested in checking if the logged in user has 'moodle/course:setforcedlanguage' capability.
|
|
|
246 |
|
|
|
247 |
=== 3.3 ===
|
|
|
248 |
|
|
|
249 |
* External function core_course_external::get_courses_by_field now returns the course filters list and status.
|
|
|
250 |
* External function core_course_external::get_courses_by_field now returns the end date of the course.
|
|
|
251 |
* External function core_course_external::get_course_contents now return the following additional file fields:
|
|
|
252 |
- mimetype (the file mime type)
|
|
|
253 |
- isexternalfile (if is a file reference to a external repository)
|
|
|
254 |
- repositorytype (the repository name in case is a external file)
|
|
|
255 |
Those fields are VALUE_OPTIONAL for backwards compatibility.
|
|
|
256 |
* External function core_course_external::get_course_contents now return the following fields for section and modules:
|
|
|
257 |
- uservisible (whether the section or module is visible by the user)
|
|
|
258 |
- availabilityinfo (availability information if the course or module has any access restriction set
|
|
|
259 |
|
|
|
260 |
=== 3.2 ===
|
|
|
261 |
|
|
|
262 |
* External function core_course_external::get_course_contents now returns the section's number in the course (new section field).
|
|
|
263 |
* External function core_course_external::get_course_contents now returns if a section is hidden in the course format.
|
|
|
264 |
* External functions that were returning file information now return the following file fields:
|
|
|
265 |
filename, filepath, mimetype, filesize, timemodified and fileurl.
|
|
|
266 |
Those fields are now marked as VALUE_OPTIONAL for backwards compatibility.
|
|
|
267 |
* The modchooser now uses a renderable and a template, thus its associated renderer
|
|
|
268 |
methods have been deprecated. Note that the call to core_course_render::course_modchooser,
|
|
|
269 |
is still required. Deprecated methods:
|
|
|
270 |
- core_course_renderer::course_modchooser_module_types
|
|
|
271 |
- core_course_renderer::course_modchooser_module
|
|
|
272 |
- core_course_renderer::course_modchooser_title
|
|
|
273 |
* You can now specify a course end date when calling core_course_external::create_courses and core_course_external::update_courses
|
|
|
274 |
external functions. core_course_external::get_courses external function is now returning courses end date values.
|