function _update_manager_check_backends

Same name in other branches
  1. 9 core/modules/update/update.manager.inc \_update_manager_check_backends()
  2. 8.9.x core/modules/update/update.manager.inc \_update_manager_check_backends()
  3. 10 core/modules/update/update.manager.inc \_update_manager_check_backends()
  4. 11.x core/modules/update/update.manager.inc \_update_manager_check_backends()

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

3 calls to _update_manager_check_backends()
update_manager_install_form in modules/update/update.manager.inc
Form constructor for the install form of the Update Manager module.
update_manager_update_form in modules/update/update.manager.inc
Form constructor for the update form of the Update Manager module.
update_manager_update_ready_form in modules/update/update.manager.inc
Form constructor for the update ready form.

File

modules/update/update.manager.inc, line 555

Code

function _update_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 (update_manager_local_transfers_allowed()) {
        return TRUE;
    }
    // Otherwise, show the available backends.
    $form['available_backends'] = array(
        '#prefix' => '<p>',
        '#suffix' => '</p>',
    );
    $available_backends = drupal_get_filetransfer_info();
    if (empty($available_backends)) {
        if ($operation == 'update') {
            $form['available_backends']['#markup'] = t('Your server does not support updating modules and themes from this interface. Instead, update modules and themes by uploading the new versions directly to the server, as described in the <a href="@handbook_url">handbook</a>.', array(
                '@handbook_url' => 'http://drupal.org/getting-started/install-contrib',
            ));
        }
        else {
            $form['available_backends']['#markup'] = t('Your server does not support installing modules and themes from this interface. Instead, install modules and themes by uploading them directly to the server, as described in the <a href="@handbook_url">handbook</a>.', array(
                '@handbook_url' => 'http://drupal.org/getting-started/install-contrib',
            ));
        }
        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 and themes requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other update methods.', 'Updating modules and themes 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' => 'http://drupal.org/getting-started/install-contrib',
        ));
    }
    else {
        $form['available_backends']['#markup'] = format_plural(count($available_backends), 'Installing modules and themes requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other installation methods.', 'Installing modules and themes 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' => 'http://drupal.org/getting-started/install-contrib',
        ));
    }
    return TRUE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.