public static function dropbox_backup_create() { require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php"; @session_write_close(); $log = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir); if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) { @unlink(WPAdm_Core::getTmpDir() . "/logs2"); } if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) { file_put_contents(WPAdm_Core::getTmpDir() . "/log.log", ''); } if (WPAdm_Core::dir_writeble(DROPBOX_BACKUP_DIR_BACKUP) && !file_exists(WPAdm_Core::getTmpDir() . "/create-backup")) { file_put_contents(WPAdm_Core::getTmpDir() . "/create-backup", 1); $dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting'); $send_to_dropbox = true; if ($dropbox_options) { $dropbox_options = unserialize(base64_decode($dropbox_options)); if (!isset($dropbox_options['app_key'])) { WPAdm_Core::log(langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Key" wasn\'t found. Please, check your Dropbox settings.', false, '%d', SITE_HOME)); $send_to_dropbox = false; } if (!isset($dropbox_options['app_secret'])) { WPAdm_Core::log(langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Secret" wasn\'t found. Please, check your Dropbox settings.', false, '%d', SITE_HOME)); $send_to_dropbox = false; } if (!isset($dropbox_options['oauth_token'])) { WPAdm_Core::log(langWPADM::get('Website "%d" returned an error during file sending to Dropbox: "Auth Token not exist. Files cannot be sent to Dropbox cloud. Please, check your Dropbox settings."', false, '%d', SITE_HOME)); $send_to_dropbox = false; } } else { WPAdm_Core::log(langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.', false, '%d', SITE_HOME)); $res['type'] = 'local'; $send_to_dropbox = false; } if ($send_to_dropbox) { parent::$type = 'full'; WPAdm_Running::init_params_default(); WPAdm_Running::delCommandResultData("local_backup"); $dropbox_options = self::getSettings(); $optimization = isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1 || !isset($dropbox_options['is_optimization']) ? 1 : 0; $backup_local = new WPAdm_Core(array('method' => "local_backup", 'params' => array('optimize' => $optimization, 'limit' => 0, 'time' => @$_POST['time'], 'types' => array('db', 'files'))), 'full_backup_dropbox', WPAdm_Core::$pl_dir); $res = array(); if (WPAdm_Core::$cron === false) { $res = $backup->getResult()->toArray(); $res['md5_data'] = md5(print_r($res, 1)); $res['name'] = $backup->name; $res['time'] = $backup->time; $res['type'] = 'dropbox'; $res['counts'] = count($res['data']); } unset($backup_local); $folder_project = self::getNameProject(); WPAdm_Running::delCommandResultData("send-to-dropbox"); $backup = new WPAdm_Core(array('method' => "send-to-dropbox", 'params' => array('files' => isset($res['data']) ? $res['data'] : '', 'local' => true, 'access_details' => array('key' => $dropbox_options['app_key'], 'secret' => $dropbox_options['app_secret'], 'token' => $dropbox_options['auth_token_secret'], 'dir' => isset($res['name']) ? $res['name'] : '', 'folder' => $folder_project))), 'full_backup_dropbox', WPAdm_Core::$pl_dir); if (WPAdm_Core::$cron === false) { $result_send = $backup->getResult()->toArray(); if ($result_send['result'] == 'error') { $res = array(); $res['error'] = $result_send['error']; $res['result'] = 'error'; @rename(WPAdm_Core::getTmpDir() . "/logs2", WPAdm_Core::getTmpDir() . "/logs_error_" . $backup_local->time); } WPAdm_Core::rmdir(DROPBOX_BACKUP_DIR_BACKUP . "/{$res['name']}"); } else { set_transient('running_command', 'send-to-dropbox', 0); $res['result'] = 'work'; $res['error'] = ''; $res['data'] = array(); $res['size'] = 0; } if (file_exists(WPAdm_Core::getTmpDir() . "/create-backup")) { @unlink(WPAdm_Core::getTmpDir() . "/create-backup"); } } } else { $res['result'] = 'error'; $res['error'] = langWPADM::get('Website "%domain" returned an error during file creation: Failed to create file, please check the permissions on the folder "%dir-backup".', false, array('%domain', '%dir-backup'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP)); $res['data'] = array(); $res['size'] = 0; } @session_start(); echo json_encode($res); wp_die(); }