Newer
Older
Angie Byron
committed
<?php
/**
* @file
* Contains \Drupal\database_test\Form\DatabaseTestForm.
*/
namespace Drupal\database_test\Form;
Alex Pott
committed
use Drupal\Core\Form\FormBase;
Dries Buytaert
committed
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\Entity\User;
Alex Pott
committed
Angie Byron
committed
/**
Alex Pott
committed
* Form controller for database_test module.
Angie Byron
committed
*/
Alex Pott
committed
class DatabaseTestForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'database_test_theme_tablesort';
}
/**
* {@inheritdoc}
*/
Dries Buytaert
committed
public function buildForm(array $form, FormStateInterface $form_state) {
Alex Pott
committed
$header = array(
'username' => array('data' => t('Username'), 'field' => 'u.name'),
'status' => array('data' => t('Status'), 'field' => 'u.status'),
);
Alex Pott
committed
$query = db_select('users_field_data', 'u');
Alex Pott
committed
$query->condition('u.uid', 0, '<>');
Alex Pott
committed
$query->condition('u.default_langcode', 1);
Alex Pott
committed
$count_query = clone $query;
$count_query->addExpression('COUNT(u.uid)');
$query = $query
->extend('Drupal\Core\Database\Query\PagerSelectExtender')
->extend('Drupal\Core\Database\Query\TableSortExtender');
$query
->fields('u', array('uid'))
->limit(50)
->orderByHeader($header)
->setCountQuery($count_query);
$uids = $query
->execute()
->fetchCol();
$options = array();
foreach (User::loadMultiple($uids) as $account) {
Alex Pott
committed
$options[$account->id()] = array(
'title' => array('data' => array('#title' => $account->getUsername())),
'username' => $account->getUsername(),
Alex Pott
committed
'status' => $account->isActive() ? t('active') : t('blocked'),
);
}
$form['accounts'] = array(
'#type' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#empty' => t('No people available.'),
);
return $form;
}
Angie Byron
committed
/**
Alex Pott
committed
* {@inheritdoc}
Angie Byron
committed
*/
Dries Buytaert
committed
public function submitForm(array &$form, FormStateInterface $form_state) {