You are here

function backup_migrate_ui_manual_restore_form in Backup and Migrate 7.3

Same name and namespace in other branches
  1. 8.2 backup_migrate.module \backup_migrate_ui_manual_restore_form()
  2. 8.3 backup_migrate.module \backup_migrate_ui_manual_restore_form()
  3. 5.2 backup_migrate.module \backup_migrate_ui_manual_restore_form()
  4. 6.3 backup_migrate.module \backup_migrate_ui_manual_restore_form()
  5. 6.2 backup_migrate.module \backup_migrate_ui_manual_restore_form()
  6. 7.2 backup_migrate.module \backup_migrate_ui_manual_restore_form()

The restore/import upload form.

1 string reference to 'backup_migrate_ui_manual_restore_form'
backup_migrate_ui_manual_restore in ./backup_migrate.module
The restore/import upload page.

File

./backup_migrate.module, line 1314
Backup and restore databases for Drupal.

Code

function backup_migrate_ui_manual_restore_form() {
  require_once dirname(__FILE__) . '/includes/destinations.inc';
  require_once dirname(__FILE__) . '/includes/filters.inc';
  require_once dirname(__FILE__) . '/includes/sources.inc';
  drupal_set_message(t('Restoring will delete some or all of your data and cannot be undone. <strong>Always test your backups on a non-production server!</strong>'), 'warning', FALSE);
  $form = array();
  $from_default = isset($_GET['page']) || isset($_GET['sort']) ? 'saved' : 'upload';
  $form['backup_migrate_restore_from_upload'] = array(
    "#type" => "radio",
    "#title" => t('Restore from an uploaded file'),
    '#return_value' => 'upload',
    '#parents' => array(
      'from',
    ),
    '#default_value' => $from_default,
  );
  $form['backup_migrate_restore_upload'] = array(
    '#type' => 'backup_migrate_dependent',
    '#dependencies' => array(
      'from' => 'upload',
    ),
  );
  $form['backup_migrate_restore_upload']['backup_migrate_restore_upload'] = array(
    '#title' => t('Upload a Backup File'),
    '#type' => 'file',
    '#description' => t("Upload a backup file created by Backup and Migrate. For other database or file backups please use another tool for import. Max file size: %size", array(
      "%size" => format_size(file_upload_max_size()),
    )),
  );
  $form['backup_migrate_restore_from_saved'] = array(
    "#type" => "radio",
    "#title" => t('Restore from a saved backup'),
    '#return_value' => 'saved',
    '#parents' => array(
      'from',
    ),
    '#default_value' => $from_default,
  );
  $form['backup_migrate_restore_saved'] = array(
    '#type' => 'backup_migrate_dependent',
    '#dependencies' => array(
      'from' => 'saved',
    ),
  );
  list($files, $fetch_time, $remote) = backup_migrate_get_saved_backups();
  $keys = array_keys($files);
  $default = reset($keys);
  $form['backup_migrate_restore_saved']['file'] = array(
    '#type' => 'backup_migrate_file_list',
    '#display_options' => array(
      'limit' => 5,
      'pager' => FALSE,
      'more' => BACKUP_MIGRATE_MENU_PATH . '/backups',
      'operations' => FALSE,
    ),
    '#default_value' => $default,
    '#files' => $files,
  );
  $sources = _backup_migrate_get_source_form_item_options();
  if (count($sources) > 1) {
    $form['source_id'] = array(
      "#type" => "select",
      "#title" => t("Restore to"),
      "#options" => $sources,
      "#description" => t("Choose where to restore to. Any database destinations you have created and any databases specified in your settings.php can be restored to."),
      "#default_value" => 'db',
    );
  }
  else {
    $form['source_id'] = array(
      "#type" => "value",
      "#value" => 'db',
    );
  }
  $form = array_merge_recursive($form, backup_migrate_filters_settings_form(backup_migrate_filters_settings_default('restore'), 'restore'));

  // Add the advanced fieldset if there are any fields in it.
  if (isset($form['advanced'])) {
    $form['advanced']['#type'] = 'fieldset';
    $form['advanced']['#title'] = t('Advanced Options');
    $form['advanced']['#collapsed'] = TRUE;
    $form['advanced']['#collapsible'] = TRUE;
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Restore now'),
  );
  if (user_access('access backup files')) {
    $form[] = array(
      '#type' => 'markup',
      '#markup' => t('<p>Or you can restore one of the files in your <a href="!url">saved backup destinations.</a></p>', array(
        "!url" => url(BACKUP_MIGRATE_MENU_PATH . '/backups'),
      )),
    );
  }
  $form['#attributes'] = array(
    'enctype' => 'multipart/form-data',
  );
  return $form;
}