Esempio n. 1
0
 /**
  *
  */
 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();
 }