/**
  * Fixes environment in each wp-admin request
  *
  * @param Config  $config
  * @param bool    $force_all_checks
  *
  * @throws Util_Environment_Exceptions
  */
 public function fix_on_wpadmin_request($config, $force_all_checks)
 {
     $exs = new Util_Environment_Exceptions();
     $this->fix_folders($config, $exs);
     if ($config->get_boolean('config.check') || $force_all_checks) {
         if ($config->get_boolean('minify.enabled') && Util_Rule::can_check_rules() && $config->get_boolean('minify.rewrite')) {
             $this->rules_core_add($config, $exs);
         } else {
             $this->rules_core_remove($exs);
         }
         if ($config->get_boolean('minify.enabled') && $config->get_string('minify.engine') == 'file') {
             $this->rules_cache_add($config, $exs);
         } else {
             $this->rules_cache_remove($exs);
         }
     }
     // if no errors so far - check if rewrite actually works
     if (count($exs->exceptions()) <= 0 || true) {
         try {
             if ($config->get_boolean('minify.enabled') && $config->get_boolean('minify.rewrite') && $config->get_boolean('minify.debug')) {
                 $this->verify_rewrite_working();
             }
         } catch (\Exception $ex) {
             $exs->push($ex);
         }
         if ($config->get_boolean('minify.enabled')) {
             $this->verify_engine_working($config, $exs);
         }
     }
     if (count($exs->exceptions()) > 0) {
         throw $exs;
     }
 }
 /**
  * General tab
  *
  * @return void
  */
 function view()
 {
     global $current_user;
     $config_master = $this->_config_master;
     /**
      *
      *
      * @var $modules W3_ModuleStatus
      */
     $modules = Dispatcher::component('ModuleStatus');
     $pgcache_enabled = $modules->is_enabled('pgcache');
     $dbcache_enabled = $modules->is_enabled('dbcache');
     $objectcache_enabled = $modules->is_enabled('objectcache');
     $browsercache_enabled = $modules->is_enabled('browsercache');
     $minify_enabled = $modules->is_enabled('minify');
     $cdn_enabled = $modules->is_enabled('cdn');
     $varnish_enabled = $modules->is_enabled('varnish');
     $enabled = $modules->plugin_is_enabled();
     $enabled_checkbox = $modules->all_modules_enabled();
     $check_rules = Util_Rule::can_check_rules();
     $disc_enhanced_enabled = !(!$check_rules || !$this->is_master() && Util_Environment::is_wpmu() && $config_master->get_string('pgcache.engine') != 'file_generic');
     $can_empty_file = $modules->can_empty_file();
     $can_empty_varnish = $modules->can_empty_varnish();
     $cdn_mirror_purge = Cdn_Util::can_purge_all($modules->get_module_engine('cdn'));
     $file_nfs = $this->_config->get_boolean('pgcache.file.nfs') || $this->_config->get_boolean('minify.file.nfs');
     $file_locking = $this->_config->get_boolean('dbcache.file.locking') || $this->_config->get_boolean('objectcache.file.locking') || $this->_config->get_boolean('pgcache.file.locking') || $this->_config->get_boolean('minify.file.locking');
     $licensing_visible = (!Util_Environment::is_wpmu() || is_network_admin()) && !ini_get('w3tc.license_key') && get_transient('w3tc_license_status') != 'host_valid';
     $custom_areas = apply_filters("w3tc_settings_general_anchors", array());
     include W3TC_INC_DIR . '/options/general.php';
 }
Exemplo n.º 3
0
 /**
  * Minify tab
  *
  * @return void
  */
 function view()
 {
     $minify_enabled = $this->_config->get_boolean('minify.enabled');
     $config_state = Dispatcher::config_state();
     $minify_rewrite_disabled = !Util_Rule::can_check_rules() || $this->_config->is_sealed('minify.rewrite');
     $themes = Util_Theme::get_themes_by_key();
     $templates = array();
     $current_theme = Util_Theme::get_current_theme_name();
     $current_theme_key = '';
     foreach ($themes as $theme_key => $theme_name) {
         if ($theme_name == $current_theme) {
             $current_theme_key = $theme_key;
         }
         $templates[$theme_key] = Util_Theme::get_theme_templates($theme_name);
     }
     $css_imports_values = array('' => 'None', 'bubble' => 'Bubble', 'process' => 'Process');
     $auto = $this->_config->get_boolean('minify.auto');
     $js_theme = Util_Request::get_string('js_theme', $current_theme_key);
     $js_groups = $this->_config->get_array('minify.js.groups');
     $css_theme = Util_Request::get_string('css_theme', $current_theme_key);
     $css_groups = $this->_config->get_array('minify.css.groups');
     $js_engine = $this->_config->get_string('minify.js.engine');
     $css_engine = $this->_config->get_string('minify.css.engine');
     $html_engine = $this->_config->get_string('minify.html.engine');
     $css_imports = $this->_config->get_string('minify.css.imports');
     // Required for Update Media Query String button
     $browsercache_enabled = $this->_config->get_boolean('browsercache.enabled');
     $browsercache_update_media_qs = $this->_config->get_boolean('browsercache.cssjs.replace');
     include W3TC_INC_DIR . '/options/minify.php';
 }
Exemplo n.º 4
0
 public static function minified_url($minify_filename)
 {
     $path = Util_Environment::cache_blog_minify_dir();
     $filename = $path . '/' . $minify_filename;
     $c = Dispatcher::config();
     if (Util_Rule::can_check_rules() && $c->get_boolean('minify.rewrite')) {
         return Util_Environment::filename_to_url($filename);
     }
     return network_site_url('?w3tc_minify=' . $minify_filename);
 }
 /**
  * Install tab
  *
  * @return void
  */
 function view()
 {
     $rewrite_rules_descriptors = array();
     if (Util_Rule::can_check_rules()) {
         $e = Dispatcher::component('Root_Environment');
         $rewrite_rules_descriptors = $e->get_required_rules($this->_config);
         $other_areas = $e->get_other_instructions($this->_config);
     }
     include W3TC_INC_DIR . '/options/install.php';
 }
Exemplo n.º 6
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';
 }
checked($browsercache_nocookies, true);
?>
 /> <?php 
_e("Don't set cookies for static files", 'w3-total-cache');
?>
</label>
                    <br /><span class="description"><?php 
_e('Removes Set-Cookie header for responses.');
?>
</span>
                </th>
            </tr>
            <tr>
                <th colspan="2">
                    <?php 
$this->checkbox('browsercache.no404wp', !Util_Rule::can_check_rules());
?>
 <?php 
Util_Ui::e_config_label('browsercache.no404wp');
?>
</label>
                    <br /><span class="description"><?php 
_e('Reduce server load by allowing the web server to handle 404 (not found) errors for static files (images etc).', 'w3-total-cache');
?>
</span>
                    <br /><span class="description"><?php 
_e('If enabled - you may get 404 File Not Found response for some files generated on-the-fly by WordPress plugins. You may add those file URIs to 404 error exception list below to avoid that.', 'w3-total-cache');
?>
</span>
                </th>
            </tr>
Exemplo n.º 8
0
    </p>
</form>

<form id="minify_form" action="admin.php?page=<?php 
echo $this->_page;
?>
" method="post">
    <div class="metabox-holder">
        <?php 
Util_Ui::postbox_header(__('General', 'w3-total-cache'), '', 'general');
?>
        <table class="form-table">
            <tr>
                <th colspan="2">
                    <?php 
$this->checkbox('minify.rewrite', $minify_rewrite_disabled, '', true, !Util_Rule::can_check_rules() ? false : null);
?>
 <?php 
Util_Ui::e_config_label('minify.rewrite');
?>
</label><br />
                    <span class="description"><?php 
_e('If disabled, <acronym title="Cascading Style Sheet">CSS</acronym> and <acronym title="JavaScript">JS</acronym> embeddings will use GET variables instead of "fancy" links.', 'w3-total-cache');
?>
</span>
                </th>
            </tr>
            <tr>
                <th colspan="2">
                    <?php 
$this->checkbox('minify.reject.logged');
Exemplo n.º 9
0
    ?>
            <code><?php 
    _e('Not defined', 'w3-total-cache');
    ?>
</code>
            <?php 
}
?>
        </li>

        <li>
            <?php 
_e('URL rewrite:', 'w3-total-cache');
?>
            <?php 
if (Util_Rule::can_check_rules()) {
    ?>
            <code><?php 
    _e('Enabled', 'w3-total-cache');
    ?>
</code>
            <?php 
} else {
    ?>
            <code><?php 
    _e('Disabled', 'w3-total-cache');
    ?>
</code>
            <?php 
}
?>
Exemplo n.º 10
0
 /**
  * Exports min files to CDN
  *
  * @return array
  */
 function get_files_minify()
 {
     $files = array();
     if ($this->_config->get_boolean('minify.rewrite') && Util_Rule::can_check_rules() && (!$this->_config->get_boolean('minify.auto') || Cdn_Util::is_engine_mirror($this->_config->get_string('cdn.engine')))) {
         $minify = Dispatcher::component('Minify_Plugin');
         $document_root = Util_Environment::document_root();
         $minify_root = Util_Environment::cache_blog_dir('minify');
         $minify_path = ltrim(str_replace($document_root, '', $minify_root), '/');
         $urls = $minify->get_urls();
         // in WPMU + network admin (this code used for minify manual only)
         // common minify files are stored under context of main blog (i.e. 1)
         // but have urls of 0 blog, so download has to be used
         if ($this->_config->get_string('minify.engine') == 'file' && !(Util_Environment::is_wpmu() && is_network_admin())) {
             foreach ($urls as $url) {
                 Util_Http::get($url);
             }
             $files = Cdn_Util::search_files($minify_root, $minify_path, '*.css;*.js');
         } else {
             foreach ($urls as $url) {
                 $file = Util_Environment::normalize_file_minify($url);
                 $file = Util_Environment::translate_file($file);
                 if (!Util_Environment::is_url($file)) {
                     $file = $document_root . '/' . $file;
                     $file = ltrim(str_replace($minify_root, '', $file), '/');
                     $dir = dirname($file);
                     if ($dir) {
                         Util_File::mkdir($dir, 0777, $minify_root);
                     }
                     if (Util_Http::download($url, $minify_root . '/' . $file) !== false) {
                         $files[] = $minify_path . '/' . $file;
                     }
                 }
             }
         }
     }
     return $files;
 }