From ce7edab8a8fe2cb26d24276c1ef40c0e088cfe13 Mon Sep 17 00:00:00 2001 From: Ferran Recio Date: Wed, 16 Mar 2022 16:18:43 +0100 Subject: [PATCH] MDL-74160 core_coureformat: fix legacy renderer methods To ensure legacy course formats works on Moodle 4.0 some method are reintroduced (but marked as deprecated) like start_section_list and end_section_list. Furthermore, the course_section_cm_availability returns a string again as expected. --- .../classes/output/section_renderer.php | 28 +++++++++++++++++++ course/renderer.php | 4 +-- course/upgrade.txt | 2 +- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/course/format/classes/output/section_renderer.php b/course/format/classes/output/section_renderer.php index dc7f51ca763..545cf3b3271 100644 --- a/course/format/classes/output/section_renderer.php +++ b/course/format/classes/output/section_renderer.php @@ -413,6 +413,34 @@ abstract class section_renderer extends core_course_renderer { return $o; } + /** + * Generate the starting container html for a list of sections. + * + * @deprecated since 4.0 MDL-72656 - use core_course output components instead. + * + * @return string HTML to output. + */ + protected function start_section_list() { + debugging('start_section_list() is deprecated. Please use ' . + 'core_courseformat\\output\\local\\content\\section to render individual sections or .' . + 'core_courseformat\\output\\local\\content to render the full course', DEBUG_DEVELOPER); + return html_writer::start_tag('ul', ['class' => 'sections']); + } + + /** + * Generate the closing container html for a list of sections. + * + * @deprecated since 4.0 MDL-72656 - use core_course output components instead.y + * + * @return string HTML to output. + */ + protected function end_section_list() { + debugging('end_section_list() is deprecated. Please use ' . + 'core_courseformat\\output\\local\\content\\section to render individual sections or .' . + 'core_courseformat\\output\\local\\content to render the full course', DEBUG_DEVELOPER); + return html_writer::end_tag('ul'); + } + /** * Old method to print section edit controls. Do not use it! * diff --git a/course/renderer.php b/course/renderer.php index e0db4c9534c..83424b498c3 100644 --- a/course/renderer.php +++ b/course/renderer.php @@ -823,10 +823,8 @@ class core_course_renderer extends plugin_renderer_base { $mod->get_section_info(), $mod, ); - $renderer = $format->get_renderer($this->page); - $data = $availability->export_for_template($renderer); - return $data->info ?? ''; + return $renderer->render($availability); } /** diff --git a/course/upgrade.txt b/course/upgrade.txt index cdf444d1cc3..28987183d02 100644 --- a/course/upgrade.txt +++ b/course/upgrade.txt @@ -56,9 +56,9 @@ renderer and course format renderer: - course_section_cm_name_title (replaced by core_courseformat\output\local\cm\title) - course_section_cm_text (integrated in core_courseformat\output\local\content\cm) - course_section_cm_availability (replaced by core_courseformat\output\local\content\cm\availability)) -* The following abstract methods are deleted: - start_section_list (integrated in core_courseformat\output\local\content) - end_section_list (integrated in core_courseformat\output\local\content) +* The following abstract methods are deleted: - page_title (moved to core_courseformat\output\local\content) * Course formats should have a renderer (until now it was only highly recommended but not mandatory). For backwards compatibility (to not break third-party plugins without it), legacy_format_renderer has been created and will be used when