public function UsersForm::buildForm in Notify 1.0.x
Same name and namespace in other branches
- 8 src/Form/UsersForm.php \Drupal\notify\Form\UsersForm::buildForm()
- 2.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 66
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) {
$config = $this
->config('notify.settings');
$form['#tree'] = TRUE;
$form['info'] = [
'#markup' => '<p>' . $this
->t('The following table shows all users that have notifications enabled:') . '</p>',
];
$form['users'] = [];
// Fetch users with notify enabled.
$q = \Drupal::database()
->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',
'teasers',
]);
$q
->condition('n.status', 1);
$q
->condition('v.status', 1);
$q
->orderBy('v.name');
$uresult = $q
->execute();
foreach ($uresult as $user) {
$form['users'][$user->uid] = [];
$form['users'][$user->uid]['name'] = [
'#markup' => $user->name,
];
$form['users'][$user->uid]['mail'] = [
'#markup' => $user->mail,
];
$form['users'][$user->uid]['node'] = [
'#type' => 'checkbox',
'#default_value' => $user->node,
];
$form['users'][$user->uid]['comment'] = [
'#type' => 'checkbox',
'#default_value' => $user->comment,
];
$form['users'][$user->uid]['teasers'] = [
'#type' => 'select',
'#default_value' => $user->teasers,
'#options' => [
$this
->t('Title only'),
$this
->t('Title + Teaser'),
$this
->t('Title + Body'),
$this
->t('Title + Body + Fields'),
],
];
$form['users'][$user->uid]['attempts'] = [
'#markup' => $user->attempts ? intval($user->attempts) : 0,
];
}
$form['info2'] = [
'#markup' => '<p>' . $this
->t('You may check/uncheck the checkboxes and the “How much“-selection to change the users\' subscription. Press “Save settings“ to save the settings.') . '</p>',
];
$form['bulk'] = [
'#title' => $this
->t('Bulk subscribe all users'),
'#type' => 'checkbox',
'#default_value' => FALSE,
'#description' => $this
->t('Subscribe all non-blocked users that do not already subscribe to notifications.'),
];
return parent::buildForm($form, $form_state);
}