You are here

function backup_migrate_ui_manual_backup_form_submit in Backup and Migrate 5.2

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

Submit the form. Save the values as defaults if desired and output the backup file.

File

./backup_migrate.module, line 445
Create (manually or scheduled) and restore backups of your Drupal MySQL database with an option to exclude table data (e.g. cache_*)

Code

function backup_migrate_ui_manual_backup_form_submit($form_id, $form_values) {
  if ($form_values['op'] == t('Load Profile')) {
    if ($profile = backup_migrate_get_profile($form_values['profile_id'])) {
      return "admin/content/backup_migrate/" . $form_values['profile_id'];
    }
  }
  if ($form_values['op'] == t('Backup Database') && user_access('perform backup')) {
    $form_values['nodata_tables'] = array_filter((array) $form_values['nodata_tables']);
    $form_values['exclude_tables'] = array_filter((array) $form_values['exclude_tables']);
    if ($form_values['save_settings']) {
      if ($form_values['create_new']) {
        $form_values['profile_id'] = NULL;
      }
      $profile = backup_migrate_profile_save_profile($form_values);
      variable_set("backup_migrate_profile_id", $profile['profile_id']);
      variable_set("backup_migrate_destination_id", $form_values['destination_id']);
    }

    // Set interactive mode so that messages are sent to the user.
    _backup_migrate_interactive(TRUE);
    $settings = $form_values;
    $success = backup_migrate_perform_backup($settings);
    if ($success) {
      require_once './' . drupal_get_path('module', 'backup_migrate') . '/includes/destinations.inc';
      $message = 'Database backup file %file saved to destination %dest. !links';
      $links = "";
      if ($links = _backup_migrate_destination_get_file_links($form_state['values']['destination_id'], $settings['file_id'])) {
        $links = ' (' . implode(", ", $links) . ')';
      }
      _backup_migrate_message($message, array(
        '%file' => $settings['filename'],
        '%dest' => $settings['destination']['name'],
        '!links' => $links,
      ));
    }
  }
  return "admin/content/backup_migrate";
}