",
'' . __( 'Current Page', 'wpvivid-backuprestore' ) . ' ',
$current,
strlen( $total_pages )
);
}
$html_total_pages = sprintf( "%s ", number_format_i18n( $total_pages ) );
$page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
if ( $disable_next ) {
$page_links[] = '› ';
} else {
$page_links[] = sprintf(
"%s %s
",
$current,
__( 'Next page', 'wpvivid-backuprestore' ),
'›'
);
}
if ( $disable_last ) {
$page_links[] = '» ';
} else {
$page_links[] = sprintf(
"%s %s
",
__( 'Last page', 'wpvivid-backuprestore' ),
'»'
);
}
$pagination_links_class = 'pagination-links';
if ( ! empty( $infinite_scroll ) ) {
$pagination_links_class .= ' hide-if-js';
}
$output .= "\n';
if ( $total_pages ) {
$page_class = $total_pages < 2 ? ' one-page' : '';
} else {
$page_class = ' no-pages';
}
$this->_pagination = "$output
";
echo $this->_pagination;
}
protected function display_tablenav( $which ) {
$css_type = '';
if ( 'top' === $which ) {
wp_nonce_field( 'bulk-' . $this->_args['plural'] );
$css_type = 'margin: 0 0 10px 0';
}
else if( 'bottom' === $which ) {
$css_type = 'margin: 10px 0 0 0';
}
$total_pages = $this->_pagination_args['total_pages'];
$admin_url = apply_filters('wpvivid_get_admin_url', '');
if ( $total_pages >1)
{
?>
_args['singular'];
$this->display_tablenav( 'top' );
$this->screen->render_screen_reader_content( 'heading_list' );
?>
print_column_headers(); ?>
>
display_rows_or_placeholder(); ?>
print_column_headers( false ); ?>
version = WPVIVID_UPLOADS_CLEANER_VERSION;
//$this->plugin_name = WPVIVID_UPLOADS_CLEANER_SLUG;
//$this->screen_ids=array();
//$this->screen_ids[]='toplevel_page_'. $this->plugin_name;
//add_action('admin_enqueue_scripts',array( $this,'enqueue_styles'));
//add_action('admin_enqueue_scripts',array( $this,'enqueue_scripts'));
//add_action('admin_menu',array( $this,'add_plugin_admin_menu'));
//$plugin_basename = plugin_basename( plugin_dir_path( __DIR__ ) . 'wpvivid-uploads-cleaner.php' );
//add_filter('plugin_action_links_' . $plugin_basename, array( $this,'add_action_links'));
add_filter('wpvivid_scan_post_types',array($this,'scan_post_types'),10);
add_action('wp_ajax_wpvivid_start_scan_uploads_files_task', array($this, 'start_scan_uploads_files_task'));
add_action('wp_ajax_wpvivid_scan_uploads_files_from_post',array($this, 'scan_uploads_files_from_post'));
add_action('wp_ajax_wpvivid_start_unused_files_task',array($this, 'start_unused_files_task'));
add_action('wp_ajax_wpvivid_unused_files_task',array($this, 'unused_files_task'));
add_action('wp_ajax_wpvivid_get_result_list',array($this, 'get_result_list'));
add_action('wp_ajax_wpvivid_isolate_selected_image',array($this, 'isolate_selected_image'));
add_action('wp_ajax_wpvivid_start_isolate_all_image',array($this, 'start_isolate_all_image'));
add_action('wp_ajax_wpvivid_isolate_all_image',array($this, 'isolate_all_image'));
//
add_action('wp_ajax_wpvivid_get_iso_list',array($this, 'get_iso_list'));
add_action('wp_ajax_wpvivid_delete_selected_image',array($this, 'delete_selected_image'));
add_action('wp_ajax_wpvivid_start_delete_all_image',array($this, 'delete_all_image'));
add_action('wp_ajax_wpvivid_delete_all_image',array($this, 'delete_all_image'));
add_action('wp_ajax_wpvivid_restore_selected_image',array($this, 'restore_selected_image'));
add_action('wp_ajax_wpvivid_start_restore_all_image',array($this, 'restore_all_image'));
add_action('wp_ajax_wpvivid_restore_all_image',array($this, 'restore_all_image'));
add_action('wp_ajax_wpvivid_uc_add_exclude_files',array($this, 'add_exclude_files'));
//
add_filter('wpvivid_uc_scan_include_files_regex',array($this,'scan_include_files_regex'),10);
add_filter('wpvivid_uc_scan_exclude_files_regex',array($this,'scan_exclude_files_regex'),10);
include_once WPVIVID_PLUGIN_DIR . '/includes/upload-cleaner/class-wpvivid-uploads-scanner.php';
include_once WPVIVID_PLUGIN_DIR . '/includes/upload-cleaner/class-wpvivid-isolate-files.php';
include_once WPVIVID_PLUGIN_DIR. '/includes/upload-cleaner/class-wpvivid-upload-cleaner-setting.php';
$iso=new WPvivid_Isolate_Files();
$iso->check_folder();
$setting=new WPvivid_Uploads_Cleaner_Setting();
add_filter('wpvivid_get_toolbar_menus',array($this,'get_toolbar_menus'),22);
add_filter('wpvivid_get_admin_menus',array($this,'get_admin_menus'),22);
add_filter('wpvivid_get_screen_ids',array($this,'get_screen_ids'),12);
}
public function get_screen_ids($screen_ids)
{
$screen_ids[]=apply_filters('wpvivid_white_label_screen_id', 'wpvivid-backup_page_wpvivid-cleaner');
return $screen_ids;
}
public function get_toolbar_menus($toolbar_menus)
{
$admin_url = apply_filters('wpvivid_get_admin_url', '');
$menu['id']='wpvivid_admin_menu_cleaner';
$menu['parent']='wpvivid_admin_menu';
$menu['title']=__('Image Cleaner', 'wpvivid-backuprestore');
$menu['tab']= 'admin.php?page='.apply_filters('wpvivid_white_label_plugin_name', 'wpvivid-cleaner');
$menu['href']=$admin_url . 'admin.php?page='.apply_filters('wpvivid_white_label_plugin_name', 'wpvivid-cleaner');
$menu['capability']='administrator';
$menu['index']=4;
$toolbar_menus[$menu['parent']]['child'][$menu['id']]=$menu;
return $toolbar_menus;
}
public function get_admin_menus($submenus)
{
$submenu['parent_slug']=apply_filters('wpvivid_white_label_slug', WPVIVID_PLUGIN_SLUG);
$submenu['page_title']= apply_filters('wpvivid_white_label_display', 'WPvivid Backup');
$submenu['menu_title']=__('Image Cleaner', 'wpvivid-backuprestore');
$submenu['capability']='administrator';
$submenu['menu_slug']=strtolower(sprintf('%s-cleaner', apply_filters('wpvivid_white_label_slug', 'wpvivid')));
$submenu['index']=4;
$submenu['function']=array($this, 'display');
$submenus[$submenu['menu_slug']]=$submenu;
return $submenus;
}
private function transfer_path($path)
{
$path = str_replace('\\','/',$path);
$values = explode('/',$path);
return implode(DIRECTORY_SEPARATOR,$values);
}
public function wpvivid_check_jet_engine()
{
if (!function_exists('get_plugins'))
{
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$active_plugins = get_option('active_plugins');
$plugins=get_plugins();
$jet_engine_slug='jet-engine/jet-engine.php';
if(!empty($plugins))
{
if(isset($plugins[$jet_engine_slug]))
{
if(in_array($jet_engine_slug, $active_plugins))
{
echo 'Warning: We detected that you use Jet Engine plugin on this site,
it may have compatibility issues with our plugin, which can result in an inaccuracy of the scan result,
so we recommend not using this feature yet.
';
}
}
}
}
public function display()
{
$scan=new WPvivid_Uploads_Scanner();
$scan->check_table_exist();
$scan->check_unused_uploads_files_table_exist();
$upload_dir=wp_upload_dir();
$path=$this->transfer_path($upload_dir['basedir']);
$path1=$this->transfer_path(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.'uploads');
if($path!==$path1)
{
echo 'The current version does not support custom uploads directory
';
return;
}
?>
wpvivid_check_jet_engine(); ?>
main_tab=new WPvivid_Tab_Page_Container();
$this->main_tab->add_tab(__('Scan Media', 'wpvivid-backuprestore'),'scan',array($this, 'output_scan'), $args);
$this->main_tab->add_tab(__('Isolated Media', 'wpvivid-backuprestore'),'isolate',array($this, 'output_isolate'), $args);
//$this->main_tab->add_tab('Database','database',array($this, 'output_database'), $args);
$this->main_tab->display();
if (isset($_GET['tab']))
{
$tab=esc_html($_GET['tab']);
?>
get_scan_result_count();
$size=$scanner->get_scan_result_size();
$upload_dir=wp_upload_dir();
$path=$this->transfer_path($upload_dir['basedir']);
$abs=$this->transfer_path(ABSPATH);
$path=str_replace($abs,'...'.DIRECTORY_SEPARATOR,$path);
$folders=$scanner->get_all_folder();
$admin_url = apply_filters('wpvivid_get_admin_url', '');
//Before running a scan, it is recommended to [make a full website backup] to avoid losing images.
$progress_bar='
';
?>
Last Scan: Unused media file(s) found:
".esc_html($count)." . ";
if($size!==false)
{
echo 'Total size: '.esc_html($size).' .';
}
echo "";
}
?>
';
?>
get_scan_result('','');
$list = new WPvivid_Unused_Upload_Files_List();
$list->set_list($result);
$list->prepare_items();
$list ->display();
?>
transfer_path(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPVIVID_UPLOADS_ISO_DIR);
$abs=$this->transfer_path(ABSPATH);
$path=str_replace($abs,'...'.DIRECTORY_SEPARATOR,$path);
$result=$iso->get_isolate_folder();
?>
get_isolate_files();
$list = new WPvivid_Isolate_Files_List();
$list->set_list($files);
$list->prepare_items();
$list ->display();
?>
Coming soon
init_scan_task();
$uploads_files=array();
$uploads_files[0]=$uploads_scanner->scan_sidebars_widgets();
$files=$uploads_scanner->scan_termmeta_thumbnail();
$uploads_files[0]=array_merge($uploads_files[0],$files);
$files=$uploads_scanner->scan_divi_options();
$uploads_files[0]=array_merge($uploads_files[0],$files);
$site_icon_id = (int) get_option( 'site_icon' );
if($site_icon_id)
{
$files=$uploads_scanner->get_attachment_size($site_icon_id);
$uploads_files[0]=array_merge($uploads_files[0],$files);
}
$site_logo_id = get_option( 'site_logo' );
if($site_logo_id)
{
$files=$uploads_scanner->get_attachment_size($site_logo_id);
$uploads_files[0]=array_merge($uploads_files[0],$files);
}
$count=$uploads_scanner->get_post_count();
$start=0;
$limit=min(get_option('wpvivid_uc_scan_limit',20),$count);
$posts=$uploads_scanner->get_posts($start,$limit);
foreach ($posts as $post)
{
$media=$uploads_scanner->get_media_from_post_content($post);
//$uploads_files['post_id']=$post;
//$uploads_files['uploads_files']=$media;
//$uploads_files=array_merge($uploads_files,$media);
if(!empty($media))
{
$uploads_files[$post]=$media;
}
$media=$uploads_scanner->get_media_from_post_meta($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
$media=$uploads_scanner->get_media_from_post_meta_elementor($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//$uploads_ids=array_merge($uploads_ids,$media);
$media=$uploads_scanner->get_media_from_post_custom_meta($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//fix theme WpResidence
$media=$uploads_scanner->get_media_from_wpresidence($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//fix breakdance page builder
$media=$uploads_scanner->get_media_from_breakdance($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//oxygen images
$media=$uploads_scanner->get_media_from_oxygen($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
}
$start+=$limit;
$result['result']='success';
if($count == 0){
$result['percent']=0;
}
else{
$result['percent']=intval(($start/$count)*100);
}
$result['total_posts']=$start;
$result['scanned_posts']=$count;
$result['descript']='Scanning files from posts';
$result['progress_html']='
' . __('Total Posts:', 'wpvivid-backuprestore') . '
' . $result['total_posts'] . '
' . __('Scanned:', 'wpvivid-backuprestore') . '
' . $result['scanned_posts'] . '
' . $result['descript'] . '
';
if($start>=$count)
{
$uploads_scanner->update_scan_task($uploads_files,$start,'finished',100);
$result['start']=$start;
$result['status']='finished';
$result['continue']=0;
$result['log']='scan upload files finished'.PHP_EOL;
}
else
{
$uploads_scanner->update_scan_task($uploads_files,$start,'running');
$result['start']=$start;
$result['status']='running';
$result['continue']=1;
$result['log']='scanned posts:'.$start.PHP_EOL.'total posts:'.$count.PHP_EOL;
}
//$uploads_files=$uploads_scanner->get_files();
//$result['count']=$count;
//$result['files']=$uploads_files;
echo wp_json_encode($result);
die();
}
public function scan_uploads_files_from_post()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
if(!isset($_POST['start']))
{
die();
}
$start=intval($_POST['start']);
if(!is_int($start))
{
die();
}
set_time_limit(30);
$uploads_scanner=new WPvivid_Uploads_Scanner();
$count=$uploads_scanner->get_post_count();
$limit=min(get_option('wpvivid_uc_scan_limit',20),$count);
$posts=$uploads_scanner->get_posts($start,$limit);
$uploads_files=array();
foreach ($posts as $post)
{
$media=$uploads_scanner->get_media_from_post_content($post);
//$uploads_files['post_id']=$post;
//$uploads_files['uploads_files']=$media;
//$uploads_files=array_merge($uploads_files,$media);
if(!empty($media))
{
$uploads_files[$post]=$media;
}
$media=$uploads_scanner->get_media_from_post_meta($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
$media=$uploads_scanner->get_media_from_post_meta_elementor($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
$media=$uploads_scanner->get_media_from_post_custom_meta($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//fix theme WpResidence
$media=$uploads_scanner->get_media_from_wpresidence($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//fix breakdance page builder
$media=$uploads_scanner->get_media_from_breakdance($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
//oxygen images
$media=$uploads_scanner->get_media_from_oxygen($post);
if(!empty($media))
{
if(isset($uploads_files[$post]))
$uploads_files[$post]=array_merge($uploads_files[$post],$media);
else
$uploads_files[$post]=$media;
}
}
$start+=$limit;
$result['result']='success';
$result['percent']=intval(($start/$count)*100);
$result['total_posts']=$start;
$result['scanned_posts']=$count;
$result['descript']='Scanning files from posts';
$result['progress_html']='
' . __('Total Posts:', 'wpvivid-backuprestore') . '
' . $result['total_posts'] . '
' . __('Scanned:', 'wpvivid-backuprestore') . '
' . $result['scanned_posts'] . '
' . $result['descript'] . '
';
if($start>=$count)
{
$uploads_scanner->update_scan_task($uploads_files,$start,'finished',100);
$result['start']=$start;
$result['status']='finished';
$result['continue']=0;
$result['log']='scan upload files finished'.PHP_EOL;
}
else
{
$uploads_scanner->update_scan_task($uploads_files,$start,'running');
$result['start']=$start;
$result['status']='running';
$result['continue']=1;
$result['log']='scanned posts:'.$start.PHP_EOL.'total posts:'.$count.PHP_EOL;
}
$ret=$uploads_scanner->get_unused_uploads_progress();
$result['total_folders']=$ret['total_folders'];
$result['scanned_folders']=$ret['scanned_folders'];
$result['percent']=$ret['percent'];
echo wp_json_encode($result);
die();
}
public function start_unused_files_task()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
set_time_limit(30);
$uploads_scanner=new WPvivid_Uploads_Scanner();
$result=$uploads_scanner->get_folders();
$uploads_scanner->init_unused_uploads_task($result['folders']);
$files=array();
foreach ($result['files'] as $file)
{
if(!$uploads_scanner->is_uploads_files_exist($file))
{
$files[]=$file;
}
}
$uploads_scanner->update_unused_uploads_task($files,'.',1,0,'running',0,$result['size']);
$result['result']='success';
$result['status']='running';
$result['continue']=1;
$result['log']='scanning files'.PHP_EOL;
$ret=$uploads_scanner->get_unused_uploads_progress();
$result['total_folders']=$ret['total_folders'];
$result['scanned_folders']=$ret['scanned_folders'];
$result['percent']=$ret['percent'];
$result['descript']='Scanning upload folder.';
$result['progress_html']='
' . __('Total Folders:', 'wpvivid-backuprestore') . '
' . $result['total_folders'] . '
' . __('Scanned:', 'wpvivid-backuprestore') . '
' . $result['scanned_folders'] . '
' . $result['descript'] . '
';
$result['.']=$files;
echo wp_json_encode($result);
die();
}
public function unused_files_task()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
set_time_limit(30);
$uploads_scanner=new WPvivid_Uploads_Scanner();
$ret=$uploads_scanner->get_unfinished_folder();
if($ret===false)
{
$uploads_scanner->update_unused_uploads_task(array(),'.',1,0,'finished',100);
$result['result']='success';
$result['status']='finished';
$result['log']='scanning files finished'.PHP_EOL;
$result['percent']=100;
$result['continue']=0;
}
else
{
$size=0;
$folder=$ret['folder'];
$offset=$ret['offset'];
$total=$ret['total'];
$files=$uploads_scanner->get_files($folder);
$upload_folder = wp_upload_dir();
$root_path =$upload_folder['basedir'];
$start=0;
$count=0;
$limit=get_option('wpvivid_uc_files_limit',100);
$unused_files=array();
foreach ($files as $file)
{
if($count>$limit)
{
$uploads_scanner->update_unused_uploads_task($unused_files,$folder,0,$start,'running',0,$size);
$result['result']='success';
$result['status']='running';
$result['continue']=1;
$task=get_option('unused_uploads_task',array());
$result['task']=$task;
$result[$folder]=$unused_files;
$result['log']='scanning folder '.$folder.PHP_EOL.'scanned files:'.$start.PHP_EOL;
$ret=$uploads_scanner->get_unused_uploads_progress();
$result['total_folders']=$ret['total_folders'];
$result['scanned_folders']=$ret['scanned_folders'];
$result['percent']=$ret['percent'];
$result['descript']='Scanning upload folder:'.$folder.' '.$start.' files have been scanned in '.$total.' files';
$result['progress_html']='
' . __('Total Folders:', 'wpvivid-backuprestore') . '
' . $result['total_folders'] . '
' . __('Scanned:', 'wpvivid-backuprestore') . '
' . $result['scanned_folders'] . '
' . $result['descript'] . '
';
echo wp_json_encode($result);
die();
}
if($start>=$offset)
{
if(!$uploads_scanner->is_uploads_files_exist($file))
{
$unused_files[]=$file;
$size+=filesize($root_path.DIRECTORY_SEPARATOR . $file);
}
$count++;
}
$start++;
}
$uploads_scanner->update_unused_uploads_task($unused_files,$folder,1,0,'running',0,$size);
$result['result']='success';
$result['status']='running';
$result['continue']=1;
$result[$folder]=$unused_files;
$result['log']='scanning folder '.$folder.PHP_EOL.'scanned files:'.$start.PHP_EOL;
$ret=$uploads_scanner->get_unused_uploads_progress();
$result['total_folders']=$ret['total_folders'];
$result['scanned_folders']=$ret['scanned_folders'];
$result['percent']=$ret['percent'];
$upload_folder = wp_upload_dir();
$result['descript']='Scanning upload folder:'.$folder.' '.$start.' files have been scanned in '.$total.' files';
$result['progress_html']='
' . __('Total Folders:', 'wpvivid-backuprestore') . '
' . $result['total_folders'] . '
' . __('Scanned:', 'wpvivid-backuprestore') . '
' . $result['scanned_folders'] . '
' . $result['descript'] . '
';
}
echo wp_json_encode($result);
die();
}
public function scan_post_types($post_types)
{
$default_post_types=array();
$default_post_types[]='attachment';
$default_post_types[]='revision';
$default_post_types[]='auto-draft';
$default_post_types[]='nav_menu_item';
$default_post_types[]='shop_order';
$default_post_types[]='shop_order_refund';
$default_post_types[]='oembed_cache';
$post_types=get_option('wpvivid_uc_post_types',$default_post_types);
return $post_types;
}
public function scan_exclude_files_regex($regex)
{
$files=get_option('wpvivid_uc_exclude_files_regex','');
if(empty($files))
{
return $regex;
}
$files=explode("\n", $files);
foreach ($files as $item)
{
if(!empty($item))
{
$item=rtrim($item, '/');
$regex[]='#'.preg_quote($this -> transfer_path($item), '/').'#';
}
}
/*foreach ($files as $file)
{
$regex[]='#'.$file.'$#';
}*/
$regex[]='#webp$#';
return $regex;
}
public function scan_include_files_regex($regex)
{
$default_file_types=array();
$default_file_types[]='png';
$default_file_types[]='jpg';
$default_file_types[]='jpeg';
$scan_file_types=get_option('wpvivid_uc_scan_file_types',$default_file_types);
$regex=array();
foreach ($scan_file_types as $scan_file_type)
{
$regex[]='#.*\.'.$scan_file_type.'#';
}
return $regex;
}
public function add_exclude_files()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
$json = $_POST['selected'];
$json = stripslashes($json);
$json = json_decode($json, true);
$selected_list=$json['selected'];
$sanitize_list=array();
foreach ($selected_list as $item)
{
$sanitize_list[]=intval($item);
}
$scanner=new WPvivid_Uploads_Scanner();
$files=$scanner->get_selected_files_list($sanitize_list);
$list=new WPvivid_Unused_Upload_Files_List();
if($files===false||empty($files))
{
}
else
{
$options=get_option('wpvivid_uc_exclude_files_regex',array());
$options=array_merge($files,$options);
update_option('wpvivid_uc_exclude_files_regex',$options,'no');
$scanner->delete_selected_files_list($sanitize_list);
}
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$result=$scanner->get_scan_result($search,$folder);
$list->set_list($result);
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
echo wp_json_encode($ret);
die();
}
public function get_result_list()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$list=new WPvivid_Unused_Upload_Files_List();
$scanner=new WPvivid_Uploads_Scanner();
$result=$scanner->get_scan_result($search,$folder);
if(isset($_POST['page']))
{
$list->set_list($result,$_POST['page']);
}
else
{
$list->set_list($result);
}
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
if(empty($result))
{
$ret['empty']=1;
}
else
{
$ret['empty']=0;
}
echo wp_json_encode($ret);
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function isolate_selected_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$json = $_POST['selected'];
$json = stripslashes($json);
$json = json_decode($json, true);
$selected_list=$json['selected'];
$sanitize_list=array();
foreach ($selected_list as $item)
{
$sanitize_list[]=intval($item);
}
$scanner=new WPvivid_Uploads_Scanner();
$files=$scanner->get_selected_files_list($sanitize_list);
if($files===false||empty($files))
{
}
else
{
$iso=new WPvivid_Isolate_Files();
$result=$iso->isolate_files($files);
if($result['result']=='success')
{
$scanner->delete_selected_files_list($selected_list);
}
else
{
echo wp_json_encode($result);
die();
}
}
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$list=new WPvivid_Unused_Upload_Files_List();
$scanner=new WPvivid_Uploads_Scanner();
$result=$scanner->get_scan_result($search,$folder);
$list->set_list($result);
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
$list=new WPvivid_Isolate_Files_List();
$iso=new WPvivid_Isolate_Files();
$result=$iso->get_isolate_files($search,'');
if(isset($_POST['page']))
{
$list->set_list($result,$_POST['page']);
}
else
{
$list->set_list($result);
}
$list->prepare_items();
ob_start();
$list->display();
$iso = ob_get_clean();
$ret['iso']=$iso;
echo wp_json_encode($ret);
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function start_isolate_all_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$iso=new WPvivid_Isolate_Files();
$scanner=new WPvivid_Uploads_Scanner();
$offset=0;
$count=100;
$iso->init_isolate_task();
$files=$scanner->get_all_files_list($search,$folder,$offset,$count);
if($files===false||empty($files))
{
$iso->update_isolate_task(0,'finished',100);
$result['result']='success';
$result['status']='finished';
$result['continue']=0;
echo wp_json_encode($result);
die();
}
else
{
$offset+=$count;
$result=$iso->isolate_files($files);
$scanner->delete_all_files_list($search,$folder,$count);
if($result['result']=='success')
{
$iso->update_isolate_task($offset);
}
else
{
echo wp_json_encode($result);
die();
}
}
$ret['result']='success';
$ret['status']='running';
$ret['continue']=1;
echo wp_json_encode($ret);
die();
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function isolate_all_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$iso=new WPvivid_Isolate_Files();
$scanner=new WPvivid_Uploads_Scanner();
$offset=$iso->get_isolate_task_offset();
if($offset===false)
{
$result['result']='success';
$result['status']='finished';
$result['continue']=0;
echo wp_json_encode($result);
die();
}
$start=0;
$count=100;
$files=$scanner->get_all_files_list($search,$folder,$start,$count);
if($files===false||empty($files))
{
$iso->update_isolate_task(0,'finished',100);
$result['result']='success';
$result['status']='finished';
$result['continue']=0;
echo wp_json_encode($result);
die();
}
else
{
$offset+=$count;
$result=$iso->isolate_files($files);
$scanner->delete_all_files_list($search,$folder,$count);
if($result['result']=='success')
{
$iso->update_isolate_task($offset);
}
else
{
echo wp_json_encode($result);
die();
}
}
$ret['result']='success';
$ret['status']='running';
$ret['continue']=1;
echo wp_json_encode($ret);
die();
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function get_iso_list()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$folder = str_replace('\\\\', '\\', $folder);
$list=new WPvivid_Isolate_Files_List();
$iso=new WPvivid_Isolate_Files();
$result=$iso->get_isolate_files($search,$folder);
if(isset($_POST['page']))
{
$list->set_list($result,$_POST['page']);
}
else
{
$list->set_list($result);
}
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
if(empty($result))
{
$ret['empty']=1;
}
else
{
$ret['empty']=0;
}
echo wp_json_encode($ret);
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function delete_selected_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$json = $_POST['selected'];
$json = stripslashes($json);
$json = json_decode($json, true);
$files=array_map( 'sanitize_text_field', $json['selected']);
$iso=new WPvivid_Isolate_Files();
$iso->delete_files($files);
$search='';
if(isset($_POST['search']))
{
$search=sanitize_text_field($_POST['search']);
}
$folder='';
if(isset($_POST['folder']))
{
$folder=sanitize_text_field($_POST['folder']);
}
$folder = str_replace('\\\\', '\\', $folder);
$list=new WPvivid_Isolate_Files_List();
$iso=new WPvivid_Isolate_Files();
$result=$iso->get_isolate_files($search,$folder);
if(isset($_POST['page']))
{
$list->set_list($result,$_POST['page']);
}
else
{
$list->set_list($result);
}
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
echo wp_json_encode($ret);
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function delete_all_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$iso=new WPvivid_Isolate_Files();
$count=1000;
$files=$iso->get_isolate_files($search,$folder,$count);
if($files===false||empty($files))
{
$result['result']='success';
$result['status']='finished';
$result['continue']=0;
echo wp_json_encode($result);
die();
}
else
{
$iso->delete_files_ex($files);
}
$ret['result']='success';
$ret['status']='running';
$ret['continue']=1;
echo wp_json_encode($ret);
die();
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
//restore_selected_image
public function restore_selected_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$json = $_POST['selected'];
$json = stripslashes($json);
$json = json_decode($json, true);
$files=$json['selected'];
$iso=new WPvivid_Isolate_Files();
$iso->restore_files($files);
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$folder = str_replace('\\\\', '\\', $folder);
$list=new WPvivid_Isolate_Files_List();
$iso=new WPvivid_Isolate_Files();
$result=$iso->get_isolate_files($search,$folder);
if(isset($_POST['page']))
{
$list->set_list($result,$_POST['page']);
}
else
{
$list->set_list($result);
}
$list->prepare_items();
ob_start();
$list->display();
$html = ob_get_clean();
$ret['result']='success';
$ret['html']=$html;
echo wp_json_encode($ret);
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
public function restore_all_image()
{
check_ajax_referer( 'wpvivid_ajax', 'nonce' );
$check=current_user_can('manage_options');
$check=apply_filters('wpvivid_ajax_check_security',$check);
if(!$check)
{
die();
}
try
{
$search='';
if(isset($_POST['search']))
{
$search=$_POST['search'];
}
$folder='';
if(isset($_POST['folder']))
{
$folder=$_POST['folder'];
}
$iso=new WPvivid_Isolate_Files();
$count=100;
$files=$iso->get_isolate_files($search,$folder,$count);
if($files===false||empty($files))
{
$result['result']='success';
$result['status']='finished';
$result['continue']=0;
echo wp_json_encode($result);
die();
}
else
{
$iso->restore_files_ex($files);
}
$ret['result']='success';
$ret['status']='running';
$ret['continue']=1;
echo wp_json_encode($ret);
die();
}
catch (Exception $error)
{
$message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
error_log($message);
echo wp_json_encode(array('result'=>'failed','error'=>$message));
}
die();
}
}