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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | 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.