3 namespace Drupal\database_test\Form;
5 use Drupal\Core\Form\FormBase;
6 use Drupal\Core\Form\FormStateInterface;
7 use Drupal\user\Entity\User;
10 * Form controller for database_test module.
12 class DatabaseTestForm extends FormBase {
17 public function getFormId() {
18 return 'database_test_theme_tablesort';
24 public function buildForm(array $form, FormStateInterface $form_state) {
26 'username' => ['data' => t('Username'), 'field' => 'u.name'],
27 'status' => ['data' => t('Status'), 'field' => 'u.status'],
30 $query = db_select('users_field_data', 'u');
31 $query->condition('u.uid', 0, '<>');
32 $query->condition('u.default_langcode', 1);
34 $count_query = clone $query;
35 $count_query->addExpression('COUNT(u.uid)');
38 ->extend('Drupal\Core\Database\Query\PagerSelectExtender')
39 ->extend('Drupal\Core\Database\Query\TableSortExtender');
41 ->fields('u', ['uid'])
43 ->orderByHeader($header)
44 ->setCountQuery($count_query);
51 foreach (User::loadMultiple($uids) as $account) {
52 $options[$account->id()] = [
53 'title' => ['data' => ['#title' => $account->getUsername()]],
54 'username' => $account->getUsername(),
55 'status' => $account->isActive() ? t('active') : t('blocked'),
60 '#type' => 'tableselect',
62 '#options' => $options,
63 '#empty' => t('No people available.'),
72 public function submitForm(array &$form, FormStateInterface $form_state) {