public static function construct() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; }
/** * A wrapper function that includes the backup to Dropbox monitor page * @return void */ function backup_to_dropbox_monitor() { if (!Dropbox_Facade::construct()->is_authorized()) { backup_to_dropbox_admin_menu_contents(); } else { $uri = rtrim(WP_PLUGIN_URL, '/') . '/wordpress-backup-to-dropbox'; include 'Views/wp-backup-to-dropbox-monitor.php'; } }
public function __construct($dropbox = false, $config = false) { $this->dropbox = $dropbox ? $dropbox : Dropbox_Facade::construct(); $this->config = $config ? $config : WP_Backup_Config::construct(); $this->last_backup_time = $this->config->get_option('last_backup_time'); $this->dropbox_location = null; if ($this->config->get_option('store_in_subfolder')) { $this->dropbox_location = $this->config->get_option('dropbox_location'); } $this->max_file_size = $this->config->get_max_file_size(); }
public function backup_path($path, $dropbox_path = null, $always_include = array()) { if (!$this->config->get_option('in_progress')) { return; } if (!$dropbox_path) { $dropbox_path = get_sanitized_home_path(); } $file_list = new File_List(); $current_processed_files = $uploaded_files = array(); $next_check = time() + 5; $total_files = $this->config->get_option('total_file_count'); if ($total_files < 1800) { //I doub't very much a wp installation can get smaller then this $total_files = 1800; } $processed_files = new WP_Backup_Processed_Files(); $processed_file_count = $processed_files->get_file_count(); if (file_exists($path)) { $source = realpath($path); $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD); foreach ($files as $file_info) { $file = $file_info->getPathname(); if (time() > $next_check) { $this->config->die_if_stopped(); $percent_done = round($processed_file_count / $total_files * 100, 0); if ($percent_done > 99) { $percent_done = 99; } if ($percent_done < 1) { $percent_done = 1; } $processed_files->add_files($current_processed_files); WP_Backup_Registry::logger()->log(sprintf(__('Approximately %s%% complete.', 'wpbtd'), $percent_done), $uploaded_files); $next_check = time() + 5; $uploaded_files = $current_processed_files = array(); } if (!in_array($file, $always_include) && $file_list->is_excluded($file)) { continue; } if ($file_list->in_ignore_list($file)) { continue; } if (is_file($file)) { $processed_file = $processed_files->get_file($file); if ($processed_file && $processed_file->offset == 0) { continue; } if (dirname($file) == $this->config->get_backup_dir() && !in_array($file, $always_include)) { continue; } if ($this->output->out($dropbox_path, $file, $processed_file)) { $uploaded_files[] = array('file' => str_replace($dropbox_path . DIRECTORY_SEPARATOR, '', Dropbox_Facade::remove_secret($file)), 'mtime' => filemtime($file)); if ($processed_file && $processed_file->offset > 0) { $processed_files->file_complete($file); } } $current_processed_files[] = $file; $processed_file_count++; } } return $processed_file_count; } }
* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. */ try { $v = phpversion(); if ($v < 5) { throw new Exception(sprintf(__('Your PHP version (%s) is too old for this plugin to function correctly please update to PHP 5.2 or higher.'), $v)); } global $wpdb; $validation_errors = null; $dropbox = Dropbox_Facade::construct(); $config = WP_Backup_Config::construct(); $backup = new WP_Backup(); $disable_backup_now = $config->in_progress(); //We have a form submit so update the schedule and options if (array_key_exists('save_changes', $_POST)) { check_admin_referer('backup_to_dropbox_options_save'); $config->set_schedule($_POST['day'], $_POST['time'], $_POST['frequency']); $options = array('store_in_subfolder' => $_POST['store_in_subfolder'] == "on", 'dump_location' => $_POST['dump_location'], 'dropbox_location' => $_POST['dropbox_location']); $validation_errors = $config->set_options($options); } else { if (array_key_exists('unlink', $_POST)) { check_admin_referer('backup_to_dropbox_options_save'); $dropbox->unlink_account(); } else { if (array_key_exists('clear_history', $_POST)) {
public function __construct($dropbox = null, $output = null) { $this->dropbox = $dropbox ? $dropbox : Dropbox_Facade::construct(); $this->output = $output ? $output : WP_Backup_Extension_Manager::construct()->get_output(); $this->config = WP_Backup_Config::construct(); }