You are here

function user_badges_roles_form in User Badges 7.4

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

Form builder: roles form.

1 string reference to 'user_badges_roles_form'
user_badges_menu in ./user_badges.module
Implements hook_menu().

File

includes/user_badges.admin.inc, line 106
Contains administrative UI for User Badge.

Code

function user_badges_roles_form($form, &$form_state) {

  // No badges for the anonymous role.
  $roles = user_roles(TRUE);
  $role_badges = user_badges_get_roles(NULL, array(
    'returnbadges' => TRUE,
  ));
  $form['user_badges_role'] = array(
    '#type' => 'fieldset',
    '#title' => t('Role Badges'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#tree' => TRUE,
    '#weight' => 10,
  );

  // Determine which selector type the user wants to use to set badges
  // from their settings.
  // If the user wants to use the drop-down selector,
  // display that if there are records in the db.
  if (variable_get('user_badges_selector_type', 1) == 0) {

    // First, load all the available badges from the database
    // by calling the following helper function.
    $result = user_badges_load_badges();

    // Display the drop-down only if we get any records.
    if (count($result)) {
      foreach ($result as $badge) {
        $options[$badge->bid] = t('Badge') . ' ' . $badge->bid . ' ' . '-' . ' ' . check_plain($badge->name);
      }
      $form['user_badges_blocked_badge'] = array(
        '#type' => 'select',
        '#title' => t('Blocked user'),
        '#empty_option' => '- None -',
        '#options' => $options,
        '#default_value' => variable_get('user_badges_blocked_badge', '0'),
        '#weight' => 0,
      );
      $user_badge_roles = variable_get('user_badges_role', 0);
      foreach ($roles as $rid => $role) {
        $default = '';
        if (isset($user_badge_roles[$rid]) && $user_badge_roles[$rid]) {
          $default = $user_badge_roles[$rid];
        }
        $form['user_badges_role'][$rid] = array(
          '#type' => 'select',
          '#title' => check_plain($role),
          '#empty_option' => '- None -',
          '#options' => $options,
          '#default_value' => $default,
        );
      }
    }
  }
  else {
    $default = '';
    $user_badge = user_badge_load(variable_get('user_badges_blocked_badge', 0));
    if ($user_badge) {
      $default = check_plain($user_badge->name) . ' (' . $user_badge->bid . ')';
    }
    $form['user_badges_blocked_badge'] = array(
      '#type' => 'textfield',
      '#title' => t('Blocked user'),
      '#size' => 40,
      '#maxlength' => 255,
      '#autocomplete_path' => 'entityreference/autocomplete/single/user_badge_badges/user/user/',
      '#default_value' => $default,
      '#weight' => 0,
    );
    $user_badge_roles = variable_get('user_badges_role', 0);
    foreach ($roles as $rid => $role) {
      $default = '';
      if (isset($user_badge_roles[$rid]) && $user_badge_roles[$rid]) {
        $user_badge = user_badge_load($user_badge_roles[$rid]);
        if ($user_badge) {
          $default = check_plain($user_badge->name) . ' (' . $user_badge->bid . ')';
        }
      }
      $form['user_badges_role'][$rid] = array(
        '#type' => 'textfield',
        '#title' => check_plain($role),
        '#maxlength' => 255,
        '#autocomplete_path' => 'entityreference/autocomplete/single/user_badge_badges/user/user/',
        '#default_value' => $default,
      );
    }
  }
  $form['#submit'][] = 'user_badges_roles_form_add_badges_submit';
  return system_settings_form($form);
}