public function export(FW_Backup_Interface_Feedback $feedback) { $db = new FW_Backup_Export_Database(); $fs = new FW_Backup_Export_File_System(); $zip_file = sprintf('%s/backup-full-%s.zip', get_temp_dir(), date('Y_m_d-H_i_s')); $tmp_file = array(); try { touch($zip_file); $zip = new ZipArchive(); if ($zip->open($zip_file) !== true) { throw new FW_Backup_Exception(__('Could not create .zip file', 'fw')); } $fs->append_zip($zip, ABSPATH, '', $feedback); $zip->addFile($tmp_file[] = $db->export_sql($feedback), 'database.txt'); $feedback->set_task(__('Compressing files...', 'fw')); $zip->close(); } catch (FW_Backup_Exception $exception) { unset($zip); unlink($zip_file); } array_map('unlink', $tmp_file); if (isset($exception)) { throw $exception; } return $zip_file; }
public function export(FW_Backup_Interface_Feedback $feedback) { /** * @var wpdb $wpdb */ global $wpdb; $db = new FW_Backup_Export_Database(); $fs = new FW_Backup_Export_File_System(); $zip_file = sprintf('%s/backup-demo-install-%s.zip', get_temp_dir(), date('Y_m_d-H_i_s')); $tmp_file = array(); try { touch($zip_file); $zip = new ZipArchive(); if ($zip->open($zip_file) !== true) { throw new FW_Backup_Exception(__('Could not create .zip file', 'fw')); } $upload_dir = wp_upload_dir(); fw_set_db_extension_data($this->backup()->get_name(), 'wp_upload_dir', $upload_dir); $upload_dir = $upload_dir['basedir']; $stylesheet_dir = get_stylesheet_directory(); $template_dir = get_template_directory(); // Do not put auto-install directory which comes with theme into archive $exclude = array(); if ($a = $this->backup()->get_auto_install_dir()) { $exclude[] = $a; } $fs->append_zip($zip, $template_dir, basename($template_dir) . '/', $feedback, $exclude); if ($stylesheet_dir != $template_dir) { $fs->append_zip($zip, $stylesheet_dir, basename($stylesheet_dir) . '/', $feedback, $exclude); } $fs->append_zip($zip, $upload_dir, basename($template_dir) . '/auto-install/uploads/', $feedback); $options_where = "WHERE option_name NOT LIKE 'fw_backup.%%' AND option_name NOT IN ('ftp_credentials', 'mailserver_url', 'mailserver_login', 'mailserver_pass', 'mailserver_port', 'admin_email')"; $exclude_table = array($wpdb->users); $zip->addFile($tmp_file[] = $db->export_sql($feedback, $options_where, $exclude_table), basename($template_dir) . '/auto-install/database.txt'); $feedback->set_task(__('Compressing files...', 'fw')); $zip->close(); } catch (FW_Backup_Exception $exception) { unset($zip); unlink($zip_file); } array_map('unlink', $tmp_file); if (isset($exception)) { throw $exception; } return $zip_file; }