1 update.admin.inc update_settings($form, &$form_state)

Form constructor for the update settings form.

See also

update_settings_validate()

update_settings_submit()

Related topics

File

core/modules/update/update.admin.inc, line 14
Admin page callbacks for the Update Manager module.

Code

function update_settings($form, &$form_state) {
  $config = config('update.settings');

  $form['check'] = array(
    '#type' => 'fieldset',
    '#title' => t('Check for available updates'),
    '#description' => t('This website will check for new releases of Backdrop core, as well as contributed modules, themes, and layouts. If there are updates available, a message will appear on the <a href="@status_report">status report</a> page. An error message will appear if there is a security update available.', 
    array('@status_report' => url('admin/reports/status'))),
  );
  $form['check']['update_check_frequency'] = array(
    '#type' => 'radios',
    '#title' => t('How frequently should this website check for updates?'),
    '#default_value' => $config->get('update_interval_days'),
    '#options' => array(
      '1' => t('Check daily'),
      '7' => t('Check weekly'),
      '0' => t('Do not check automatically'),
    ),
  );
  $form['check']['update_check_disabled'] = array(
    '#type' => 'checkbox',
    '#title' => t('Also check for updates of disabled modules, themes, and layouts'),
    '#default_value' => $config->get('update_disabled_extensions'),
  );

  $form['email'] = array(
    '#type' => 'fieldset',
    '#title' => t('Update Notifications'),
    '#description' => t('This website can send notifications via email when updates are available.'),
    '#states' => array(
      'visible' => array(
        'input[name=update_check_frequency]' => array('!value' => 0),
      ),
    ),
  );
  $form['email']['update_notification_threshold'] = array(
    '#type' => 'radios',
    '#title' => t('When should this website send email notifications?'),
    '#default_value' => $config->get('update_threshold'),
    '#options' => array(
      'all' => t('When any update is available'),
      'security' => t('Only if a security update is available'),
      'none' => t('Do not send email notifications'),
    ),
  );
  $notify_emails = $config->get('update_emails');
  if (empty($notify_emails)) {
    $notify_emails = array();
  }
  $form['email']['update_notify_emails'] = array(
    '#type' => 'textarea',
    '#title' => t('Email addresses to notify when updates are available'),
    '#rows' => 4,
    '#default_value' => implode("\n", $notify_emails),
    '#description' => t('Put each email address on a separate line. If blank, no emails will be sent.'),
    '#states' => array(
      'visible' => array(
        'input[name=update_notification_threshold]' => array('!value' => 'none'),
      ),
    ),
  );

  if (module_exists('installer')) {
    $docs = l('File permissions and ownership', 'https://backdropcms.org/file-permissions-and-ownership');
    $form['self_update'] = array(
      '#type' => 'fieldset',
      '#title' => t('Self-updates'),
      '#description' => t('This website has the ability to update itself, but the file system permissions must be set properly. For more details, see !link.', 
      array('!link' => $docs)),
    );
    $core_update = config_get('installer.settings', 'core_update');
    $form['self_update']['core_update'] = array(
      '#type' => 'checkbox',
      '#title' => t('Manual self-update'),
      '#default_value' => $core_update,
      '#description' => t('When updating manually, allow this website to delete the old version of core, and then replace it with the new version.'),
    );
    $form['self_update']['automatic_update'] = array(
      '#type' => 'checkbox',
      '#title' => t('Automatic self-update (coming soon!)'),
      '#description' => t('When updates are available, allow this website to <strong>automatically</strong> delete the old version of core, and then replace it with the new version.'),
      '#default_value' => FALSE, // @todo update when #414 goes in
      '#disabled' => TRUE, // @todo update when #414 goes in
      '#states' => array(
        'visible' => array(
          'input[name=update_check_frequency]' => array('!value' => 0),
        ),
      ),
    );
  }

  $form['actions']['#type'] = 'actions';
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save configuration')
  );

  return $form;
}