Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
This files describes API changes for course formats
2
 
3
Overview of this plugin type at https://moodledev.io/docs/apis/plugintypes/format
4
 
5
=== 4.4.1 ===
6
* The constructor of core_courseformat\output\local\state\cm has been updated to accept a new optional parameter called is_tracked_user.
7
  If is_tracked_user is pre-computed for this CM's course, it can be provided here to avoid an additional function call.
8
 
9
=== 4.4 ===
10
* The core_courseformat\output\local\content\section::export_for_template() is not returning hiddenfromstudents and notavailable
11
  directly in the data array anymore. Instead, it returns the visibility data in the 'visibility' key. It means that templates
12
  derived from core should be adjusted to use $data->visibility->hiddenfromstudents and $data->visibility->notavailable instead
13
  of $data->hiddenfromstudents and $data->notavailable.
14
* The state mutations sectionMove is deprecated. From now on sectionMoveAfter is the only
15
  valid section move mutation.
16
* The state action core_courseformat\stateactions::section_move is deprecated and
17
  replaced by core_courseformat\stateactions::section_move_after.
18
* $CFG->linkcoursesections setting has been completely removed because it's not required anymore. From now on, sections will be
19
always linked because a new page, section.php, has been created to display any single section.
20
* Final deprecation for:
21
  - core_courseformat\output\section_renderer::section_edit_control_menu
22
  - core_courseformat\output\section_renderer::section_right_content
23
  - core_courseformat\output\section_renderer::section_left_content
24
  - core_courseformat\output\section_renderer::section_header
25
  - core_courseformat\output\section_renderer::section_footer
26
  - core_courseformat\output\section_renderer::start_section_list
27
  - core_courseformat\output\section_renderer::end_section_list
28
  - core_courseformat\output\section_renderer::section_edit_control_items
29
  - core_courseformat\output\section_renderer::section_summary
30
  - core_courseformat\output\section_renderer::section_activity_summary
31
  - core_courseformat\output\section_renderer::section_availability_message
32
  - core_courseformat\output\section_renderer::section_availability
33
  - core_courseformat\output\section_renderer::course_activity_clipboard
34
  - core_courseformat\output\section_renderer::get_nav_links
35
  - core_courseformat\output\section_renderer::stealth_section_header
36
  - core_courseformat\output\section_renderer::stealth_section_footer
37
  - core_courseformat\output\section_renderer::section_nav_selection
38
  - core_courseformat\output\section_renderer::print_single_section_page
39
  - core_courseformat\output\section_renderer::print_multiple_section_page
40
  - core_courseformat\output\section_renderer::change_number_sections
41
  - core_courseformat\output\section_renderer::format_summary_text
42
  - core_course_renderer::course_section_cm_edit_actions
43
  - core_course_renderer::is_cm_conditionally_hidden
44
  - core_course_renderer::course_section_cm_name
45
  - core_course_renderer::course_section_cm_classes
46
  - core_course_renderer::course_section_cm_name_title
47
  - core_course_renderer::course_section_cm_text
48
  - core_course_renderer::availability_info
49
  - core_course_renderer::course_section_cm_availability
50
  - core_course_renderer::course_section_cm_list_item
51
  - core_course_renderer::course_section_cm
52
  - core_course_renderer::course_section_cm_list
53
  - core_course\output\course_module_name
54
  - course/format/renderer.php
55
  - course/format/topics/renderer.php
56
  - course/format/weeks/renderer.php
57
* New core_courseformat\sectiondelegate class. The class can be extended by plugins to take control of a course section.
58
* The methods core_courseformat\base::set_section_number() and core_courseformat\base:: get_section_number() have been deprecated
59
and replaced by core_courseformat\base::set_sectionnum() and core_courseformat\base::get_sectionnum(). The new methods use the null
60
value when all the sections must be displayed (instead of 0). That way, section 0 (General), can be displayed on a single page too.
61
* The course format setting has been updated to use a choice dropdown form element instead of a select element. Third-party
62
plugins can now include the string 'plugin_description' to provide a description of the course format.
63
* A new item, initsections, has been added to the testing_data_generator::create_course() function, to let the generator rename
64
the sections to "Section X".
65
* The core_courseformat\base::get_format_string last parameter has been removed because it was erroneous.
66
* New core_courseformat\base::add_section_preference_ids() to add the section ids to course format preferences.
67
* New core_courseformat\base::remove_section_preference_ids() to remove the section ids out of course format preferences.
68
 
69
=== 4.3 ===
70
* New core_courseformat\output\activitybadge class that can be extended by any module to display content near the activity name.
71
The content of the afterlink feature has been moved to the end of the activity card so modules using it should check this new
72
feature which might fit better.
73
Some considerations about the activitybadge feature:
74
  - The badge content is always plain text (no HTML).
75
  - The badge style can be set (by default is initialized with badge-none, but it can be set by any module).
76
  - An optional URL to redirect the user when the badge is clicked.
77
  - An optional ID to add the element in case the module wants to add some JS to the badge events.
78
  - Optionally, any other extra HTML attributes to the badge element (for example, data attributes).
79
* Protected function `core_courseformat\output\local\content\section\availability::availability_info()` has been deprecated,
80
`core_courseformat\output\local\content\section\availability::get_availability_data()` should be used instead.
81
* New course format output classes:
82
  - core_courseformat\output\local\content\cm\groupmode output class to display the groupmode icon in the activity card.
83
 
84
=== 4.2 ===
85
* New core_courseformat\base::get_context() to get the course context directly from the format instance.
86
* New core_courseformat\base::delete_module() method. Now format plugins can extend the activity deletion logic
87
  by overriding this method.
88
* The reactive course editor now uses the standard fragment library to refresh an individual section or activity card
89
  in the course content. Instead of using adhoc YUI methods and webservice, the new fragment methods are:
90
    - core_courseformat_output_fragment_cmitem
91
    - core_courseformat_output_fragment_section
92
* New methods and outputs added for bulk editing (only available for formats compatible with reactive components):
93
    - Mutations for editing the bulk data: bulkEnable, bulkReset, cmSelect, cmUnselect, sectionSelect and sectionUnselect.
94
    - Output classes overridable by the plugins: content\bulkedittools, content\bulkedittoggler
95
    - Renderer method: core_courseformat\output\section_renderer::bulk_editing_button
96
    - New overridable checkboxes: content/cm/bulkselect.mustache and content/section/bulkselect.mustache
97
* Plugins can use the CSS class "bulk-hidden" to hide elements when the bulk editing is enabled.
98
* New core_courseformat\base::duplicate_section method to duplicate course sections and their modules within a course.
99
* The section renderer will now respect the new course view parameter 'expandsection'. If the course's view page
100
  is being called with this parameter set to a section number, this section will be shown expanded.
101
* core_courseformat\base::get_view_url() now by default returns a url for the *expanded* section. This can be
102
  changed by adding ['expanded' => false] to the options parameter of get_view_url().
103
* The newly introduced protected method core_courseformat\output\local\content\section::is_section_collapsed() now
104
  should be used by format plugins to determine if a section should be rendered collapsed or expanded at first.
105
  This method can also be overwritten by course formats, but should respect the new 'expandsection' parameter when
106
  doing so.
107
* New core_courseformat\base::get_editor_custom_strings() method to customize course editor strings.
108
  The returned string array is used to override section related strings in the frontend.
109
* New core_courseformat\base::get_format_string() to get strings that can be overridden by the format plugin.
110
  The method will check first the string in the format_PLUGINNAME.php lang file and, if not, it will return the
111
  core_courseformat string instead.
112
* New course format output classes:
113
  - core_courseformat\output\local\content\cm\visibility to display the activity availability.
114
 
115
=== 4.1 ===
116
* New \core_courseformat\stateupdates methods add_section_remove() and add_cm_remove() have been added to replace
117
  the deprecated methods add_section_delete() and add_cm_delete().
118
* The 4th param of the core_courseformat\output\local\content\cm\cmname construct is now deprecated.
119
  The page edition is now detected using the course_format\base:show_editor method as the rest of the
120
  core_courseformat outputs. It defaults to checking the capability 'moodle/course:manageactivities'. If different
121
  capabilities are needed to check, an array of capabilities can be passed as an optional parameter to the function.
122
 
123
=== 4.0 ===
124
* New core_courseformat\base::uses_course_index() to define whether the course format uses course index or not.
125
* New core_courseformat\base::supports_components() to specify if the format is compatible with reactive components.
126
* New core_courseformat\base::uses_indentation() to specify if the format is compatible with activity indentation.
127
* New core_courseformat\base::get_course_display() if the course uses COURSE_DISPLAY_SINGLEPAGE or COURSE_DISPLAY_MULTIPAGE layout.
128
 
129
=== 3.10 ===
130
* Added the missing callback supports_ajax() to format_social.
131
 
132
=== 3.9 ===
133
 
134
* The following functions, previously used (exclusively) by upgrade steps are not available anymore because of the upgrade cleanup performed for this version. See MDL-65809 for more info:
135
    - format_topics_upgrade_remove_numsections()
136
    - format_topics_upgrade_hide_extra_sections()
137
    - format_topics_upgrade_add_empty_sections()
138
    - format_weeks_upgrade_remove_numsections()
139
    - format_weeks_upgrade_hide_extra_sections()
140
    - format_weeks_upgrade_add_empty_sections()
141
* The non-ajax controls to add resources and activities are now rendered only when needed, such as when the user
142
  preference is set, or when the theme sets $THEME->enablecourseajaxtheme to false. Formats which directly access
143
  the '.section_add_menus' element or its children should be updated accordingly.
144
 
145
* section_header() now needs to include 'data-sectionid' => $section->section in the .section li to ensure correct section
146
  selection for the Activity Chooser.
147
 
148
=== 3.8 ===
149
 
150
* The following functions have been finally deprecated and can not be used anymore:
151
  * section_edit_controls()
152
 
153
=== 3.6 ===
154
* New method validate_format_options() cleans the values of the course/section format options before inserting them
155
  in the database. Course format options can now be set in tool_uploadcourse and validation of user-submitted data is important.
156
  Note that validate_format_options() is now always called when somebody creates or edits course or section and also
157
  during restore and course upload. Default implementation validates against the definition of the form elements for
158
  format options.
159
* The final deprecation of xxx_delete_course callback means that this function will no longer be called.
160
  Please use the observer for event \core\event\course_content_deleted instead.
161
 
162
=== 3.5 ===
163
* Course formats should overwrite get_config_for_external function to return the course format settings viewable by the
164
  current user.
165
  If the course format does not have any setting that could be considerated private (like a private/access key/token),
166
  is ok to return all the settigns via the get_format_options function.
167
 
168
=== 3.3 ===
169
* Javascript code for editing activities and sections was moved to an AMD module, course/rest.php is no longer
170
  responsible for editing actions, instead it is done in web services. Carefully test all editing actions during upgrade.
171
* The new method format_base::allow_stealth_module_visibility() can indicate whether course format supports "stealth"
172
  activities mode when they are available but not visible on course page. Course format that supports stealth mode
173
  must check $cm->is_visible_on_course_page() when displaying activities list on the course page instead of $cm->uservisible.
174
  For all other plugins except course formats the same property $cm->uservisible indicates if the activity contents
175
  is actually available to student.
176
* Option "Number of sections" (numsections) was removed from topics and weeks formats, instead the actual number of records
177
  in the course_sections table is treated as a number of sections (excluding section 0 that should always be present).
178
* Method create_course() will populate the new course with empty sections if $data->numsections is provided even if
179
  "numsections" is not an option defined by the course format.
180
* course/changenumsections.php can now be used to insert sections at any positions.
181
* The variable SECTIONLEFTSIDE was changed from '.left .section-handle img' to '.left .section-handle .icon' in
182
  course/format/topics/format.js and course/format/weeks/format.js due to the introduction of Font Awesome (see MDL-40759)
183
  which altered the HTML. Please check if your course format relies on this selector, and if so, update it.
184
 
185
=== 3.2 ===
186
* Callback delete_course is deprecated and should be replaced with observer for event \core\event\course_content_deleted
187
* Course formats can overwrite get_default_course_enddate function to set the default course end date for new courses.
188
  format_base::get_default_course_enddate uses the new "Course duration" site setting to calculate the default course end date
189
  from the default course start date.
190
* New method format_base::supports_news() which is used to determine whether an Announcements forum will be automatically created on
191
  course creation. For course format plugin developers, please override format_base::supports_news() to return true if you want the
192
  Announcements forum to be created upon course creation and remove the block names defined in format_base::get_default_blocks().
193
 
194
=== 3.1 ===
195
* Course format may use the inplace_editable template to allow quick editing of section names, see
196
  https://docs.moodle.org/dev/Inplace_editable and MDL-51802 for example implementation.
197
 
198
=== 3.0 ===
199
* Course formats should now use section_edit_control_items and use the returned array of controls items and their attributes to create a
200
  renderable menu or array of links.  Plugin calls to section_edit_controls will now include the section edit control in the returned array.
201
* The section name is now wrapped in a new span (.sectionname > span), process_sections method in format.js should be updated so .sectionname
202
  DOM node's wraps the section title in a span. You can look at how to implement the change in course/format/topics/format.js or MDL-48947.
203
* New method format_base::get_default_section_name retrieves the default section name for the given course format. The base
204
  implementation basically uses the implementation of format_base::get_section_name. The method can be overridden in
205
  format_base subclasses that use sections (i.e. format_topics, format_weeks). In relation to the changes made for the default
206
  section name, the default section name is now being shown when editing the section information.
207
 
208
=== 2.9 ===
209
* Course formats may support deleting sections, see MDL-10405 for more details.
210
  format_section_renderer_base::section_edit_controls() is now also called for
211
  stealth sections and it also returns "delete" control.
212
 
213
=== 2.8 ===
214
* The activity chooser now uses M.course.format.get_sectionwrapperclass()
215
  to determine the section selector, rather than a hard-coded `li.section`.
216
* Activity duplication in /course/modduplicate.php is deprecated and is now done in /course/mod.php.  Deprecated calls will be honored by
217
  redirecting to /course/mod.php for 3rd party plugin support.
218
* New method format_base::section_get_available_hook() allows plugins to override section availability.
219
 
220
=== 2.7 ===
221
* The ->testedbrowsers array no longer needs to be defined in supports_ajax().
222
* format_section_renderer_base::section_hidden has an new second optional argument $courseorid.
223
  If provided the section name is printed in the not available string when displaying the hidden section.
224
 
225
=== 2.6 ===
226
 
227
* core_course_renderer::course_section_cm_edit_actions has two new optional arguments and now uses and action_menu component.
228
* core_course_renderer::course_section_cm has been altered to call core_course_renderer::course_section_cm_edit_actions with the two new arguments
229
* An additional course renderer function has been created which allows you to
230
  specify the wrapper for a course module within a section (e.g. the <li>).  This can be
231
  found in core_course_renderer::course_section_cm_list_item().
232
 
233
=== 2.5 ===
234
 
235
* Functions responsible for output in course/lib.php are deprecated, the code is moved to
236
  appropriate renderers: print_section(), print_section_add_menus(), get_print_section_cm_text(),
237
  make_editing_buttons()
238
  See functions' phpdocs in lib/deprecatedlib.php
239
* Function get_print_section_cm_text() is deprecated, replaced with methods in cm_info
240
 
241
=== 2.4 ===
242
 
243
Course format API has been changed significantly. Instead of implementing callbacks course formats
244
may overwrite the class format_base. See format_legacy class for a template for upgrading course
245
format.
246
 
247
* Function settings_navigation::add_course_editing_links() is completely removed, course format
248
  functions callback_XXXX_request_key() are no longer used (where XXXX is the course format name)
249
* functions get_generic_section_name(), get_all_sections(), add_mod_to_section(), get_all_mods()
250
  are deprecated. See their phpdocs in lib/deprecatedlib.php on how to replace them
251
* Course formats may now have their settings.php file as the most of other plugin types
252
* Function format_section_renderer_base::is_section_current() is deprecated, overwrite/use
253
  function is_section_current in format class
254
 
255
=== 2.3 ===
256
 
257
* The new $course->coursedisplay option was introduced, users can now choose to display
258
  a section at a time if the course formats support it:
259
 - COURSE_DISPLAY_SINGLEPAGE indicates the teacher has chosen to display all sections on one page
260
 - COURSE_DISPLAY_MULTIPAGE indicates the teacher has chose to have seperate pages with each section.
261
 
262
* The parameter for 'currently active section' was standardised in core:
263
  - The course format is passed the currently live section through the $displaysection varaible to format.php
264
  - A 'section' paramter is the standardised way to pass around the current section in a course
265
  - Navigation no longer looks for custom parameters defined in callback_format_request_key