Permalink
Browse files

search MDL-25153 fixed performance problem

  • Loading branch information...
1 parent 57bedae commit 2282039660736f5c1e80338fefe1a2084ad56eab @nebgor nebgor committed Dec 2, 2010
Showing with 11 additions and 5 deletions.
  1. +11 −5 search/query.php
View
@@ -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 = "<img align=\"top\" src=\"".$iconpath."\" class=\"activityicon\" alt=\"\"/>";

0 comments on commit 2282039

Please sign in to comment.