%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/renta.eco-n-tech.co.uk/wp-content/plugins/Archive/classes/package/
Upload File :
Create Path :
Current File : /var/www/renta.eco-n-tech.co.uk/wp-content/plugins/Archive/classes/package/class.pack.multisite.php

<?php

defined("ABSPATH") or die("");
if (!defined('DUPLICATOR_PRO_VERSION')) {
    exit;
} // Exit if accessed directly

class DUP_PRO_Multisite
{

    public $FilterSites = array();
    protected $tablesFilters = null;
    public function getDirsToFilter()
    {
        if (!empty($this->FilterSites)) {
            $path_arr       = array();
            $wp_content_dir = str_replace("\\", "/", WP_CONTENT_DIR);
            foreach ($this->FilterSites as $site_id) {
                if ($site_id == 1) {
                    if (DUP_PRO_MU::getGeneration() == DUP_PRO_MU_Generations::ThreeFivePlus) {
                            $uploads_dir = $wp_content_dir . '/uploads';
                        foreach (scandir($uploads_dir) as $node) {
                            $fullpath = $uploads_dir . '/' . $node;
                            if ($node == '.' || $node == '.htaccess' || $node == '..') {
                                        continue;
                            }
                            if (is_dir($fullpath)) {
                                if ($node != 'sites') {
                                    $path_arr[] = $fullpath;
                                }
                            }
                        }
                    } else {
                                $path_arr[] = $wp_content_dir . '/uploads';
                    }
                } else {
                    if (file_exists($wp_content_dir . '/uploads/sites/' . $site_id)) {
                        $path_arr[] = $wp_content_dir . '/uploads/sites/' . $site_id;
                    }
                    if (file_exists($wp_content_dir . '/blogs.dir/' . $site_id)) {
                        $path_arr[] = $wp_content_dir . '/blogs.dir/' . $site_id;
                    }
                }
            }
            return $path_arr;
        } else {
            return array();
        }
    }

    public function getTablesToFilter()
    {
        if (is_null($this->tablesFilters)) {
            global $wpdb;
            $this->tablesFilters = array();
            if (!empty($this->FilterSites)) {
                $prefixes = array();
                foreach ($this->FilterSites as $site_id) {
                    $prefix = $wpdb->get_blog_prefix($site_id);
                    if ($site_id == 1) {
                            $default_tables = array(
                            'commentmeta',
                            'comments',
                            'links',
                            //'options', include always options table
                            'postmeta',
                            'posts',
                            'terms',
                            'term_relationships',
                            'term_taxonomy',
                            'termmeta',
                                    );
                            foreach ($default_tables as $tb) {
                                $this->tablesFilters[] = $prefix . $tb;
                            }
                    } else {
                        $prefixes[] = $prefix;
                    }
                }

                if (count($prefixes)) {
                    $prefixes = array_map('preg_quote', $prefixes);
            // no delimiter needed in preg_quote
                    $regex    = '^(' . implode('|', $prefixes) . ').+';
                    $sql_query           = "SHOW TABLES WHERE Tables_in_" . esc_sql(DB_NAME) . " REGEXP '" . esc_sql($regex) . "'";
                    DUP_PRO_Log::trace('TABLE QUERY PREFIX FILTER: ' . $sql_query);
                    $sub_tables          = $wpdb->get_col($sql_query);
                    $this->tablesFilters = array_merge($this->tablesFilters, $sub_tables);
                }
            }
            DUP_PRO_Log::traceObject('TABLES TO FILTERS:', $this->tablesFilters);
        }
        return $this->tablesFilters;
    }
}

Zerion Mini Shell 1.0