public function DefaultForm::buildForm in Notify 1.0.x
Same name and namespace in other branches
- 8 src/Form/DefaultForm.php \Drupal\notify\Form\DefaultForm::buildForm()
- 2.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 78
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_defaults'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Notification default for new users'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#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 e-mail notifications'),
'#return_value' => 1,
'#default_value' => $config
->get('notify_reg_default'),
];
$form['notify_defs'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Initial settings'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#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.'),
];
$form['notify_defs']['teasers'] = [
'#type' => 'radios',
'#title' => $this
->t('How much to include?'),
'#default_value' => $config
->get('notify_def_teasers'),
'#options' => [
$this
->t('Title only'),
$this
->t('Title + Teaser/Excerpt'),
$this
->t('Title + Body'),
$this
->t('Title + Body + Fields'),
],
'#description' => $this
->t('Select the amount of each item to include in the notification e-mail.'),
];
$set = 'ntype';
$form[$set] = [
'#type' => 'fieldset',
'#title' => $this
->t('Notification by node type'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#description' => $this
->t('Having nothing checked defaults to sending notifications about all node types.'),
];
$nodetypes = [];
foreach (NodeType::loadMultiple() 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);
}