1 update.admin.inc | update_settings($form, &$form_state) |
Form constructor for the update settings form.
See also
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;
}