1.20.x installer.authorize.inc installer_authorize_run_update($filetransfer, $projects)

Updates existing projects when invoked by authorize.php.

Callback for system_authorized_init() in installer_manager_update_ready_form_submit().

Parameters

$filetransfer: The FileTransfer object created by authorize.php for use during this operation.

$projects: A nested array of projects to install into the live webroot, keyed by project name. Each subarray contains the following keys:

  • project: The canonical project short name.
  • updater_name: The name of the Updater class to use for this project.
  • local_url: The locally installed location of new code to update with.

File

modules/installer/installer.authorize.inc, line 29
Callbacks and related functions invoked by authorize.php to update projects.

Code

function installer_authorize_run_update($filetransfer, $projects) {
  $operations = array();
  foreach ($projects as $project => $project_info) {
    if ($project_info['project'] == 'backdrop') {
      $updater_name = 'CoreUpdater';
    }
    else {
      $updater_name = $project_info['updater_name'];
    }

    $operations[] = array(
      'installer_authorize_batch_copy_project',
      array(
        $project_info['project'],
        $updater_name,
        $project_info['local_url'],
        $filetransfer,
      ),
    );
  }

  $batch = array(
    'title' => t('Installing updates'),
    'init_message' => t('Preparing to update your site'),
    'operations' => $operations,
    'finished' => 'installer_authorize_update_batch_finished',
    'file' => backdrop_get_path('module', 'installer') . '/installer.authorize.inc',
  );

  batch_set($batch);
  // Invoke the batch via authorize.php.
  system_authorized_batch_process();
}