--- backup_migrate.module la elo 22 22:58:12 2009 +++ backup_migrate.module su loka 4 23:18:40 2009 @@ -553,6 +553,19 @@ $form['advanced']['#title'] = t('Advanced Options'); $form['advanced']['#collapsed'] = true; $form['advanced']['#collapsible'] = true; + + // Added tmp-folder restore fix + $form['advanced']['restore_tmp_folder'] = array( + "#type" => "checkbox", + "#title" => t("Change temp-folder back after restore?"), + "#description" => t("When migrating from another system, such as Windows to Linux, + the site temporary folder value always changes with the variable-table import. + If this happens, the setting usually has to be changed back to the correct value !link . + If you check this box, the old temp-folder value is automatically restored. + ", array('!link' => l('on this page','admin/settings/file-system'))), + "#default_value" => variable_get('backup_migrate_restore_tmp_folder', 1), + ); + } $form['submit'] = array( @@ -573,9 +586,19 @@ * The restore submit. Do the restore. */ function backup_migrate_ui_manual_restore_form_submit($form, &$form_state) { + if($_POST['restore_tmp_folder']){ + // Save old tmp-folder + $old_tmp_folder = variable_get('file_directory_temp', NULL); + } + if ($file = file_save_upload('backup_migrate_restore_upload')) { backup_migrate_include('destinations'); - backup_migrate_perform_restore('upload', $file->filepath, $form_state['values']); + $restore_ok = backup_migrate_perform_restore('upload', $file->filepath, $form_state['values']); + + if($restore_ok && $old_tmp_folder && $_POST['restore_tmp_folder']){ + // Restore old tmp-folder + variable_set('file_directory_temp', $old_tmp_folder); + } } $form_state['redirect'] = 'admin/content/backup_migrate/restore'; }