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;
}
Ejemplo n.º 2
0
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;
}