You are here

public function UpdateSettingsForm::buildForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/update/src/UpdateSettingsForm.php \Drupal\update\UpdateSettingsForm::buildForm()
  2. 9 core/modules/update/src/UpdateSettingsForm.php \Drupal\update\UpdateSettingsForm::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

core/modules/update/src/UpdateSettingsForm.php, line 67

Class

UpdateSettingsForm
Configure update settings for this site.

Namespace

Drupal\update

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('update.settings');
  $form['update_check_frequency'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Check for updates'),
    '#default_value' => $config
      ->get('check.interval_days'),
    '#options' => [
      '1' => $this
        ->t('Daily'),
      '7' => $this
        ->t('Weekly'),
    ],
    '#description' => $this
      ->t('Select how frequently you want to automatically check for new releases of your currently installed modules and themes.'),
  ];
  $form['update_check_disabled'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Check for updates of uninstalled modules and themes'),
    '#default_value' => $config
      ->get('check.disabled_extensions'),
  ];
  $notification_emails = $config
    ->get('notification.emails');
  $form['update_notify_emails'] = [
    '#type' => 'textarea',
    '#title' => $this
      ->t('Email addresses to notify when updates are available'),
    '#rows' => 4,
    '#default_value' => implode("\n", $notification_emails),
    '#description' => $this
      ->t('Whenever your site checks for available updates and finds new releases, it can notify a list of users via email. Put each address on a separate line. If blank, no emails will be sent.'),
  ];
  $form['update_notification_threshold'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Email notification threshold'),
    '#default_value' => $config
      ->get('notification.threshold'),
    '#options' => [
      'all' => $this
        ->t('All newer versions'),
      'security' => $this
        ->t('Only security updates'),
    ],
    '#description' => $this
      ->t('You can choose to send email only if a security update is available, or to be notified about all newer versions. If there are updates available of Drupal core or any of your installed modules and themes, your site will always print a message on the <a href=":status_report">status report</a> page. If there is a security update, an error message will be printed on administration pages for users with <a href=":update_permissions">permission to view update notifications</a>.', [
      ':status_report' => Url::fromRoute('system.status')
        ->toString(),
      ':update_permissions' => Url::fromRoute('user.admin_permissions', [], [
        'fragment' => 'module-update',
      ])
        ->toString(),
    ]),
  ];
  return parent::buildForm($form, $form_state);
}