Linux puskom-ProLiant-DL385-Gen10 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64
/
home
/
puskom
/
mastur
/
backwpup
/
//home/puskom/mastur/backwpup/backwpup.php
<?php /* * Plugin Name: BackWPup * Plugin URI: http://backwpup.com * Description: WordPress Backup Plugin * Author: Inpsyde GmbH * Author URI: http://inpsyde.com * Version: 4.0.0 * Requires at least: 3.9 * Requires PHP: 7.2 * Text Domain: backwpup * Domain Path: /languages/ * Network: true * License: GPLv2+ */ use Inpsyde\BackWPup\Pro\License\Api\LicenseActivation; use Inpsyde\BackWPup\Pro\License\Api\LicenseDeactivation; use Inpsyde\BackWPup\Pro\License\Api\LicenseStatusRequest; use Inpsyde\BackWPup\Pro\License\Api\PluginInformation; use Inpsyde\BackWPup\Pro\License\Api\PluginUpdate; use Inpsyde\BackWPup\Pro\License\License; use Inpsyde\BackWPup\Pro\License\LicenseSettingsView; use Inpsyde\BackWPup\Pro\License\LicenseSettingUpdater; use Inpsyde\BackWPup\Pro\Settings\EncryptionSettingsView; use Inpsyde\BackWPup\Pro\Settings\EncryptionSettingUpdater; if (!class_exists(\BackWPup::class, false)) { /** * Main BackWPup Plugin Class. */ final class BackWPup { private static $instance; private static $plugin_data = []; private static $destinations = []; private static $registered_destinations = []; private static $job_types = []; private static $wizards = []; private static $is_pro = false; /** * Set needed filters and actions and load. */ private function __construct() { // Nothing else matters if we're not on the main site if (!is_main_network() && !is_main_site()) { return; } require_once __DIR__ . '/inc/functions.php'; if (file_exists(__DIR__ . '/vendor/autoload.php')) { require_once __DIR__ . '/vendor/autoload.php'; } self::$is_pro = file_exists(__DIR__ . '/inc/Pro/class-pro.php'); // Start upgrade if needed if (get_site_option('backwpup_version') !== self::get_plugin_data('Version') || !wp_next_scheduled('backwpup_check_cleanup') ) { BackWPup_Install::activate(); } $pluginData = [ 'version' => BackWPup::get_plugin_data('version'), 'pluginName' => 'backwpup-pro/backwpup.php', 'slug' => 'backwpup', ]; // Load pro features if (self::$is_pro) { $license = new License( get_site_option('license_product_id', ''), get_site_option('license_api_key', ''), get_site_option('license_instance_key') ?: wp_generate_password(12, false), get_site_option('license_status', 'inactive') ); $pluginUpdate = new PluginUpdate($license, $pluginData); $pluginInformation = new PluginInformation($license, $pluginData); $pro = new BackWPup_Pro($pluginUpdate, $pluginInformation); $pro->init(); } // WP-Cron if (defined('DOING_CRON') && DOING_CRON) { if (!empty($_GET['backwpup_run']) && class_exists(\BackWPup_Job::class)) { // Early disable caches BackWPup_Job::disable_caches(); // Add action for running jobs in wp-cron.php add_action('wp_loaded', [\BackWPup_Cron::class, 'cron_active'], PHP_INT_MAX); } else { // Add cron actions add_action('backwpup_cron', [\BackWPup_Cron::class, 'run']); add_action('backwpup_check_cleanup', [\BackWPup_Cron::class, 'check_cleanup']); } // If in cron the rest is not needed return; } // Deactivation hook register_deactivation_hook(__FILE__, [\BackWPup_Install::class, 'deactivate']); // Only in backend if (is_admin() && class_exists(\BackWPup_Admin::class)) { $settings_views = []; $settings_updaters = []; if (\BackWPup::is_pro()) { $activate = new LicenseActivation($pluginData); $deactivate = new LicenseDeactivation($pluginData); $status = new LicenseStatusRequest(); $settings_views = array_merge( $settings_views, [ new EncryptionSettingsView(), new LicenseSettingsView( $activate, $deactivate, $status ), ] ); $settings_updaters = array_merge( $settings_updaters, [ new EncryptionSettingUpdater(), new LicenseSettingUpdater( $activate, $deactivate, $status ), ] ); } $settings = new BackWPup_Page_Settings( $settings_views, $settings_updaters ); $admin = new BackWPup_Admin($settings); $admin->init(); if (get_site_option('backwpup_cfg_showadminbar')) { $adminBar = new BackWPup_Adminbar($admin); add_action('init', [$adminBar, 'init']); } new BackWPup_EasyCron(); } // Work with wp-cli if (defined(\WP_CLI::class) && WP_CLI && method_exists(\WP_CLI::class, 'add_command')) { WP_CLI::add_command('backwpup', \BackWPup_WP_CLI::class); } } /** * @return self */ public static function get_instance() { if (null === self::$instance) { self::$instance = new self(); } return self::$instance; } /** * @return bool */ public static function is_pro() { return self::$is_pro; } /** * Prevent Cloning. */ public function __clone() { wp_die('Cheatin’ huh?'); } /** * Prevent deserialization. */ public function __wakeup() { wp_die('Cheatin’ huh?'); } /** * get information about the Plugin. * * @param string $name Name of info to get or NULL to get all * * @return string|array */ public static function get_plugin_data($name = null) { if ($name) { $name = strtolower(trim($name)); } if (empty(self::$plugin_data)) { self::$plugin_data = get_file_data( __FILE__, [ 'name' => 'Plugin Name', 'version' => 'Version', ], 'plugin' ); self::$plugin_data['name'] = trim(self::$plugin_data['name']); //set some extra vars self::$plugin_data['basename'] = plugin_basename(__DIR__); self::$plugin_data['mainfile'] = __FILE__; self::$plugin_data['plugindir'] = untrailingslashit(__DIR__); self::$plugin_data['hash'] = get_site_option('backwpup_cfg_hash'); if (empty(self::$plugin_data['hash']) || strlen(self::$plugin_data['hash']) < 6 || strlen( self::$plugin_data['hash'] ) > 12) { self::$plugin_data['hash'] = self::get_generated_hash(6); update_site_option('backwpup_cfg_hash', self::$plugin_data['hash']); } if (defined('WP_TEMP_DIR') && is_dir(WP_TEMP_DIR)) { self::$plugin_data['temp'] = str_replace( '\\', '/', get_temp_dir() ) . 'backwpup-' . self::$plugin_data['hash'] . '/'; } else { $upload_dir = wp_upload_dir(); self::$plugin_data['temp'] = str_replace( '\\', '/', $upload_dir['basedir'] ) . '/backwpup-' . self::$plugin_data['hash'] . '-temp/'; } self::$plugin_data['running_file'] = self::$plugin_data['temp'] . 'backwpup-working.php'; self::$plugin_data['url'] = plugins_url('', __FILE__); self::$plugin_data['cacert'] = apply_filters( 'backwpup_cacert_bundle', ABSPATH . WPINC . '/certificates/ca-bundle.crt' ); //get unmodified WP Versions include ABSPATH . WPINC . '/version.php'; /** @var string $wp_version */ self::$plugin_data['wp_version'] = $wp_version; //Build User Agent self::$plugin_data['user-agent'] = self::$plugin_data['name'] . '/' . self::$plugin_data['version'] . '; WordPress/' . self::$plugin_data['wp_version'] . '; ' . home_url(); } if (!empty($name)) { return self::$plugin_data[$name]; } return self::$plugin_data; } /** * Generates a random hash. * * @param int $length * * @return string */ public static function get_generated_hash($length = 6) { $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $hash = ''; for ($i = 0; $i < 254; ++$i) { $hash .= $chars[random_int(0, 61)]; } return substr(md5($hash), random_int(0, 31 - $length), $length); } /** * Load Plugin Translation. * * @return bool Text domain loaded */ public static function load_text_domain() { if (is_textdomain_loaded('backwpup')) { return true; } return load_plugin_textdomain('backwpup', false, dirname(plugin_basename(__FILE__)) . '/languages'); } /** * Get a array of instances for Backup Destination's. * * @param $key string Key of Destination where get class instance from * * @return array BackWPup_Destinations */ public static function get_destination($key) { $key = strtoupper($key); if (isset(self::$destinations[$key]) && is_object(self::$destinations[$key])) { return self::$destinations[$key]; } $reg_dests = self::get_registered_destinations(); if (!empty($reg_dests[$key]['class'])) { self::$destinations[$key] = new $reg_dests[$key]['class'](); } else { return null; } return self::$destinations[$key]; } /** * Get a array of registered Destination's for Backups. * * @return array BackWPup_Destinations */ public static function get_registered_destinations() { //only run it one time if (!empty(self::$registered_destinations)) { return self::$registered_destinations; } //add BackWPup Destinations // to folder self::$registered_destinations['FOLDER'] = [ 'class' => \BackWPup_Destination_Folder::class, 'info' => [ 'ID' => 'FOLDER', 'name' => __('Folder', 'backwpup'), 'description' => __('Backup to Folder', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => [], 'classes' => [], ], ]; // backup with mail self::$registered_destinations['EMAIL'] = [ 'class' => \BackWPup_Destination_Email::class, 'info' => [ 'ID' => 'EMAIL', 'name' => __('Email', 'backwpup'), 'description' => __('Backup sent via email', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => [], 'classes' => [], ], ]; // backup to ftp self::$registered_destinations['FTP'] = [ 'class' => \BackWPup_Destination_Ftp::class, 'info' => [ 'ID' => 'FTP', 'name' => __('FTP', 'backwpup'), 'description' => __('Backup to FTP', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => ['ftp_nb_fput'], 'classes' => [], ], ]; // backup to dropbox self::$registered_destinations['DROPBOX'] = [ 'class' => \BackWPup_Destination_Dropbox::class, 'info' => [ 'ID' => 'DROPBOX', 'name' => __('Dropbox', 'backwpup'), 'description' => __('Backup to Dropbox', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => ['curl_exec'], 'classes' => [], ], ]; // Backup to S3 self::$registered_destinations['S3'] = [ 'class' => \BackWPup_Destination_S3::class, 'info' => [ 'ID' => 'S3', 'name' => __('S3 Service', 'backwpup'), 'description' => __('Backup to an S3 Service', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => ['curl_exec'], 'classes' => [\XMLWriter::class], ], ]; // backup to MS Azure self::$registered_destinations['MSAZURE'] = [ 'class' => \BackWPup_Destination_MSAzure::class, 'info' => [ 'ID' => 'MSAZURE', 'name' => __('MS Azure', 'backwpup'), 'description' => __('Backup to Microsoft Azure (Blob)', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '5.6.0', 'functions' => [], 'classes' => [], ], ]; // backup to Rackspace Cloud self::$registered_destinations['RSC'] = [ 'class' => \BackWPup_Destination_RSC::class, 'info' => [ 'ID' => 'RSC', 'name' => __('RSC', 'backwpup'), 'description' => __('Backup to Rackspace Cloud Files', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => ['curl_exec'], 'classes' => [], ], ]; // backup to Sugarsync self::$registered_destinations['SUGARSYNC'] = [ 'class' => \BackWPup_Destination_SugarSync::class, 'info' => [ 'ID' => 'SUGARSYNC', 'name' => __('SugarSync', 'backwpup'), 'description' => __('Backup to SugarSync', 'backwpup'), ], 'can_sync' => false, 'needed' => [ 'php_version' => '', 'functions' => ['curl_exec'], 'classes' => [], ], ]; //Hook for adding Destinations like above self::$registered_destinations = apply_filters( 'backwpup_register_destination', self::$registered_destinations ); //check BackWPup Destinations foreach (self::$registered_destinations as $dest_key => $dest) { self::$registered_destinations[$dest_key]['error'] = ''; // check PHP Version if (!empty($dest['needed']['php_version']) && version_compare( PHP_VERSION, $dest['needed']['php_version'], '<' )) { self::$registered_destinations[$dest_key]['error'] .= sprintf( __( 'PHP Version %1$s is to low, you need Version %2$s or above.', 'backwpup' ), PHP_VERSION, $dest['needed']['php_version'] ) . ' '; self::$registered_destinations[$dest_key]['class'] = null; } //check functions exists if (!empty($dest['needed']['functions'])) { foreach ($dest['needed']['functions'] as $function_need) { if (!function_exists($function_need)) { self::$registered_destinations[$dest_key]['error'] .= sprintf( __( 'Missing function "%s".', 'backwpup' ), $function_need ) . ' '; self::$registered_destinations[$dest_key]['class'] = null; } } } //check classes exists if (!empty($dest['needed']['classes'])) { foreach ($dest['needed']['classes'] as $class_need) { if (!class_exists($class_need)) { self::$registered_destinations[$dest_key]['error'] .= sprintf( __( 'Missing class "%s".', 'backwpup' ), $class_need ) . ' '; self::$registered_destinations[$dest_key]['class'] = null; } } } } return self::$registered_destinations; } /** * Gets a array of instances from Job types. * * @return array BackWPup_JobTypes */ public static function get_job_types() { if (!empty(self::$job_types)) { return self::$job_types; } self::$job_types['DBDUMP'] = new BackWPup_JobType_DBDump(); self::$job_types['FILE'] = new BackWPup_JobType_File(); self::$job_types['WPEXP'] = new BackWPup_JobType_WPEXP(); self::$job_types['WPPLUGIN'] = new BackWPup_JobType_WPPlugin(); self::$job_types['DBCHECK'] = new BackWPup_JobType_DBCheck(); self::$job_types = apply_filters('backwpup_job_types', self::$job_types); //remove types can't load foreach (self::$job_types as $key => $job_type) { if (empty($job_type) || !is_object($job_type)) { unset(self::$job_types[$key]); } } return self::$job_types; } /** * Gets a array of instances from Wizards. * * @return array BackWPup_Pro_Wizards */ public static function get_wizards() { if (!empty(self::$wizards)) { return self::$wizards; } self::$wizards = apply_filters('backwpup_pro_wizards', self::$wizards); //remove wizards can't load foreach (self::$wizards as $key => $wizard) { if (empty($wizard) || !is_object($wizard)) { unset(self::$wizards[$key]); } } return self::$wizards; } } require_once __DIR__ . '/inc/class-system-requirements.php'; require_once __DIR__ . '/inc/class-system-tests.php'; $system_requirements = new BackWPup_System_Requirements(); $system_tests = new BackWPup_System_Tests($system_requirements); // Don't activate on anything less than PHP 5.3 or WordPress 3.9 if (!$system_tests->is_php_version_compatible() || !$system_tests->is_wp_version_compatible()) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; deactivate_plugins(__FILE__); exit( sprintf( esc_html__( 'BackWPup requires PHP version %1$s with spl extension or greater and WordPress %2$s or greater.', 'backwpup' ), $system_requirements->php_minimum_version(), $system_requirements->wp_minimum_version() ) ); } //Start Plugin add_action('plugins_loaded', [\BackWPup::class, 'get_instance'], 11); }