/** * Downloads backup file from Dropbox to root folder on local server. * * @param array $args arguments passed to the function * [consumer_key] -> consumer key of ManageWP Dropbox application * [consumer_secret] -> consumer secret of ManageWP Dropbox application * [oauth_token] -> oauth token of user on ManageWP Dropbox application * [oauth_token_secret] -> oauth token secret of user on ManageWP Dropbox application * [dropbox_destination] -> folder on user's Dropbox account which backup file should be deleted from * [dropbox_site_folder] -> subfolder with site name in dropbox_destination which backup file should be deleted from * [backup_file] -> absolute path of backup file on local server * @return bool|array absolute path to downloaded file is successful, array with error message if not */ function get_dropbox_backup($args) { extract($args); global $mmb_plugin_dir; require_once $mmb_plugin_dir . '/lib/dropbox.php'; $dropbox = new Dropbox($consumer_key, $consumer_secret); $dropbox->setOAuthTokens($oauth_token, $oauth_token_secret); if ($dropbox_site_folder == true) { $dropbox_destination .= '/' . $this->site_name; } $temp = ABSPATH . 'mwp_temp_backup.zip'; try { $file = $dropbox->download($dropbox_destination . '/' . $backup_file); $handle = @fopen($temp, 'w'); $result = fwrite($handle, $file); fclose($handle); if ($result) { return $temp; } else { return false; } } catch (Exception $e) { $this->_log($e->getMessage()); return array('error' => $e->getMessage(), 'partial' => 1); } }