/** * */ public static function load() { //Create Table self::$listtable = new BackWPup_Page_Logs(); switch (self::$listtable->current_action()) { case 'delete': if (!current_user_can('backwpup_logs_delete')) { break; } if (is_array($_GET['logfiles'])) { check_admin_referer('bulk-logs'); $num = 0; foreach ($_GET['logfiles'] as $logfile) { if (is_writeable(get_site_option('backwpup_cfg_logfolder') . $logfile) && !is_dir(get_site_option('backwpup_cfg_logfolder') . $logfile) && !is_link(get_site_option('backwpup_cfg_logfolder') . $logfile)) { unlink(get_site_option('backwpup_cfg_logfolder') . $logfile); } $num++; } } break; case 'download': //Download Log if (!current_user_can('backwpup_logs')) { break; } check_admin_referer('download-backup_' . $_GET['file']); if (is_readable(get_site_option('backwpup_cfg_logfolder') . $_GET['file']) && !is_dir(get_site_option('backwpup_cfg_logfolder') . $_GET['file']) && !is_link(get_site_option('backwpup_cfg_logfolder') . $_GET['file'])) { header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=" . get_site_option('backwpup_cfg_logfolder') . $_GET['file'] . ";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize(get_site_option('backwpup_cfg_logfolder') . $_GET['file'])); @readfile(get_site_option('backwpup_cfg_logfolder') . $_GET['file']); die; } else { header('HTTP/1.0 404 Not Found'); die; } break; } //Save per page if (isset($_POST['screen-options-apply']) && isset($_POST['wp_screen_options']['option']) && isset($_POST['wp_screen_options']['value']) && $_POST['wp_screen_options']['option'] == 'backwpuplogs_per_page') { check_admin_referer('screen-options-nonce', 'screenoptionnonce'); global $current_user; if ($_POST['wp_screen_options']['value'] > 0 && $_POST['wp_screen_options']['value'] < 1000) { update_user_option($current_user->ID, 'backwpuplogs_per_page', (int) $_POST['wp_screen_options']['value']); wp_redirect(remove_query_arg(array('pagenum', 'apage', 'paged'), wp_get_referer())); exit; } } add_screen_option('per_page', array('label' => __('Logs', 'backwpup'), 'default' => 20, 'option' => 'backwpuplogs_per_page')); self::$listtable->prepare_items(); }
/** * */ public static function load() { //Create Table self::$listtable = new BackWPup_Page_Logs(); switch (self::$listtable->current_action()) { case 'delete': if (!current_user_can('backwpup_logs_delete')) { break; } if (is_array($_GET['logfiles'])) { check_admin_referer('bulk-logs'); foreach ($_GET['logfiles'] as $logfile) { $logfile = basename($logfile); if (is_writeable(self::$listtable->log_folder . '/' . $logfile) && !is_dir(self::$listtable->log_folder . '/' . $logfile) && !is_link(self::$listtable->log_folder . '/' . $logfile)) { unlink(self::$listtable->log_folder . '/' . $logfile); } } } break; case 'download': //Download Log if (!current_user_can('backwpup_logs')) { break; } check_admin_referer('download-log_' . trim($_GET['file'])); $log_file = trailingslashit(self::$listtable->log_folder) . basename(trim($_GET['file'])); $log_file = realpath($log_file); if ($log_file && is_readable($log_file) && !is_dir($log_file) && !is_link($log_file)) { if ($level = ob_get_level()) { for ($i = 0; $i < $level; $i++) { ob_end_clean(); } } @set_time_limit(300); nocache_headers(); header('Content-Description: File Transfer'); header('Content-Type: ' . BackWPup_Job::get_mime_type($log_file)); header('Content-Disposition: attachment; filename="' . basename($log_file) . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($log_file)); @readfile($log_file); die; } else { header('HTTP/1.0 404 Not Found'); die; } break; } //Save per page if (isset($_POST['screen-options-apply']) && isset($_POST['wp_screen_options']['option']) && isset($_POST['wp_screen_options']['value']) && $_POST['wp_screen_options']['option'] == 'backwpuplogs_per_page') { check_admin_referer('screen-options-nonce', 'screenoptionnonce'); global $current_user; if ($_POST['wp_screen_options']['value'] > 0 && $_POST['wp_screen_options']['value'] < 1000) { update_user_option($current_user->ID, 'backwpuplogs_per_page', (int) $_POST['wp_screen_options']['value']); wp_redirect(remove_query_arg(array('pagenum', 'apage', 'paged'), wp_get_referer())); exit; } } add_screen_option('per_page', array('label' => __('Logs', 'backwpup'), 'default' => 20, 'option' => 'backwpuplogs_per_page')); self::$listtable->prepare_items(); }