public function UsersForm::buildForm in Notify 2.0.x
Same name and namespace in other branches
- 8 src/Form/UsersForm.php \Drupal\notify\Form\UsersForm::buildForm()
- 1.0.x src/Form/UsersForm.php \Drupal\notify\Form\UsersForm::buildForm()
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides ConfigFormBase::buildForm
File
- src/
Form/ UsersForm.php, line 67
Class
- UsersForm
- Defines a form that configures forms module settings.
Namespace
Drupal\notify\FormCode
public function buildForm(array $form, FormStateInterface $form_state, Request $request = NULL) {
$db_connection = \Drupal::database();
$form['#tree'] = TRUE;
$form['info'] = [
'#markup' => '<p>' . $this
->t('The following table shows all users that have notifications enabled:') . '</p>',
];
// Fetch users with notify enabled.
$q = $db_connection
->select('notify', 'n');
$q
->join('users', 'u', 'n.uid = u.uid');
$q
->join('users_field_data', 'v', 'n.uid = v.uid');
$q
->fields('v', [
'uid',
'name',
'mail',
'langcode',
]);
$q
->fields('n', [
'status',
'node',
'comment',
'attempts',
]);
$q
->condition('n.status', 1);
$q
->condition('v.status', 1);
$q
->orderBy('v.name');
$uresult = $q
->execute();
$form['settings'] = [
'#type' => 'fieldset',
'#title' => $this
->t('List of users'),
];
$form['settings']['table'] = [
'#tree' => TRUE,
'#type' => 'table',
'#header' => [
$this
->t('Username'),
$this
->t('E-mail Address'),
$this
->t('Content'),
$this
->t('Comment'),
$this
->t('Failed Attempts'),
],
'#id' => 'notify_settings_table',
];
foreach ($uresult as $user) {
$form['settings']['table'][$user->uid]['username'] = [
'#markup' => $user->name,
];
$form['settings']['table'][$user->uid]['mail'] = [
'#markup' => $user->mail,
];
$form['settings']['table'][$user->uid]['node'] = [
'#type' => 'checkbox',
'#default_value' => $user->node,
];
$form['settings']['table'][$user->uid]['comment'] = [
'#type' => 'checkbox',
'#default_value' => $user->comment,
];
$form['settings']['table'][$user->uid]['attempts'] = [
'#markup' => $user->attempts ? intval($user->attempts) : 0,
];
}
$form['info2'] = [
'#markup' => '<p>' . $this
->t("You may check/uncheck the checkboxes to change the users' subscription. Press “Save settings” to save the settings.") . '</p>',
];
$form['bulk'] = [
'#title' => $this
->t('Bulk-subscribe all unsubscribed users'),
'#type' => 'checkbox',
'#default_value' => FALSE,
'#description' => $this
->t('Apply “Default Settings” to <em>all</em> non-blocked users that do not already subscribe to notifications. Users that already has enabled “Receive email notifications” under their “Notify Settings” will not be affected.'),
];
return parent::buildForm($form, $form_state);
}