function wpmc_list_uploaded_files($basedir, $dir) { wpmc_reset_issues(); global $wpmc_exclude_dir; $result = array(); $files = scandir($dir); $files = array_diff($files, $wpmc_exclude_dir); foreach ($files as $file) { $fullpath = trailingslashit($dir) . $file; if (is_dir($fullpath)) { $sub_files = wpmc_list_uploaded_files($basedir, $fullpath); $result = array_merge($result, $sub_files); continue; } array_push($result, wpmc_clean_uploaded_filename($fullpath)); } return $result; }
function wpmc_wp_ajax_wpmc_scan() { global $wpdb; $medias = $_POST['medias'] == 'true'; $uploads = $_POST['uploads'] == 'true'; $path = isset($_POST['path']) ? $_POST['path'] : null; $upload_folder = wp_upload_dir(); if ($medias || $uploads && empty($path)) { // Reset and prepare all the Attachment IDs of all the galleries wpmc_reset_issues(); delete_transient('wpmc_posts_with_shortcode'); wpmc_get_galleries_images(true); wpmc_get_original_images(true); } if ($uploads) { $files = wpmc_list_uploaded_files($path ? trailingslashit($upload_folder['basedir']) . $path : $upload_folder['basedir']); echo json_encode(array('results' => $files, 'success' => true, 'message' => __("Files retrieved.", 'wp-media-cleaner'))); die; } if ($medias) { // Prevent double scanning by removing filesystem entries that we have DB entries for $results = $wpdb->get_col("SELECT p.ID FROM {$wpdb->posts} p WHERE p.post_status = 'inherit' AND p.post_type = 'attachment'"); echo json_encode(array('results' => $results, 'success' => true, 'message' => __("Medias retrieved.", 'wp-media-cleaner'))); die; } // No task. echo json_encode(array('success' => false, 'message' => __("No task.", 'wp-media-cleaner'))); die; }