You are here

function user_badges_get_badges in User Badges 7.4

Same name and namespace in other branches
  1. 5 user_badges.module \user_badges_get_badges()
  2. 6.2 user_badges.module \user_badges_get_badges()
  3. 6 user_badges.module \user_badges_get_badges()
  4. 7 user_badges.module \user_badges_get_badges()
  5. 7.2 user_badges.module \user_badges_get_badges()
  6. 7.3 user_badges.module \user_badges_get_badges()

Return array of user badges.

Parameters

int $uid: if $uid is a user id, returns badges for that user. if $uid is 'all', returns all badges. if $uid is 'select', returns badges for form_select options.

array $options: array of options. Actually not used. Just for compatibility.

Return value

array Array of badges in desired format.

8 calls to user_badges_get_badges()
user_badges_add_badge_action in ./user_badges.actions.inc
Implements a Drupal action.
user_badges_add_badge_action_form in ./user_badges.actions.inc
Add badge action form.
user_badges_change_form in ./user_badges.module
Form to change badges of a user.
user_badges_remove_badge_action in ./user_badges.actions.inc
Implements a Drupal action.
user_badges_remove_badge_action_form in ./user_badges.actions.inc
Remove badge action form.

... See full list

File

./user_badges.module, line 990
Hooks and other stuff related to user badge.

Code

function user_badges_get_badges($uid, $options = array()) {
  if ($uid == 'all') {
    $efq = new EntityFieldQuery();
    $results = $efq
      ->entityCondition('entity_type', 'user_badge')
      ->execute();
    $bids = !empty($results['user_badge']) ? array_keys($results['user_badge']) : array();
    $user_badges = user_badge_load_multiple($bids);
    return $user_badges;
  }
  elseif ($uid == 'select') {
    $efq = new EntityFieldQuery();
    $results = $efq
      ->entityCondition('entity_type', 'user_badge')
      ->execute();
    $bids = !empty($results['user_badge']) ? array_keys($results['user_badge']) : array();
    $user_badges = user_badge_load_multiple($bids);
    $options = array();
    foreach ($user_badges as $key => $user_badge) {
      $options[$key] = check_plain($user_badge->name);
    }
    return $options;
  }
  else {
    $ewrapper = entity_metadata_wrapper('user', $uid);
    $user_badges = array();
    foreach ($ewrapper->user_badge_badges
      ->value() as $index => $user_badge) {
      if ($user_badge) {
        $bid = $user_badge->bid;
        $query = db_select('user_badges_assignment', 'uba');
        $weight = $query
          ->fields('uba', array(
          'weight',
        ))
          ->condition('uba.bid', $bid)
          ->condition('uba.uid', $uid)
          ->execute()
          ->fetchField(0);
        $user_badge->weight = $weight;
        $user_badges[$bid] = $user_badge;
      }
    }
    return $user_badges;
  }
}