diff --git a/user_reference/user_reference.module b/user_reference/user_reference.module index 381d155..81e2f82 100644 --- a/user_reference/user_reference.module +++ b/user_reference/user_reference.module @@ -295,27 +295,19 @@ function _user_reference_get_user_names($uids, $known_titles = array()) { // Save titles we receive. $titles += $known_titles; - // Collect nids to retrieve from database. - $uids_query = array(); - foreach ($uids as $uid) { - if (!isset($titles[$uid])) { - $uids_query[] = $uid; + $uids = array_combine($uids, $uids); + + // Collect uids to retrieve from database. + $new_uids = array_diff_key($uids, $titles); + if ($new_uids) { + $accounts = user_load_multiple($new_uids); + foreach ($accounts as $uid => $account) { + $titles[$uid] = entity_label('user', $account); } } - if ($uids_query) { - $query = db_select('users', 'u') - ->fields('u', array('uid', 'name')) - ->condition('u.uid', $uids); - $titles += $query->execute()->fetchAllKeyed(); - } - - // Build the results array. - $return = array(); - foreach ($uids as $uid) { - $return[$uid] = isset($titles[$uid]) ? $titles[$uid] : ''; - } - return $return; + // Return the results array. + return array_intersect_key($titles, $uids); } /**