1 installer.manager.inc _installer_manager_check_backends(&$form, $operation)

Checks for file transfer backends and prepares a form fragment about them.

Parameters

array $form: Reference to the form array we're building.

string $operation: The update manager operation we're in the middle of. Can be either 'update' or 'install'. Use to provide operation-specific interface text.

Return value

TRUE if the update manager should continue to the next step in the: workflow, or FALSE if we've hit a fatal configuration and must halt the workflow.

Related topics

File

core/modules/installer/installer.manager.inc, line 606
Administrative screens and processing functions of the Installer module.

Code

function _installer_manager_check_backends(&$form, $operation) {
  // If file transfers will be performed locally, we do not need to display any
  // warnings or notices to the user and should automatically continue the
  // workflow, since we won't be using a FileTransfer backend that requires
  // user input or a specific server configuration.
  if (installer_manager_local_transfers_allowed()) {
    return TRUE;
  }

  // Otherwise, show the available backends.
  $form['available_backends'] = array(
    '#prefix' => '<p>',
    '#suffix' => '</p>',
  );

  $available_backends = backdrop_get_filetransfer_info();
  if (empty($available_backends)) {
    if ($operation == 'update') {
      $form['available_backends']['#markup'] = t('Your server does not support updating modules, themes, and layouts from this interface. Instead, update modules, themes, and layouts by uploading the new versions directly to the server, as described in the <a href="@handbook_url">handbook</a>.', array('@handbook_url' => 'https://backdropcms.org/guide/modules'));
    }
    else {
      $form['available_backends']['#markup'] = t('Your server does not support installing modules, themes, and layouts from this interface. Instead, install modules, themes, and layouts by uploading them directly to the server, as described in the <a href="@handbook_url">handbook</a>.', array('@handbook_url' => 'https://backdropcms.org/guide/modules'));
    }
    return FALSE;
  }

  $backend_names = array();
  foreach ($available_backends as $backend) {
    $backend_names[] = $backend['title'];
  }
  if ($operation == 'update') {
    $form['available_backends']['#markup'] = format_plural(
    count($available_backends), 
    'Updating modules, themes, and layouts requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other update methods.', 
    'Updating modules, themes, and layouts requires access to your server via one of the following methods: <strong>@backends</strong>. See the <a href="@handbook_url">handbook</a> for other update methods.', 
    array(
      '@backends' => implode(', ', $backend_names),
      '@handbook_url' => 'https://backdropcms.org/guide/modules',
    ));
  }
  else {
    $form['available_backends']['#markup'] = format_plural(
    count($available_backends), 
    'Installing modules, themes, and layouts requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other installation methods.', 
    'Installing modules, themes, and layouts requires access to your server via one of the following methods: <strong>@backends</strong>. See the <a href="@handbook_url">handbook</a> for other installation methods.', 
    array(
      '@backends' => implode(', ', $backend_names),
      '@handbook_url' => 'https://backdropcms.org/guide/modules',
    ));
  }
  return TRUE;
}