示例#1
0
 protected function __construct()
 {
     if (false !== get_transient('_my-wp-backup-activated')) {
         delete_transient('_my-wp-backup-activated');
         wp_redirect(Admin::get_page_url(''));
     }
     self::$info = get_file_data(__FILE__, array('name' => 'Plugin Name', 'pluginUri' => 'Plugin URI', 'supportUri' => 'Support URI', 'version' => 'Version', 'description' => 'Description', 'author' => 'Author', 'authorUri' => 'Author URI', 'textDomain' => 'Text Domain', 'domainPath' => 'Domain Path', 'slug' => 'Slug', 'license' => 'License', 'licenseUri' => 'License URI'));
     Admin::get_instance();
     $options = get_site_option('my-wp-backup-options', Admin::$options);
     self::$info['baseDir'] = plugin_dir_path(__FILE__);
     self::$info['baseDirUrl'] = plugin_dir_url(__FILE__);
     self::$info['backup_dir'] = trailingslashit(ABSPATH) . trailingslashit(ltrim($options['backup_dir'], '/'));
     self::$info['root_dir'] = trailingslashit(ABSPATH);
     if (defined('WP_CLI') && WP_CLI) {
         \WP_CLI::add_command('job', new Cli\Job());
         \WP_CLI::add_command('backup', new Cli\Backup());
     }
     add_action('wp_backup_run_job', array(Job::get_instance(), 'cron_run'));
     add_action('wp_backup_restore_backup', array(Backup::get_instance(), 'cron_run'));
     $version = get_site_option(self::KEY_VERSION);
     if (!$version || self::$info['version'] !== $version) {
         if ($this->update_options()) {
             update_site_option(self::KEY_VERSION, self::$info['version']);
         }
     }
 }
示例#2
0
文件: Job.php 项目: akochnov/fts
 /**
  * Run a job.
  * @synopsis <id> [--verbose]
  *
  * @param $args
  * @param $assoc
  *
  * @return bool
  */
 public function run($args, $assoc)
 {
     list($id) = $args;
     declare (ticks=1);
     if (function_exists('pcntl_signal')) {
         pcntl_signal(SIGINT, function () {
             echo 'woops' . "\n";
             delete_transient('my-wp-backup-running');
             exit;
         });
     }
     $job = \MyWPBackup\Admin\Job::get_instance();
     $job->cron_run(array($id, uniqid(), isset($assoc['verbose'])));
     return true;
 }
示例#3
0
文件: Admin.php 项目: akochnov/fts
 public function init()
 {
     wp_cache_add_non_persistent_groups('my-wp-backup');
     add_action('admin_post_MyWPBackup_settings', array($this, 'post_settings'));
     add_action('admin_post_MyWPBackup_import', array($this, 'post_import'));
     add_action(is_multisite() ? 'network_admin_notices' : 'admin_notices', array($this, 'admin_notice'));
     global $current_user;
     $user_id = $current_user->ID;
     if (is_multisite() && is_network_admin() || !is_multisite() && current_user_can('manage_options')) {
         if ('1' === filter_input(INPUT_GET, 'mwpb_notice_close', FILTER_SANITIZE_NUMBER_INT)) {
             add_user_meta($user_id, 'mwpb-notice-1', 'true', true);
         }
     }
     Job::get_instance();
     Backup::get_instance();
 }
示例#4
0
文件: Backup.php 项目: akochnov/fts
 public function get_archives()
 {
     $id = $this['job']['id'];
     $uniqid = $this['uniqid'];
     return array_map(function ($filename) use($id, $uniqid) {
         return Admin\Job::get_instance()->get_basedir($id, $uniqid) . $filename;
     }, $this['archives']);
 }