You are here

function user_badges_userweight_form in User Badges 7.4

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

Form for users to weight their own badges.

1 string reference to 'user_badges_userweight_form'
user_badges_userweight_page in ./user_badges.module
Define the page on user/uid/badges.

File

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

Code

function user_badges_userweight_form($form, $form_state, $account) {
  $allbadges = array();
  $query = db_select('user_badges_assignment', 'uba');
  $results = $query
    ->fields('uba', array(
    'bid',
    'weight',
  ))
    ->condition('uba.uid', $account->uid, '=')
    ->orderBy('uba.weight', 'ASC')
    ->execute();
  while ($record = $results
    ->fetchAssoc()) {
    $badge = new stdClass();
    $badge->bid = $record['bid'];
    $badge->name = user_badge_load($record['bid'])->name;
    $badge->weight = $record['weight'];
    $allbadges[] = $badge;
  }

  // Header row for the badge reweighting list.
  $form['header'] = array(
    '#type' => 'value',
    '#value' => array(
      array(
        'data' => t('Name'),
      ),
      array(
        'data' => t('View'),
      ),
      array(
        'data' => t('Weight'),
      ),
    ),
  );

  // At this moment we don't have fixed weight functionality.
  // Build a table listing the appropriate badges.
  $vars = array(
    'account' => $account,
  );
  foreach ($allbadges as $user_badge) {
    $form['name'][$user_badge->bid] = array(
      '#markup' => check_plain($user_badge->name),
    );
    $form['view'][$user_badge->bid] = array(
      '#markup' => l(t('View'), 'user-badge/' . $user_badge->bid),
    );
    $form['weight'][$user_badge->bid] = array(
      '#type' => 'weight',
      '#default_value' => $user_badge->weight,
      '#delta' => '5',
      '#tree' => TRUE,
      '#attributes' => array(
        'class' => array(
          'user_badges_userweight_element',
        ),
      ),
    );
  }
  $form['uid'] = array(
    '#type' => 'value',
    '#value' => $account->uid,
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save configuration'),
  );
  return $form;
}