From 2282039660736f5c1e80338fefe1a2084ad56eab Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Thu, 2 Dec 2010 06:24:50 +0000 Subject: [PATCH] search MDL-25153 fixed performance problem --- search/query.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/search/query.php b/search/query.php index 3480cfc5c59..db2898e5acb 100644 --- a/search/query.php +++ b/search/query.php @@ -339,13 +339,19 @@ $authorstr = get_string('author', 'search'); $searchables = search_collect_searchables(false, false); - + + //build a list of distinct user objects needed for results listing. + $hitusers = array(); + foreach ($hits as $listing) { + if ($listing->doctype == 'user' and !isset($hitusers[$listing->userid])) { + $hitusers[$listing->userid] = $DB->get_record('user', array('id' => $listing->userid)); + } + } + foreach ($hits as $listing) { - if ($listing->doctype == 'user'){ // A special handle for users - //TODO: this is a performance problem, fetch data elsewhere - $user = (object)array('id'=>$listing->userid); - $icon = $OUTPUT->user_picture($user); + if ($listing->doctype == 'user') { // A special handle for users + $icon = $OUTPUT->user_picture($hitusers[$listing->userid]); } else { $iconpath = $OUTPUT->pix_url('icon', $listing->doctype); $icon = "\"\"/"; -- 2.43.0