public UpdateReady::submitForm(array &$form, FormStateInterface $form_state)
Form submission handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormInterface::submitForm
File
- core/modules/update/src/Form/UpdateReady.php, line 118
Class
- UpdateReady
- Configure update settings for this site.
Namespace
Drupal\update\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 | public function submitForm( array & $form , FormStateInterface $form_state ) { // Store maintenance_mode setting so we can restore it when done. $_SESSION [ 'maintenance_mode' ] = $this ->state->get( 'system.maintenance_mode' ); if ( $form_state ->getValue( 'maintenance_mode' ) == TRUE) { $this ->state->set( 'system.maintenance_mode' , TRUE); } if (! empty ( $_SESSION [ 'update_manager_update_projects' ])) { // Make sure the Updater registry is loaded. drupal_get_updaters(); $updates = array (); $directory = _update_manager_extract_directory(); $projects = $_SESSION [ 'update_manager_update_projects' ]; unset( $_SESSION [ 'update_manager_update_projects' ]); $project_real_location = NULL; foreach ( $projects as $project => $url ) { $project_location = $directory . '/' . $project ; $updater = Updater::factory( $project_location , $this ->root); $project_real_location = drupal_realpath( $project_location ); $updates [] = array ( 'project' => $project , 'updater_name' => get_class( $updater ), 'local_url' => $project_real_location , ); } // If the owner of the last directory we extracted is the same as the // owner of our configuration directory (e.g. sites/default) where we're // trying to install the code, there's no need to prompt for FTP/SSH // credentials. Instead, we instantiate a Drupal\Core\FileTransfer\Local // and invoke update_authorize_run_update() directly. if ( fileowner ( $project_real_location ) == fileowner ( $this ->sitePath)) { $this ->moduleHandler->loadInclude( 'update' , 'inc' , 'update.authorize' ); $filetransfer = new Local( $this ->root); $response = update_authorize_run_update( $filetransfer , $updates ); if ( $response instanceof Response) { $form_state ->setResponse( $response ); } } // Otherwise, go through the regular workflow to prompt for FTP/SSH // credentials and invoke update_authorize_run_update() indirectly with // whatever FileTransfer object authorize.php creates for us. else { // The page title must be passed here to ensure it is initially used // when authorize.php loads for the first time with the FTP/SSH // credentials form. system_authorized_init( 'update_authorize_run_update' , __DIR__ . '/../../update.authorize.inc' , array ( $updates ), $this ->t( 'Update manager' )); $form_state ->setRedirectUrl(system_authorized_get_url()); } } } |
Please login to continue.