From 084cabeb9fe0e3e3a1c8c9a0537dad53e404003e Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Tue, 14 Feb 2017 13:11:16 +0800 Subject: [PATCH] MDL-57446 block_myoverview: add course summary renderable Part of MDL-55611 epic. --- blocks/myoverview/block_myoverview.php | 6 +- .../classes/output/course_summary.php | 56 +++++++++++++++++++ .../{ => classes/output}/renderer.php | 14 +++-- 3 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 blocks/myoverview/classes/output/course_summary.php rename blocks/myoverview/{ => classes/output}/renderer.php (79%) diff --git a/blocks/myoverview/block_myoverview.php b/blocks/myoverview/block_myoverview.php index 7ae666253f7..170aae1333a 100644 --- a/blocks/myoverview/block_myoverview.php +++ b/blocks/myoverview/block_myoverview.php @@ -50,8 +50,12 @@ class block_myoverview extends block_base { return $this->content; } + $renderable = new \block_myoverview\output\course_summary(); + + $renderer = $this->page->get_renderer('block_myoverview'); + $this->content = new stdClass(); - $this->content->text = $this->page->get_renderer('block_myoverview')->get_content(); + $this->content->text = $renderer->render($renderable); $this->content->footer = ''; return $this->content; diff --git a/blocks/myoverview/classes/output/course_summary.php b/blocks/myoverview/classes/output/course_summary.php new file mode 100644 index 00000000000..a28dd6b2871 --- /dev/null +++ b/blocks/myoverview/classes/output/course_summary.php @@ -0,0 +1,56 @@ +. + +/** + * Class containing data for my overview block. + * + * @package block_myoverview + * @copyright 2017 Simey Lameze + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace block_myoverview\output; +defined('MOODLE_INTERNAL') || die(); + +use core_course\external\course_summary_exporter; +use renderable; +use renderer_base; +use templatable; +/** + * Class containing data for my overview block. + * + * @copyright 2017 Simey Lameze + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class course_summary implements renderable, templatable { + + /** + * Export this data so it can be used as the context for a mustache template. + * + * @param \renderer_base $output + * @return stdClass + */ + public function export_for_template(renderer_base $output) { + $courses = enrol_get_my_courses('*'); + + $data = []; + foreach ($courses as $courseid => $value) { + $context = \context_course::instance($courseid); + $exporter = new course_summary_exporter($courses[$courseid], array('context' => $context)); + $data[] = $exporter->export($output); + } + return $data; + } +} diff --git a/blocks/myoverview/renderer.php b/blocks/myoverview/classes/output/renderer.php similarity index 79% rename from blocks/myoverview/renderer.php rename to blocks/myoverview/classes/output/renderer.php index 248bc54f02e..11909e41c49 100644 --- a/blocks/myoverview/renderer.php +++ b/blocks/myoverview/classes/output/renderer.php @@ -21,23 +21,27 @@ * @copyright 2016 Ryan Wyllie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace block_myoverview\output; defined('MOODLE_INTERNAL') || die; +use plugin_renderer_base; +use renderable; + /** - * myoverview block rendrer + * myoverview block renderer * * @package block_myoverview * @copyright 2016 Ryan Wyllie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class block_myoverview_renderer extends plugin_renderer_base { +class renderer extends plugin_renderer_base { /** * Return the main content for the block overview. * - * @return {string} HTML string + * @return string HTML string */ - public function get_content() { - return $this->render_from_template('block_myoverview/main', []); + public function render_course_summary(course_summary $coursesummary) { + return $this->render_from_template('block_myoverview/main', ['courses' => $coursesummary->export_for_template($this)]); } } -- 2.43.0