WordPress.org

Plugin Directory

Changeset 430980


Ignore:
Timestamp:
08/31/11 01:53:26 (3 years ago)
Author:
fredericktownes
Message:
 
Location:
w3-total-cache/trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • w3-total-cache/trunk/inc/define.php

    r428862 r430980  
    66 
    77define('W3TC', true); 
    8 define('W3TC_VERSION', '0.9.2.4'); 
     8define('W3TC_VERSION', '0.9.2.5b'); 
    99define('W3TC_POWERED_BY', 'W3 Total Cache/' . W3TC_VERSION); 
    1010define('W3TC_EMAIL', 'w3tc@w3-edge.com'); 
  • w3-total-cache/trunk/inc/options/common/header.php

    r420800 r430980  
    1919    </div> 
    2020    <?php endforeach; ?> 
     21 
     22    <?php if (count($this->_rule_errors) > 0): ?> 
     23    <div class="error"> 
     24        <p> 
     25            The following configuration changes are needed to ensure optimal performance:<br /> 
     26            If permission allow this can be done automatically, by clicking here: 
     27            <?php echo $this->_rule_errors_autoinstall ?>. 
     28            <?php echo $this->_rule_errors_hide ?> 
     29        </p> 
     30        <input type="button" class="button w3tc-show-rule-error-details" value="show details" /> 
     31        <div class="w3tc-rule-error-details"> 
     32            <ul style="padding-left: 20px"> 
     33                <?php foreach ($this->_rule_errors as $error): ?> 
     34                    <li><?php echo $error[0]; ?></li> 
     35                <?php endforeach; ?> 
     36            </ul> 
     37        </div> 
     38        <p></p> 
     39    </div> 
     40    <?php endif; ?> 
    2141 
    2242    <?php foreach ($this->_notes as $note): ?> 
  • w3-total-cache/trunk/lib/W3/CloudFlare.php

    r410604 r430980  
    7474 
    7575        if (!is_wp_error($response)) { 
    76             return json_decode($response['body']); 
    77         } 
     76            $response = json_decode($response['body']); 
     77            if (isset($response->result) && $response->result == 'error') { 
     78                $this->_set_last_error(isset($response->msg) ? $response->msg : 'Unknown error'); 
     79            } else { 
     80                $this->clear_last_error(); 
     81            } 
     82            return $response; 
     83        } else { 
     84            $this->_set_last_error($response->get_error_message()); 
     85        } 
    7886 
    7987        return false; 
     
    114122            } 
    115123        } 
     124    } 
     125 
     126    function get_last_error() { 
     127        return get_option('w3tc_clourflare_last_error'); 
     128    } 
     129 
     130    function clear_last_error() { 
     131        update_option('w3tc_clourflare_last_error', false); 
     132    } 
     133 
     134    function _set_last_error($message) { 
     135        update_option('w3tc_clourflare_last_error', $message); 
    116136    } 
    117137 
  • w3-total-cache/trunk/lib/W3/Db.php

    r420800 r430980  
    6969 
    7070    /** 
    71      * PHP5 constructor 
    72      * 
     71     * Request-global cache reject reason 
     72     * null until filled 
     73     * 
     74     * @var string 
     75     */ 
     76    var $cache_reject_reason = null; 
     77 
     78    /** 
     79     * Result of check if caching is possible at the level of current http request 
     80     * null until filled 
     81     * 
     82     * @var boolean 
     83     */ 
     84    var $_can_cache_once_per_request_result = null; 
     85 
     86    /* 
    7387     * @param string $dbuser 
    7488     * @param string $dbpassword 
     
    325339    function _can_cache($sql, &$cache_reject_reason) { 
    326340        /** 
    327          * Skip if disabled 
    328          */ 
    329         if (!$this->_config->get_boolean('dbcache.enabled')) { 
    330             $cache_reject_reason = 'Database caching is disabled'; 
    331  
    332             return false; 
     341         * Skip if request-wide reject reason specified.  
     342         * Note - as a result requedt-wide checks are done only once per request 
     343         */ 
     344        if (!is_null($this->cache_reject_reason)) { 
     345            $cache_reject_reason = 'Request-wide ' . $this->cache_reject_reason; 
     346 
     347            return false; 
     348        } 
     349        
     350        /** 
     351         * Do once-per-request check if needed 
     352         */ 
     353        if (is_null($this->_can_cache_once_per_request_result)) { 
     354            $this->_can_cache_once_per_request_result = $this->_can_cache_once_per_request(); 
     355            if (!$this->_can_cache_once_per_request_result) { 
     356                $cache_reject_reason = 'Request-wide ' . $this->cache_reject_reason; 
     357                return false; 
     358            } 
    333359        } 
    334360 
     
    337363         */ 
    338364        if (defined('DONOTCACHEDB') && DONOTCACHEDB) { 
    339             $cache_reject_reason = 'DONOTCACHEDB constant is defined'; 
     365            $this->cache_reject_reason = 'DONOTCACHEDB constant is defined'; 
     366            $cache_reject_reason = $this->cache_reject_reason; 
    340367 
    341368            return false; 
     
    346373         */ 
    347374        if (defined('DOING_AJAX')) { 
    348             $cache_reject_reason = 'Doing AJAX'; 
     375            $this->cache_reject_reason = 'Doing AJAX'; 
     376            $cache_reject_reason = $this->cache_reject_reason; 
    349377 
    350378            return false; 
     
    355383         */ 
    356384        if (defined('DOING_CRON')) { 
    357             $cache_reject_reason = 'Doing cron'; 
     385            $this->cache_reject_reason = 'Doing cron'; 
     386            $cache_reject_reason = $this->cache_reject_reason; 
    358387 
    359388            return false; 
     
    364393         */ 
    365394        if (defined('APP_REQUEST')) { 
    366             $cache_reject_reason = 'Application request'; 
     395            $this->cache_reject_reason = 'Application request'; 
     396            $cache_reject_reason = $this->cache_reject_reason; 
    367397 
    368398            return false; 
     
    373403         */ 
    374404        if (defined('XMLRPC_REQUEST')) { 
    375             $cache_reject_reason = 'XMLRPC request'; 
     405            $this->cache_reject_reason = 'XMLRPC request'; 
     406            $cache_reject_reason = $this->cache_reject_reason; 
    376407 
    377408            return false; 
     
    382413         */ 
    383414        if (defined('WP_ADMIN')) { 
    384             $cache_reject_reason = 'wp-admin'; 
     415            $this->cache_reject_reason = 'wp-admin'; 
     416            $cache_reject_reason = $this->cache_reject_reason; 
    385417 
    386418            return false; 
     
    406438 
    407439        /** 
     440         * Skip if user is logged in 
     441         */ 
     442        if ($this->_config->get_boolean('dbcache.reject.logged') && !$this->_check_logged_in()) { 
     443            $this->cache_reject_reason = 'User is logged in'; 
     444            $cache_reject_reason = $this->cache_reject_reason; 
     445 
     446            return false; 
     447        } 
     448 
     449        return true; 
     450    } 
     451 
     452    /** 
     453     * Check if can cache sql, checks which have constant results during whole request 
     454     * 
     455     * @return boolean 
     456     */ 
     457    function _can_cache_once_per_request() { 
     458        /** 
     459         * Skip if disabled 
     460         */ 
     461        if (!$this->_config->get_boolean('dbcache.enabled')) { 
     462            $this->cache_reject_reason = 'Database caching is disabled'; 
     463 
     464            return false; 
     465        } 
     466 
     467        /** 
    408468         * Skip if request URI is rejected 
    409469         */ 
    410470        if (!$this->_check_request_uri()) { 
    411             $cache_reject_reason = 'Request URI is rejected'; 
     471            $this->cache_reject_reason = 'Request URI is rejected'; 
    412472 
    413473            return false; 
     
    418478         */ 
    419479        if (!$this->_check_cookies()) { 
    420             $cache_reject_reason = 'Cookie is rejected'; 
    421  
    422             return false; 
    423         } 
    424  
    425         /** 
    426          * Skip if user is logged in 
    427          */ 
    428         if ($this->_config->get_boolean('dbcache.reject.logged') && !$this->_check_logged_in()) { 
    429             $cache_reject_reason = 'User is logged in'; 
     480            $this->cache_reject_reason = 'Cookie is rejected'; 
    430481 
    431482            return false; 
  • w3-total-cache/trunk/lib/W3/ObjectCache.php

    r419954 r430980  
    8787     * @var string 
    8888     */ 
    89     var $_cache_reject_reason = ''; 
     89    var $cache_reject_reason = ''; 
    9090 
    9191    /** 
     
    382382 
    383383        if (!$this->_caching) { 
    384             echo '<strong>Reject reason</strong>: ' . $this->_cache_reject_reason . '<br />'; 
     384            echo '<strong>Reject reason</strong>: ' . $this->cache_reject_reason . '<br />'; 
    385385        } 
    386386 
     
    501501         */ 
    502502        if (!$this->_config->get_boolean('objectcache.enabled')) { 
    503             $this->_cache_reject_reason = 'Object caching is disabled'; 
     503            $this->cache_reject_reason = 'Object caching is disabled'; 
    504504 
    505505            return false; 
     
    510510         */ 
    511511        if (defined('DONOTCACHEOBJECT') && DONOTCACHEOBJECT) { 
    512             $this->_cache_reject_reason = 'DONOTCACHEOBJECT constant is defined'; 
     512            $this->cache_reject_reason = 'DONOTCACHEOBJECT constant is defined'; 
    513513 
    514514            return false; 
     
    594594 
    595595        if (!$this->_caching) { 
    596             $debug_info .= sprintf("%s%s\r\n", str_pad('Reject reason: ', 20), $this->_cache_reject_reason); 
     596            $debug_info .= sprintf("%s%s\r\n", str_pad('Reject reason: ', 20), $this->cache_reject_reason); 
    597597        } 
    598598 
  • w3-total-cache/trunk/lib/W3/Plugin/BrowserCacheAdmin.php

    r419604 r430980  
    356356 
    357357        $this->_generate_rules_cache_nginx($rules, $cssjs_types, 'cssjs'); 
    358         $this->_generate_rules_cache_nginx($rules, $html_types, 'html'); 
     358        $this->_generate_rules_cache_nginx($rules, $html_types, 'html', true); 
    359359        $this->_generate_rules_cache_nginx($rules, $other_types, 'other'); 
    360360 
     
    372372     * @return void 
    373373     */ 
    374     function _generate_rules_cache_nginx(&$rules, $mime_types, $section) { 
     374    function _generate_rules_cache_nginx(&$rules, $mime_types, $section, $write_location = false) { 
    375375        $expires = $this->_config->get_boolean('browsercache.' . $section . '.expires'); 
    376376        $cache_control = $this->_config->get_boolean('browsercache.' . $section . '.cache.control'); 
     
    419419            if ($w3tc) { 
    420420                $rules .= "    add_header X-Powered-By \"" . W3TC_POWERED_BY . "\";\n"; 
     421            } 
     422            if ($write_location) { 
     423                $rules .= '    try_files $uri $uri/ $uri.html /index.php?$args;' . "\n"; 
    421424            } 
    422425 
  • w3-total-cache/trunk/lib/W3/Plugin/MinifyAdmin.php

    r419604 r430980  
    691691 
    692692    /** 
     693     * Check if core rules exists 
     694     * 
     695     * @return boolean 
     696     */ 
     697    function check_rules_has_core() { 
     698        $path = w3_get_minify_rules_core_path(); 
     699 
     700        return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_MINIFY_CORE, W3TC_MARKER_END_MINIFY_CORE)); 
     701    } 
     702 
     703    /** 
     704     * Check if legacy rules exists 
     705     * 
     706     * @return boolean 
     707     */ 
     708    function check_rules_has_legacy() { 
     709        $path = w3_get_minify_rules_core_path(); 
     710 
     711        return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_MINIFY_LEGACY, W3TC_MARKER_END_MINIFY_LEGACY)); 
     712    } 
     713 
     714    /** 
    693715     * Checks if core rules exists 
    694716     * 
     
    713735        return (($data = @file_get_contents($path)) && strstr(w3_clean_rules($data), w3_clean_rules($search)) !== false); 
    714736    } 
    715  
    716  
    717     /** 
    718      * Check if legacy rules exists 
    719      * 
    720      * @return boolean 
    721      */ 
    722     function check_rules_legacy() { 
    723         $path = w3_get_minify_rules_core_path(); 
    724  
    725         return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_MINIFY_LEGACY, W3TC_MARKER_END_MINIFY_LEGACY)); 
    726     } 
    727737} 
  • w3-total-cache/trunk/lib/W3/Plugin/PgCacheAdmin.php

    r428862 r430980  
    209209         */ 
    210210        require_once W3TC_INC_DIR . '/functions/http.php'; 
     211        require_once W3TC_INC_DIR . '/functions/url.php'; 
    211212 
    212213        foreach ($queue as $url) { 
     
    14511452 
    14521453    /** 
     1454     * Check if legacy rules exists 
     1455     * 
     1456     * @return boolean 
     1457     */ 
     1458    function check_rules_has_legacy() { 
     1459        $path = w3_get_pgcache_rules_core_path(); 
     1460 
     1461        return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_PGCACHE_LEGACY, W3TC_MARKER_END_PGCACHE_LEGACY)); 
     1462    } 
     1463     
     1464    /** 
     1465     * Check if legacy rules exists 
     1466     * 
     1467     * @return boolean 
     1468     */ 
     1469    function check_rules_has_core() { 
     1470        $path = w3_get_pgcache_rules_core_path(); 
     1471 
     1472        return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_PGCACHE_CORE, W3TC_MARKER_END_PGCACHE_CORE)); 
     1473    } 
     1474     
     1475    /** 
    14531476     * Checks if core rules exists 
    14541477     * 
     
    14751498 
    14761499    /** 
    1477      * Check if legacy rules exists 
    1478      * 
    1479      * @return boolean 
    1480      */ 
    1481     function check_rules_legacy() { 
    1482         $path = w3_get_pgcache_rules_core_path(); 
    1483  
    1484         return (($data = @file_get_contents($path)) && w3_has_rules(w3_clean_rules($data), W3TC_MARKER_BEGIN_PGCACHE_LEGACY, W3TC_MARKER_END_PGCACHE_LEGACY)); 
    1485     } 
    1486  
    1487     /** 
    14881500     * Check if WPSC rules exists 
    14891501     * 
  • w3-total-cache/trunk/lib/W3/Plugin/TotalCache.php

    r423354 r430980  
    400400                    } 
    401401 
    402                     if ($this->_config->get_boolean('dbcache.enabled') && !$this->_config->get_boolean('dbcache.debug') && is_a($wpdb, 'W3_Db')) { 
    403                         $append = (is_user_logged_in() ? ' (user is logged in)' : ''); 
     402                    if ($this->_config->get_boolean('dbcache.enabled') && 
     403                            !$this->_config->get_boolean('dbcache.debug') && 
     404                            is_a($wpdb, 'W3_Db')) { 
     405                        $append = (!is_null($wpdb->cache_reject_reason) ? 
     406                            sprintf(' (%s)', $wpdb->cache_reject_reason) : 
     407                            ''); 
    404408 
    405409                        if ($wpdb->query_hits) { 
    406                             $strings[] = sprintf("Database Caching %d/%d queries in %.3f seconds using %s%s", $wpdb->query_hits, $wpdb->query_total, $wpdb->time_total, w3_get_engine_name($this->_config->get_string('dbcache.engine')), $append); 
     410                            $strings[] = sprintf("Database Caching %d/%d queries in %.3f seconds using %s%s", 
     411                                $wpdb->query_hits, $wpdb->query_total, $wpdb->time_total, 
     412                                w3_get_engine_name($this->_config->get_string('dbcache.engine')), 
     413                                $append); 
    407414                        } else { 
    408                             $strings[] = sprintf("Database Caching using %s%s", w3_get_engine_name($this->_config->get_string('dbcache.engine')), $append); 
     415                            $strings[] = sprintf("Database Caching using %s%s", 
     416                                w3_get_engine_name($this->_config->get_string('dbcache.engine')), 
     417                                $append); 
    409418                        } 
    410419                    } 
     
    412421                    if ($this->_config->get_boolean('objectcache.enabled') && !$this->_config->get_boolean('objectcache.debug')) { 
    413422                        $w3_objectcache = & w3_instance('W3_ObjectCache'); 
    414  
    415                         $strings[] = sprintf("Object Caching %d/%d objects using %s", $w3_objectcache->cache_hits, $w3_objectcache->cache_total, w3_get_engine_name($this->_config->get_string('objectcache.engine'))); 
     423                         
     424                        $append = ($w3_objectcache->cache_reject_reason != '' ? 
     425                            sprintf(' (%s)', $w3_objectcache->cache_reject_reason) : 
     426                            ''); 
     427 
     428                        $strings[] = sprintf("Object Caching %d/%d objects using %s%s", 
     429                            $w3_objectcache->cache_hits, $w3_objectcache->cache_total, 
     430                            w3_get_engine_name($this->_config->get_string('objectcache.engine')), 
     431                            $append); 
    416432                    } 
    417433 
  • w3-total-cache/trunk/lib/W3/Plugin/TotalCacheAdmin.php

    r428862 r430980  
    3838     */ 
    3939    var $_errors = array(); 
     40 
     41    /** 
     42     * Rule-related errors about modifications in .htaccess 
     43     * 
     44     * @var array 
     45     */ 
     46    var $_rule_errors = array(); 
     47 
     48    /** 
     49     * Link for auto-installing of rules 
     50     * 
     51     * @var string 
     52     */ 
     53    var $_rule_errors_autoinstall = ''; 
     54 
     55    /** 
     56     * Link for hiding of rules notification 
     57     * 
     58     * @var string 
     59     */ 
     60    var $_rule_errors_hide = ''; 
     61 
     62    /** 
     63     * Checks if cloudflare error pushed to output 
     64     * 
     65     * @var boolean 
     66     */ 
     67    var $_cloudflare_fault_signaled = false; 
    4068 
    4169    /** 
     
    685713        $notes = array(); 
    686714 
     715        /** 
     716        * CloudFlare notifications 
     717        */ 
     718        $this->_check_cloudflare_lasterror(); 
     719 
    687720        require_once W3TC_LIB_W3_DIR . '/Request.php'; 
    688721 
    689         $error = W3_Request::get_string('w3tc_error'); 
    690         $note = W3_Request::get_string('w3tc_note'); 
     722        $request_errors = W3_Request::get_string('w3tc_error'); 
     723        $request_notes = W3_Request::get_string('w3tc_note'); 
    691724 
    692725        /** 
    693726         * Handle messages from reqeust 
    694727         */ 
    695         if (isset($error_messages[$error])) { 
    696             $errors[] = $error_messages[$error]; 
    697         } 
    698  
    699         if (isset($note_messages[$note])) { 
    700             $notes[] = $note_messages[$note]; 
     728        foreach (explode(',', $request_errors) as $error) { 
     729            if ($error = 'cloudflare_api_request' && $this->_cloudflare_fault_signaled) { 
     730                // dont complain twice on cloudflare 
     731            } 
     732            elseif (isset($error_messages[$error])) { 
     733                $errors[] = $error_messages[$error]; 
     734            } 
     735        } 
     736 
     737        foreach (explode(',', $request_notes) as $note) { 
     738            if (isset($note_messages[$note])) { 
     739                $notes[] = $note_messages[$note]; 
     740            } 
    701741        } 
    702742 
     
    852892                        $this->_errors[] = 'It appears Page Cache <acronym title="Uniform Resource Locator">URL</acronym> rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.'; 
    853893                    } 
     894 
     895                    if ($this->_config->get_boolean('notes.pgcache_rules_legacy') && 
     896                            $w3_plugin_pgcache->check_rules_has_legacy()) { 
     897                        $this->_rule_errors[] = array( 
     898                            sprintf('Edit the configuration file (<strong>%s</strong>) and ' . 
     899                                'remove all lines between and including <strong>%s</strong> and ' . 
     900                                '<strong>%s</strong> markers inclusive.', 
     901                                w3_get_pgcache_rules_core_path(), W3TC_MARKER_BEGIN_PGCACHE_LEGACY, 
     902                                W3TC_MARKER_END_PGCACHE_LEGACY), 
     903                            'pgcache_remove_rules_legacy', 'pgcache_rules_legacy'); 
     904                    } 
    854905                } elseif ($this->_config->get_boolean('notes.pgcache_rules_core')) { 
    855                     $this->_errors[] = sprintf('Disk enhanced page caching is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site above the WordPress directives %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_pgcache_rules_core_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_pgcache->generate_rules_core()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_pgcache_write_rules_core', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'pgcache_rules_core')); 
    856                 } 
    857  
    858                 if ($this->_config->get_boolean('notes.pgcache_rules_legacy') && $w3_plugin_pgcache->check_rules_legacy()) { 
    859                     $this->_errors[] = sprintf('Legacy Page Cache rewrite rules have been found. To remove them manually, edit the configuration file (<strong>%s</strong>) and remove all lines between and including <strong>%s</strong> and <strong>%s</strong> markers inclusive. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_pgcache_rules_core_path(), W3TC_MARKER_BEGIN_PGCACHE_LEGACY, W3TC_MARKER_END_PGCACHE_LEGACY, $this->button_link('auto-remove', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_pgcache_remove_rules_legacy', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'pgcache_rules_legacy')); 
     906                    if ($w3_plugin_pgcache->check_rules_has_core()) { 
     907                        $instructions = sprintf('replace the content of the server configuration ' . 
     908                            'file <strong>%s</strong> between %s and %s markers inclusive', 
     909                            w3_get_pgcache_rules_core_path(), 
     910                            W3TC_MARKER_BEGIN_PGCACHE_CORE, W3TC_MARKER_END_PGCACHE_CORE); 
     911                    } elseif ($w3_plugin_pgcache->check_rules_has_legacy()) { 
     912                        $instructions = sprintf('replace the content of the server configuration ' . 
     913                            'file <strong>%s</strong> between %s and %s markers inclusive', 
     914                            w3_get_pgcache_rules_core_path(), 
     915                            W3TC_MARKER_BEGIN_PGCACHE_LEGACY, W3TC_MARKER_END_PGCACHE_LEGACY); 
     916                    } else { 
     917                        $instructions = sprintf('add the following rules into the server ' . 
     918                            'configuration file (<strong>%s</strong>) of the site above the ' . 
     919                            'WordPress directives', w3_get_pgcache_rules_core_path()); 
     920                    } 
     921 
     922                    $this->_rule_errors[] = array( 
     923                        sprintf('To enable Disk enhanced page caching, ' . $instructions . 
     924                            ' %s <textarea class="w3tc-rules"' . 
     925                            ' cols="120" rows="10" readonly="readonly">%s</textarea>.', 
     926                            $this->button('view code', '', 'w3tc-show-rules'), 
     927                            htmlspecialchars($w3_plugin_pgcache->generate_rules_core())), 
     928                        'pgcache_write_rules_core', 'pgcache_rules_core'); 
    860929                } 
    861930 
     
    865934 
    866935                if ($this->_config->get_boolean('notes.pgcache_rules_cache') && !$w3_plugin_pgcache->check_rules_cache()) { 
    867                     $this->_errors[] = sprintf('Disk enhanced page caching is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. This can be done automatically, by clicking here: %s. %s', w3_get_pgcache_rules_cache_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_pgcache->generate_rules_cache()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_pgcache_write_rules_cache', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'pgcache_rules_cache')); 
     936                    $this->_rule_errors[] = array( 
     937                        sprintf('To enable Disk enhanced page caching, add ' . 
     938                            'the following rules into the server configuration file ' . 
     939                            '(<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" ' . 
     940                            'cols="120" rows="10" readonly="readonly">%s</textarea>.', 
     941                            w3_get_pgcache_rules_cache_path(), 
     942                            $this->button('view code', '', 'w3tc-show-rules'), 
     943                            htmlspecialchars($w3_plugin_pgcache->generate_rules_cache())), 
     944                        'pgcache_write_rules_cache', 'pgcache_rules_cache'); 
    868945                } 
    869             } 
    870         } 
    871  
    872         /** 
    873          * Check for browser cache availability 
    874          */ 
    875         if ($this->_config->get_boolean('browsercache.enabled') && $this->_config->get_boolean('config.check') && w3_can_check_rules()) { 
    876             $w3_plugin_browsercache = & w3_instance('W3_Plugin_BrowserCacheAdmin'); 
    877  
    878             if ($this->_config->get_boolean('notes.browsercache_rules_cache') && !$w3_plugin_browsercache->check_rules_cache()) { 
    879                 $this->_errors[] = sprintf('Browser caching is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_browsercache_rules_cache_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_cache()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_browsercache_write_rules_cache', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'browsercache_rules_cache')); 
    880             } 
    881  
    882             if ($this->_config->get_boolean('notes.browsercache_rules_no404wp') && $this->_config->get_boolean('browsercache.no404wp') && !$w3_plugin_browsercache->check_rules_no404wp()) { 
    883                 $this->_errors[] = sprintf('"Do not process 404 errors for static objects with WordPress" feature is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_browsercache_rules_no404wp_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_no404wp()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_browsercache_write_rules_no404wp', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'browsercache_rules_no404wp')); 
    884946            } 
    885947        } 
     
    896958                        $this->_errors[] = 'It appears Minify <acronym title="Uniform Resource Locator">URL</acronym> rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.'; 
    897959                    } 
     960 
     961                    if ($this->_config->get_boolean('notes.minify_rules_legacy') && 
     962                            $w3_plugin_minify->check_rules_has_legacy()) { 
     963                        $this->_rule_errors[] = array( 
     964                            sprintf('Edit the configuration file (<strong>%s</strong>) and ' . 
     965                                'remove all lines between and including <strong>%s</strong> and ' . 
     966                                '<strong>%s</strong> markers inclusive.', 
     967                                w3_get_minify_rules_core_path(), W3TC_MARKER_BEGIN_MINIFY_LEGACY, 
     968                                W3TC_MARKER_END_MINIFY_LEGACY), 
     969                            'minify_remove_rules_legacy', 'minify_rules_legacy'); 
     970                    } 
     971 
    898972                } elseif ($this->_config->get_boolean('notes.minify_rules_core')) { 
    899                     $this->_errors[] = sprintf('Minify is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. This can be done automatically, by clicking here: %s. %s', w3_get_minify_rules_core_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_minify->generate_rules_core()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_minify_write_rules_core', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'minify_rules_core')); 
     973                    if ($w3_plugin_minify->check_rules_has_core()) { 
     974                        $instructions = sprintf('replace the content of the server configuration ' . 
     975                            'file <strong>%s</strong> between %s and %s markers inclusive', 
     976                            w3_get_minify_rules_core_path(), 
     977                            W3TC_MARKER_BEGIN_MINIFY_CORE, W3TC_MARKER_END_MINIFY_CORE); 
     978                    } elseif ($w3_plugin_minify->check_rules_has_legacy()) { 
     979                        $instructions = sprintf('replace the content of the server configuration ' . 
     980                            'file <strong>%s</strong> between %s and %s markers inclusive', 
     981                            w3_get_minify_rules_core_path(), 
     982                            W3TC_MARKER_BEGIN_MINIFY_LEGACY, W3TC_MARKER_END_MINIFY_LEGACY); 
     983                    } else { 
     984                        $instructions = sprintf('add the following rules into the server ' . 
     985                            'configuration file (<strong>%s</strong>) of the site', 
     986                            w3_get_minify_rules_core_path()); 
     987                    } 
     988 
     989                    $this->_rule_errors[] = array( 
     990                        sprintf('To enable Minify, ' . $instructions . 
     991                            ' %s <textarea class="w3tc-rules" cols="120" rows="10" ' . 
     992                            'readonly="readonly">%s</textarea>.', 
     993                            $this->button('view code', '', 'w3tc-show-rules'), 
     994                            htmlspecialchars($w3_plugin_minify->generate_rules_core())), 
     995                        'minify_write_rules_core', 'minify_rules_core'); 
    900996                } 
    901997 
    902                 if ($this->_config->get_boolean('notes.minify_rules_legacy') && $w3_plugin_minify->check_rules_legacy()) { 
    903                     $this->_errors[] = sprintf('Legacy Minify rewrite rules have been found. To remove them manually, edit the configuration file (<strong>%s</strong>) and remove all lines between and including <strong>%s</strong> and <strong>%s</strong> markers inclusive. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_minify_rules_core_path(), W3TC_MARKER_BEGIN_MINIFY_LEGACY, W3TC_MARKER_END_MINIFY_LEGACY, $this->button_link('auto-remove', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_minify_remove_rules_legacy', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'minify_rules_legacy')); 
    904                 } 
    905  
    906998                if ($this->_config->get_string('minify.engine') == 'file' && $this->_config->get_boolean('notes.minify_rules_cache') && !$w3_plugin_minify->check_rules_cache()) { 
    907                     $this->_errors[] = sprintf('Minify is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. This can be done automatically, by clicking here: %s. %s', w3_get_minify_rules_cache_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_minify->generate_rules_cache()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_minify_write_rules_cache', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'minify_rules_cache')); 
     999                    $this->_rule_errors[] = array( 
     1000                        sprintf('To enable Minify, add the following rules ' . 
     1001                            'into the server configuration file (<strong>%s</strong>) of the ' . 
     1002                            'site %s <textarea class="w3tc-rules" cols="120" rows="10" ' . 
     1003                            'readonly="readonly">%s</textarea>.', 
     1004                            w3_get_minify_rules_cache_path(), 
     1005                            $this->button('view code', '', 'w3tc-show-rules'), 
     1006                            htmlspecialchars($w3_plugin_minify->generate_rules_cache())), 
     1007                            'minify_write_rules_cache', 'minify_rules_cache'); 
    9081008                } 
    9091009            } 
     
    9571057 
    9581058                $this->_errors[] = $minify_error; 
     1059            } 
     1060        } 
     1061 
     1062        /** 
     1063         * Check for browser cache availability 
     1064         */ 
     1065        if ($this->_config->get_boolean('browsercache.enabled') && $this->_config->get_boolean('config.check') && w3_can_check_rules()) { 
     1066            $w3_plugin_browsercache = & w3_instance('W3_Plugin_BrowserCacheAdmin'); 
     1067 
     1068            if ($this->_config->get_boolean('notes.browsercache_rules_cache') && !$w3_plugin_browsercache->check_rules_cache()) { 
     1069                $this->_rule_errors[] = array( 
     1070                    sprintf('To enable Browser caching, add the following rules ' . 
     1071                        'into the server configuration file (<strong>%s</strong>) of the site %s '. 
     1072                        '<textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s' . 
     1073                        '</textarea>.', w3_get_browsercache_rules_cache_path(), 
     1074                        $this->button('view code', '', 'w3tc-show-rules'), 
     1075                        htmlspecialchars($w3_plugin_browsercache->generate_rules_cache())), 
     1076                    'browsercache_write_rules_cache', 'browsercache_rules_cache'); 
     1077            } 
     1078 
     1079            if ($this->_config->get_boolean('notes.browsercache_rules_no404wp') && $this->_config->get_boolean('browsercache.no404wp') && !$w3_plugin_browsercache->check_rules_no404wp()) { 
     1080                $this->_errors[] = sprintf('"Do not process 404 errors for static objects with WordPress" feature is not active. To enable it, add the following rules into the server configuration file (<strong>%s</strong>) of the site %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea>. Or if permission allow this can be done automatically, by clicking here: %s. %s', w3_get_browsercache_rules_no404wp_path(), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_no404wp()), $this->button_link('auto-install', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_browsercache_write_rules_no404wp', $this->_page), 'w3tc')), $this->button_hide_note('Hide this message', 'browsercache_rules_no404wp')); 
    9591081            } 
    9601082        } 
     
    11551277        if (w3_is_preview_config()) { 
    11561278            $this->_notes[] = sprintf('Preview mode is active: Changed settings will not take effect until preview mode is %s or %s. %s any changed settings (without deploying), or make additional changes.', $this->button_link('deploy', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_preview_deploy', $this->_page), 'w3tc')), $this->button_link('disable', wp_nonce_url(sprintf('admin.php?page=%s&w3tc_preview_save&preview=0', $this->_page), 'w3tc')), $this->button_link('Preview', w3_get_home_url() . '/?w3tc_preview=1', true)); 
     1279        } 
     1280 
     1281        /** 
     1282         * Prepare rule errros auto-install link 
     1283         */ 
     1284 
     1285        if (count($this->_rule_errors > 0)) { 
     1286            $autoinstall_commands = ''; 
     1287            $hide_commands = ''; 
     1288            foreach ($this->_rule_errors as $error) { 
     1289                $autoinstall_commands .= ',' . $error[1]; 
     1290                $hide_commands .= ',' . $error[2]; 
     1291            } 
     1292 
     1293            $this->_rule_errors_autoinstall = $this->button_link('auto-install', 
     1294                wp_nonce_url(sprintf( 
     1295                    'admin.php?page=%s&w3tc_rules_autoinstall&autoinstall=%s', 
     1296                    $this->_page, $autoinstall_commands), 'w3tc')); 
     1297            $this->_rule_errors_hide = $this->button_hide_note('Hide this message', $hide_commands); 
    11571298        } 
    11581299 
     
    16351776        if (false !== ($output = get_transient($this->_widget_latest_cache_key()))) 
    16361777            echo $output; 
    1637         else  
     1778        else 
    16381779            include W3TC_INC_DIR . '/widget/latest.php'; 
    16391780    } 
    16401781 
    16411782    /** 
    1642      * Prints latest widget contents  
     1783     * Prints latest widget contents 
    16431784     * 
    16441785     * @return void 
     
    16791820 
    16801821        // Default lifetime in cache of 12 hours (same as the feeds) 
    1681         set_transient($this->_widget_latest_cache_key(), ob_get_flush(), 43200);  
     1822        set_transient($this->_widget_latest_cache_key(), ob_get_flush(), 43200); 
    16821823    } 
    16831824 
     
    29403081     */ 
    29413082    function action_hide_note() { 
    2942         $setting = sprintf('notes.%s', W3_Request::get_string('note')); 
    2943  
    2944         $this->_config->set($setting, false); 
     3083        $notes = explode(',', W3_Request::get_string('note')); 
     3084 
     3085        foreach ($notes as $note) { 
     3086            $setting = sprintf('notes.%s', $note); 
     3087            $this->_config->set($setting, false); 
     3088        } 
    29453089 
    29463090        if (!$this->_config->save()) { 
     
    33323476                     */ 
    33333477                    if ($this->_config->get_boolean('cloudflare.enabled')) { 
     3478                        require_once W3TC_LIB_W3_DIR . '/CloudFlare.php'; 
     3479                        W3_CloudFlare::clear_last_error(''); 
     3480 
    33343481                        $cloudflare_seclvl_old = W3_Request::get_string('cloudflare_seclvl_old'); 
    33353482                        $cloudflare_seclvl_new = W3_Request::get_string('cloudflare_seclvl_new'); 
     
    33393486 
    33403487                        if (($cloudflare_seclvl_old != $cloudflare_seclvl_new) || ($cloudflare_devmode_old != $cloudflare_devmode_new)) { 
    3341                             require_once W3TC_LIB_W3_DIR . '/CloudFlare.php'; 
    33423488                            @$w3_cloudflare =& new W3_CloudFlare(array( 
    33433489                                'email' => $this->_config->get_string('cloudflare.email'), 
     
    34733619 
    34743620    /** 
    3475      * Write page cache core rules action 
    3476      * 
    3477      * @return void 
    3478      */ 
    3479     function action_pgcache_write_rules_core() { 
    3480         $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
    3481  
    3482         if ($w3_plugin_pgcache->write_rules_core()) { 
    3483             $this->redirect(array( 
    3484                 'w3tc_note' => 'pgcache_write_rules_core' 
    3485             )); 
    3486         } else { 
    3487             $this->redirect(array( 
    3488                 'w3tc_error' => 'pgcache_write_rules_core' 
    3489             )); 
    3490         } 
    3491     } 
    3492  
    3493     /** 
    3494      * Write page cache cache rules action 
    3495      * 
    3496      * @return void 
    3497      */ 
    3498     function action_pgcache_write_rules_cache() { 
    3499         $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
    3500  
    3501         if ($w3_plugin_pgcache->write_rules_cache()) { 
    3502             $this->redirect(array( 
    3503                 'w3tc_note' => 'pgcache_write_rules_cache' 
    3504             )); 
    3505         } else { 
    3506             $this->redirect(array( 
    3507                 'w3tc_error' => 'pgcache_write_rules_cache' 
    3508             )); 
    3509         } 
    3510     } 
    3511  
    3512     /** 
    3513      * Remove page cache legacy rules action 
    3514      * 
    3515      * @return void 
    3516      */ 
    3517     function action_pgcache_remove_rules_legacy() { 
    3518         $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
    3519  
    3520         if ($w3_plugin_pgcache->remove_rules_legacy()) { 
    3521             $this->redirect(array( 
    3522                 'w3tc_note' => 'pgcache_remove_rules_legacy' 
    3523             )); 
    3524         } else { 
    3525             $this->redirect(array( 
    3526                 'w3tc_error' => 'pgcache_remove_rules_legacy' 
    3527             )); 
    3528         } 
     3621     * Write rules 
     3622     * 
     3623     * @return void 
     3624     */ 
     3625    function action_rules_autoinstall() { 
     3626        $commands = explode(',', W3_Request::get_string('autoinstall')); 
     3627 
     3628        $notes = array(); 
     3629        $errors = array(); 
     3630 
     3631        foreach ($commands as $command) { 
     3632            $result = null; 
     3633 
     3634            switch ($command) { 
     3635                case 'browsercache_write_rules_cache': 
     3636                    $w3_plugin_browsercache = & w3_instance('W3_Plugin_BrowserCacheAdmin'); 
     3637                    $result = $w3_plugin_browsercache->write_rules_cache(); 
     3638                    break; 
     3639 
     3640                case 'minify_remove_rules_legacy': 
     3641                    $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
     3642                    $result = $w3_plugin_minify->remove_rules_legacy(); 
     3643                    break; 
     3644 
     3645                case 'minify_write_rules_cache': 
     3646                    $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
     3647                    $result = $w3_plugin_minify->write_rules_cache(); 
     3648                    break; 
     3649 
     3650                case 'minify_write_rules_core': 
     3651                    $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
     3652                    $result = $w3_plugin_minify->write_rules_core(); 
     3653                    break; 
     3654 
     3655                case 'pgcache_remove_rules_legacy': 
     3656                    $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
     3657                    $result = $w3_plugin_pgcache->remove_rules_legacy(); 
     3658                    break; 
     3659 
     3660                case 'pgcache_write_rules_cache': 
     3661                    $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
     3662                    $result =  $w3_plugin_pgcache->write_rules_cache(); 
     3663                    break; 
     3664 
     3665                case 'pgcache_write_rules_core': 
     3666                    $w3_plugin_pgcache = & w3_instance('W3_Plugin_PgCacheAdmin'); 
     3667                    $result = $w3_plugin_pgcache->write_rules_core(); 
     3668                    break; 
     3669            } 
     3670 
     3671            if (!is_null($result)) { 
     3672                if ($result) { 
     3673                    $notes[] = $command; 
     3674                } 
     3675                else { 
     3676                    $errors[] = $command; 
     3677                } 
     3678            } 
     3679        } 
     3680 
     3681        $this->redirect(array( 
     3682            'w3tc_note' => implode(',', $notes), 
     3683            'w3tc_error' => implode(',', $errors))); 
    35293684    } 
    35303685 
     
    35493704 
    35503705    /** 
    3551      * Write browser cache cache action 
    3552      * 
    3553      * @return void 
    3554      */ 
    3555     function action_browsercache_write_rules_cache() { 
    3556         $w3_plugin_browsercache = & w3_instance('W3_Plugin_BrowserCacheAdmin'); 
    3557  
    3558         if ($w3_plugin_browsercache->write_rules_cache()) { 
    3559             $this->redirect(array( 
    3560                 'w3tc_note' => 'browsercache_write_rules_cache' 
    3561             )); 
    3562         } else { 
    3563             $this->redirect(array( 
    3564                 'w3tc_error' => 'browsercache_write_rules_cache' 
    3565             )); 
    3566         } 
    3567     } 
    3568  
    3569     /** 
    35703706     * Write browser cache no404wp rules action 
    35713707     * 
     
    35823718            $this->redirect(array( 
    35833719                'w3tc_error' => 'browsercache_write_rules_no404wp' 
    3584             )); 
    3585         } 
    3586     } 
    3587  
    3588     /** 
    3589      * Write minify core rules action 
    3590      * 
    3591      * @return void 
    3592      */ 
    3593     function action_minify_write_rules_core() { 
    3594         $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
    3595  
    3596         if ($w3_plugin_minify->write_rules_core()) { 
    3597             $this->redirect(array( 
    3598                 'w3tc_note' => 'minify_write_rules_core' 
    3599             )); 
    3600         } else { 
    3601             $this->redirect(array( 
    3602                 'w3tc_error' => 'minify_write_rules_core' 
    3603             )); 
    3604         } 
    3605     } 
    3606  
    3607     /** 
    3608      * Write minify cache rules action 
    3609      * 
    3610      * @return void 
    3611      */ 
    3612     function action_minify_write_rules_cache() { 
    3613         $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
    3614  
    3615         if ($w3_plugin_minify->write_rules_cache()) { 
    3616             $this->redirect(array( 
    3617                 'w3tc_note' => 'minify_write_rules_cache' 
    3618             )); 
    3619         } else { 
    3620             $this->redirect(array( 
    3621                 'w3tc_error' => 'minify_write_rules_cache' 
    3622             )); 
    3623         } 
    3624     } 
    3625  
    3626     /** 
    3627      * Remove minify legacy rules action 
    3628      * 
    3629      * @return void 
    3630      */ 
    3631     function action_minify_remove_rules_legacy() { 
    3632         $w3_plugin_minify = & w3_instance('W3_Plugin_MinifyAdmin'); 
    3633  
    3634         if ($w3_plugin_minify->remove_rules_legacy()) { 
    3635             $this->redirect(array( 
    3636                 'w3tc_note' => 'minify_remove_rules_legacy' 
    3637             )); 
    3638         } else { 
    3639             $this->redirect(array( 
    3640                 'w3tc_error' => 'minify_remove_rules_legacy' 
    36413720            )); 
    36423721        } 
     
    57235802    } 
    57245803 
    5725     /** 
     5804    function _check_cloudflare_lasterror() { 
     5805        if ($this->_config->get_boolean('cloudflare.enabled') && W3_CloudFlare::get_last_error()) { 
     5806            if (!$this->_cloudflare_fault_signaled) { 
     5807                $this->_errors[] = sprintf('Unable to communicate with CloudFlare API: %s.', W3_CloudFlare::get_last_error()); 
     5808                $this->_cloudflare_fault_signaled = true; 
     5809            } 
     5810        } 
     5811    } 
     5812            /** 
    57265813     * Read CloudFlare settings 
    57275814     * 
     
    57625849        } 
    57635850 
     5851        $this->_check_cloudflare_lasterror(); 
     5852 
    57645853        return false; 
    57655854    } 
  • w3-total-cache/trunk/pub/css/options.css

    r428862 r430980  
    228228} 
    229229 
     230.w3tc-rule-error-details { 
     231    display: none; 
     232} 
     233 
    230234.w3tc-rules { 
    231235    display: none; 
  • w3-total-cache/trunk/pub/js/options.js

    r428862 r430980  
    12421242    }); 
    12431243 
     1244    // show hide error details 
     1245    jQuery('.w3tc-show-rule-error-details').click(function() { 
     1246        var btn = jQuery(this), rules = btn.parent().find('.w3tc-rule-error-details'); 
     1247 
     1248        if (rules.is(':visible')) { 
     1249            rules.css('display', 'none'); 
     1250            btn.val('show details'); 
     1251        } else { 
     1252            rules.css('display', 'block'); 
     1253            btn.val('hide details'); 
     1254        } 
     1255    }); 
     1256     
    12441257    // check for unsaved changes 
    12451258    jQuery('#w3tc input,#w3tc select,#w3tc textarea').live('change', function() { 
  • w3-total-cache/trunk/w3-total-cache.php

    r428862 r430980  
    33Plugin Name: W3 Total Cache 
    44Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress. 
    5 Version: 0.9.2.4 
     5Version: 0.9.2.5b 
    66Plugin URI: http://www.w3-edge.com/wordpress-plugins/w3-total-cache/ 
    77Author: Frederick Townes 
Note: See TracChangeset for help on using the changeset viewer.