<?php
/**
* Destination dropboxs
*
* @package wpdbbkp
*/
?>
<?php
require plugin_dir_path( __FILE__ ) . 'class-wpdbbackup-destination-dropbox-api.php';
if ( isset( $_GET['action'] ) && 'deleteauth' === $_GET['action'] ) {
// disable token on dropbox.
try {
$dropbox = new WPDBBackup_Destination_Dropbox_API();
$dropbox->setOAuthTokens( maybe_unserialize( get_option( 'wpdb_dropboxtoken' ) ) );
$dropbox->authTokenRevoke();
} catch ( Exception $e ) {
echo '<div id="message" class="error"><p> Dropbox API: ' . esc_attr( $e->getMessage() ) . ' </p></div>';
}
update_option( 'wpdb_dropboxtoken', '' , false);
wp_safe_redirect( site_url() . '/wp-admin/admin.php?page=wp-database-backup¬ification=deleteauth' );
}
$dropbox = new WPDBBackup_Destination_Dropbox_API( 'dropbox' );
$dropbox_auth_url = $dropbox->oAuthAuthorize();
if ( true === isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'] , 'wp-database-backup' ) ) {
if ( isset( $_POST['wpdb_dropbbox_code'] ) && ! empty( $_POST['wpdb_dropbbox_code'] ) ) {
$dropboxtoken = $dropbox->oAuthToken( sanitize_text_field( wp_unslash( $_POST['wpdb_dropbbox_code'] ) ) );
$dropboxtoken = update_option( 'wpdb_dropboxtoken', maybe_serialize( $dropboxtoken ) , false);
}
if ( isset( $_POST['wpdb_dropbbox_dir'] ) ) {
$dropboxtoken = update_option( 'wpdb_dropbbox_dir', sanitize_text_field( wp_unslash( $_POST['wpdb_dropbbox_dir'] ) ), false );
}
}
$wpdb_dropboxtoken = get_option( 'wpdb_dropboxtoken' );
$dropboxtoken = ! empty( $wpdb_dropboxtoken ) ? maybe_unserialize( $wpdb_dropboxtoken ) : array();
?>
<form class="form-group" name="form2" method="post" action="">
<table class="form-table">
<tr>
<th scope="row"><?php esc_html_e( 'Authentication', 'wpdbbkp' ); ?></th>
<td><?php if ( empty( $dropboxtoken['access_token'] ) ) { ?>
<span style="color:red;"><?php esc_html_e( 'Not authenticated!', 'wpdbbkp' ); ?></span><br/>
<br/>
<a class="button secondary" href="http://db.tt/8irM1vQ0" target="_blank"><?php esc_html_e( 'Create Account', 'wpdbbkp' ); ?></a><br/><br/>
<?php } else { ?>
<span style="color:green;"><?php esc_html_e( 'Authenticated!', 'wpdbbkp' ); ?></span>
<?php
$dropbox->setOAuthTokens( $dropboxtoken );
$info = $dropbox->usersGetCurrentAccount();
if ( ! empty( $info['account_id'] ) ) {
$user = $info['name']['display_name'];
esc_attr_e( ' with Dropbox of user ', 'wpdbbkp' );
echo esc_attr( $user ) . '<br/>';
// Quota.
$quota = $dropbox->usersGetSpaceUsage();
$dropboxfreespase = $quota['allocation']['allocated'] - $quota['used'];
echo esc_attr( size_format( $dropboxfreespase, 2 ) );
esc_attr_e( ' available on your Dropbox', 'wpdbbkp' );
}
?>
<br><br>
<a class="button secondary" href="<?php echo esc_url( site_url() . '/wp-admin/admin.php?page=wp-database-backup&action=deleteauth&_wpnonce=' . $nonce ); ?> " title="<?php esc_html_e( 'Unlink Dropbox Account', 'wpdbbkp' ); ?>"><?php esc_html_e( 'Unlink Dropbox Account', 'wpdbbkp' ); ?></a>
<p><?php echo esc_html__('Unlink Dropbox Account for local backups.', 'wpdbbkp'); ?></p>
<?php } ?>
</td>
</tr>
<?php if ( empty( $dropboxtoken['access_token'] ) ) { ?>
<tr>
<th scope="row"><label for="id_dropbbox_code"><?php esc_html_e( 'Access to Dropbox', 'wpdbbkp' ); ?></label></th>
<td>
<input id="id_dropbbox_code" name="wpdb_dropbbox_code" type="text" value="" class="regular-text code"/>
<a class="button secondary" href="<?php echo esc_attr( $dropbox_auth_url ); ?>" target="_blank"><?php esc_html_e( 'Get Dropbox auth code ', 'wpdbbkp' ); ?></a>
<p><?php echo esc_html__('In order to use Dropbox destination you will need to Get Dropbox auth code with your Dropbox account on click', 'wpdbbkp'); ?> <strong><?php echo esc_html__('Get Dropbox auth code', 'wpdbbkp'); ?></strong> <?php echo esc_html__('button', 'wpdbbkp'); ?></p>
<p><?php echo esc_html__('Enter Dropbox auth code in text box and save changes', 'wpdbbkp'); ?></p>
<p><?php echo esc_html__('For local backup leave the setting as it is', 'wpdbbkp'); ?></p>
</td>
</tr>
<?php } ?>
</table>
<p></p>
<table class="form-table">
<tr>
<th scope="row"><label for="iddropboxdir"><?php esc_html_e( 'Destination Folder', 'wpdbbkp' ); ?></label></th>
<td>
<input id="wpdb_dropbbox_dir" name="wpdb_dropbbox_dir" type="text" value="<?php echo esc_attr( get_option( 'wpdb_dropbbox_dir' ) ); ?>" class="regular-text"/>
<p class="description">
<?php esc_html_e( 'Specify a subfolder where your backup archives will be stored. It will be created at the Apps › WP-Database-Backup of your Dropbox. Already exisiting folders with the same name will not be overriden.', 'wpdbbkp' ); ?>
</p>
<p><?php echo esc_html__('E.g. backup', 'wpdbbkp'); ?></p>
</td>
</tr>
</table>
<input type="hidden" name="<?php echo esc_attr( $hidden_field_name ); ?>" value="Y">
<input name="wpdbbackup_update_setting" type="hidden" value="<?php echo esc_attr( wp_create_nonce( 'wpdbbackup-update-setting' ) ); ?>"/>
<?php wp_nonce_field( 'wp-database-backup' ); ?>
<input type="submit" name="Submit" class="btn btn-primary" value="<?php esc_attr_e( 'Save' , 'wpdbbkp' ); ?>"/>
</form>