public SiteConfigureForm::buildForm(array $form, FormStateInterface $form_state)
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/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php, line 120
Class
- SiteConfigureForm
- Provides the site configuration form.
Namespace
Drupal\Core\Installer\Form
Code
public function buildForm(array $form, FormStateInterface $form_state) { $form['#title'] = $this->t('Configure site'); // Warn about settings.php permissions risk $settings_dir = $this->sitePath; $settings_file = $settings_dir . '/settings.php'; // Check that $_POST is empty so we only show this message when the form is // first displayed, not on the next page after it is submitted. (We do not // want to repeat it multiple times because it is a general warning that is // not related to the rest of the installation process; it would also be // especially out of place on the last page of the installer, where it would // distract from the message that the Drupal installation has completed // successfully.) $post_params = $this->getRequest()->request->all(); if (empty($post_params) && (!drupal_verify_install_file($this->root . '/' . $settings_file, FILE_EXIST | FILE_READABLE | FILE_NOT_WRITABLE) || !drupal_verify_install_file($this->root . '/' . $settings_dir, FILE_NOT_WRITABLE, 'dir'))) { drupal_set_message(t('All necessary changes to %dir and %file have been made, so you should remove write permissions to them now in order to avoid security risks. If you are unsure how to do so, consult the <a href=":handbook_url">online handbook</a>.', array('%dir' => $settings_dir, '%file' => $settings_file, ':handbook_url' => 'https://www.drupal.org/server-permissions')), 'warning'); } $form['#attached']['library'][] = 'system/drupal.system'; // Add JavaScript time zone detection. $form['#attached']['library'][] = 'core/drupal.timezone'; // We add these strings as settings because JavaScript translation does not // work during installation. $form['#attached']['drupalSettings']['copyFieldValue']['edit-site-mail'] = ['edit-account-mail']; $form['site_information'] = array( '#type' => 'fieldgroup', '#title' => $this->t('Site information'), ); $form['site_information']['site_name'] = array( '#type' => 'textfield', '#title' => $this->t('Site name'), '#required' => TRUE, '#weight' => -20, ); $form['site_information']['site_mail'] = array( '#type' => 'email', '#title' => $this->t('Site email address'), '#default_value' => ini_get('sendmail_from'), '#description' => $this->t("Automated emails, such as registration information, will be sent from this address. Use an address ending in your site's domain to help prevent these emails from being flagged as spam."), '#required' => TRUE, '#weight' => -15, ); $form['admin_account'] = array( '#type' => 'fieldgroup', '#title' => $this->t('Site maintenance account'), ); $form['admin_account']['account']['name'] = array( '#type' => 'textfield', '#title' => $this->t('Username'), '#maxlength' => USERNAME_MAX_LENGTH, '#description' => $this->t("Several special characters are allowed, including space, period (.), hyphen (-), apostrophe ('), underscore (_), and the @ sign."), '#required' => TRUE, '#attributes' => array('class' => array('username')), ); $form['admin_account']['account']['pass'] = array( '#type' => 'password_confirm', '#required' => TRUE, '#size' => 25, ); $form['admin_account']['account']['#tree'] = TRUE; $form['admin_account']['account']['mail'] = array( '#type' => 'email', '#title' => $this->t('Email address'), '#required' => TRUE, ); $form['regional_settings'] = array( '#type' => 'fieldgroup', '#title' => $this->t('Regional settings'), ); $countries = $this->countryManager->getList(); $form['regional_settings']['site_default_country'] = array( '#type' => 'select', '#title' => $this->t('Default country'), '#empty_value' => '', '#default_value' => $this->config('system.date')->get('country.default'), '#options' => $countries, '#description' => $this->t('Select the default country for the site.'), '#weight' => 0, ); $form['regional_settings']['date_default_timezone'] = array( '#type' => 'select', '#title' => $this->t('Default time zone'), // Use system timezone if set, but avoid throwing a warning in PHP >=5.4 '#default_value' => @date_default_timezone_get(), '#options' => system_time_zones(), '#description' => $this->t('By default, dates in this site will be displayed in the chosen time zone.'), '#weight' => 5, '#attributes' => array('class' => array('timezone-detect')), ); $form['update_notifications'] = array( '#type' => 'fieldgroup', '#title' => $this->t('Update notifications'), ); $form['update_notifications']['update_status_module'] = array( '#type' => 'checkboxes', '#title' => $this->t('Update notifications'), '#options' => array( 1 => $this->t('Check for updates automatically'), 2 => $this->t('Receive email notifications'), ), '#default_value' => array(1, 2), '#description' => $this->t('The system will notify you when updates and important security releases are available for installed components. Anonymous information about your site is sent to <a href=":drupal">Drupal.org</a>.', array(':drupal' => 'https://www.drupal.org')), '#weight' => 15, ); $form['update_notifications']['update_status_module'][2] = array( '#states' => array( 'visible' => array( 'input[name="update_status_module[1]"]' => array('checked' => TRUE), ), ), ); $form['actions'] = array('#type' => 'actions'); $form['actions']['submit'] = array( '#type' => 'submit', '#value' => $this->t('Save and continue'), '#weight' => 15, '#button_type' => 'primary', ); return $form; }
Please login to continue.