diff --git a/blocks/myoverview/classes/output/course_summary.php b/blocks/myoverview/classes/output/course_summary.php index a28dd6b2871..78c1b030a95 100644 --- a/blocks/myoverview/classes/output/course_summary.php +++ b/blocks/myoverview/classes/output/course_summary.php @@ -36,6 +36,18 @@ use templatable; */ class course_summary implements renderable, templatable { + /** @var array $courses List of courses the user is enrolled in. */ + protected $courses = []; + + /** + * The course_summary constructor. + * + * @param array $courses list of courses. + */ + public function __construct($courses) { + $this->courses = $courses; + } + /** * Export this data so it can be used as the context for a mustache template. * @@ -43,12 +55,11 @@ class course_summary implements renderable, templatable { * @return stdClass */ public function export_for_template(renderer_base $output) { - $courses = enrol_get_my_courses('*'); $data = []; - foreach ($courses as $courseid => $value) { + foreach ($this->courses as $courseid => $value) { $context = \context_course::instance($courseid); - $exporter = new course_summary_exporter($courses[$courseid], array('context' => $context)); + $exporter = new course_summary_exporter($this->courses[$courseid], array('context' => $context)); $data[] = $exporter->export($output); } return $data; diff --git a/blocks/myoverview/classes/output/courses_view.php b/blocks/myoverview/classes/output/courses_view.php index 541c117b777..ef978b5b6fb 100644 --- a/blocks/myoverview/classes/output/courses_view.php +++ b/blocks/myoverview/classes/output/courses_view.php @@ -37,6 +37,18 @@ class courses_view implements renderable, templatable { /** Quantity of courses per page. */ const COURSES_PER_PAGE = 6; + /** @var array $courses List of courses the user is enrolled in. */ + protected $courses = []; + + /** + * The courses_view constructor. + * + * @param array $courses list of courses. + */ + public function __construct($courses) { + $this->courses = $courses; + } + /** * Export this data so it can be used as the context for a mustache template. * @@ -44,12 +56,11 @@ class courses_view implements renderable, templatable { * @return stdClass */ public function export_for_template(renderer_base $output) { - $courses = enrol_get_my_courses('startdate, enddate'); $today = time(); // How many courses we have per status? $coursesbystatus = ['past' => 0, 'inprogress' => 0, 'future' => 0]; - foreach ($courses as $course) { + foreach ($this->courses as $course) { $startdate = $course->startdate; $enddate = $course->enddate; diff --git a/blocks/myoverview/classes/output/main.php b/blocks/myoverview/classes/output/main.php index 4bd940505a2..2dbc1b27f98 100644 --- a/blocks/myoverview/classes/output/main.php +++ b/blocks/myoverview/classes/output/main.php @@ -42,8 +42,11 @@ class main implements renderable, templatable { * @return stdClass */ public function export_for_template(renderer_base $output) { - $coursesummary = new course_summary(); - $coursesview = new courses_view(); + + $courses = enrol_get_my_courses('id, shortname, startdate, enddate, summary'); + + $coursesummary = new course_summary($courses); + $coursesview = new courses_view($courses); return [ 'courses' => $coursesummary->export_for_template($output),