function user_badges_user_load in User Badges 7
Same name and namespace in other branches
- 7.2 user_badges.module \user_badges_user_load()
- 7.3 user_badges.module \user_badges_user_load()
Implements hook_user_load().
Gets all badges for the user and the limited badges.
File
- ./
user_badges.module, line 241 - @brief User Badges module file
Code
function user_badges_user_load($users) {
static $badges = array();
foreach ($users as $uid => $account) {
// Only handle authenticated users.
if ($uid > 0) {
// Have we loaded this user before?
if (isset($badges[$uid])) {
$users[$uid]->badges = $badges[$uid];
}
// Get all user badges for this user, regardless of
// whether we filter the ones we show.
// @TODO: Is this the right function to use? Certainly nolimit is wrong.
// @TODO: This also doesn't get role badges.
$badges_all = user_badges_get_badges($uid, array(
'nolimit' => TRUE,
));
$users[$uid]->badges_all = $badges_all;
$users[$uid]->badges_count = count($badges_all);
$badges[$uid] = array();
// Display the badge if there's no limit
// or if the badge is unhideable
// or if we are within our limit.
if ($limit = variable_get('user_badges_showone', 0)) {
// Loop through all potential badges and get the ones we can show.
foreach ($badges_all as $bid => $badge) {
$badge->class = "badge badge-{$bid} " . drupal_html_class($badge->name);
if ($limit > 0 || $badge->unhideable == 1) {
$badges[$uid][$bid] = $badge;
// Count down our limit, unless the badge doesn't count towards it.
if (!$badge->doesnotcounttolimit) {
$limit--;
}
}
}
$users[$uid]->badges = $badges[$uid];
}
else {
$users[$uid]->badges = $badges_all;
}
}
}
}