public function DefaultForm::buildForm in Notify 2.0.x
Same name and namespace in other branches
- 8 src/Form/DefaultForm.php \Drupal\notify\Form\DefaultForm::buildForm()
- 1.0.x src/Form/DefaultForm.php \Drupal\notify\Form\DefaultForm::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/ DefaultForm.php, line 80
Class
- DefaultForm
- 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');
$set = 'defaults';
$form['notify_preamble'] = [
'#markup' => $this
->t('<p>The settings on this page will only apply to <em>new</em> users. Changing these defaults will not affect existing users.<p>'),
];
$form['notify_defaults'] = [
'#type' => 'details',
'#title' => $this
->t('Notification default for new users'),
'#open' => TRUE,
'#description' => $this
->t('The default master switch for new users (check for enabled, uncheck for disabled).'),
];
$form['notify_defaults']['notify_reg_default'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Receive email notifications'),
'#return_value' => 1,
'#default_value' => $config
->get('notify_reg_default'),
];
$form['notify_defs'] = [
'#type' => 'details',
'#title' => $this
->t('Initial settings'),
'#open' => TRUE,
'#description' => $this
->t('These are the initial settings that will apply to new users registering, and to users that are enrolled in notifications with batch subscription.'),
];
$form['notify_defs']['node'] = [
'#type' => 'radios',
'#title' => $this
->t('Notify new content'),
'#default_value' => $config
->get('notify_def_node'),
'#options' => [
$this
->t('Disabled'),
$this
->t('Enabled'),
],
'#description' => $this
->t('Include new posts in the notification mail.'),
];
$form['notify_defs']['comment'] = [
'#type' => 'radios',
'#access' => $this->moduleHandler
->moduleExists('comment'),
'#title' => $this
->t('Notify new comments'),
'#default_value' => $config
->get('notify_def_comment'),
'#options' => [
$this
->t('Disabled'),
$this
->t('Enabled'),
],
'#description' => $this
->t('Include new comments in the notification mail.'),
];
$set = 'ntype';
$form[$set] = [
'#type' => 'details',
'#title' => $this
->t('Notification subscriptions by node type'),
'#open' => TRUE,
'#description' => $this
->t('Tick the node types to make available for subscription. New users are automatically subscribed, but can unsubscribe in their user profile.'),
];
$nodetypes = [];
$node_types = \Drupal::entityTypeManager()
->getStorage('node_type')
->loadMultiple();
foreach ($node_types as $type => $object) {
$nodetypes[$type] = $object
->label();
}
if (NULL !== $config
->get('notify_nodetypes')) {
$def_nodetypes = $config
->get('notify_nodetypes');
}
else {
$def_nodetypes = [];
}
$form[$set]['notify_nodetypes'] = [
'#type' => 'checkboxes',
'#title' => 'Node types',
'#options' => $nodetypes,
'#default_value' => $def_nodetypes,
];
return parent::buildForm($form, $form_state);
}