function user_badges_change_form_submit in User Badges 7.4
Same name and namespace in other branches
- 6.2 user_badges.module \user_badges_change_form_submit()
- 6 user_badges.module \user_badges_change_form_submit()
- 7 user_badges.module \user_badges_change_form_submit()
- 7.2 user_badges.module \user_badges_change_form_submit()
- 7.3 user_badges.module \user_badges_change_form_submit()
Process user_badges_change_form form submissions.
Add the named badge. Remove the checked badges.
File
- ./
user_badges.module, line 803 - Hooks and other stuff related to user badge.
Code
function user_badges_change_form_submit($form, &$form_state) {
$uid = $form_state['values']['uid'];
// If the user used the multi drop-down to select badges,
// submit them accordingly.
if (variable_get('user_badges_selector_type', 1) == 0) {
foreach ($form_state['values']['add_drop_down'] as $bid) {
// We have to add this validation as we don't want to add the - None -
// case which might have been selected.
if ($bid > 0) {
user_badges_user_add_badge($uid, $bid, 'user');
}
}
}
else {
// Add badges for non-empty fields.
for ($i = 1; $i <= 5; $i++) {
if (!empty($form_state['values']['add'][$i])) {
user_badges_user_add_badge($uid, $form_state['values']['add'][$i], 'user');
}
}
}
// Remove any checked badges.
$badges_to_go = array();
if (isset($form_state['values']['remove'])) {
foreach ($form_state['values']['remove'] as $bid => $value) {
if (is_numeric($bid) && $value == 1) {
$badges_to_go[] = $bid;
}
}
if (count($badges_to_go)) {
foreach ($badges_to_go as $bid) {
user_badges_user_remove_badge($uid, $bid);
}
drupal_set_message(format_plural(count($badges_to_go), '1 badge removed.', '@count badges removed.'));
}
}
if (arg(2) == 'edit') {
// My account.
$form_state['redirect'] = "user/{$uid}";
}
else {
// Full admin UI.
$form_state['redirect'] = "user/{$uid}/badges";
}
}