You are here

function pm_block_user_list in Privatemsg 7.2

Same name and namespace in other branches
  1. 6.2 pm_block_user/pm_block_user.pages.inc \pm_block_user_list()
  2. 7 pm_block_user/pm_block_user.pages.inc \pm_block_user_list()

Formbuilder function to build a simple form to block users.

1 string reference to 'pm_block_user_list'
pm_block_user_menu in pm_block_user/pm_block_user.module
Implements hook_menu().

File

pm_block_user/pm_block_user.pages.inc, line 81
User menu callbacks for pm_block_user.module.

Code

function pm_block_user_list() {
  global $user;
  $form['new'] = array(
    '#type' => 'fieldset',
    '#title' => t('Block a user'),
  );
  $form['new']['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Username'),
    '#autocomplete_path' => 'messages/user/autocomplete',
    '#description' => t('Separate multiple names with commas.'),
    '#required' => TRUE,
  );
  $form['new']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Block user'),
    '#validate' => array(
      'pm_block_user_block_validate',
    ),
    '#submit' => array(
      'pm_block_user_block_submit',
    ),
  );
  $header = array(
    array(
      'data' => t('Username'),
      'field' => 'u.name',
      'sort' => 'asc',
    ),
    array(
      'data' => t('Operations'),
    ),
  );
  $select = db_select('pm_block_user', 'pmb')
    ->extend('PagerDefault')
    ->extend('TableSort')
    ->fields('pmb', array(
    'author',
  ))
    ->condition('pmb.recipient', $user->uid)
    ->limit(20)
    ->orderByHeader($header);

  // Only show existing users, therefore join users.
  $select
    ->innerJoin('users', 'u', 'u.uid = pmb.author');
  $rows = array();
  foreach ($select
    ->execute() as $row) {
    $rows[] = array(
      theme('username', array(
        'account' => user_load($row->author),
      )),
      l(t('unblock'), 'messages/block/' . $row->author, array(
        'query' => drupal_get_destination(),
      )),
    );
  }
  $form['#header'] = $header;
  $form['#rows'] = $rows;
  return $form;
}