function user_badges_user_add_badge in User Badges 7.4
Same name and namespace in other branches
- 5 user_badges.module \user_badges_user_add_badge()
- 6.2 user_badges.module \user_badges_user_add_badge()
- 6 user_badges.module \user_badges_user_add_badge()
- 7 user_badges.module \user_badges_user_add_badge()
- 7.2 user_badges.module \user_badges_user_add_badge()
- 7.3 user_badges.module \user_badges_user_add_badge()
Add a badge to user.
Parameters
int $uid: User ID.
int $bid: Badge ID.
int $type: Whether set as part of the role, or individually assigned ('user', 'role'). If it is string 'user' or 'role' is converted to int for compatibility.
Return value
int USER_BADGES_SAVE_ERROR, USER_BADGES_SAVE_SUCCESS or USER_BADGES_NOT_MODIFIED
5 calls to user_badges_user_add_badge()
- user_badges_add_badge_action in ./
user_badges.actions.inc - Implements a Drupal action.
- user_badges_add_blocked_badge in ./
user_badges.module - Ensures all users who are blocked have the blocked badge.
- user_badges_add_role_based_badge in ./
user_badges.module - Selects all users to remove role-based badges from.
- user_badges_change_form_submit in ./
user_badges.module - Process user_badges_change_form form submissions.
- user_badges_rules_action_add_badge_by_name in ./
user_badges.rules.inc - Base action implementation: user_badges.
File
- ./
user_badges.module, line 868 - Hooks and other stuff related to user badge.
Code
function user_badges_user_add_badge($uid, $bid, $type = 1, $weight = 0, $source = -1) {
// Integrate rules events.
if (module_exists('rules')) {
$variables = array(
'user' => $uid,
'badge_id' => $bid,
);
rules_invoke_event_by_args('user_badges_badge_given', $variables);
}
if ($type == 'user') {
$type = 1;
}
elseif ($type == 'role') {
$type = 2;
}
$ewrapper = entity_metadata_wrapper('user', $uid);
$exists = FALSE;
foreach ($ewrapper->user_badge_badges
->value() as $index => $user_badge) {
if ($user_badge->bid === $bid) {
$exists = TRUE;
break;
}
}
if (!$exists) {
$ewrapper->user_badge_badges[] = $bid;
try {
$ewrapper
->save();
$record = array(
'uid' => $uid,
'bid' => $bid,
'weight' => $weight,
'type' => $type,
);
drupal_write_record('user_badges_assignment', $record);
if ($source === -1) {
global $user;
if ($user->uid) {
$source = $user->uid;
}
else {
$source = 0;
}
}
module_invoke_all('user_assign_badge', $uid, $bid, $type, $weight, $source);
} catch (EntityMetadataWrapperException $e) {
return USER_BADGES_SAVE_ERROR;
}
return USER_BADGES_SAVE_SUCCESS;
}
else {
return USER_BADGES_NOT_MODIFIED;
}
}