From 8b78e4cf49d4c8fbea35ff879c7b55560904a014 Mon Sep 17 00:00:00 2001 From: Neill Magill Date: Mon, 1 Apr 2019 11:39:06 +0100 Subject: [PATCH] MDL-65084 recent items: Handle deleted courses The method should not cause errors when a course with activities that the user has visited no longer exists. Ensuring that we only get records for courses still in the database will stop any course not found erros from get_fast_modinfo() --- blocks/recentlyaccesseditems/classes/helper.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/blocks/recentlyaccesseditems/classes/helper.php b/blocks/recentlyaccesseditems/classes/helper.php index b7d2b72af6f..d1ac05b74ba 100644 --- a/blocks/recentlyaccesseditems/classes/helper.php +++ b/blocks/recentlyaccesseditems/classes/helper.php @@ -53,11 +53,13 @@ class helper { return $recentitems; } - // Determine sort sql clause. - $sort = 'timeaccess DESC'; - $paramsql = array('userid' => $userid); - $records = $DB->get_records('block_recentlyaccesseditems', $paramsql, $sort); + $sql = "SELECT rai.* + FROM {block_recentlyaccesseditems} rai + JOIN {course} c ON c.id = rai.courseid + WHERE userid = :userid + ORDER BY rai.timeaccess DESC"; + $records = $DB->get_records_sql($sql, $paramsql); $order = 0; // Get array of items by course. Use $order index to keep sql sorted results.