function restoreLocal() { global $toC_Json, $osC_Language; if (osC_Backup_Admin::restore()) { $response = array('success' => true, 'feedback' => $osC_Language->get('ms_success_database_restore')); } else { $response = array('success' => false, 'feedback' => $osC_Language->get('ms_error_backup_directory_not_writable')); } header('Content-Type: text/html'); echo $toC_Json->encode($response); }
function __construct() { global $osC_Language, $osC_MessageStack; $this->_page_title = $osC_Language->get('heading_title'); if (!isset($_GET['action'])) { $_GET['action'] = ''; } // check if the backup directory exists if (!osc_empty(DIR_FS_BACKUP) && is_dir(DIR_FS_BACKUP)) { if (!is_writeable(DIR_FS_BACKUP)) { $osC_MessageStack->add('header', sprintf($osC_Language->get('ms_error_backup_directory_not_writable'), DIR_FS_BACKUP), 'error'); } } else { $osC_MessageStack->add('header', sprintf($osC_Language->get('ms_error_backup_directory_non_existant'), DIR_FS_BACKUP), 'error'); } if (!empty($_GET['action'])) { switch ($_GET['action']) { case 'backup': $this->_page_contents = 'backup.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { if (osC_Backup_Admin::backup($_POST['compression'], isset($_POST['download_only']) && $_POST['download_only'] == 'yes' ? true : false)) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); } break; case 'restoreLocal': $this->_page_contents = 'restore_local.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { if (osC_Backup_Admin::restore()) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); } break; case 'restore': $this->_page_contents = 'restore.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { if (osC_Backup_Admin::restore($_GET['file'])) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); } break; case 'download': $filename = basename($_GET['file']); $extension = substr($filename, -3); if ($extension == 'zip' || $extension == '.gz' || $extension == 'sql') { if (file_exists(DIR_FS_BACKUP . $filename)) { if ($fp = fopen(DIR_FS_BACKUP . $filename, 'rb')) { $buffer = fread($fp, filesize(DIR_FS_BACKUP . $filename)); fclose($fp); header('Content-type: application/x-octet-stream'); header('Content-disposition: attachment; filename=' . $filename); echo $buffer; exit; } } } $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_download_link_not_acceptable'), 'error'); break; case 'forget': if (osC_Backup_Admin::forget()) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); break; case 'delete': $this->_page_contents = 'delete.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { if (osC_Backup_Admin::delete($_GET['file'])) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); } break; case 'batchDelete': if (isset($_POST['batch']) && is_array($_POST['batch']) && !empty($_POST['batch'])) { $this->_page_contents = 'batch_delete.php'; if (isset($_POST['subaction']) && $_POST['subaction'] == 'confirm') { $error = false; foreach ($_POST['batch'] as $id) { if (!osC_Backup_Admin::delete($id)) { $error = true; break; } } if ($error === false) { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_success_action_performed'), 'success'); } else { $osC_MessageStack->add($this->_module, $osC_Language->get('ms_error_action_not_performed'), 'error'); } osc_redirect_admin(osc_href_link_admin(FILENAME_DEFAULT, $this->_module)); } } break; } } }