Version Description
- Improved Rackspace Cloud Files implementation
- Improved frequently asked questions implementation to support incomplete PHP distributions
- Fixed 500 Internal Server Error when upgrading with Disk enhanced mode enabled
- Fixed notification issues with preview mode
- Fixed an issue with fatal errors with minify and memcache(d) caching engine
Download this release
Release Info
Developer | fredericktownes |
Plugin | W3 Total Cache |
Version | 0.9.1 |
Comparing to | |
See all releases |
Code changes from version 0.9.0 to 0.9.1
- inc/define.php +2 -6
- inc/email/support_request.phtml +1 -0
- inc/options/cdn/rscf.phtml +1 -1
- inc/options/common/help.phtml +3 -3
- inc/options/faq.phtml +12 -10
- inc/options/support/bug_report.phtml +4 -0
- inc/options/support/email_support.phtml +4 -0
- inc/options/support/linux_config.phtml +4 -0
- inc/options/support/new_feature.phtml +4 -0
- inc/options/support/phone_support.phtml +4 -0
- inc/options/support/plugin_config.phtml +4 -0
- inc/options/support/theme_config.phtml +4 -0
- inc/options/support_select.phtml +1 -1
- lib/Minify/Minify/Cache/Memcache.php +3 -1
- lib/W3/Cdn/Rscf.php +2 -2
- lib/W3/Config.php +2 -2
- lib/W3/Mobile.php +1 -1
- lib/W3/Plugin/PgCache.php +2 -2
- lib/W3/Plugin/TotalCache.php +127 -58
- readme.txt +116 -72
- w3-total-cache.php +1 -1
inc/define.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
define('W3TC_VERSION', '0.
|
4 |
define('W3TC_POWERED_BY', 'W3 Total Cache/' . W3TC_VERSION);
|
5 |
define('W3TC_EMAIL', 'w3tc@w3-edge.com');
|
6 |
define('W3TC_PAYPAL_URL', 'https://www.paypal.com/cgi-bin/webscr');
|
@@ -100,11 +100,7 @@ function w3_writable_error($path)
|
|
100 |
$reactivate_button = sprintf('<input type="button" value="re-activate plugin" onclick="top.location.href = \'%s\'" />', addslashes($activate_url));
|
101 |
|
102 |
if (w3_check_open_basedir($path)) {
|
103 |
-
|
104 |
-
$error = sprintf('<strong>%s</strong> is not write-able, please run following command:<br /><strong style="color: #f00;">chmod 777 %s</strong><br />then %s.', $path, $path, $reactivate_button);
|
105 |
-
} else {
|
106 |
-
$error = sprintf('<strong>%s</strong> could not be created, please run following command:<br /><strong style="color: #f00;">chmod 777 %s</strong><br />then %s.', $path, dirname($path), $reactivate_button);
|
107 |
-
}
|
108 |
} else {
|
109 |
$error = sprintf('<strong>%s</strong> could not be created, <strong>open_basedir</strong> restriction in effect, please check your php.ini settings:<br /><strong style="color: #f00;">open_basedir = "%s"</strong><br />then %s.', $path, ini_get('open_basedir'), $reactivate_button);
|
110 |
}
|
1 |
<?php
|
2 |
|
3 |
+
define('W3TC_VERSION', '0.9.1');
|
4 |
define('W3TC_POWERED_BY', 'W3 Total Cache/' . W3TC_VERSION);
|
5 |
define('W3TC_EMAIL', 'w3tc@w3-edge.com');
|
6 |
define('W3TC_PAYPAL_URL', 'https://www.paypal.com/cgi-bin/webscr');
|
100 |
$reactivate_button = sprintf('<input type="button" value="re-activate plugin" onclick="top.location.href = \'%s\'" />', addslashes($activate_url));
|
101 |
|
102 |
if (w3_check_open_basedir($path)) {
|
103 |
+
$error = sprintf('<strong>%s</strong> could not be created, please run following command:<br /><strong style="color: #f00;">chmod 777 %s</strong><br />then %s.', $path, (file_exists($path) ? $path : dirname($path)), $reactivate_button);
|
|
|
|
|
|
|
|
|
104 |
} else {
|
105 |
$error = sprintf('<strong>%s</strong> could not be created, <strong>open_basedir</strong> restriction in effect, please check your php.ini settings:<br /><strong style="color: #f00;">open_basedir = "%s"</strong><br />then %s.', $path, ini_get('open_basedir'), $reactivate_button);
|
106 |
}
|
inc/email/support_request.phtml
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
URL: <a href="<?php echo htmlspecialchars($url); ?>"><?php echo htmlspecialchars($url); ?></a><br />
|
8 |
Name: <?php echo htmlspecialchars($name); ?><br />
|
9 |
E-Mail: <a href="mailto:<?php echo htmlspecialchars($email); ?>"><?php echo htmlspecialchars($email); ?></a><br />
|
|
|
10 |
Phone: <?php echo htmlspecialchars($phone); ?><br />
|
11 |
<?php if ($forum_url): ?>
|
12 |
Forum Topic URL: <a href="<?php echo htmlspecialchars($forum_url); ?>"><?php echo htmlspecialchars($forum_url); ?></a><br />
|
7 |
URL: <a href="<?php echo htmlspecialchars($url); ?>"><?php echo htmlspecialchars($url); ?></a><br />
|
8 |
Name: <?php echo htmlspecialchars($name); ?><br />
|
9 |
E-Mail: <a href="mailto:<?php echo htmlspecialchars($email); ?>"><?php echo htmlspecialchars($email); ?></a><br />
|
10 |
+
Twitter: <a href="http://twitter.com/<?php echo htmlspecialchars($twitter); ?>"><?php echo htmlspecialchars($twitter); ?></a><br />
|
11 |
Phone: <?php echo htmlspecialchars($phone); ?><br />
|
12 |
<?php if ($forum_url): ?>
|
13 |
Forum Topic URL: <a href="<?php echo htmlspecialchars($forum_url); ?>"><?php echo htmlspecialchars($forum_url); ?></a><br />
|
inc/options/cdn/rscf.phtml
CHANGED
@@ -21,7 +21,7 @@
|
|
21 |
<tr>
|
22 |
<th><label for="cdn_rscf_id">Replace site's hostname with:</label></th>
|
23 |
<td>
|
24 |
-
<input id="cdn_rscf_id" type="text" name="cdn.rscf.id" value="<?php echo htmlspecialchars($this->_config->get_string('cdn.rscf.id')); ?>" size="18" style="text-align:right;" />.
|
25 |
<?php $cnames = $this->_config->get_array('cdn.rscf.cname'); include W3TC_DIR . '/inc/options/cdn/common/cnames.phtml'; ?>
|
26 |
</td>
|
27 |
</tr>
|
21 |
<tr>
|
22 |
<th><label for="cdn_rscf_id">Replace site's hostname with:</label></th>
|
23 |
<td>
|
24 |
+
<input id="cdn_rscf_id" type="text" name="cdn.rscf.id" value="<?php echo htmlspecialchars($this->_config->get_string('cdn.rscf.id')); ?>" size="18" style="text-align:right;" />.cloudfiles.rackspacecloud.com or CNAME:
|
25 |
<?php $cnames = $this->_config->get_array('cdn.rscf.cname'); include W3TC_DIR . '/inc/options/cdn/common/cnames.phtml'; ?>
|
26 |
</td>
|
27 |
</tr>
|
inc/options/common/help.phtml
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<div id="w3tc-help">
|
2 |
<p>Request professional <a href="admin.php?page=w3tc_support" style="color: red;"><strong>support</strong></a> or troubleshoot issues using the common questions below:</p>
|
3 |
|
4 |
-
<?php foreach ($columns as $
|
5 |
<ul>
|
6 |
-
<?php foreach ($
|
7 |
<li>
|
8 |
-
<a href="admin.php?page=w3tc_faq#q<?php echo
|
9 |
</li>
|
10 |
<?php endforeach; ?>
|
11 |
</ul>
|
1 |
<div id="w3tc-help">
|
2 |
<p>Request professional <a href="admin.php?page=w3tc_support" style="color: red;"><strong>support</strong></a> or troubleshoot issues using the common questions below:</p>
|
3 |
|
4 |
+
<?php foreach ($columns as $entries): ?>
|
5 |
<ul>
|
6 |
+
<?php foreach ($entries as $entry): ?>
|
7 |
<li>
|
8 |
+
<a href="admin.php?page=w3tc_faq#q<?php echo $entry['index']; ?>"><?php echo $entry['question']; ?></a>
|
9 |
</li>
|
10 |
<?php endforeach; ?>
|
11 |
</ul>
|
inc/options/faq.phtml
CHANGED
@@ -4,13 +4,13 @@
|
|
4 |
|
5 |
<div id="toc">
|
6 |
<ul>
|
7 |
-
<?php
|
8 |
<li class="col">
|
9 |
-
<h5><?php echo strtoupper($section
|
10 |
<ul>
|
11 |
-
<?php foreach ($
|
12 |
-
<li><a href="#q<?php echo $
|
13 |
-
<?php
|
14 |
</ul>
|
15 |
</li>
|
16 |
<?php endforeach; ?>
|
@@ -18,11 +18,13 @@
|
|
18 |
</div>
|
19 |
<div id="qa">
|
20 |
<hr />
|
21 |
-
<?php
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
26 |
</div>
|
27 |
|
28 |
<?php include W3TC_DIR . '/inc/options/common/footer.phtml'; ?>
|
4 |
|
5 |
<div id="toc">
|
6 |
<ul>
|
7 |
+
<?php foreach ($faq as $section => $entries): ?>
|
8 |
<li class="col">
|
9 |
+
<h5><?php echo strtoupper($section); ?>:</h5>
|
10 |
<ul>
|
11 |
+
<?php foreach ($entries as $entry): ?>
|
12 |
+
<li><a href="#q<?php echo $entry['index']; ?>"><?php echo $entry['question']; ?></a></li>
|
13 |
+
<?php endforeach; ?>
|
14 |
</ul>
|
15 |
</li>
|
16 |
<?php endforeach; ?>
|
18 |
</div>
|
19 |
<div id="qa">
|
20 |
<hr />
|
21 |
+
<?php foreach ($faq as $section => $entries): ?>
|
22 |
+
<?php foreach ($entries as $entry): ?>
|
23 |
+
<p id="q<?php echo $entry['index']; ?>"><strong><?php echo $entry['question']; ?></strong></p>
|
24 |
+
<?php echo $entry['answer']; ?>
|
25 |
+
<p align="right"><a href="#toc">back to top</a></p>
|
26 |
+
<?php endforeach; ?>
|
27 |
+
<?php endforeach; ?>
|
28 |
</div>
|
29 |
|
30 |
<?php include W3TC_DIR . '/inc/options/common/footer.phtml'; ?>
|
inc/options/support/bug_report.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support/email_support.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support/linux_config.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support/new_feature.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support/phone_support.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_phone">Phone:</label></th>
|
23 |
<td><input id="support_phone" type="text" name="phone" value="<?php echo htmlspecialchars($phone); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_phone">Phone:</label></th>
|
27 |
<td><input id="support_phone" type="text" name="phone" value="<?php echo htmlspecialchars($phone); ?>" size="80" /></td>
|
inc/options/support/plugin_config.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support/theme_config.phtml
CHANGED
@@ -18,6 +18,10 @@
|
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
|
|
|
|
|
|
|
|
21 |
<tr>
|
22 |
<th><label for="support_subject">Subject:</label></th>
|
23 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
18 |
<th><label for="support_email">E-Mail:</label></th>
|
19 |
<td><input id="support_email" type="text" name="email" value="<?php echo htmlspecialchars($email); ?>" size="80" /></td>
|
20 |
</tr>
|
21 |
+
<tr>
|
22 |
+
<th><label for="support_twitter">Twitter ID:</label></th>
|
23 |
+
<td><input id="support_twitter" type="text" name="twitter" value="<?php echo htmlspecialchars($twitter); ?>" size="80" /></td>
|
24 |
+
</tr>
|
25 |
<tr>
|
26 |
<th><label for="support_subject">Subject:</label></th>
|
27 |
<td><input id="support_subject" type="text" name="subject" value="<?php echo htmlspecialchars($subject); ?>" size="80" /></td>
|
inc/options/support_select.phtml
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
<?php foreach ($this->_request_groups as $_request_group => $_request_types): ?>
|
20 |
<optgroup label="<?php echo htmlspecialchars($_request_group); ?>:">
|
21 |
<?php foreach ($_request_types as $_request_type): ?>
|
22 |
-
<option value="<?php echo $_request_type; ?>"
|
23 |
<?php endforeach; ?>
|
24 |
</optgroup>
|
25 |
<?php endforeach; ?>
|
19 |
<?php foreach ($this->_request_groups as $_request_group => $_request_types): ?>
|
20 |
<optgroup label="<?php echo htmlspecialchars($_request_group); ?>:">
|
21 |
<?php foreach ($_request_types as $_request_type): ?>
|
22 |
+
<option value="<?php echo $_request_type; ?>"><?php echo htmlspecialchars($this->_request_types[$_request_type]); ?></option>
|
23 |
<?php endforeach; ?>
|
24 |
</optgroup>
|
25 |
<?php endforeach; ?>
|
lib/Minify/Minify/Cache/Memcache.php
CHANGED
@@ -47,7 +47,9 @@ class Minify_Cache_Memcache {
|
|
47 |
*/
|
48 |
public function store($id, $data)
|
49 |
{
|
50 |
-
|
|
|
|
|
51 |
}
|
52 |
|
53 |
|
47 |
*/
|
48 |
public function store($id, $data)
|
49 |
{
|
50 |
+
$data = "{$_SERVER['REQUEST_TIME']}|{$data}";
|
51 |
+
|
52 |
+
return $this->_mc->set($id, $data, 0, $this->_exp);
|
53 |
}
|
54 |
|
55 |
|
lib/W3/Cdn/Rscf.php
CHANGED
@@ -237,7 +237,7 @@ class W3_Cdn_Rscf extends W3_Cdn_Base
|
|
237 |
if (!empty($this->_config['cname'])) {
|
238 |
return (array) $this->_config['cname'];
|
239 |
} elseif (!empty($this->_config['id'])) {
|
240 |
-
$domain = sprintf('%s.
|
241 |
|
242 |
return array(
|
243 |
$domain
|
@@ -295,7 +295,7 @@ class W3_Cdn_Rscf extends W3_Cdn_Base
|
|
295 |
|
296 |
$matches = null;
|
297 |
|
298 |
-
if (preg_match('~^https?://(.+)\.
|
299 |
$container_id = $matches[1];
|
300 |
}
|
301 |
|
237 |
if (!empty($this->_config['cname'])) {
|
238 |
return (array) $this->_config['cname'];
|
239 |
} elseif (!empty($this->_config['id'])) {
|
240 |
+
$domain = sprintf('%s.cloudfiles.rackspacecloud.com', $this->_config['id']);
|
241 |
|
242 |
return array(
|
243 |
$domain
|
295 |
|
296 |
$matches = null;
|
297 |
|
298 |
+
if (preg_match('~^https?://(.+)\.cloudfiles\.rackspacecloud\.com$~', $container->cdn_uri, $matches)) {
|
299 |
$container_id = $matches[1];
|
300 |
}
|
301 |
|
lib/W3/Config.php
CHANGED
@@ -183,7 +183,7 @@ class W3_Config
|
|
183 |
'browsercache.other.w3tc' => 'boolean',
|
184 |
|
185 |
'mobile.enabled' => 'boolean',
|
186 |
-
'mobile.
|
187 |
|
188 |
'common.support' => 'string',
|
189 |
'common.install' => 'integer',
|
@@ -419,7 +419,7 @@ class W3_Config
|
|
419 |
'browsercache.other.w3tc' => true,
|
420 |
|
421 |
'mobile.enabled' => true,
|
422 |
-
'mobile.
|
423 |
'high' => array(
|
424 |
'theme' => '',
|
425 |
'enabled' => true,
|
183 |
'browsercache.other.w3tc' => 'boolean',
|
184 |
|
185 |
'mobile.enabled' => 'boolean',
|
186 |
+
'mobile.rgroups' => 'array',
|
187 |
|
188 |
'common.support' => 'string',
|
189 |
'common.install' => 'integer',
|
419 |
'browsercache.other.w3tc' => true,
|
420 |
|
421 |
'mobile.enabled' => true,
|
422 |
+
'mobile.rgroups' => array(
|
423 |
'high' => array(
|
424 |
'theme' => '',
|
425 |
'enabled' => true,
|
lib/W3/Mobile.php
CHANGED
@@ -23,7 +23,7 @@ class W3_Mobile
|
|
23 |
require_once W3TC_LIB_W3_DIR . '/Config.php';
|
24 |
$config = & W3_Config::instance();
|
25 |
|
26 |
-
$this->groups = $config->get_array('mobile.
|
27 |
}
|
28 |
|
29 |
/**
|
23 |
require_once W3TC_LIB_W3_DIR . '/Config.php';
|
24 |
$config = & W3_Config::instance();
|
25 |
|
26 |
+
$this->groups = $config->get_array('mobile.rgroups');
|
27 |
}
|
28 |
|
29 |
/**
|
lib/W3/Plugin/PgCache.php
CHANGED
@@ -592,7 +592,7 @@ class W3_Plugin_PgCache extends W3_Plugin
|
|
592 |
* Check mobile groups
|
593 |
*/
|
594 |
if ($this->_config->get_boolean('mobile.enabled')) {
|
595 |
-
$mobile_groups = array_reverse($this->_config->get_array('mobile.
|
596 |
|
597 |
foreach ($mobile_groups as $mobile_group => $mobile_config) {
|
598 |
$mobile_agents = (isset($mobile_config['agents']) ? (array) $mobile_config['agents'] : '');
|
@@ -625,7 +625,7 @@ class W3_Plugin_PgCache extends W3_Plugin
|
|
625 |
* Check for mobile redirect
|
626 |
*/
|
627 |
if ($this->_config->get_boolean('mobile.enabled')) {
|
628 |
-
$mobile_groups = $this->_config->get_array('mobile.
|
629 |
|
630 |
foreach ($mobile_groups as $mobile_group => $mobile_config) {
|
631 |
$mobile_agents = (isset($mobile_config['agents']) ? (array) $mobile_config['agents'] : '');
|
592 |
* Check mobile groups
|
593 |
*/
|
594 |
if ($this->_config->get_boolean('mobile.enabled')) {
|
595 |
+
$mobile_groups = array_reverse($this->_config->get_array('mobile.rgroups'));
|
596 |
|
597 |
foreach ($mobile_groups as $mobile_group => $mobile_config) {
|
598 |
$mobile_agents = (isset($mobile_config['agents']) ? (array) $mobile_config['agents'] : '');
|
625 |
* Check for mobile redirect
|
626 |
*/
|
627 |
if ($this->_config->get_boolean('mobile.enabled')) {
|
628 |
+
$mobile_groups = $this->_config->get_array('mobile.rgroups');
|
629 |
|
630 |
foreach ($mobile_groups as $mobile_group => $mobile_config) {
|
631 |
$mobile_agents = (isset($mobile_config['agents']) ? (array) $mobile_config['agents'] : '');
|
lib/W3/Plugin/TotalCache.php
CHANGED
@@ -957,38 +957,27 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
957 |
|
958 |
/**
|
959 |
* Contextual help list filter
|
|
|
960 |
* @param string $list
|
961 |
* @return string
|
962 |
*/
|
963 |
function contextual_help_list($list)
|
964 |
{
|
965 |
-
$
|
966 |
-
|
967 |
-
$dom = new DOMDocument();
|
968 |
-
$dom->preserveWhiteSpace = true;
|
969 |
-
$dom->load($faq_file);
|
970 |
-
|
971 |
-
$xpath = new DOMXPath($dom);
|
972 |
-
|
973 |
-
$q = $xpath->query('//faqs/section[@name="General"]/entry/question')->length;
|
974 |
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
979 |
}
|
980 |
|
981 |
-
$columns = array_chunk($questions, ceil(count($questions) / 3));
|
982 |
-
|
983 |
-
ob_start();
|
984 |
-
include W3TC_DIR . '/inc/options/common/help.phtml';
|
985 |
-
$help = ob_get_contents();
|
986 |
-
ob_end_clean();
|
987 |
-
|
988 |
-
$hook = get_plugin_page_hookname($this->_page, 'w3tc_general');
|
989 |
-
|
990 |
-
$list[$hook] = $list[$hook] . $help;
|
991 |
-
|
992 |
return $list;
|
993 |
}
|
994 |
|
@@ -1057,16 +1046,22 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1057 |
$document_root = w3_get_document_root();
|
1058 |
$config_path = (w3_is_preview_config() ? W3TC_CONFIG_PREVIEW_PATH : W3TC_CONFIG_PATH);
|
1059 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1060 |
$error_messages = array(
|
1061 |
-
'config_save' => sprintf('The settings could not be saved because the config file is not write-able. Please run <strong>chmod 777 %s</strong> to resolve this issue.', file_exists($config_path) ? $config_path :
|
1062 |
'fancy_permalinks_disabled_pgcache' => sprintf('Fancy permalinks are disabled. Please %s it first, then re-attempt to enabling the enhanced disk mode.', $this->button_link('enable', 'options-permalink.php')),
|
1063 |
'fancy_permalinks_disabled_browsercache' => sprintf('Fancy permalinks are disabled. Please %s it first, then re-attempt to enabling the \'Do not process 404 errors for static objects with WordPress\'.', $this->button_link('enable', 'options-permalink.php')),
|
1064 |
-
'pgcache_write_rules_core' => sprintf('Either your .htaccess file does not exist or cannot be modified (%s
|
1065 |
-
'pgcache_write_rules_cache' => sprintf('The page cache rules (%s
|
1066 |
-
'browsercache_write_rules_cache' => sprintf('The browser cache rules (%s
|
1067 |
-
'browsercache_write_rules_no404wp' => sprintf('The browser cache rules (%s
|
1068 |
'browsercache_write_rules_cdn' => sprintf('The browser cache rules for CDN could not be modified. Please check CDN settings.'),
|
1069 |
-
'minify_write_rules' => sprintf('The minify cache rules (%s
|
1070 |
'support_request_type' => 'Please select request type.',
|
1071 |
'support_request_url' => 'Please enter the address of your site in the site <acronym title="Uniform Resource Locator">URL</acronym> field.',
|
1072 |
'support_request_name' => 'Please enter your name in the Name field',
|
@@ -1082,9 +1077,11 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1082 |
'support_request' => 'Unable to send your support request.',
|
1083 |
'config_import_no_file' => 'Please select config file.',
|
1084 |
'config_import_upload' => 'Unable to upload config file.',
|
1085 |
-
'config_import_import' => '
|
1086 |
-
'config_reset' => '
|
1087 |
-
'
|
|
|
|
|
1088 |
'cdn_purge_attachment' => 'Unable to purge attachment.',
|
1089 |
'pgcache_purge_post' => 'Unable to purge post.'
|
1090 |
);
|
@@ -1107,6 +1104,8 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1107 |
'support_request' => 'Your support request has been successfully sent.',
|
1108 |
'config_import' => 'Settings successfully imported.',
|
1109 |
'config_reset' => 'Settings successfully restored.',
|
|
|
|
|
1110 |
'preview_deploy' => 'Preview settings successfully deployed.',
|
1111 |
'cdn_purge_attachment' => 'Attachment successfully purged.',
|
1112 |
'pgcache_purge_post' => 'Post successfully purged.'
|
@@ -1430,15 +1429,19 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1430 |
$w3_plugin_pgcache = & W3_Plugin_PgCache::instance();
|
1431 |
|
1432 |
if ($this->_config->get_boolean('notes.pgcache_rules_core') && !$w3_plugin_pgcache->check_rules_core()) {
|
|
|
|
|
1433 |
if (w3_is_multisite()) {
|
1434 |
-
$this->_errors[] = sprintf('Enhanced mode page cache is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s
|
1435 |
} else {
|
1436 |
-
$this->_errors[] = sprintf('You\'ve selected disk caching with enhanced mode however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s
|
1437 |
}
|
1438 |
}
|
1439 |
|
1440 |
if ($this->_config->get_boolean('notes.pgcache_rules_cache') && !$w3_plugin_pgcache->check_rules_cache()) {
|
1441 |
-
$
|
|
|
|
|
1442 |
}
|
1443 |
break;
|
1444 |
|
@@ -1462,7 +1465,9 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1462 |
$w3_plugin_minify = & W3_Plugin_Minify::instance();
|
1463 |
|
1464 |
if ($this->_config->get_boolean('notes.minify_rules') && !$w3_plugin_minify->check_rules()) {
|
1465 |
-
$
|
|
|
|
|
1466 |
}
|
1467 |
}
|
1468 |
|
@@ -1513,18 +1518,22 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1513 |
$w3_plugin_browsercache = & W3_Plugin_BrowserCache::instance();
|
1514 |
|
1515 |
if ($this->_config->get_boolean('notes.browsercache_rules_cache') && !$w3_plugin_browsercache->check_rules_cache()) {
|
|
|
|
|
1516 |
if (w3_is_multisite()) {
|
1517 |
-
$this->_errors[] = sprintf('Browser Cache feature is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s
|
1518 |
} else {
|
1519 |
-
$this->_errors[] = sprintf('You\'ve enabled Browser Cache feature however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s
|
1520 |
}
|
1521 |
}
|
1522 |
|
1523 |
if ($this->_config->get_boolean('notes.browsercache_rules_no404wp') && $this->_config->get_boolean('browsercache.no404wp') && !$w3_plugin_browsercache->check_rules_no404wp()) {
|
|
|
|
|
1524 |
if (w3_is_multisite()) {
|
1525 |
-
$this->_errors[] = sprintf('Browser Cache feature is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s
|
1526 |
} else {
|
1527 |
-
$this->_errors[] = sprintf('You\'ve enabled Browser Cache feature however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s
|
1528 |
}
|
1529 |
}
|
1530 |
}
|
@@ -1835,7 +1844,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1835 |
function options_mobile()
|
1836 |
{
|
1837 |
$mobile_enabled = $this->_config->get_boolean('mobile.enabled');
|
1838 |
-
$groups = $this->_config->get_array('mobile.
|
1839 |
|
1840 |
require_once W3TC_LIB_W3_DIR . '/Mobile.php';
|
1841 |
$w3_mobile = & W3_Mobile::instance();
|
@@ -1864,13 +1873,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1864 |
*/
|
1865 |
function options_faq()
|
1866 |
{
|
1867 |
-
$
|
1868 |
-
|
1869 |
-
$dom = new DOMDocument();
|
1870 |
-
$dom->preserveWhiteSpace = true;
|
1871 |
-
$dom->load($faq_file);
|
1872 |
-
|
1873 |
-
$xpath = new DOMXPath($dom);
|
1874 |
|
1875 |
include W3TC_DIR . '/inc/options/faq.phtml';
|
1876 |
}
|
@@ -1914,10 +1917,12 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
1914 |
$url = W3_Request::get_string('url', w3_get_domain_url());
|
1915 |
$name = W3_Request::get_string('name', $name);
|
1916 |
$email = W3_Request::get_string('email', $email);
|
|
|
1917 |
$phone = W3_Request::get_string('phone');
|
1918 |
$subject = W3_Request::get_string('subject');
|
1919 |
$description = W3_Request::get_string('description');
|
1920 |
$templates = W3_Request::get_array('templates');
|
|
|
1921 |
$wp_login = W3_Request::get_string('wp_login');
|
1922 |
$wp_password = W3_Request::get_string('wp_password');
|
1923 |
$ftp_host = W3_Request::get_string('ftp_host');
|
@@ -2237,7 +2242,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
2237 |
sort($mobile_groups[$group]['agents']);
|
2238 |
}
|
2239 |
|
2240 |
-
$config->set('mobile.
|
2241 |
}
|
2242 |
|
2243 |
/**
|
@@ -2386,7 +2391,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
2386 |
|
2387 |
if ($new_config->get_boolean('mobile.enabled')) {
|
2388 |
$pgcache_dependencies = array_merge($pgcache_dependencies, array(
|
2389 |
-
'mobile.
|
2390 |
));
|
2391 |
}
|
2392 |
|
@@ -2699,25 +2704,23 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
2699 |
if ($preview) {
|
2700 |
if ($this->_config->save(true)) {
|
2701 |
$this->redirect(array(
|
2702 |
-
'w3tc_note' => '
|
2703 |
));
|
2704 |
} else {
|
2705 |
$this->redirect(array(
|
2706 |
-
'w3tc_error' => '
|
2707 |
));
|
2708 |
}
|
2709 |
} else {
|
2710 |
-
@unlink(W3TC_CONFIG_PREVIEW_PATH);
|
2711 |
-
|
2712 |
$config = & new W3_Config(false);
|
2713 |
|
2714 |
-
if ($this->config_save($this->_config, $config)) {
|
2715 |
$this->redirect(array(
|
2716 |
-
'w3tc_note' => '
|
2717 |
));
|
2718 |
} else {
|
2719 |
$this->redirect(array(
|
2720 |
-
'w3tc_error' => '
|
2721 |
));
|
2722 |
}
|
2723 |
}
|
@@ -2791,6 +2794,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
2791 |
$url = W3_Request::get_string('url');
|
2792 |
$name = W3_Request::get_string('name');
|
2793 |
$email = W3_Request::get_string('email');
|
|
|
2794 |
$phone = W3_Request::get_string('phone');
|
2795 |
$subject = W3_Request::get_string('subject');
|
2796 |
$description = W3_Request::get_string('description');
|
@@ -2808,6 +2812,7 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
2808 |
'url' => $url,
|
2809 |
'name' => $name,
|
2810 |
'email' => $email,
|
|
|
2811 |
'phone' => $phone,
|
2812 |
'subject' => $subject,
|
2813 |
'description' => $description,
|
@@ -4952,4 +4957,68 @@ class W3_Plugin_TotalCache extends W3_Plugin
|
|
4952 |
|
4953 |
return sprintf('%s=%s%s%s', $attr, $quote, $domain_url, $path);
|
4954 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4955 |
}
|
957 |
|
958 |
/**
|
959 |
* Contextual help list filter
|
960 |
+
*
|
961 |
* @param string $list
|
962 |
* @return string
|
963 |
*/
|
964 |
function contextual_help_list($list)
|
965 |
{
|
966 |
+
$faq = $this->parse_faq();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
967 |
|
968 |
+
if (isset($faq['Usage'])) {
|
969 |
+
$columns = array_chunk($faq['Usage'], ceil(count($faq['Usage']) / 3));
|
970 |
+
|
971 |
+
ob_start();
|
972 |
+
include W3TC_DIR . '/inc/options/common/help.phtml';
|
973 |
+
$help = ob_get_contents();
|
974 |
+
ob_end_clean();
|
975 |
+
|
976 |
+
$hook = get_plugin_page_hookname($this->_page, 'w3tc_general');
|
977 |
+
|
978 |
+
$list[$hook] = $help;
|
979 |
}
|
980 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
981 |
return $list;
|
982 |
}
|
983 |
|
1046 |
$document_root = w3_get_document_root();
|
1047 |
$config_path = (w3_is_preview_config() ? W3TC_CONFIG_PREVIEW_PATH : W3TC_CONFIG_PATH);
|
1048 |
|
1049 |
+
$pgcache_rules_core_path = $home_root . '/.htaccess';
|
1050 |
+
$pgcache_rules_cache_path = W3TC_CACHE_FILE_PGCACHE_DIR . '/.htaccess';
|
1051 |
+
$browsercache_rules_cache_path = $document_root . '/.htaccess';
|
1052 |
+
$browsercache_rules_no404wp_path = $home_root . '/.htaccess';
|
1053 |
+
$minify_rules_path = W3TC_CACHE_FILE_MINIFY_DIR . '/.htaccess';
|
1054 |
+
|
1055 |
$error_messages = array(
|
1056 |
+
'config_save' => sprintf('The settings could not be saved because the config file is not write-able. Please run <strong>chmod 777 %s</strong> to resolve this issue.', (file_exists($config_path) ? $config_path : dirname($config_path))),
|
1057 |
'fancy_permalinks_disabled_pgcache' => sprintf('Fancy permalinks are disabled. Please %s it first, then re-attempt to enabling the enhanced disk mode.', $this->button_link('enable', 'options-permalink.php')),
|
1058 |
'fancy_permalinks_disabled_browsercache' => sprintf('Fancy permalinks are disabled. Please %s it first, then re-attempt to enabling the \'Do not process 404 errors for static objects with WordPress\'.', $this->button_link('enable', 'options-permalink.php')),
|
1059 |
+
'pgcache_write_rules_core' => sprintf('Either your .htaccess file does not exist or cannot be modified (%s). Please run <strong>chmod 777 %s</strong> to resolve this issue.', $pgcache_rules_core_path, (file_exists($pgcache_rules_core_path) ? $pgcache_rules_core_path : dirname($pgcache_rules_core_path))),
|
1060 |
+
'pgcache_write_rules_cache' => sprintf('The page cache rules (%s) could not be modified. Please run <strong>chmod 777 %s</strong> to resolve this issue.', $pgcache_rules_cache_path, (file_exists($pgcache_rules_cache_path) ? $pgcache_rules_cache_path : dirname($pgcache_rules_cache_path))),
|
1061 |
+
'browsercache_write_rules_cache' => sprintf('The browser cache rules (%s) could not be modified. Please run <strong>chmod 777 %s</strong> to resolve this issue.', $browsercache_rules_cache_path, (file_exists($browsercache_rules_cache_path) ? $browsercache_rules_cache_path : dirname($browsercache_rules_cache_path))),
|
1062 |
+
'browsercache_write_rules_no404wp' => sprintf('The browser cache rules (%s) could not be modified. Please run <strong>chmod 777 %s</strong> to resolve this issue.', $browsercache_rules_no404wp_path, (file_exists($browsercache_rules_no404wp_path) ? $browsercache_rules_no404wp_path : dirname($browsercache_rules_no404wp_path))),
|
1063 |
'browsercache_write_rules_cdn' => sprintf('The browser cache rules for CDN could not be modified. Please check CDN settings.'),
|
1064 |
+
'minify_write_rules' => sprintf('The minify cache rules (%s) could not be modified. Please run <strong>chmod 777 %s</strong> to resolve this issue.', $minify_rules_path, (file_exists($minify_rules_path) ? $minify_rules_path : dirname($minify_rules_path))),
|
1065 |
'support_request_type' => 'Please select request type.',
|
1066 |
'support_request_url' => 'Please enter the address of your site in the site <acronym title="Uniform Resource Locator">URL</acronym> field.',
|
1067 |
'support_request_name' => 'Please enter your name in the Name field',
|
1077 |
'support_request' => 'Unable to send your support request.',
|
1078 |
'config_import_no_file' => 'Please select config file.',
|
1079 |
'config_import_upload' => 'Unable to upload config file.',
|
1080 |
+
'config_import_import' => sprintf('Configuration file could not be imported. Please run <strong>chmod 777 %s</strong> to make the configuration file write-able, then try again.', (file_exists($config_path) ? $config_path : dirname($config_path))),
|
1081 |
+
'config_reset' => sprintf('Default settings could not be restored. Please run <strong>chmod 777 %s</strong> to make the configuration file write-able, then try again.', (file_exists(W3TC_CONFIG_PREVIEW_PATH) ? W3TC_CONFIG_PREVIEW_PATH : W3TC_CONFIG_PREVIEW_PATH)),
|
1082 |
+
'preview_enable' => sprintf('Preview mode could not be enabled. Please run <strong>chmod 777 %s</strong> to make the configuration file write-able, then try again.', (file_exists(W3TC_CONFIG_PREVIEW_PATH) ? W3TC_CONFIG_PREVIEW_PATH : dirname(W3TC_CONFIG_PREVIEW_PATH))),
|
1083 |
+
'preview_disable' => sprintf('Preview mode could not be disabled. Please run <strong>chmod 777 %s</strong> to make the configuration file write-able, then try again.', (file_exists($config_path) ? $config_path : dirname($config_path))),
|
1084 |
+
'preview_deploy' => sprintf('Preview settings could not be deployed. Please run <strong>chmod 777 %s</strong> to make the configuration file write-able, then try again.', (file_exists(W3TC_CONFIG_PATH) ? W3TC_CONFIG_PATH : dirname(W3TC_CONFIG_PATH))),
|
1085 |
'cdn_purge_attachment' => 'Unable to purge attachment.',
|
1086 |
'pgcache_purge_post' => 'Unable to purge post.'
|
1087 |
);
|
1104 |
'support_request' => 'Your support request has been successfully sent.',
|
1105 |
'config_import' => 'Settings successfully imported.',
|
1106 |
'config_reset' => 'Settings successfully restored.',
|
1107 |
+
'preview_enable' => 'Preview mode was successfully enabled',
|
1108 |
+
'preview_disable' => 'Preview mode was successfully disabled',
|
1109 |
'preview_deploy' => 'Preview settings successfully deployed.',
|
1110 |
'cdn_purge_attachment' => 'Attachment successfully purged.',
|
1111 |
'pgcache_purge_post' => 'Post successfully purged.'
|
1429 |
$w3_plugin_pgcache = & W3_Plugin_PgCache::instance();
|
1430 |
|
1431 |
if ($this->_config->get_boolean('notes.pgcache_rules_core') && !$w3_plugin_pgcache->check_rules_core()) {
|
1432 |
+
$pgcache_rules_core_path = w3_get_home_root() . '/.htaccess';
|
1433 |
+
|
1434 |
if (w3_is_multisite()) {
|
1435 |
+
$this->_errors[] = sprintf('Enhanced mode page cache is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s</strong> has the following rules: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> %s', $pgcache_rules_core_path, $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_pgcache->generate_rules_core()), $this->button_hide_note('Hide this message', 'pgcache_rules_core'));
|
1436 |
} else {
|
1437 |
+
$this->_errors[] = sprintf('You\'ve selected disk caching with enhanced mode however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s</strong>, then %s. To manually modify your server configuration for enhanced mode append the following code: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> and %s.', (file_exists($pgcache_rules_core_path) ? $pgcache_rules_core_path : dirname($pgcache_rules_core_path)), $this->button_link('try again', sprintf('admin.php?page=%s&pgcache_write_rules_core', $this->_page)), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_pgcache->generate_rules_core()), $this->button_hide_note('hide this message', 'pgcache_rules_core'));
|
1438 |
}
|
1439 |
}
|
1440 |
|
1441 |
if ($this->_config->get_boolean('notes.pgcache_rules_cache') && !$w3_plugin_pgcache->check_rules_cache()) {
|
1442 |
+
$pgcache_rules_cache_path = W3TC_CACHE_FILE_PGCACHE_DIR . '/.htaccess';
|
1443 |
+
|
1444 |
+
$this->_errors[] = sprintf('You\'ve selected disk caching with enhanced mode however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s</strong>, then %s. To manually modify your server configuration for enhanced mode append the following code: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> and %s.', (file_exists($pgcache_rules_cache_path) ? $pgcache_rules_cache_path : dirname($pgcache_rules_cache_path)), $this->button_link('try again', sprintf('admin.php?page=%s&pgcache_write_rules_cache', $this->_page)), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_pgcache->generate_rules_cache()), $this->button_hide_note('hide this message', 'pgcache_rules_cache'));
|
1445 |
}
|
1446 |
break;
|
1447 |
|
1465 |
$w3_plugin_minify = & W3_Plugin_Minify::instance();
|
1466 |
|
1467 |
if ($this->_config->get_boolean('notes.minify_rules') && !$w3_plugin_minify->check_rules()) {
|
1468 |
+
$minify_rules_path = W3TC_CACHE_FILE_MINIFY_DIR . '/.htaccess';
|
1469 |
+
|
1470 |
+
$this->_errors[] = sprintf('The "Rewrite URL Structure" feature, requires rewrite rules be present. Please run <strong>chmod 777 %s</strong>, then %s. To manually modify your server configuration for minify append the following code: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> and %s.', (file_exists($minify_rules_path) ? $minify_rules_path : dirname($minify_rules_path)), $this->button_link('try again', sprintf('admin.php?page=%s&minify_write_rules', $this->_page)), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_minify->generate_rules()), $this->button_hide_note('hide this message', 'minify_rules'));
|
1471 |
}
|
1472 |
}
|
1473 |
|
1518 |
$w3_plugin_browsercache = & W3_Plugin_BrowserCache::instance();
|
1519 |
|
1520 |
if ($this->_config->get_boolean('notes.browsercache_rules_cache') && !$w3_plugin_browsercache->check_rules_cache()) {
|
1521 |
+
$browsercache_rules_cache_path = w3_get_document_root() . '/.htaccess';
|
1522 |
+
|
1523 |
if (w3_is_multisite()) {
|
1524 |
+
$this->_errors[] = sprintf('Browser Cache feature is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s</strong> has the following rules: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> %s', $browsercache_rules_cache_path, $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_cache()), $this->button_hide_note('Hide this message', 'browsercache_rules_cache'));
|
1525 |
} else {
|
1526 |
+
$this->_errors[] = sprintf('You\'ve enabled Browser Cache feature however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s</strong>, then %s. To manually modify these settings use the following code: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> and %s.', (file_exists($browsercache_rules_cache_path) ? $browsercache_rules_cache_path : dirname($browsercache_rules_cache_path)), $this->button_link('try again', sprintf('admin.php?page=%s&browsercache_write_rules_cache', $this->_page)), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_cache()), $this->button_hide_note('hide this message', 'browsercache_rules_cache'));
|
1527 |
}
|
1528 |
}
|
1529 |
|
1530 |
if ($this->_config->get_boolean('notes.browsercache_rules_no404wp') && $this->_config->get_boolean('browsercache.no404wp') && !$w3_plugin_browsercache->check_rules_no404wp()) {
|
1531 |
+
$browsercache_rules_no404wp_path = w3_get_home_root() . '/.htaccess';
|
1532 |
+
|
1533 |
if (w3_is_multisite()) {
|
1534 |
+
$this->_errors[] = sprintf('Browser Cache feature is not operational. Your .htaccess rules could not be modified. Please verify <strong>%s</strong> has the following rules: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> %s', $browsercache_rules_no404wp_path, $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_no404wp()), $this->button_hide_note('Hide this message', 'browsercache_rules_no404wp'));
|
1535 |
} else {
|
1536 |
+
$this->_errors[] = sprintf('You\'ve enabled Browser Cache feature however the .htaccess file is not properly configured. Please run <strong>chmod 777 %s</strong>, then %s. To manually modify these settings use the following code: %s <textarea class="w3tc-rules" cols="120" rows="10" readonly="readonly">%s</textarea> and %s.', (file_exists($browsercache_rules_no404wp_path) ? $browsercache_rules_no404wp_path : dirname($browsercache_rules_no404wp_path)), $this->button_link('try again', sprintf('admin.php?page=%s&browsercache_write_rules_no404wp', $this->_page)), $this->button('view code', '', 'w3tc-show-rules'), htmlspecialchars($w3_plugin_browsercache->generate_rules_no404wp()), $this->button_hide_note('hide this message', 'browsercache_rules_no404wp'));
|
1537 |
}
|
1538 |
}
|
1539 |
}
|
1844 |
function options_mobile()
|
1845 |
{
|
1846 |
$mobile_enabled = $this->_config->get_boolean('mobile.enabled');
|
1847 |
+
$groups = $this->_config->get_array('mobile.rgroups');
|
1848 |
|
1849 |
require_once W3TC_LIB_W3_DIR . '/Mobile.php';
|
1850 |
$w3_mobile = & W3_Mobile::instance();
|
1873 |
*/
|
1874 |
function options_faq()
|
1875 |
{
|
1876 |
+
$faq = $this->parse_faq();
|
|
|
|
|
|
|
|
|
|
|
|
|
1877 |
|
1878 |
include W3TC_DIR . '/inc/options/faq.phtml';
|
1879 |
}
|
1917 |
$url = W3_Request::get_string('url', w3_get_domain_url());
|
1918 |
$name = W3_Request::get_string('name', $name);
|
1919 |
$email = W3_Request::get_string('email', $email);
|
1920 |
+
$twitter = W3_Request::get_string('twitter');
|
1921 |
$phone = W3_Request::get_string('phone');
|
1922 |
$subject = W3_Request::get_string('subject');
|
1923 |
$description = W3_Request::get_string('description');
|
1924 |
$templates = W3_Request::get_array('templates');
|
1925 |
+
$forum_url = W3_Request::get_string('forum_url');
|
1926 |
$wp_login = W3_Request::get_string('wp_login');
|
1927 |
$wp_password = W3_Request::get_string('wp_password');
|
1928 |
$ftp_host = W3_Request::get_string('ftp_host');
|
2242 |
sort($mobile_groups[$group]['agents']);
|
2243 |
}
|
2244 |
|
2245 |
+
$config->set('mobile.rgroups', $mobile_groups);
|
2246 |
}
|
2247 |
|
2248 |
/**
|
2391 |
|
2392 |
if ($new_config->get_boolean('mobile.enabled')) {
|
2393 |
$pgcache_dependencies = array_merge($pgcache_dependencies, array(
|
2394 |
+
'mobile.rgroups'
|
2395 |
));
|
2396 |
}
|
2397 |
|
2704 |
if ($preview) {
|
2705 |
if ($this->_config->save(true)) {
|
2706 |
$this->redirect(array(
|
2707 |
+
'w3tc_note' => 'preview_enable'
|
2708 |
));
|
2709 |
} else {
|
2710 |
$this->redirect(array(
|
2711 |
+
'w3tc_error' => 'preview_enable'
|
2712 |
));
|
2713 |
}
|
2714 |
} else {
|
|
|
|
|
2715 |
$config = & new W3_Config(false);
|
2716 |
|
2717 |
+
if (@unlink(W3TC_CONFIG_PREVIEW_PATH) && $this->config_save($this->_config, $config, false)) {
|
2718 |
$this->redirect(array(
|
2719 |
+
'w3tc_note' => 'preview_disable'
|
2720 |
));
|
2721 |
} else {
|
2722 |
$this->redirect(array(
|
2723 |
+
'w3tc_error' => 'preview_disable'
|
2724 |
));
|
2725 |
}
|
2726 |
}
|
2794 |
$url = W3_Request::get_string('url');
|
2795 |
$name = W3_Request::get_string('name');
|
2796 |
$email = W3_Request::get_string('email');
|
2797 |
+
$twitter = W3_Request::get_string('twitter');
|
2798 |
$phone = W3_Request::get_string('phone');
|
2799 |
$subject = W3_Request::get_string('subject');
|
2800 |
$description = W3_Request::get_string('description');
|
2812 |
'url' => $url,
|
2813 |
'name' => $name,
|
2814 |
'email' => $email,
|
2815 |
+
'twitter' => $twitter,
|
2816 |
'phone' => $phone,
|
2817 |
'subject' => $subject,
|
2818 |
'description' => $description,
|
4957 |
|
4958 |
return sprintf('%s=%s%s%s', $attr, $quote, $domain_url, $path);
|
4959 |
}
|
4960 |
+
|
4961 |
+
/**
|
4962 |
+
* Parses FAQ XML file into array
|
4963 |
+
*
|
4964 |
+
* @return array
|
4965 |
+
*/
|
4966 |
+
function parse_faq()
|
4967 |
+
{
|
4968 |
+
$faq = array();
|
4969 |
+
$file = W3TC_DIR . '/inc/options/faq.xml';
|
4970 |
+
|
4971 |
+
$xml = @file_get_contents($file);
|
4972 |
+
|
4973 |
+
if ($xml) {
|
4974 |
+
if (function_exists('xml_parser_create')) {
|
4975 |
+
$parser = @xml_parser_create('UTF-8');
|
4976 |
+
|
4977 |
+
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
|
4978 |
+
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
|
4979 |
+
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
|
4980 |
+
$values = null;
|
4981 |
+
|
4982 |
+
$result = xml_parse_into_struct($parser, $xml, $values);
|
4983 |
+
xml_parser_free($parser);
|
4984 |
+
|
4985 |
+
if ($result) {
|
4986 |
+
$index = 0;
|
4987 |
+
$current_section = '';
|
4988 |
+
$current_entry = array();
|
4989 |
+
|
4990 |
+
foreach ($values as $value) {
|
4991 |
+
switch ($value['type']) {
|
4992 |
+
case 'open':
|
4993 |
+
if ($value['tag'] === 'section') {
|
4994 |
+
$current_section = $value['attributes']['name'];
|
4995 |
+
}
|
4996 |
+
break;
|
4997 |
+
|
4998 |
+
case 'complete':
|
4999 |
+
switch ($value['tag']) {
|
5000 |
+
case 'question':
|
5001 |
+
$current_entry['question'] = $value['value'];
|
5002 |
+
break;
|
5003 |
+
|
5004 |
+
case 'answer':
|
5005 |
+
$current_entry['answer'] = $value['value'];
|
5006 |
+
break;
|
5007 |
+
}
|
5008 |
+
break;
|
5009 |
+
|
5010 |
+
case 'close':
|
5011 |
+
if ($value['tag'] == 'entry') {
|
5012 |
+
$current_entry['index'] = ++$index;
|
5013 |
+
$faq[$current_section][] = $current_entry;
|
5014 |
+
}
|
5015 |
+
break;
|
5016 |
+
}
|
5017 |
+
}
|
5018 |
+
}
|
5019 |
+
}
|
5020 |
+
}
|
5021 |
+
|
5022 |
+
return $faq;
|
5023 |
+
}
|
5024 |
}
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Plugin Name ===
|
2 |
Contributors: fredericktownes
|
3 |
-
Tags: user experience, cache, caching, page cache, css cache, js cache, db cache, disk cache, disk caching, database cache, http compression, gzip, deflate, minify, CDN, content delivery network, media library, performance, speed, multiple hosts, CSS, merge, combine, unobtrusive javascript, compress, optimize, optimizer, JavaScript, JS, cascading style sheet, plugin, yslow, YUI, google, google rank, google page speed, S3, CloudFront, AWS, Amazon Web Services,
|
4 |
Requires at least: 2.6
|
5 |
Tested up to: 3.1
|
6 |
-
Stable tag: 0.9
|
7 |
|
8 |
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.
|
9 |
|
@@ -222,9 +222,113 @@ Yes! Please [reach out to us](http://www.w3-edge.com/contact/) and we'll get you
|
|
222 |
|
223 |
Install the plugin to read the full FAQ.
|
224 |
|
225 |
-
==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
|
227 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
|
229 |
It's quite difficult to recall all of the innovators that have shared their thoughts, code and experiences in the blogosphere over the years, but here are some names to get you started:
|
230 |
|
@@ -243,75 +347,15 @@ It's quite difficult to recall all of the innovators that have shared their thou
|
|
243 |
|
244 |
Please reach out to all of these people and support their projects if you're so inclined.
|
245 |
|
246 |
-
== Installation ==
|
247 |
-
|
248 |
-
1. Deactivate and delete any other caching plugin you may be using. Make sure wp-content/ and wp-content/uploads/ (temporarily) has 777 permissions before proceeding, e.g.: `# chmod 777 /var/www/vhosts/domain.com/httpdocs/wp-content/` using your web hosting control panel or your SSH account.
|
249 |
-
1. Login as an administrator to your WordPress Admin account. Using the "Add New" menu option under the "Plugins" section of the navigation, you can either search for: w3 total cache or if you've downloaded the plugin already, click the "Upload" link, find the .zip file you download and then click "Install Now". Or you can unzip and FTP upload the plugin to your plugins directory (wp-content/plugins/). In either case, when done wp-content/plugins/w3-total-cache/ should exist.
|
250 |
-
1. Locate and activate the plugin on the "Plugins" page. Page caching will **automatically be running** in basic mode. Set the permissions of wp-content and wp-content/uploads back to 755, e.g.: `# chmod 755 /var/www/vhosts/domain.com/httpdocs/wp-content/`.
|
251 |
-
1. Now click the "Settings" link to proceed to the "General" tab and select your caching methods for page, database and minify. In most cases, "disk enhanced" mode for page cache, "disk" mode for minify and "disk" mode for database caching are "good" settings.
|
252 |
-
1. *Recommended:* On the "Minify Settings" tab, all of the recommended settings are preset. Use the help button to simplify discovery of your CSS and JS files and groups. Pay close attention to the method and location of your JS group embeddings. See the plugin's FAQ for more information on usage.
|
253 |
-
1. *Recommended:* On the "Browser Cache" tab, all of the recommended settings are preset. Use these options to improve user experience by using the brower's cache.
|
254 |
-
1. *Recommended:* If you already have a content delivery network (CDN) provider, proceed to the "Content Delivery Network" tab and populate the fields and set your preferences. If you do not use the Media Library, you will need to import your images etc into the default locations. Use the Media Library Import Tool on the "Content Delivery Network" tab to perform this task. If you do not have a CDN provider, you can still improve your site's performance using the "Self-hosted" method. On your own server, create a subdomain and matching DNS Zone record; e.g. static.domain.com and configure FTP options on the "Content Delivery Network" tab accordingly. Be sure to FTP upload the appropriate files, using the available upload buttons.
|
255 |
-
1. *Recommended:* On the "Browser Cache" tab, HTTP compression is enabled by default. Make sure to enable other options to suit your goals.
|
256 |
-
1. *Optional:* On the "Database Cache" tab, the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Try object caching instead for shared hosting.
|
257 |
-
1. *Optional:* On the "Object Cache" tab, all of the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Test this option with and without database cache to ensure that it provides a performance increase.
|
258 |
-
1. *Optional:* On the "User Agent Groups" tab, specify any user agents, like mobile phones if a mobile theme is used.
|
259 |
-
|
260 |
-
== Other Notes ==
|
261 |
-
|
262 |
-
= Press: Mentions, Tutorials & Reviews =
|
263 |
-
|
264 |
-
* July 21, 2010: [Improve Your WordPress Performance With W3 Total Cache](http://maketecheasier.com/improve-wordpress-performance-with-w3-total-cache/2010/07/21), Damien Oh
|
265 |
-
* July 21, 2010: [Four Simple Steps For Big Gains In Page Speed](http://www.dailyblogtips.com/four-simple-steps-for-big-gains-in-page-speed/), Greg Hayes
|
266 |
-
* July 20, 2010: [How to Use Google Webmaster Tools to Diagnose and Improve WordPress Page Speed](http://wpmu.org/how-to-use-google-webmaster-tools-to-diagnose-and-improve-wordpress-page-speed/), Sarah Gooding
|
267 |
-
* July 20, 2010: [Caching Wordpress - Preparing Your Blog For The Mainstream](http://bradblogging.com/how-to/caching-wordpress-preparing-your-blog-for-the-mainstream/), Brad Ney
|
268 |
-
* July 19, 2010: [11 Ways to Speed Up WordPress](http://mashable.com/2010/07/19/speed-up-wordpress/), Cyrus Patten
|
269 |
-
* July 14, 2010: [How To Decrease Page Loading Time Of Your WordPress Blog By 75%](http://bloggingwithsuccess.net/decrease-loading-times), Ishan Sharma
|
270 |
-
* July 14, 2010: [Top 10 Wordpress Plugins which I use on DailyBlogging](http://www.dailyblogging.org/wordpress/top-10-wordpress-plugins-which-i-use-on-dailyblogging/), Mani Viswanathan
|
271 |
-
* July 12, 2010: [Install and Configure W3 Total Cache in 7 Easy Steps](http://zemalf.com/1443/w3-total-cache/), Antti Kokkonen
|
272 |
-
* July 9, 2010: [How to Reduce the Loading Time of Your Blog](http://www.admixweb.com/2010/07/09/how-to-reduce-the-loading-time-of-your-blog/), Rishabh Agarwal
|
273 |
-
* July 6, 2010: [5 Wordpress Plugins You Need To Know About](http://thenextweb.com/apps/2010/07/06/5-wordpress-plugins-you-need-to-know-about/), James Hicks
|
274 |
-
* June 22, 2010: [12 Ways to Improve Wordpress Page Load Time](http://myblog2day.com/12-ways-to-improve-wordpress-page-load-time.php), Lee Ka Hoong
|
275 |
-
* June 21, 2010: [Significantly Speed Up Your WordPress Blog in 9 Easy Steps](http://www.bloggingpro.com/archives/2010/06/21/significantly-speed-up-your-wordpress-blog-in-9-easy-steps/), Robyn-Dale Samuda
|
276 |
-
* June 10, 2010: [Speed 'Em Up: Wordpress & W3 Total Cache](http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF-8&layout=1&eotf=1&u=http://www.andilicious.com/blog/1473/20100610/wordpress-beschleunigen-grundlagen-w3-total-cache-page-speed&sl=auto&tl=en), Andi Licious
|
277 |
-
* May 24, 2010: [Make Your Blog 10x Faster With W3 Total Cache Plug-in](http://www.strictlyonlinebiz.com/blog/speed-up-wordpress-with-w3-total-cache/1231/), Udegbunam Chukwudi
|
278 |
-
* May 23, 2010: [xCache v1.3.0 Now Available](http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fresellr.net%2Fxcache-now-available%2F&rls=com.microsoft:en-us&ie=UTF-8&oe=UTF-8&startIndex=&startPage=1&rlz=1I7GGIE_en&redir_esc=&ei=NO49TNaAFIH60wS2zuXLDg), Michael
|
279 |
-
* May 10, 2010: [Maximize WordPress and BuddyPress Performance With W3 Total Cache](http://wpmu.org/maximize-wordpress-and-buddypress-performance-with-w3-total-cache/), Sarah Gooding
|
280 |
-
* May 5, 2010: [Is Your Wordpress Blog Slow to Load?](http://homenotion.com/blog/blogs/is-your-wordpress-blog-slow-to-load/), Elizabeth McGee
|
281 |
-
* April 21, 2010: [WordPress Optimization: How I Reduced Page Load Time by 75%](http://www.kadavy.net/blog/posts/wordpress-optimization-dreamhost-rackspace/), David Kadavy
|
282 |
-
* April 13, 2010: [Top 10 Wordpress Plugins Your Blog Should Have (Video)](http://www.blogsuccessjournal.com/blog-tips-and-advice/wordpress-tips-advice/top-10-wordpress-plugins-your-blog-should-have-video/), Dan & Jennifer
|
283 |
-
* March 12, 2010: [Howto: Speed up WordPress sites by using Amazon Cloudfront](http://www.jitscale.com/howto-speed-up-wordpress-sites-by-using-amazon-cloudfront/), Niek Waarbroek
|
284 |
-
* April 12, 2010: [Super or Total? Money Talks But Cache Rules](http://website-in-a-weekend.net/website-maintenance/super-total-money-talks-cache-rules/), Dave Thackeray
|
285 |
-
* April 6, 2010: [W3 Total Cache, the most comprehensive cache plugin in WordPress](http://blogandweb.com/wordpress/w3-total-cache-plugin-cache-wordpress/), Francisco Oliveros
|
286 |
-
* April 6, 2010: [10 OF THE BEST WORDPRESS PLUGINS IN 2010](http://www.sitesketch101.com/best-wordpress-plugins), Nicholas Cardot
|
287 |
-
* March 4, 2010: [Wordpress Cache Plugin Benchmarks](http://cd34.com/blog/scalability/wordpress-cache-plugin-benchmarks/), Chris Davies
|
288 |
-
* March 2, 2010: [Wordpress + W3 Total Cache + MaxCDN How-To](http://rackerhacker.com/2010/02/13/wordpress-w3-total-cache-maxcdn/), Major Hayden
|
289 |
-
* February 18, 2010: [Blog Building: How To Dramatically Speed Up Your WordPress Site with W3 Total Cache](http://nimopress.com/pressed/blog-building-how-to-dramatically-speed-up-your-wordpress-site-with-w3-total-cache/), Nicholas Ong
|
290 |
-
* February 13, 2010: [Wordpress + W3 Total Cache + MaxCDN How-To](http://rackerhacker.com/2010/02/13/wordpress-w3-total-cache-maxcdn/), Major Hayden
|
291 |
-
* February 8, 2010: [Utilizing W3 Total Cache](http://www.reviewkin.com/utilizing-w3-total-cache/), Anangga Pratama
|
292 |
-
* February 5, 2010: [Shared Hosting vs. Cloud Hosting](http://gregrickaby.com/2010/02/shared-hosting-vs-cloud-hosting.html), Greg Rickaby
|
293 |
-
* February 4, 2010: [My Thoughts on Premium Plugins](http://weblogtoolscollection.com/archives/2010/02/04/my-thoughts-on-premium-plugins/), Ronald Huereca
|
294 |
-
* February 1, 2010: [W3 Total Cache Plugin for Wordpress Eats WP Super Cache's Lunch!](http://human3rror.com/w3-total-cache-plugin-for-wordpress-eats-wp-super-caches-lunch/), John Saddington
|
295 |
-
* January 19, 2010: [WordPress Cacheing with W3 Total Cache](http://blog.whoishostingthis.com/2010/01/19/wordpress-cacheing-w3-total-cache/), Jonathan
|
296 |
-
* January 13, 2010: [Configuring W3 Total Cache for WordPress](http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF-8&layout=1&eotf=1&u=http://da.clausheinrich.com/w3-total-cache-wordpress/&sl=auto&tl=en)
|
297 |
-
* January 12, 2010: [Wordpress load test part 2 - amendment](http://loadimpact.com/blog/wordpress-load-test-part-2-amendment), Erik Torsner
|
298 |
-
* January 6, 2010: [Wordpress - Accelerate your site with W3 Total Cache](http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=http://www.egonomik.com/2010/01/wordpress-w3-total-cache-ile-sitenizi-hizlandirin-sunucunuzu-rahatlatin/), Caner Phenix
|
299 |
-
* December 24, 2009: [WordPress Plugin � Best of 4 Caching Plugins](http://nimopress.com/pressed/wordpress-plugin-best-of-4-caching-plugins/), Nicholas Ong
|
300 |
-
* December 20, 2009: [Speed Up Your Blog With W3 Total Cache & Amazon](http://www.freedomtarget.com/w3-total-cache-with-amazon-s3-and-cloudfront), Kevin McKillop
|
301 |
-
* December 7, 2009: [W3 Total Cache with Amazon S3 and CloudFront](http://kovshenin.com/archives/w3-total-cache-with-amazon-s3-and-cloudfront/), Konstantin Kovshenin
|
302 |
-
* November 5, 2009: [How to Boost Ad Revenue: Speed is Your Secret Weapon](http://blog.buysellads.com/2009/11/how-to-boost-ad-revenue-speed-is-your-secret-weapon/), Todd Garland
|
303 |
-
* October 26, 2009: [Plugin: WordPress Caching with CDN Integration](http://www.blogperfume.com/plugin-wordpress-caching-with-cdn-integration/)
|
304 |
-
* October 19, 2009: [8 Powerful Wordpress Plugins You Probably Don't Use But Should](http://www.smashingapps.com/2009/10/19/8-powerful-wordpress-plugins-you-probably-dont-use-but-should.html), AN Jay
|
305 |
-
* October 15, 2009: [Beyond Super Cache: W3 Total Cache](http://www.webmaster-source.com/2009/10/15/beyond-super-cache-w3-total-cache/), Matt Harzewski
|
306 |
-
* September 28, 2009: [Why Noupe.com is Loading So Much Faster?](http://209.85.129.132/search?q=cache:PgY8haU_0I4J:www.noupe.com/spotlight/why-noupe-com-is-loading-pretty-fast.html+http://www.noupe.com/spotlight/why-noupe-com-is-loading-pretty-fast.html&cd=1&hl=en&ct=clnk&gl=it), Noura Yehia
|
307 |
-
* August 26, 2009: [W3 Total Cache Plugin](http://dougal.gunters.org/blog/2009/08/26/w3-total-cache-plugin), Dougal Campbell
|
308 |
-
|
309 |
-
= What users have to say: =
|
310 |
-
|
311 |
-
Read [testimonials](http://bit.ly/6Wbvpt) from W3TC users.
|
312 |
-
|
313 |
== Changelog ==
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
= 0.9.0 =
|
316 |
* Added preview feature so all cache settings can be reviewed prior to deployment
|
317 |
* Added minify configuration wizard (help button on minify tab)
|
@@ -329,7 +373,7 @@ Read [testimonials](http://bit.ly/6Wbvpt) from W3TC users.
|
|
329 |
* Added HTTP compression and headers for AWS S3
|
330 |
* Added ignored comment stems field, with Google AdSense default value to HTML minify
|
331 |
* Added support for varnish purging
|
332 |
-
* Added Rackspace
|
333 |
* Added native NetDNA / MaxCDN integration
|
334 |
* Added option to cache 404 pages
|
335 |
* Added changed files auto-upload to CDN
|
1 |
=== Plugin Name ===
|
2 |
Contributors: fredericktownes
|
3 |
+
Tags: user experience, cache, caching, page cache, css cache, js cache, db cache, disk cache, disk caching, database cache, http compression, gzip, deflate, minify, CDN, content delivery network, media library, performance, speed, multiple hosts, CSS, merge, combine, unobtrusive javascript, compress, optimize, optimizer, JavaScript, JS, cascading style sheet, plugin, yslow, YUI, google, google rank, google page speed, S3, CloudFront, AWS, Amazon Web Services, cloud files, rackspace, batcache, wp cache, wp super cache, w3 total cache, buddypress
|
4 |
Requires at least: 2.6
|
5 |
Tested up to: 3.1
|
6 |
+
Stable tag: 0.9.1
|
7 |
|
8 |
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.
|
9 |
|
222 |
|
223 |
Install the plugin to read the full FAQ.
|
224 |
|
225 |
+
== Installation ==
|
226 |
+
|
227 |
+
1. Deactivate and delete any other caching plugin you may be using. Make sure wp-content/ and wp-content/uploads/ (temporarily) has 777 permissions before proceeding, e.g.: `# chmod 777 /var/www/vhosts/domain.com/httpdocs/wp-content/` using your web hosting control panel or your SSH account.
|
228 |
+
1. Login as an administrator to your WordPress Admin account. Using the "Add New" menu option under the "Plugins" section of the navigation, you can either search for: w3 total cache or if you've downloaded the plugin already, click the "Upload" link, find the .zip file you download and then click "Install Now". Or you can unzip and FTP upload the plugin to your plugins directory (wp-content/plugins/). In either case, when done wp-content/plugins/w3-total-cache/ should exist.
|
229 |
+
1. Locate and activate the plugin on the "Plugins" page. Page caching will **automatically be running** in basic mode. Set the permissions of wp-content and wp-content/uploads back to 755, e.g.: `# chmod 755 /var/www/vhosts/domain.com/httpdocs/wp-content/`.
|
230 |
+
1. Now click the "Settings" link to proceed to the "General" tab and select your caching methods for page, database and minify. In most cases, "disk enhanced" mode for page cache, "disk" mode for minify and "disk" mode for database caching are "good" settings.
|
231 |
+
1. *Recommended:* On the "Minify Settings" tab, all of the recommended settings are preset. Use the help button to simplify discovery of your CSS and JS files and groups. Pay close attention to the method and location of your JS group embeddings. See the plugin's FAQ for more information on usage.
|
232 |
+
1. *Recommended:* On the "Browser Cache" tab, all of the recommended settings are preset. Use these options to improve user experience by using the brower's cache.
|
233 |
+
1. *Recommended:* If you already have a content delivery network (CDN) provider, proceed to the "Content Delivery Network" tab and populate the fields and set your preferences. If you do not use the Media Library, you will need to import your images etc into the default locations. Use the Media Library Import Tool on the "Content Delivery Network" tab to perform this task. If you do not have a CDN provider, you can still improve your site's performance using the "Self-hosted" method. On your own server, create a subdomain and matching DNS Zone record; e.g. static.domain.com and configure FTP options on the "Content Delivery Network" tab accordingly. Be sure to FTP upload the appropriate files, using the available upload buttons.
|
234 |
+
1. *Recommended:* On the "Browser Cache" tab, HTTP compression is enabled by default. Make sure to enable other options to suit your goals.
|
235 |
+
1. *Optional:* On the "Database Cache" tab, the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Try object caching instead for shared hosting.
|
236 |
+
1. *Optional:* On the "Object Cache" tab, all of the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Test this option with and without database cache to ensure that it provides a performance increase.
|
237 |
+
1. *Optional:* On the "User Agent Groups" tab, specify any user agents, like mobile phones if a mobile theme is used.
|
238 |
+
|
239 |
+
== What users have to say: ==
|
240 |
+
|
241 |
+
* Read [testimonials](http://bit.ly/6Wbvpt) from W3TC users.
|
242 |
+
|
243 |
+
== Press: Mentions, Tutorials & Reviews ==
|
244 |
+
|
245 |
+
**July 2010:**
|
246 |
+
|
247 |
+
* [Getting W3 Total Cache and a mobile plugin to work in WordPress](http://blog.trasatti.it/2010/07/getting-w3-total-cache-and-a-mobile-plugin-to-work-in-wordpress.html), Andrea Trasatti
|
248 |
+
* [Improve Your WordPress Performance With W3 Total Cache](http://maketecheasier.com/improve-wordpress-performance-with-w3-total-cache/2010/07/21), Damien Oh
|
249 |
+
* [Four Simple Steps For Big Gains In Page Speed](http://www.dailyblogtips.com/four-simple-steps-for-big-gains-in-page-speed/), Greg Hayes
|
250 |
+
* [How to use Content Delivery Network on Shared Hosting for WordPress](http://solvater.com/2010/07/content-delivery-network-shared-hosting-wordpress-configuration-with-w3-total-cache-in-wordpress/), Arafath Hashmi
|
251 |
+
* [How to Use Google Webmaster Tools to Diagnose and Improve WordPress Page Speed](http://wpmu.org/how-to-use-google-webmaster-tools-to-diagnose-and-improve-wordpress-page-speed/), Sarah Gooding
|
252 |
+
* [Caching Wordpress - Preparing Your Blog For The Mainstream](http://bradblogging.com/how-to/caching-wordpress-preparing-your-blog-for-the-mainstream/), Brad Ney
|
253 |
+
* [11 Ways to Speed Up WordPress](http://mashable.com/2010/07/19/speed-up-wordpress/), Cyrus Patten
|
254 |
+
* [How To Decrease Page Loading Time Of Your WordPress Blog By 75%](http://bloggingwithsuccess.net/decrease-loading-times), Ishan Sharma
|
255 |
+
* [Top 10 Wordpress Plugins which I use on DailyBlogging](http://www.dailyblogging.org/wordpress/top-10-wordpress-plugins-which-i-use-on-dailyblogging/), Mani Viswanathan
|
256 |
+
* [Install and Configure W3 Total Cache in 7 Easy Steps](http://zemalf.com/1443/w3-total-cache/), Antti Kokkonen
|
257 |
+
* [How to Reduce the Loading Time of Your Blog](http://www.admixweb.com/2010/07/09/how-to-reduce-the-loading-time-of-your-blog/), Rishabh Agarwal
|
258 |
+
* [5 Wordpress Plugins You Need To Know About](http://thenextweb.com/apps/2010/07/06/5-wordpress-plugins-you-need-to-know-about/), James Hicks
|
259 |
+
|
260 |
+
**June 2010:**
|
261 |
+
|
262 |
+
* [12 Ways to Improve Wordpress Page Load Time](http://myblog2day.com/12-ways-to-improve-wordpress-page-load-time.php), Lee Ka Hoong
|
263 |
+
* [Significantly Speed Up Your WordPress Blog in 9 Easy Steps](http://www.bloggingpro.com/archives/2010/06/21/significantly-speed-up-your-wordpress-blog-in-9-easy-steps/), Robyn-Dale Samuda
|
264 |
+
* [Speed 'Em Up: Wordpress & W3 Total Cache](http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF-8&layout=1&eotf=1&u=http://www.andilicious.com/blog/1473/20100610/wordpress-beschleunigen-grundlagen-w3-total-cache-page-speed&sl=auto&tl=en), Andi Licious
|
265 |
+
|
266 |
+
**May 2010:**
|
267 |
+
|
268 |
+
* [Make Your Blog 10x Faster With W3 Total Cache Plug-in](http://www.strictlyonlinebiz.com/blog/speed-up-wordpress-with-w3-total-cache/1231/), Udegbunam Chukwudi
|
269 |
+
* [xCache v1.3.0 Now Available](http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fresellr.net%2Fxcache-now-available%2F&rls=com.microsoft:en-us&ie=UTF-8&oe=UTF-8&startIndex=&startPage=1&rlz=1I7GGIE_en&redir_esc=&ei=NO49TNaAFIH60wS2zuXLDg), Michael
|
270 |
+
* [Maximize WordPress and BuddyPress Performance With W3 Total Cache](http://wpmu.org/maximize-wordpress-and-buddypress-performance-with-w3-total-cache/), Sarah Gooding
|
271 |
+
* [Is Your Wordpress Blog Slow to Load?](http://homenotion.com/blog/blogs/is-your-wordpress-blog-slow-to-load/), Elizabeth McGee
|
272 |
+
|
273 |
+
**April 2010:**
|
274 |
+
|
275 |
+
* [WordPress Optimization: How I Reduced Page Load Time by 75%](http://www.kadavy.net/blog/posts/wordpress-optimization-dreamhost-rackspace/), David Kadavy
|
276 |
+
* [Top 10 Wordpress Plugins Your Blog Should Have (Video)](http://www.blogsuccessjournal.com/blog-tips-and-advice/wordpress-tips-advice/top-10-wordpress-plugins-your-blog-should-have-video/), Dan & Jennifer
|
277 |
+
* [Super or Total? Money Talks But Cache Rules](http://website-in-a-weekend.net/website-maintenance/super-total-money-talks-cache-rules/), Dave Thackeray
|
278 |
+
* [W3 Total Cache, the most comprehensive cache plugin in WordPress](http://blogandweb.com/wordpress/w3-total-cache-plugin-cache-wordpress/), Francisco Oliveros
|
279 |
+
* [10 OF THE BEST WORDPRESS PLUGINS IN 2010](http://www.sitesketch101.com/best-wordpress-plugins), Nicholas Cardot
|
280 |
+
|
281 |
+
**March 2010:**
|
282 |
+
|
283 |
+
* [Howto: Speed up WordPress sites by using Amazon Cloudfront](http://www.jitscale.com/howto-speed-up-wordpress-sites-by-using-amazon-cloudfront/), Niek Waarbroek
|
284 |
+
* [Wordpress Cache Plugin Benchmarks](http://cd34.com/blog/scalability/wordpress-cache-plugin-benchmarks/), Chris Davies
|
285 |
+
* [Wordpress + W3 Total Cache + MaxCDN How-To](http://rackerhacker.com/2010/02/13/wordpress-w3-total-cache-maxcdn/), Major Hayden
|
286 |
+
|
287 |
+
**February 2010:**
|
288 |
+
|
289 |
+
* [Blog Building: How To Dramatically Speed Up Your WordPress Site with W3 Total Cache](http://nimopress.com/pressed/blog-building-how-to-dramatically-speed-up-your-wordpress-site-with-w3-total-cache/), Nicholas Ong
|
290 |
+
* [Wordpress + W3 Total Cache + MaxCDN How-To](http://rackerhacker.com/2010/02/13/wordpress-w3-total-cache-maxcdn/), Major Hayden
|
291 |
+
* [Utilizing W3 Total Cache](http://www.reviewkin.com/utilizing-w3-total-cache/), Anangga Pratama
|
292 |
+
* [Shared Hosting vs. Cloud Hosting](http://gregrickaby.com/2010/02/shared-hosting-vs-cloud-hosting.html), Greg Rickaby
|
293 |
+
* [My Thoughts on Premium Plugins](http://weblogtoolscollection.com/archives/2010/02/04/my-thoughts-on-premium-plugins/), Ronald Huereca
|
294 |
+
* [W3 Total Cache Plugin for Wordpress Eats WP Super Cache's Lunch!](http://human3rror.com/w3-total-cache-plugin-for-wordpress-eats-wp-super-caches-lunch/), John Saddington
|
295 |
+
|
296 |
+
**January 2010:**
|
297 |
|
298 |
+
* [WordPress Cacheing with W3 Total Cache](http://blog.whoishostingthis.com/2010/01/19/wordpress-cacheing-w3-total-cache/), Jonathan
|
299 |
+
* [Configuring W3 Total Cache for WordPress](http://translate.google.com/translate?js=y&prev=_t&hl=en&ie=UTF-8&layout=1&eotf=1&u=http://da.clausheinrich.com/w3-total-cache-wordpress/&sl=auto&tl=en)
|
300 |
+
* [Wordpress load test part 2 - amendment](http://loadimpact.com/blog/wordpress-load-test-part-2-amendment), Erik Torsner
|
301 |
+
* [Wordpress - Accelerate your site with W3 Total Cache](http://translate.google.com/translate?hl=en&sl=auto&tl=en&u=http://www.egonomik.com/2010/01/wordpress-w3-total-cache-ile-sitenizi-hizlandirin-sunucunuzu-rahatlatin/), Caner Phenix
|
302 |
+
|
303 |
+
**December 2009:**
|
304 |
+
|
305 |
+
* [WordPress Plugin — Best of 4 Caching Plugins](http://nimopress.com/pressed/wordpress-plugin-best-of-4-caching-plugins/), Nicholas Ong
|
306 |
+
* [Speed Up Your Blog With W3 Total Cache & Amazon](http://www.freedomtarget.com/w3-total-cache-with-amazon-s3-and-cloudfront), Kevin McKillop
|
307 |
+
* [W3 Total Cache with Amazon S3 and CloudFront](http://kovshenin.com/archives/w3-total-cache-with-amazon-s3-and-cloudfront/), Konstantin Kovshenin
|
308 |
+
|
309 |
+
**November 2009:**
|
310 |
+
|
311 |
+
* [How to Boost Ad Revenue: Speed is Your Secret Weapon](http://blog.buysellads.com/2009/11/how-to-boost-ad-revenue-speed-is-your-secret-weapon/), Todd Garland
|
312 |
+
|
313 |
+
**October 2009:**
|
314 |
+
|
315 |
+
* [Plugin: WordPress Caching with CDN Integration](http://www.blogperfume.com/plugin-wordpress-caching-with-cdn-integration/)
|
316 |
+
* [8 Powerful Wordpress Plugins You Probably Don't Use But Should](http://www.smashingapps.com/2009/10/19/8-powerful-wordpress-plugins-you-probably-dont-use-but-should.html), AN Jay
|
317 |
+
* [Beyond Super Cache: W3 Total Cache](http://www.webmaster-source.com/2009/10/15/beyond-super-cache-w3-total-cache/), Matt Harzewski
|
318 |
+
|
319 |
+
**September 2009:**
|
320 |
+
|
321 |
+
* [Why Noupe.com is Loading So Much Faster?](http://209.85.129.132/search?q=cache:PgY8haU_0I4J:www.noupe.com/spotlight/why-noupe-com-is-loading-pretty-fast.html+http://www.noupe.com/spotlight/why-noupe-com-is-loading-pretty-fast.html&cd=1&hl=en&ct=clnk&gl=it), Noura Yehia
|
322 |
+
|
323 |
+
**August 2009:**
|
324 |
+
|
325 |
+
* [W3 Total Cache Plugin](http://dougal.gunters.org/blog/2009/08/26/w3-total-cache-plugin), Dougal Campbell
|
326 |
+
|
327 |
+
**July 2009:**
|
328 |
+
|
329 |
+
* [W3 Total Cache](http://weblogtoolscollection.com/pluginblog/2009/07/27/w3-total-cache/)
|
330 |
+
|
331 |
+
== Who do I thank for all of this? ==
|
332 |
|
333 |
It's quite difficult to recall all of the innovators that have shared their thoughts, code and experiences in the blogosphere over the years, but here are some names to get you started:
|
334 |
|
347 |
|
348 |
Please reach out to all of these people and support their projects if you're so inclined.
|
349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
== Changelog ==
|
351 |
|
352 |
+
= 0.9.1 =
|
353 |
+
* Improved Rackspace Cloud Files implementation
|
354 |
+
* Improved frequently asked questions implementation to support incomplete PHP distributions
|
355 |
+
* Fixed 500 Internal Server Error when upgrading with Disk enhanced mode enabled
|
356 |
+
* Fixed notification issues with preview mode
|
357 |
+
* Fixed an issue with fatal errors with minify and memcache(d) caching engine
|
358 |
+
|
359 |
= 0.9.0 =
|
360 |
* Added preview feature so all cache settings can be reviewed prior to deployment
|
361 |
* Added minify configuration wizard (help button on minify tab)
|
373 |
* Added HTTP compression and headers for AWS S3
|
374 |
* Added ignored comment stems field, with Google AdSense default value to HTML minify
|
375 |
* Added support for varnish purging
|
376 |
+
* Added Rackspace Cloud Files support
|
377 |
* Added native NetDNA / MaxCDN integration
|
378 |
* Added option to cache 404 pages
|
379 |
* Added changed files auto-upload to CDN
|
w3-total-cache.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: W3 Total Cache
|
4 |
Description: The fastest 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.
|
6 |
Plugin URI: http://www.w3-edge.com/wordpress-plugins/w3-total-cache/
|
7 |
Author: Frederick Townes
|
8 |
Author URI: http://www.linkedin.com/in/w3edge
|
2 |
/*
|
3 |
Plugin Name: W3 Total Cache
|
4 |
Description: The fastest 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.1
|
6 |
Plugin URI: http://www.w3-edge.com/wordpress-plugins/w3-total-cache/
|
7 |
Author: Frederick Townes
|
8 |
Author URI: http://www.linkedin.com/in/w3edge
|