get_results( "SELECT filename, destination FROM {$wpdb->prefix}aisiteark_backups", ARRAY_A ) as $aisiteark_dr ) { $aisiteark_dest[ $aisiteark_dr['filename'] ] = (string) $aisiteark_dr['destination']; } if ( ! function_exists( 'aisiteark_dest_label' ) ) { /** * Friendly label for a destination key. * * @param string $key Destination key. * @return string */ function aisiteark_dest_label( $key ) { $map = array( 'local' => __( 'Local server', 'ai-siteark' ), 'google' => __( 'Google Drive', 'ai-siteark' ), 'microsoft' => __( 'OneDrive', 'ai-siteark' ), 'dropbox' => __( 'Dropbox', 'ai-siteark' ), 's3' => __( 'Amazon S3', 'ai-siteark' ), 'ftp' => __( 'FTP', 'ai-siteark' ), ); return isset( $map[ $key ] ) ? $map[ $key ] : ( '' !== $key ? $key : __( 'Local server', 'ai-siteark' ) ); } } // phpcs:ignore WordPress.Security.NonceVerification.Recommended $aisiteark_browse = isset( $_GET['browse'] ) ? sanitize_file_name( wp_unslash( $_GET['browse'] ) ) : ''; $aisiteark_browse_path = $aisiteark_browse ? \AtoZ\SiteArk\Helpers\Local_Store::path_for( $aisiteark_browse ) : false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended $aisiteark_rollback = isset( $_GET['rollback'] ) ? sanitize_file_name( wp_unslash( $_GET['rollback'] ) ) : ''; $aisiteark_rollback_path = $aisiteark_rollback ? \AtoZ\SiteArk\Helpers\Local_Store::recovery_path_for( $aisiteark_rollback ) : false; $aisiteark_url_notices = array( 'url_error' => __( 'Please enter a valid public http(s) URL to a .aisv backup.', 'ai-siteark' ), 'url_fetch' => __( 'Could not download that URL. Check the link is public and reachable.', 'ai-siteark' ), 'url_notaisv' => __( 'That link did not return an AI-SiteArk (.aisv) backup.', 'ai-siteark' ), 'cloud_error' => __( 'That cloud destination is not connected, or could not be reached.', 'ai-siteark' ), 'cloud_missing' => __( 'That backup is no longer on the cloud destination.', 'ai-siteark' ), 'cloud_fetch' => __( 'Could not download the backup from the cloud destination. Please try again.', 'ai-siteark' ), 'cloud_notaisv' => __( 'The downloaded file was not a valid AI-SiteArk (.aisv) backup.', 'ai-siteark' ), ); ?>

page_header( __( 'Restore & Migrate', 'ai-siteark' ), __( 'Rebuild this site from a backup, or migrate a backup taken on another site (URLs are rewritten automatically).', 'ai-siteark' ) ); ?>

—

open( $aisiteark_browse_path ); $aisiteark_entries = array(); $aisiteark_capped = false; if ( ! is_wp_error( $aisiteark_open ) ) { $aisiteark_reader->next(); // manifest. while ( null !== ( $aisiteark_h = $aisiteark_reader->next() ) ) { if ( 'file' === ( isset( $aisiteark_h['type'] ) ? $aisiteark_h['type'] : '' ) ) { $aisiteark_entries[] = (string) ( isset( $aisiteark_h['path'] ) ? $aisiteark_h['path'] : '' ); if ( count( $aisiteark_entries ) >= 4000 ) { $aisiteark_capped = true; break; } } } $aisiteark_reader->close(); } ?>

 

←

—

__( 'Database', 'ai-siteark' ), 'uploads' => __( 'Media uploads', 'ai-siteark' ), 'themes' => __( 'Themes', 'ai-siteark' ), 'plugins' => __( 'Plugins', 'ai-siteark' ), 'muplugins' => __( 'Must-use plugins', 'ai-siteark' ), ); foreach ( $aisiteark_comps as $aisiteark_ck => $aisiteark_cl ) : ?>

()


is_connected() ) { continue; } $aisiteark_remote = $aisiteark_prov->list_files(); ?>

label() ) ); ?>

get_error_message() ); ?>

0 ? size_format( (int) $aisiteark_rf['size'] ) : '—' ); ?> 0 ? date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), (int) $aisiteark_rf['modified'] ) : '—' ); ?>