Пример #1
0
 /**
  * Runs plugin
  */
 function run()
 {
     $cdn_engine = $this->_config->get_string('cdn.engine');
     if (Cdn_Util::is_engine_fsd($cdn_engine)) {
         $this->run_fsd();
         return;
     }
     add_filter('cron_schedules', array($this, 'cron_schedules'));
     if (!$this->_config->get_boolean('cdn.debug')) {
         add_filter('w3tc_footer_comment', array($this, 'w3tc_footer_comment'));
     }
     if (!Cdn_Util::is_engine_mirror($cdn_engine)) {
         add_action('delete_attachment', array($this, 'delete_attachment'));
         add_filter('update_attached_file', array($this, 'update_attached_file'));
         add_filter('wp_update_attachment_metadata', array($this, 'update_attachment_metadata'));
         add_action('w3_cdn_cron_queue_process', array($this, 'cron_queue_process'));
         add_action('w3_cdn_cron_upload', array($this, 'cron_upload'));
         add_action('switch_theme', array($this, 'switch_theme'));
         add_filter('update_feedback', array($this, 'update_feedback'));
     }
     add_filter('w3tc_admin_bar_menu', array($this, 'w3tc_admin_bar_menu'));
     if (is_admin()) {
         add_action('w3tc_config_ui_save-w3tc_cdn', array($this, 'change_canonical_header'), 0, 0);
         add_filter('w3tc_module_is_running-cdn', array($this, 'cdn_is_running'));
     }
     /**
      * Start rewrite engine
      */
     if ($this->can_cdn()) {
         Util_Bus::add_ob_callback('cdn', array($this, 'ob_callback'));
     }
     if (is_admin() && Cdn_Util::can_purge($cdn_engine)) {
         add_filter('media_row_actions', array($this, 'media_row_actions'), 0, 2);
     }
 }
Пример #2
0
 /**
  * Page cache tab
  *
  * @return void
  */
 function view()
 {
     global $wp_rewrite;
     $feeds = $wp_rewrite->feeds;
     $feed_key = array_search('feed', $feeds);
     if ($feed_key !== false) {
         unset($feeds[$feed_key]);
     }
     $default_feed = get_default_feed();
     $pgcache_enabled = $this->_config->get_boolean('pgcache.enabled');
     $permalink_structure = get_option('permalink_structure');
     $varnish_enabled = $this->_config->get_boolean('varnish.enabled');
     $cdn_mirror_purge_enabled = Cdn_Util::is_engine_fsd($this->_config->get_string('cdn.engine')) && $this->_config->get_boolean('cdn.enabled');
     include W3TC_INC_DIR . '/options/pgcache.php';
 }
Пример #3
0
 /**
  * CDN tab
  *
  * @return void
  */
 function view()
 {
     $config = Dispatcher::config();
     $cdn_engine = $config->get_string('cdn.engine');
     if (Cdn_Util::is_engine_fsd($cdn_engine)) {
         do_action('w3tc_settings_cdn');
         return;
     }
     $cdn_enabled = $config->get_boolean('cdn.enabled');
     $cdn_mirror = Cdn_Util::is_engine_mirror($cdn_engine);
     $cdn_mirror_purge_all = Cdn_Util::can_purge_all($cdn_engine);
     $cdn_common = Dispatcher::component('Cdn_Core');
     $cdn = $cdn_common->get_cdn();
     $cdn_supports_header = $cdn->headers_support() == W3TC_CDN_HEADER_MIRRORING;
     $minify_enabled = $config->get_boolean('minify.enabled') && Util_Rule::can_check_rules() && $config->get_boolean('minify.rewrite') && (!$config->get_boolean('minify.auto') || Cdn_Util::is_engine_mirror($config->get_string('cdn.engine')));
     $cookie_domain = $this->get_cookie_domain();
     $set_cookie_domain = $this->is_cookie_domain_enabled();
     // Required for Update Media Query String button
     $browsercache_enabled = $config->get_boolean('browsercache.enabled');
     $browsercache_update_media_qs = $config->get_boolean('browsercache.cssjs.replace') || $config->get_boolean('browsercache.other.replace');
     if (in_array($cdn_engine, array('netdna', 'maxcdn'))) {
         $pull_zones = array();
         $authorization_key = $config->get_string("cdn.{$cdn_engine}.authorization_key");
         $zone_id = $config->get_integer("cdn.{$cdn_engine}.zone_id");
         $alias = $consumerkey = $consumersecret = '';
         if ($authorization_key) {
             $keys = explode('+', $authorization_key);
             if (sizeof($keys) == 3) {
                 list($alias, $consumerkey, $consumersecret) = $keys;
             }
         }
         $authorized = $authorization_key != '' && $alias && $consumerkey && $consumersecret;
         $have_zone = $zone_id != 0;
         if ($authorized) {
             require_once W3TC_LIB_NETDNA_DIR . '/NetDNA.php';
             try {
                 $api = new \NetDNA($alias, $consumerkey, $consumersecret);
                 $pull_zones = $api->get_zones_by_url(get_home_url());
             } catch (\Exception $ex) {
                 Util_Ui::error_box('<p>There is an error with your CDN settings: ' . $ex->getMessage() . '</p>');
             }
         }
     }
     include W3TC_INC_DIR . '/options/cdn.php';
 }
Пример #4
0
 function run()
 {
     $config_labels = new Cdn_ConfigLabels();
     add_filter('w3tc_config_labels', array($config_labels, 'config_labels'));
     $c = Dispatcher::config();
     $cdn_engine = $c->get_string('cdn.engine');
     if ($c->get_boolean('cdn.enabled') && !Cdn_Util::is_engine_fsd($cdn_engine)) {
         $admin_notes = new Cdn_AdminNotes();
         add_filter('w3tc_notes', array($admin_notes, 'w3tc_notes'));
         add_filter('w3tc_errors', array($admin_notes, 'w3tc_errors'));
     }
     // attach to actions without firing class loading at all without need
     if ($cdn_engine == 'cloudfront_fsd') {
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_CloudFrontFsd_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_ajax', array('\\W3TC\\Cdn_CloudFrontFsd_Popup', 'w3tc_ajax'));
         add_action('w3tc_settings_cdn', array('\\W3TC\\Cdn_CloudFrontFsd_Page', 'w3tc_settings_cdn'));
     } elseif ($cdn_engine == 'google_drive') {
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_GoogleDrive_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_settings_cdn_boxarea_configuration', array('\\W3TC\\Cdn_GoogleDrive_Page', 'w3tc_settings_cdn_boxarea_configuration'));
     } elseif ($cdn_engine == 'highwinds') {
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_Highwinds_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_ajax', array('\\W3TC\\Cdn_Highwinds_Popup', 'w3tc_ajax'));
         add_action('admin_init_w3tc_dashboard', array('\\W3TC\\Cdn_Highwinds_Widget', 'admin_init_w3tc_dashboard'));
         add_action('w3tc_ajax_cdn_highwinds_widgetdata', array('\\W3TC\\Cdn_Highwinds_Widget', 'w3tc_ajax_cdn_highwinds_widgetdata'));
         add_action('w3tc_settings_cdn_boxarea_configuration', array('\\W3TC\\Cdn_Highwinds_Page', 'w3tc_settings_cdn_boxarea_configuration'));
     } elseif ($cdn_engine == 'maxcdn_fsd') {
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_MaxCdnFsd_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_ajax', array('\\W3TC\\Cdn_MaxCdnFsd_Popup', 'w3tc_ajax'));
         add_action('w3tc_settings_cdn', array('\\W3TC\\Cdn_MaxCdnFsd_Page', 'w3tc_settings_cdn'));
     } elseif ($cdn_engine == 'rackspace_cdn') {
         add_filter('w3tc_admin_actions', array('\\W3TC\\Cdn_RackSpaceCdn_Page', 'w3tc_admin_actions'));
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_RackSpaceCdn_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_ajax', array('\\W3TC\\Cdn_RackSpaceCdn_Popup', 'w3tc_ajax'));
         add_action('w3tc_settings_cdn_boxarea_configuration', array('\\W3TC\\Cdn_RackSpaceCdn_Page', 'w3tc_settings_cdn_boxarea_configuration'));
     } elseif ($cdn_engine == 'rscf') {
         add_action('admin_print_scripts-performance_page_w3tc_cdn', array('\\W3TC\\Cdn_RackSpaceCloudFiles_Page', 'admin_print_scripts_w3tc_cdn'));
         add_action('w3tc_ajax', array('\\W3TC\\Cdn_RackSpaceCloudFiles_Popup', 'w3tc_ajax'));
         add_action('w3tc_settings_cdn_boxarea_configuration', array('\\W3TC\\Cdn_RackSpaceCloudFiles_Page', 'w3tc_settings_cdn_boxarea_configuration'));
     }
     add_action('w3tc_settings_general_boxarea_cdn', array($this, 'w3tc_settings_general_boxarea_cdn'));
 }