
| Current Path : /var/www/html/ift/web/core/modules/system/tests/modules/database_test/src/Form/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/ift/web/core/modules/system/tests/modules/database_test/src/Form/DatabaseTestForm.php |
<?php
namespace Drupal\database_test\Form;
use Drupal\Core\Database\Database;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\Entity\User;
/**
* Form controller for database_test module.
*
* @internal
*/
class DatabaseTestForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'database_test_theme_tablesort';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$header = [
'username' => ['data' => t('Username'), 'field' => 'u.name'],
'status' => ['data' => t('Status'), 'field' => 'u.status'],
];
$query = Database::getConnection()->select('users_field_data', 'u');
$query->condition('u.uid', 0, '<>');
$query->condition('u.default_langcode', 1);
$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', ['uid'])
->limit(50)
->orderByHeader($header)
->setCountQuery($count_query);
$uids = $query
->execute()
->fetchCol();
$options = [];
foreach (User::loadMultiple($uids) as $account) {
$options[$account->id()] = [
'title' => ['data' => ['#title' => $account->getAccountName()]],
'username' => $account->getAccountName(),
'status' => $account->isActive() ? t('active') : t('blocked'),
];
}
$form['accounts'] = [
'#type' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#empty' => t('No people available.'),
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
}
}