Version Description
- Jan 25 2019 =
- Compatibility: Fixed fatal error for PHP 5.3.
- Compatibility: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2)
- Media: Excluded invalid image src from lazyload. (@andrew55)
- Optm: Improved URL compatibility when detecting closest cloud server.
-
ESI: Supported JSON format comment format in ESI with
is_json
parameter. - API: Added filters to CCSS/CSS/JS content. (@lhoucine)
- 3rd: Improved comment compatibility with Elegant Divi Builder.
- IAPI: New Europe Image Optimization server (EU5). Please whitelist the new IAPI IP List.
-
GUI: No longer show banners when
Disable All
inDebug
is ON. (@rabbitwordpress) - GUI: Fixed button style for RTL languages.
- GUI: Removed unnecessary translation in report.
- GUI: Updated readme wiki links.
- GUI: Fixed pie styles in image optimization page.
Download this release
Release Info
Developer | LiteSpeedTech |
Plugin | LiteSpeed Cache |
Version | 2.9.1 |
Comparing to | |
See all releases |
Code changes from version 2.9 to 2.9.1
- admin/litespeed-cache-admin-report.class.php +1 -1
- admin/tpl/inc/banner_promo.php +2 -2
- admin/tpl/inc/disabled_all.php +0 -4
- css/litespeed.css +16 -21
- inc/cdn.class.php +8 -1
- inc/crawler.class.php +2 -1
- inc/css.cls.php +7 -4
- inc/esi.class.php +11 -0
- inc/gui.class.php +7 -2
- inc/img_optm.class.php +6 -6
- inc/litespeed-cache.class.php +1 -1
- inc/media.class.php +10 -0
- inc/optimizer.class.php +3 -0
- inc/utility.class.php +4 -2
- includes/litespeed-cache-cdn.class.php +8 -1
- includes/litespeed-cache-crawler.class.php +2 -1
- includes/litespeed-cache-esi.class.php +11 -0
- includes/litespeed-cache-gui.class.php +7 -2
- includes/litespeed-cache-utility.class.php +4 -2
- includes/litespeed-cache.class.php +1 -1
- languages/litespeed-cache.pot +59 -59
- litespeed-cache.php +1 -1
- readme.txt +18 -2
- thirdparty/lscwp-3rd-divi-theme-builder.cls.php +45 -0
- thirdparty/lscwp-3rd-nextgengallery.cls.php +7 -2
- thirdparty/lscwp-registry-3rd.php +1 -0
admin/litespeed-cache-admin-report.class.php
CHANGED
@@ -61,7 +61,7 @@ class LiteSpeed_Cache_Admin_Report
|
|
61 |
|
62 |
if ( ! is_array( $json ) ) {
|
63 |
LiteSpeed_Cache_Log::debug( 'Env: Failed to post to LiteSpeed server ', $json ) ;
|
64 |
-
$msg =
|
65 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
66 |
return ;
|
67 |
}
|
61 |
|
62 |
if ( ! is_array( $json ) ) {
|
63 |
LiteSpeed_Cache_Log::debug( 'Env: Failed to post to LiteSpeed server ', $json ) ;
|
64 |
+
$msg = __( 'Failed to push to LiteSpeed server', 'litespeed-cache' ) . ': ' . $json ;
|
65 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
66 |
return ;
|
67 |
}
|
admin/tpl/inc/banner_promo.php
CHANGED
@@ -122,7 +122,7 @@ else {
|
|
122 |
Before
|
123 |
</p>
|
124 |
</div>
|
125 |
-
<div style="margin-top:-5px;">
|
126 |
<?php echo LiteSpeed_Cache_GUI::pie( $_score[ 'score_before_optm' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $_score[ 'score_before_optm' ] ) ) ; ?>
|
127 |
</div>
|
128 |
</div>
|
@@ -132,7 +132,7 @@ else {
|
|
132 |
After
|
133 |
</p>
|
134 |
</div>
|
135 |
-
<div style="margin-top:-5px;">
|
136 |
<?php echo LiteSpeed_Cache_GUI::pie( $_score[ 'score_after_optm' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $_score[ 'score_after_optm' ] ) ) ; ?>
|
137 |
</div>
|
138 |
</div>
|
122 |
Before
|
123 |
</p>
|
124 |
</div>
|
125 |
+
<div class="litespeed-promo-score" style="margin-top:-5px;">
|
126 |
<?php echo LiteSpeed_Cache_GUI::pie( $_score[ 'score_before_optm' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $_score[ 'score_before_optm' ] ) ) ; ?>
|
127 |
</div>
|
128 |
</div>
|
132 |
After
|
133 |
</p>
|
134 |
</div>
|
135 |
+
<div class="litespeed-promo-score" style="margin-top:-5px;">
|
136 |
<?php echo LiteSpeed_Cache_GUI::pie( $_score[ 'score_after_optm' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $_score[ 'score_after_optm' ] ) ) ; ?>
|
137 |
</div>
|
138 |
</div>
|
admin/tpl/inc/disabled_all.php
CHANGED
@@ -1,10 +1,6 @@
|
|
1 |
<?php
|
2 |
if ( ! defined( 'WPINC' ) ) die ;
|
3 |
|
4 |
-
if ( ! defined( 'LITESPEED_DISABLE_ALL' ) ) {
|
5 |
-
return ;
|
6 |
-
}
|
7 |
-
|
8 |
$err = __( 'Disable All Features', 'litespeed-cache' ) ;
|
9 |
|
10 |
// other plugin left cache expired rules in .htaccess which will cause conflicts
|
1 |
<?php
|
2 |
if ( ! defined( 'WPINC' ) ) die ;
|
3 |
|
|
|
|
|
|
|
|
|
4 |
$err = __( 'Disable All Features', 'litespeed-cache' ) ;
|
5 |
|
6 |
// other plugin left cache expired rules in .htaccess which will cause conflicts
|
css/litespeed.css
CHANGED
@@ -510,7 +510,6 @@ h3 .litespeed-learn-more {
|
|
510 |
margin: 15px 5px;
|
511 |
text-align: center;
|
512 |
background: #fff;
|
513 |
-
min-width: 155px;
|
514 |
cursor: pointer;
|
515 |
text-decoration: none;
|
516 |
display: inline-block;
|
@@ -1450,6 +1449,10 @@ circle.litespeed-pie_circle {
|
|
1450 |
g.litespeed-pie_info text{
|
1451 |
alignment-baseline: central;
|
1452 |
text-anchor: middle;
|
|
|
|
|
|
|
|
|
1453 |
font-size: 14px;
|
1454 |
font-weight: 600;
|
1455 |
}
|
@@ -1537,7 +1540,7 @@ g.litespeed-pie_info .litespeed-pie-done {
|
|
1537 |
position: absolute;
|
1538 |
right:10px;
|
1539 |
top:0;
|
1540 |
-
background: #cc3d6a
|
1541 |
color: #fff;
|
1542 |
padding: 1px 8px;
|
1543 |
font-size: 13px;
|
@@ -1545,11 +1548,6 @@ g.litespeed-pie_info .litespeed-pie-done {
|
|
1545 |
min-width: 14px;
|
1546 |
}
|
1547 |
|
1548 |
-
#litespeed-cdn-mapping-add {
|
1549 |
-
background: #36b0b0;
|
1550 |
-
color: #fff;
|
1551 |
-
}
|
1552 |
-
|
1553 |
.litespeed-cdn-mapping-inc {
|
1554 |
display: inline-block;
|
1555 |
margin-left: 36px ;
|
@@ -1862,12 +1860,22 @@ input.litespeed-input[type="file"]{
|
|
1862 |
margin-top: 0;
|
1863 |
}
|
1864 |
|
|
|
|
|
|
|
|
|
|
|
1865 |
.litespeed-wrap .litespeed-float-resetbtn {
|
1866 |
position: absolute;
|
1867 |
right: 10px;
|
1868 |
bottom: 20px;
|
1869 |
}
|
1870 |
|
|
|
|
|
|
|
|
|
|
|
1871 |
.litespeed input,
|
1872 |
.litespeed-body input,
|
1873 |
.litespeed-body textarea {
|
@@ -2047,20 +2055,7 @@ input.litespeed-input-warning {
|
|
2047 |
box-shadow: 0 0 0 1px rgba(54, 176, 176, 0.25);
|
2048 |
}
|
2049 |
|
2050 |
-
|
2051 |
-
padding: 5px 10px;
|
2052 |
-
font-size: 14px;
|
2053 |
-
font-weight: 400;
|
2054 |
-
border-radius: 3px;
|
2055 |
-
margin: 15px 5px;
|
2056 |
-
text-align: center;
|
2057 |
-
background: #fff;
|
2058 |
-
min-width: 155px;
|
2059 |
-
cursor: pointer;
|
2060 |
-
text-decoration: none;
|
2061 |
-
display: inline-block;
|
2062 |
-
height: initial;
|
2063 |
-
}
|
2064 |
|
2065 |
.litespeed-empty-space-xlarge {
|
2066 |
margin-top: 8em;
|
510 |
margin: 15px 5px;
|
511 |
text-align: center;
|
512 |
background: #fff;
|
|
|
513 |
cursor: pointer;
|
514 |
text-decoration: none;
|
515 |
display: inline-block;
|
1449 |
g.litespeed-pie_info text{
|
1450 |
alignment-baseline: central;
|
1451 |
text-anchor: middle;
|
1452 |
+
font-size: 11px;
|
1453 |
+
}
|
1454 |
+
|
1455 |
+
.litespeed-promo-score g.litespeed-pie_info text{
|
1456 |
font-size: 14px;
|
1457 |
font-weight: 600;
|
1458 |
}
|
1540 |
position: absolute;
|
1541 |
right:10px;
|
1542 |
top:0;
|
1543 |
+
/*background: #cc3d6a;*/
|
1544 |
color: #fff;
|
1545 |
padding: 1px 8px;
|
1546 |
font-size: 13px;
|
1548 |
min-width: 14px;
|
1549 |
}
|
1550 |
|
|
|
|
|
|
|
|
|
|
|
1551 |
.litespeed-cdn-mapping-inc {
|
1552 |
display: inline-block;
|
1553 |
margin-left: 36px ;
|
1860 |
margin-top: 0;
|
1861 |
}
|
1862 |
|
1863 |
+
.rtl .litespeed-wrap .litespeed-float-submit {
|
1864 |
+
left: 10px;
|
1865 |
+
right: unset;
|
1866 |
+
}
|
1867 |
+
|
1868 |
.litespeed-wrap .litespeed-float-resetbtn {
|
1869 |
position: absolute;
|
1870 |
right: 10px;
|
1871 |
bottom: 20px;
|
1872 |
}
|
1873 |
|
1874 |
+
.rtl .litespeed-wrap .litespeed-float-resetbtn {
|
1875 |
+
left: 10px;
|
1876 |
+
right: unset;
|
1877 |
+
}
|
1878 |
+
|
1879 |
.litespeed input,
|
1880 |
.litespeed-body input,
|
1881 |
.litespeed-body textarea {
|
2055 |
box-shadow: 0 0 0 1px rgba(54, 176, 176, 0.25);
|
2056 |
}
|
2057 |
|
2058 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2059 |
|
2060 |
.litespeed-empty-space-xlarge {
|
2061 |
margin-top: 8em;
|
inc/cdn.class.php
CHANGED
@@ -342,7 +342,14 @@ class LiteSpeed_Cache_CDN
|
|
342 |
private function _replace_inline_css()
|
343 |
{
|
344 |
// preg_match_all( '/url\s*\(\s*(?!["\']?data:)(?![\'|\"]?[\#|\%|])([^)]+)\s*\)([^;},\s]*)/i', $this->content, $matches ) ;
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
foreach ( $matches[ 1 ] as $k => $url ) {
|
347 |
$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '"', ''' ), '', $url ) ;
|
348 |
|
342 |
private function _replace_inline_css()
|
343 |
{
|
344 |
// preg_match_all( '/url\s*\(\s*(?!["\']?data:)(?![\'|\"]?[\#|\%|])([^)]+)\s*\)([^;},\s]*)/i', $this->content, $matches ) ;
|
345 |
+
|
346 |
+
/**
|
347 |
+
* Excludes `\` from URL matching
|
348 |
+
* @see #959152 - Wordpress LSCache CDN Mapping causing malformed URLS
|
349 |
+
* @see #685485
|
350 |
+
* @since 3.0
|
351 |
+
*/
|
352 |
+
preg_match_all( '#url\((?![\'"]?data)[\'"]?([^\)\'"\\\]+)[\'"]?\)#i', $this->content, $matches ) ;
|
353 |
foreach ( $matches[ 1 ] as $k => $url ) {
|
354 |
$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '"', ''' ), '', $url ) ;
|
355 |
|
inc/crawler.class.php
CHANGED
@@ -590,7 +590,8 @@ class LiteSpeed_Cache_Crawler
|
|
590 |
*/
|
591 |
private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 )
|
592 |
{
|
593 |
-
$current_factor = array_keys( $crawler_factors )
|
|
|
594 |
|
595 |
$if_touch_end = $i + 1 >= count( $crawler_factors ) ;
|
596 |
|
590 |
*/
|
591 |
private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 )
|
592 |
{
|
593 |
+
$current_factor = array_keys( $crawler_factors ) ;
|
594 |
+
$current_factor = $current_factor[ $i ] ;
|
595 |
|
596 |
$if_touch_end = $i + 1 >= count( $crawler_factors ) ;
|
597 |
|
inc/css.cls.php
CHANGED
@@ -223,7 +223,7 @@ class LiteSpeed_Cache_CSS
|
|
223 |
}
|
224 |
|
225 |
/**
|
226 |
-
* Send to LiteSpeed
|
227 |
*
|
228 |
* @since 2.3
|
229 |
* @access private
|
@@ -256,8 +256,11 @@ class LiteSpeed_Cache_CSS
|
|
256 |
return false ;
|
257 |
}
|
258 |
|
|
|
|
|
|
|
259 |
// Write to file
|
260 |
-
Litespeed_File::save( $ccss_file, $
|
261 |
|
262 |
// Save summary data
|
263 |
$req_summary[ 'last_spent' ] = time() - $req_summary[ 'curr_request' ] ;
|
@@ -273,9 +276,9 @@ class LiteSpeed_Cache_CSS
|
|
273 |
|
274 |
LiteSpeed_Cache_Log::debug( '[CSS] saved ccss ' . $ccss_file ) ;
|
275 |
|
276 |
-
LiteSpeed_Cache_Log::debug2( '[CSS] ccss con: ' . $
|
277 |
|
278 |
-
return $
|
279 |
}
|
280 |
|
281 |
/**
|
223 |
}
|
224 |
|
225 |
/**
|
226 |
+
* Send to LiteSpeed CCSS API to generate CCSS
|
227 |
*
|
228 |
* @since 2.3
|
229 |
* @access private
|
256 |
return false ;
|
257 |
}
|
258 |
|
259 |
+
// Add filters
|
260 |
+
$ccss = apply_filters( 'litespeed_ccss', $json[ 'ccss' ], $ccss_type ) ;
|
261 |
+
|
262 |
// Write to file
|
263 |
+
Litespeed_File::save( $ccss_file, $ccss, true ) ;
|
264 |
|
265 |
// Save summary data
|
266 |
$req_summary[ 'last_spent' ] = time() - $req_summary[ 'curr_request' ] ;
|
276 |
|
277 |
LiteSpeed_Cache_Log::debug( '[CSS] saved ccss ' . $ccss_file ) ;
|
278 |
|
279 |
+
LiteSpeed_Cache_Log::debug2( '[CSS] ccss con: ' . $ccss ) ;
|
280 |
|
281 |
+
return $ccss ;
|
282 |
}
|
283 |
|
284 |
/**
|
inc/esi.class.php
CHANGED
@@ -542,7 +542,18 @@ class LiteSpeed_Cache_ESI
|
|
542 |
*/
|
543 |
public function load_comment_form_block($params)
|
544 |
{
|
|
|
545 |
comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] ) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
|
547 |
if ( ! LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_ESI_CACHE_COMMFORM ) ) {
|
548 |
LiteSpeed_Cache_Control::set_nocache( 'build-in set to not cacheable' ) ;
|
542 |
*/
|
543 |
public function load_comment_form_block($params)
|
544 |
{
|
545 |
+
ob_start() ;
|
546 |
comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] ) ;
|
547 |
+
$output = ob_get_contents() ;
|
548 |
+
ob_end_clean() ;
|
549 |
+
|
550 |
+
if ( $params[ 'is_json' ] ) {
|
551 |
+
$output = json_encode( $output ) ;
|
552 |
+
$output = ltrim( $output, '"' ) ;
|
553 |
+
$output = rtrim( $output, '"' ) ;
|
554 |
+
}
|
555 |
+
|
556 |
+
echo $output ;
|
557 |
|
558 |
if ( ! LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_ESI_CACHE_COMMFORM ) ) {
|
559 |
LiteSpeed_Cache_Control::set_nocache( 'build-in set to not cacheable' ) ;
|
inc/gui.class.php
CHANGED
@@ -279,8 +279,13 @@ class LiteSpeed_Cache_GUI
|
|
279 |
{
|
280 |
$is_litespeed_page = $this->_is_litespeed_page() ;
|
281 |
|
282 |
-
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
284 |
}
|
285 |
|
286 |
$_summary = $this->get_summary() ;
|
279 |
{
|
280 |
$is_litespeed_page = $this->_is_litespeed_page() ;
|
281 |
|
282 |
+
// Bypass showing info banner if disabled all in debug
|
283 |
+
if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
|
284 |
+
if ( $is_litespeed_page && ! $check_only ) {
|
285 |
+
include_once LSCWP_DIR . "admin/tpl/inc/disabled_all.php" ;
|
286 |
+
}
|
287 |
+
|
288 |
+
return false ;
|
289 |
}
|
290 |
|
291 |
$_summary = $this->get_summary() ;
|
inc/img_optm.class.php
CHANGED
@@ -224,7 +224,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
224 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
225 |
|
226 |
LiteSpeed_Cache_Log::debug( '[Img_Optm] optimize bypass: empty _img_in_queue' ) ;
|
227 |
-
return
|
228 |
}
|
229 |
|
230 |
// Filtered from existing data
|
@@ -242,7 +242,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
242 |
if ( empty( $this->_img_in_queue ) ) {
|
243 |
$msg = __( 'Optimized successfully.', 'litespeed-cache' ) ;
|
244 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
245 |
-
return
|
246 |
}
|
247 |
|
248 |
$total_groups = count( $this->_img_in_queue ) ;
|
@@ -305,7 +305,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
305 |
$this->_update_credit( $json[ 'credit' ] ) ;
|
306 |
}
|
307 |
|
308 |
-
return
|
309 |
|
310 |
}
|
311 |
|
@@ -902,7 +902,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
902 |
{
|
903 |
$notified_data = unserialize( base64_decode( $_POST[ 'data' ] ) ) ;
|
904 |
if ( empty( $notified_data ) || ! is_array( $notified_data ) ) {
|
905 |
-
LiteSpeed_Cache_Log::debug( '[Img_Optm] notify exit: no notified data' ) ;
|
906 |
exit( json_encode( 'no notified data' ) ) ;
|
907 |
}
|
908 |
|
@@ -1163,7 +1163,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
1163 |
$tmp = $wpdb->get_row( $wpdb->prepare( $q, self::DB_IMG_OPTIMIZE_STATUS_NOTIFIED ) ) ;
|
1164 |
if ( $tmp ) {
|
1165 |
LiteSpeed_Cache_Log::debug( '[Img_Optm] Task in queue, to be continued...' ) ;
|
1166 |
-
return
|
1167 |
}
|
1168 |
|
1169 |
// If all pulled, update tag to done
|
@@ -1175,7 +1175,7 @@ class LiteSpeed_Cache_Img_Optm
|
|
1175 |
$tried_level_up = "[Msg] $tried_level_up" ;
|
1176 |
}
|
1177 |
|
1178 |
-
return
|
1179 |
}
|
1180 |
|
1181 |
/**
|
224 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
225 |
|
226 |
LiteSpeed_Cache_Log::debug( '[Img_Optm] optimize bypass: empty _img_in_queue' ) ;
|
227 |
+
return array( 'ok' => $msg ) ;
|
228 |
}
|
229 |
|
230 |
// Filtered from existing data
|
242 |
if ( empty( $this->_img_in_queue ) ) {
|
243 |
$msg = __( 'Optimized successfully.', 'litespeed-cache' ) ;
|
244 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
245 |
+
return array( 'ok' => $msg ) ;
|
246 |
}
|
247 |
|
248 |
$total_groups = count( $this->_img_in_queue ) ;
|
305 |
$this->_update_credit( $json[ 'credit' ] ) ;
|
306 |
}
|
307 |
|
308 |
+
return array( 'ok' => $msg ) ;
|
309 |
|
310 |
}
|
311 |
|
902 |
{
|
903 |
$notified_data = unserialize( base64_decode( $_POST[ 'data' ] ) ) ;
|
904 |
if ( empty( $notified_data ) || ! is_array( $notified_data ) ) {
|
905 |
+
LiteSpeed_Cache_Log::debug( '[Img_Optm] ❌ notify exit: no notified data' ) ;
|
906 |
exit( json_encode( 'no notified data' ) ) ;
|
907 |
}
|
908 |
|
1163 |
$tmp = $wpdb->get_row( $wpdb->prepare( $q, self::DB_IMG_OPTIMIZE_STATUS_NOTIFIED ) ) ;
|
1164 |
if ( $tmp ) {
|
1165 |
LiteSpeed_Cache_Log::debug( '[Img_Optm] Task in queue, to be continued...' ) ;
|
1166 |
+
return array( 'ok' => 'to_be_continued' ) ;
|
1167 |
}
|
1168 |
|
1169 |
// If all pulled, update tag to done
|
1175 |
$tried_level_up = "[Msg] $tried_level_up" ;
|
1176 |
}
|
1177 |
|
1178 |
+
return array( 'ok' => "Pulled [ori] $total_pulled_ori [WebP] $total_pulled_webp [cost] {$time_cost}s $tried_level_up" ) ;
|
1179 |
}
|
1180 |
|
1181 |
/**
|
inc/litespeed-cache.class.php
CHANGED
@@ -26,7 +26,7 @@ class LiteSpeed_Cache
|
|
26 |
const NAME = 'LiteSpeed Cache' ;
|
27 |
const PLUGIN_NAME = 'litespeed-cache' ;
|
28 |
const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php' ;
|
29 |
-
const PLUGIN_VERSION = '2.9' ;
|
30 |
|
31 |
const PAGE_EDIT_HTACCESS = 'lscache-edit-htaccess' ;
|
32 |
|
26 |
const NAME = 'LiteSpeed Cache' ;
|
27 |
const PLUGIN_NAME = 'litespeed-cache' ;
|
28 |
const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php' ;
|
29 |
+
const PLUGIN_VERSION = '2.9.1' ;
|
30 |
|
31 |
const PAGE_EDIT_HTACCESS = 'lscache-edit-htaccess' ;
|
32 |
|
inc/media.class.php
CHANGED
@@ -556,6 +556,16 @@ eot;
|
|
556 |
continue ;
|
557 |
}
|
558 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
559 |
// to avoid multiple replacement
|
560 |
if ( in_array( $match[ 0 ], $html_list ) ) {
|
561 |
continue ;
|
556 |
continue ;
|
557 |
}
|
558 |
|
559 |
+
/**
|
560 |
+
* Excldues invalid image src from buddypress avatar crop
|
561 |
+
* @see https://wordpress.org/support/topic/lazy-load-breaking-buddypress-upload-avatar-feature/#post-11040512
|
562 |
+
* @since 2.9.1
|
563 |
+
*/
|
564 |
+
if ( strpos( $attrs[ 'src' ], '{' ) !== false ) {
|
565 |
+
LiteSpeed_Cache_Log::debug2( '[Media] image src has {} ' . $attrs[ 'src' ] ) ;
|
566 |
+
continue ;
|
567 |
+
}
|
568 |
+
|
569 |
// to avoid multiple replacement
|
570 |
if ( in_array( $match[ 0 ], $html_list ) ) {
|
571 |
continue ;
|
inc/optimizer.class.php
CHANGED
@@ -134,6 +134,9 @@ class LiteSpeed_Cache_Optimizer
|
|
134 |
|
135 |
LiteSpeed_Cache_Log::debug2( '[Optmer] Generated content ' . $file_type ) ;
|
136 |
|
|
|
|
|
|
|
137 |
return $content ;
|
138 |
}
|
139 |
|
134 |
|
135 |
LiteSpeed_Cache_Log::debug2( '[Optmer] Generated content ' . $file_type ) ;
|
136 |
|
137 |
+
// Add filter
|
138 |
+
$content = apply_filters( 'litespeed_optm_cssjs', $content, $file_type, $urls ) ;
|
139 |
+
|
140 |
return $content ;
|
141 |
}
|
142 |
|
inc/utility.class.php
CHANGED
@@ -148,7 +148,9 @@ class LiteSpeed_Cache_Utility
|
|
148 |
*/
|
149 |
public static function ping( $domain )
|
150 |
{
|
151 |
-
|
|
|
|
|
152 |
$starttime = microtime( true ) ;
|
153 |
$file = fsockopen( $domain, 80, $errno, $errstr, 10 ) ;
|
154 |
$stoptime = microtime( true ) ;
|
@@ -583,7 +585,7 @@ class LiteSpeed_Cache_Utility
|
|
583 |
$url[ 'query' ] = http_build_query( $built_arr ) ;
|
584 |
self::compatibility() ;
|
585 |
$url = http_build_url( $url ) ;
|
586 |
-
$url = htmlspecialchars( $url ) ;
|
587 |
}
|
588 |
|
589 |
return $url ;
|
148 |
*/
|
149 |
public static function ping( $domain )
|
150 |
{
|
151 |
+
if ( strpos( $domain, ':' ) ) {
|
152 |
+
$domain = parse_url( $domain, PHP_URL_HOST ) ;
|
153 |
+
}
|
154 |
$starttime = microtime( true ) ;
|
155 |
$file = fsockopen( $domain, 80, $errno, $errstr, 10 ) ;
|
156 |
$stoptime = microtime( true ) ;
|
585 |
$url[ 'query' ] = http_build_query( $built_arr ) ;
|
586 |
self::compatibility() ;
|
587 |
$url = http_build_url( $url ) ;
|
588 |
+
$url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' ) ;
|
589 |
}
|
590 |
|
591 |
return $url ;
|
includes/litespeed-cache-cdn.class.php
CHANGED
@@ -342,7 +342,14 @@ class LiteSpeed_Cache_CDN
|
|
342 |
private function _replace_inline_css()
|
343 |
{
|
344 |
// preg_match_all( '/url\s*\(\s*(?!["\']?data:)(?![\'|\"]?[\#|\%|])([^)]+)\s*\)([^;},\s]*)/i', $this->content, $matches ) ;
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
foreach ( $matches[ 1 ] as $k => $url ) {
|
347 |
$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '"', ''' ), '', $url ) ;
|
348 |
|
342 |
private function _replace_inline_css()
|
343 |
{
|
344 |
// preg_match_all( '/url\s*\(\s*(?!["\']?data:)(?![\'|\"]?[\#|\%|])([^)]+)\s*\)([^;},\s]*)/i', $this->content, $matches ) ;
|
345 |
+
|
346 |
+
/**
|
347 |
+
* Excludes `\` from URL matching
|
348 |
+
* @see #959152 - Wordpress LSCache CDN Mapping causing malformed URLS
|
349 |
+
* @see #685485
|
350 |
+
* @since 3.0
|
351 |
+
*/
|
352 |
+
preg_match_all( '#url\((?![\'"]?data)[\'"]?([^\)\'"\\\]+)[\'"]?\)#i', $this->content, $matches ) ;
|
353 |
foreach ( $matches[ 1 ] as $k => $url ) {
|
354 |
$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '"', ''' ), '', $url ) ;
|
355 |
|
includes/litespeed-cache-crawler.class.php
CHANGED
@@ -590,7 +590,8 @@ class LiteSpeed_Cache_Crawler
|
|
590 |
*/
|
591 |
private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 )
|
592 |
{
|
593 |
-
$current_factor = array_keys( $crawler_factors )
|
|
|
594 |
|
595 |
$if_touch_end = $i + 1 >= count( $crawler_factors ) ;
|
596 |
|
590 |
*/
|
591 |
private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 )
|
592 |
{
|
593 |
+
$current_factor = array_keys( $crawler_factors ) ;
|
594 |
+
$current_factor = $current_factor[ $i ] ;
|
595 |
|
596 |
$if_touch_end = $i + 1 >= count( $crawler_factors ) ;
|
597 |
|
includes/litespeed-cache-esi.class.php
CHANGED
@@ -542,7 +542,18 @@ class LiteSpeed_Cache_ESI
|
|
542 |
*/
|
543 |
public function load_comment_form_block($params)
|
544 |
{
|
|
|
545 |
comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] ) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
|
547 |
if ( ! LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_ESI_CACHE_COMMFORM ) ) {
|
548 |
LiteSpeed_Cache_Control::set_nocache( 'build-in set to not cacheable' ) ;
|
542 |
*/
|
543 |
public function load_comment_form_block($params)
|
544 |
{
|
545 |
+
ob_start() ;
|
546 |
comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] ) ;
|
547 |
+
$output = ob_get_contents() ;
|
548 |
+
ob_end_clean() ;
|
549 |
+
|
550 |
+
if ( $params[ 'is_json' ] ) {
|
551 |
+
$output = json_encode( $output ) ;
|
552 |
+
$output = ltrim( $output, '"' ) ;
|
553 |
+
$output = rtrim( $output, '"' ) ;
|
554 |
+
}
|
555 |
+
|
556 |
+
echo $output ;
|
557 |
|
558 |
if ( ! LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_ESI_CACHE_COMMFORM ) ) {
|
559 |
LiteSpeed_Cache_Control::set_nocache( 'build-in set to not cacheable' ) ;
|
includes/litespeed-cache-gui.class.php
CHANGED
@@ -279,8 +279,13 @@ class LiteSpeed_Cache_GUI
|
|
279 |
{
|
280 |
$is_litespeed_page = $this->_is_litespeed_page() ;
|
281 |
|
282 |
-
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
284 |
}
|
285 |
|
286 |
$_summary = $this->get_summary() ;
|
279 |
{
|
280 |
$is_litespeed_page = $this->_is_litespeed_page() ;
|
281 |
|
282 |
+
// Bypass showing info banner if disabled all in debug
|
283 |
+
if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
|
284 |
+
if ( $is_litespeed_page && ! $check_only ) {
|
285 |
+
include_once LSCWP_DIR . "admin/tpl/inc/disabled_all.php" ;
|
286 |
+
}
|
287 |
+
|
288 |
+
return false ;
|
289 |
}
|
290 |
|
291 |
$_summary = $this->get_summary() ;
|
includes/litespeed-cache-utility.class.php
CHANGED
@@ -148,7 +148,9 @@ class LiteSpeed_Cache_Utility
|
|
148 |
*/
|
149 |
public static function ping( $domain )
|
150 |
{
|
151 |
-
|
|
|
|
|
152 |
$starttime = microtime( true ) ;
|
153 |
$file = fsockopen( $domain, 80, $errno, $errstr, 10 ) ;
|
154 |
$stoptime = microtime( true ) ;
|
@@ -583,7 +585,7 @@ class LiteSpeed_Cache_Utility
|
|
583 |
$url[ 'query' ] = http_build_query( $built_arr ) ;
|
584 |
self::compatibility() ;
|
585 |
$url = http_build_url( $url ) ;
|
586 |
-
$url = htmlspecialchars( $url ) ;
|
587 |
}
|
588 |
|
589 |
return $url ;
|
148 |
*/
|
149 |
public static function ping( $domain )
|
150 |
{
|
151 |
+
if ( strpos( $domain, ':' ) ) {
|
152 |
+
$domain = parse_url( $domain, PHP_URL_HOST ) ;
|
153 |
+
}
|
154 |
$starttime = microtime( true ) ;
|
155 |
$file = fsockopen( $domain, 80, $errno, $errstr, 10 ) ;
|
156 |
$stoptime = microtime( true ) ;
|
585 |
$url[ 'query' ] = http_build_query( $built_arr ) ;
|
586 |
self::compatibility() ;
|
587 |
$url = http_build_url( $url ) ;
|
588 |
+
$url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' ) ;
|
589 |
}
|
590 |
|
591 |
return $url ;
|
includes/litespeed-cache.class.php
CHANGED
@@ -26,7 +26,7 @@ class LiteSpeed_Cache
|
|
26 |
const NAME = 'LiteSpeed Cache' ;
|
27 |
const PLUGIN_NAME = 'litespeed-cache' ;
|
28 |
const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php' ;
|
29 |
-
const PLUGIN_VERSION = '2.9' ;
|
30 |
|
31 |
const PAGE_EDIT_HTACCESS = 'lscache-edit-htaccess' ;
|
32 |
|
26 |
const NAME = 'LiteSpeed Cache' ;
|
27 |
const PLUGIN_NAME = 'litespeed-cache' ;
|
28 |
const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php' ;
|
29 |
+
const PLUGIN_VERSION = '2.9.1' ;
|
30 |
|
31 |
const PAGE_EDIT_HTACCESS = 'lscache-edit-htaccess' ;
|
32 |
|
languages/litespeed-cache.pot
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the LiteSpeed Cache package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: LiteSpeed Cache 2.9\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
@@ -48,14 +48,14 @@ msgid "%s plugin version %s required for this action."
|
|
48 |
msgstr ""
|
49 |
|
50 |
#: admin/litespeed-cache-admin-display.class.php:156
|
51 |
-
#: admin/litespeed-cache-admin-display.class.php:248 inc/gui.class.php:
|
52 |
-
#: includes/litespeed-cache-gui.class.php:
|
53 |
msgid "Settings"
|
54 |
msgstr ""
|
55 |
|
56 |
#: admin/litespeed-cache-admin-display.class.php:158
|
57 |
-
#: admin/tpl/setting/settings_cdn.php:234 inc/gui.class.php:
|
58 |
-
#: includes/litespeed-cache-gui.class.php:
|
59 |
msgid "Manage"
|
60 |
msgstr ""
|
61 |
|
@@ -63,8 +63,8 @@ msgstr ""
|
|
63 |
msgid "Edit .htaccess"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: admin/litespeed-cache-admin-display.class.php:165 inc/gui.class.php:
|
67 |
-
#: includes/litespeed-cache-gui.class.php:
|
68 |
msgid "Image Optimization"
|
69 |
msgstr ""
|
70 |
|
@@ -444,7 +444,7 @@ msgid "Clean all CSS/JS optimizer data successfully."
|
|
444 |
msgstr ""
|
445 |
|
446 |
#: admin/litespeed-cache-admin-report.class.php:64
|
447 |
-
msgid "Failed to push to LiteSpeed server
|
448 |
msgstr ""
|
449 |
|
450 |
#: admin/litespeed-cache-admin-rules.class.php:918
|
@@ -852,10 +852,10 @@ msgstr ""
|
|
852 |
msgid "Rate %s on %s"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#. #-#-#-#-# litespeed-cache.pot (LiteSpeed Cache 2.9) #-#-#-#-#
|
856 |
#. Plugin Name of the plugin/theme
|
857 |
-
#: admin/tpl/inc/admin_footer.php:6 inc/gui.class.php:
|
858 |
-
#: includes/litespeed-cache-gui.class.php:
|
859 |
msgid "LiteSpeed Cache"
|
860 |
msgstr ""
|
861 |
|
@@ -959,7 +959,7 @@ msgstr ""
|
|
959 |
msgid "Caching functions on this page are currently unavailable!"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: admin/tpl/inc/disabled_all.php:
|
963 |
msgid "Disable All Features"
|
964 |
msgstr ""
|
965 |
|
@@ -1350,8 +1350,8 @@ msgid ""
|
|
1350 |
"dismissed. (<a %3$s>Learn More</a>)"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: admin/tpl/manage/manage_cdn.php:11 inc/gui.class.php:
|
1354 |
-
#: includes/litespeed-cache-gui.class.php:
|
1355 |
msgid "Cloudflare"
|
1356 |
msgstr ""
|
1357 |
|
@@ -1540,17 +1540,17 @@ msgstr ""
|
|
1540 |
#: admin/tpl/manage/manage_purge.php:39 admin/tpl/manage/manage_purge.php:45
|
1541 |
#: admin/tpl/manage/manage_purge.php:54 admin/tpl/manage/manage_purge.php:63
|
1542 |
#: admin/tpl/manage/manage_purge.php:72 admin/tpl/manage/manage_purge.php:81
|
1543 |
-
#: admin/tpl/manage/manage_purge.php:90 inc/gui.class.php:
|
1544 |
-
#: inc/gui.class.php:
|
1545 |
-
#: inc/gui.class.php:
|
1546 |
-
#: inc/gui.class.php:
|
1547 |
-
#: includes/litespeed-cache-gui.class.php:
|
1548 |
-
#: includes/litespeed-cache-gui.class.php:
|
1549 |
-
#: includes/litespeed-cache-gui.class.php:
|
1550 |
-
#: includes/litespeed-cache-gui.class.php:
|
1551 |
-
#: includes/litespeed-cache-gui.class.php:
|
1552 |
-
#: includes/litespeed-cache-gui.class.php:
|
1553 |
-
#: includes/litespeed-cache-gui.class.php:
|
1554 |
msgid "Purge All"
|
1555 |
msgstr ""
|
1556 |
|
@@ -1558,8 +1558,8 @@ msgstr ""
|
|
1558 |
msgid "Purge the litespeed cache entries created by this plugin"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
-
#: admin/tpl/manage/manage_purge.php:45 inc/gui.class.php:
|
1562 |
-
#: includes/litespeed-cache-gui.class.php:
|
1563 |
msgid "CSS/JS Cache"
|
1564 |
msgstr ""
|
1565 |
|
@@ -1568,8 +1568,8 @@ msgid "This will purge all minified/combined CSS/JS entries only"
|
|
1568 |
msgstr ""
|
1569 |
|
1570 |
#: admin/tpl/manage/manage_purge.php:54
|
1571 |
-
#: admin/tpl/setting/settings_inc.cache_object.php:28 inc/gui.class.php:
|
1572 |
-
#: includes/litespeed-cache-gui.class.php:
|
1573 |
msgid "Object Cache"
|
1574 |
msgstr ""
|
1575 |
|
@@ -1577,8 +1577,8 @@ msgstr ""
|
|
1577 |
msgid "Purge all the object caches"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: admin/tpl/manage/manage_purge.php:63 inc/gui.class.php:
|
1581 |
-
#: includes/litespeed-cache-gui.class.php:
|
1582 |
msgid "Opcode Cache"
|
1583 |
msgstr ""
|
1584 |
|
@@ -1586,8 +1586,8 @@ msgstr ""
|
|
1586 |
msgid "Reset the entire opcode cache"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
-
#: admin/tpl/manage/manage_purge.php:72 inc/gui.class.php:
|
1590 |
-
#: includes/litespeed-cache-gui.class.php:
|
1591 |
msgid "Critical CSS"
|
1592 |
msgstr ""
|
1593 |
|
@@ -1595,8 +1595,8 @@ msgstr ""
|
|
1595 |
msgid "This will delete all generated critical CSS files"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: admin/tpl/manage/manage_purge.php:81 inc/gui.class.php:
|
1599 |
-
#: includes/litespeed-cache-gui.class.php:
|
1600 |
msgid "Placeholder Cache"
|
1601 |
msgstr ""
|
1602 |
|
@@ -4074,71 +4074,71 @@ msgid ""
|
|
4074 |
"admin before their natural expiration, if necessary."
|
4075 |
msgstr ""
|
4076 |
|
4077 |
-
#: inc/gui.class.php:
|
4078 |
msgid "Purge this page"
|
4079 |
msgstr ""
|
4080 |
|
4081 |
-
#: inc/gui.class.php:
|
4082 |
msgid "Mark this page as "
|
4083 |
msgstr ""
|
4084 |
|
4085 |
-
#: inc/gui.class.php:
|
4086 |
msgid "Forced cacheable"
|
4087 |
msgstr ""
|
4088 |
|
4089 |
-
#: inc/gui.class.php:
|
4090 |
msgid "Non cacheable"
|
4091 |
msgstr ""
|
4092 |
|
4093 |
-
#: inc/gui.class.php:
|
4094 |
msgid "Private cache"
|
4095 |
msgstr ""
|
4096 |
|
4097 |
-
#: inc/gui.class.php:
|
4098 |
msgid "No optimization"
|
4099 |
msgstr ""
|
4100 |
|
4101 |
-
#: inc/gui.class.php:
|
4102 |
msgid "More settings"
|
4103 |
msgstr ""
|
4104 |
|
4105 |
-
#: inc/gui.class.php:
|
4106 |
msgid "LiteSpeed Cache Purge All"
|
4107 |
msgstr ""
|
4108 |
|
4109 |
-
#: inc/gui.class.php:
|
4110 |
-
#: includes/litespeed-cache-gui.class.php:
|
4111 |
-
#: includes/litespeed-cache-gui.class.php:
|
4112 |
msgid "LSCache"
|
4113 |
msgstr ""
|
4114 |
|
4115 |
-
#: inc/gui.class.php:
|
4116 |
msgid "Remove all previous unfinished image optimization requests."
|
4117 |
msgstr ""
|
4118 |
|
4119 |
-
#: inc/gui.class.php:
|
4120 |
msgid "Clean Up Unfinished Data"
|
4121 |
msgstr ""
|
4122 |
|
4123 |
-
#: inc/gui.class.php:
|
4124 |
msgid "Install %s"
|
4125 |
msgstr ""
|
4126 |
|
4127 |
-
#: inc/gui.class.php:
|
4128 |
msgid "Install Now"
|
4129 |
msgstr ""
|
4130 |
|
4131 |
-
#: inc/gui.class.php:
|
4132 |
msgid ""
|
4133 |
"<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s "
|
4134 |
"target=\"_blank\">update now</a>."
|
4135 |
msgstr ""
|
4136 |
|
4137 |
-
#: inc/gui.class.php:
|
4138 |
msgid "View %1$s version %2$s details"
|
4139 |
msgstr ""
|
4140 |
|
4141 |
-
#: inc/gui.class.php:
|
4142 |
msgid "Update %s now"
|
4143 |
msgstr ""
|
4144 |
|
@@ -4340,15 +4340,15 @@ msgstr ""
|
|
4340 |
msgid "LiteSpeed Cache Custom Cron Crawler"
|
4341 |
msgstr ""
|
4342 |
|
4343 |
-
#: inc/utility.class.php:
|
4344 |
msgid "just now"
|
4345 |
msgstr ""
|
4346 |
|
4347 |
-
#: inc/utility.class.php:
|
4348 |
msgid "right now"
|
4349 |
msgstr ""
|
4350 |
|
4351 |
-
#: inc/utility.class.php:
|
4352 |
msgid " %s ago"
|
4353 |
msgstr ""
|
4354 |
|
1 |
+
# Copyright (C) 2019 LiteSpeed Cache
|
2 |
# This file is distributed under the same license as the LiteSpeed Cache package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: LiteSpeed Cache 2.9.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
|
7 |
+
"POT-Creation-Date: 2019-01-25 20:13:27+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
48 |
msgstr ""
|
49 |
|
50 |
#: admin/litespeed-cache-admin-display.class.php:156
|
51 |
+
#: admin/litespeed-cache-admin-display.class.php:248 inc/gui.class.php:488
|
52 |
+
#: includes/litespeed-cache-gui.class.php:488
|
53 |
msgid "Settings"
|
54 |
msgstr ""
|
55 |
|
56 |
#: admin/litespeed-cache-admin-display.class.php:158
|
57 |
+
#: admin/tpl/setting/settings_cdn.php:234 inc/gui.class.php:480
|
58 |
+
#: includes/litespeed-cache-gui.class.php:480
|
59 |
msgid "Manage"
|
60 |
msgstr ""
|
61 |
|
63 |
msgid "Edit .htaccess"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: admin/litespeed-cache-admin-display.class.php:165 inc/gui.class.php:497
|
67 |
+
#: includes/litespeed-cache-gui.class.php:497
|
68 |
msgid "Image Optimization"
|
69 |
msgstr ""
|
70 |
|
444 |
msgstr ""
|
445 |
|
446 |
#: admin/litespeed-cache-admin-report.class.php:64
|
447 |
+
msgid "Failed to push to LiteSpeed server"
|
448 |
msgstr ""
|
449 |
|
450 |
#: admin/litespeed-cache-admin-rules.class.php:918
|
852 |
msgid "Rate %s on %s"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#. #-#-#-#-# litespeed-cache.pot (LiteSpeed Cache 2.9.1) #-#-#-#-#
|
856 |
#. Plugin Name of the plugin/theme
|
857 |
+
#: admin/tpl/inc/admin_footer.php:6 inc/gui.class.php:472
|
858 |
+
#: includes/litespeed-cache-gui.class.php:472
|
859 |
msgid "LiteSpeed Cache"
|
860 |
msgstr ""
|
861 |
|
959 |
msgid "Caching functions on this page are currently unavailable!"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: admin/tpl/inc/disabled_all.php:4 admin/tpl/setting/settings_debug.php:13
|
963 |
msgid "Disable All Features"
|
964 |
msgstr ""
|
965 |
|
1350 |
"dismissed. (<a %3$s>Learn More</a>)"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
+
#: admin/tpl/manage/manage_cdn.php:11 inc/gui.class.php:531
|
1354 |
+
#: includes/litespeed-cache-gui.class.php:531
|
1355 |
msgid "Cloudflare"
|
1356 |
msgstr ""
|
1357 |
|
1540 |
#: admin/tpl/manage/manage_purge.php:39 admin/tpl/manage/manage_purge.php:45
|
1541 |
#: admin/tpl/manage/manage_purge.php:54 admin/tpl/manage/manage_purge.php:63
|
1542 |
#: admin/tpl/manage/manage_purge.php:72 admin/tpl/manage/manage_purge.php:81
|
1543 |
+
#: admin/tpl/manage/manage_purge.php:90 inc/gui.class.php:506
|
1544 |
+
#: inc/gui.class.php:514 inc/gui.class.php:522 inc/gui.class.php:531
|
1545 |
+
#: inc/gui.class.php:541 inc/gui.class.php:551 inc/gui.class.php:561
|
1546 |
+
#: inc/gui.class.php:571 includes/litespeed-cache-gui.class.php:506
|
1547 |
+
#: includes/litespeed-cache-gui.class.php:514
|
1548 |
+
#: includes/litespeed-cache-gui.class.php:522
|
1549 |
+
#: includes/litespeed-cache-gui.class.php:531
|
1550 |
+
#: includes/litespeed-cache-gui.class.php:541
|
1551 |
+
#: includes/litespeed-cache-gui.class.php:551
|
1552 |
+
#: includes/litespeed-cache-gui.class.php:561
|
1553 |
+
#: includes/litespeed-cache-gui.class.php:571
|
1554 |
msgid "Purge All"
|
1555 |
msgstr ""
|
1556 |
|
1558 |
msgid "Purge the litespeed cache entries created by this plugin"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: admin/tpl/manage/manage_purge.php:45 inc/gui.class.php:522
|
1562 |
+
#: includes/litespeed-cache-gui.class.php:522
|
1563 |
msgid "CSS/JS Cache"
|
1564 |
msgstr ""
|
1565 |
|
1568 |
msgstr ""
|
1569 |
|
1570 |
#: admin/tpl/manage/manage_purge.php:54
|
1571 |
+
#: admin/tpl/setting/settings_inc.cache_object.php:28 inc/gui.class.php:541
|
1572 |
+
#: includes/litespeed-cache-gui.class.php:541
|
1573 |
msgid "Object Cache"
|
1574 |
msgstr ""
|
1575 |
|
1577 |
msgid "Purge all the object caches"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
+
#: admin/tpl/manage/manage_purge.php:63 inc/gui.class.php:551
|
1581 |
+
#: includes/litespeed-cache-gui.class.php:551
|
1582 |
msgid "Opcode Cache"
|
1583 |
msgstr ""
|
1584 |
|
1586 |
msgid "Reset the entire opcode cache"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
+
#: admin/tpl/manage/manage_purge.php:72 inc/gui.class.php:561
|
1590 |
+
#: includes/litespeed-cache-gui.class.php:561
|
1591 |
msgid "Critical CSS"
|
1592 |
msgstr ""
|
1593 |
|
1595 |
msgid "This will delete all generated critical CSS files"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: admin/tpl/manage/manage_purge.php:81 inc/gui.class.php:571
|
1599 |
+
#: includes/litespeed-cache-gui.class.php:571
|
1600 |
msgid "Placeholder Cache"
|
1601 |
msgstr ""
|
1602 |
|
4074 |
"admin before their natural expiration, if necessary."
|
4075 |
msgstr ""
|
4076 |
|
4077 |
+
#: inc/gui.class.php:401 includes/litespeed-cache-gui.class.php:401
|
4078 |
msgid "Purge this page"
|
4079 |
msgstr ""
|
4080 |
|
4081 |
+
#: inc/gui.class.php:409 includes/litespeed-cache-gui.class.php:409
|
4082 |
msgid "Mark this page as "
|
4083 |
msgstr ""
|
4084 |
|
4085 |
+
#: inc/gui.class.php:416 includes/litespeed-cache-gui.class.php:416
|
4086 |
msgid "Forced cacheable"
|
4087 |
msgstr ""
|
4088 |
|
4089 |
+
#: inc/gui.class.php:423 includes/litespeed-cache-gui.class.php:423
|
4090 |
msgid "Non cacheable"
|
4091 |
msgstr ""
|
4092 |
|
4093 |
+
#: inc/gui.class.php:430 includes/litespeed-cache-gui.class.php:430
|
4094 |
msgid "Private cache"
|
4095 |
msgstr ""
|
4096 |
|
4097 |
+
#: inc/gui.class.php:437 includes/litespeed-cache-gui.class.php:437
|
4098 |
msgid "No optimization"
|
4099 |
msgstr ""
|
4100 |
|
4101 |
+
#: inc/gui.class.php:444 includes/litespeed-cache-gui.class.php:444
|
4102 |
msgid "More settings"
|
4103 |
msgstr ""
|
4104 |
|
4105 |
+
#: inc/gui.class.php:464 includes/litespeed-cache-gui.class.php:464
|
4106 |
msgid "LiteSpeed Cache Purge All"
|
4107 |
msgstr ""
|
4108 |
|
4109 |
+
#: inc/gui.class.php:464 inc/gui.class.php:514
|
4110 |
+
#: includes/litespeed-cache-gui.class.php:464
|
4111 |
+
#: includes/litespeed-cache-gui.class.php:514
|
4112 |
msgid "LSCache"
|
4113 |
msgstr ""
|
4114 |
|
4115 |
+
#: inc/gui.class.php:589 includes/litespeed-cache-gui.class.php:589
|
4116 |
msgid "Remove all previous unfinished image optimization requests."
|
4117 |
msgstr ""
|
4118 |
|
4119 |
+
#: inc/gui.class.php:590 includes/litespeed-cache-gui.class.php:590
|
4120 |
msgid "Clean Up Unfinished Data"
|
4121 |
msgstr ""
|
4122 |
|
4123 |
+
#: inc/gui.class.php:609 includes/litespeed-cache-gui.class.php:609
|
4124 |
msgid "Install %s"
|
4125 |
msgstr ""
|
4126 |
|
4127 |
+
#: inc/gui.class.php:610 includes/litespeed-cache-gui.class.php:610
|
4128 |
msgid "Install Now"
|
4129 |
msgstr ""
|
4130 |
|
4131 |
+
#: inc/gui.class.php:630 includes/litespeed-cache-gui.class.php:630
|
4132 |
msgid ""
|
4133 |
"<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s "
|
4134 |
"target=\"_blank\">update now</a>."
|
4135 |
msgstr ""
|
4136 |
|
4137 |
+
#: inc/gui.class.php:633 includes/litespeed-cache-gui.class.php:633
|
4138 |
msgid "View %1$s version %2$s details"
|
4139 |
msgstr ""
|
4140 |
|
4141 |
+
#: inc/gui.class.php:638 includes/litespeed-cache-gui.class.php:638
|
4142 |
msgid "Update %s now"
|
4143 |
msgstr ""
|
4144 |
|
4340 |
msgid "LiteSpeed Cache Custom Cron Crawler"
|
4341 |
msgstr ""
|
4342 |
|
4343 |
+
#: inc/utility.class.php:223 includes/litespeed-cache-utility.class.php:223
|
4344 |
msgid "just now"
|
4345 |
msgstr ""
|
4346 |
|
4347 |
+
#: inc/utility.class.php:223 includes/litespeed-cache-utility.class.php:223
|
4348 |
msgid "right now"
|
4349 |
msgstr ""
|
4350 |
|
4351 |
+
#: inc/utility.class.php:226 includes/litespeed-cache-utility.class.php:226
|
4352 |
msgid " %s ago"
|
4353 |
msgstr ""
|
4354 |
|
litespeed-cache.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* Plugin Name: LiteSpeed Cache
|
16 |
* Plugin URI: https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
|
17 |
* Description: High-performance page caching and site optimization from LiteSpeed
|
18 |
-
* Version: 2.9
|
19 |
* Author: LiteSpeed Technologies
|
20 |
* Author URI: https://www.litespeedtech.com
|
21 |
* License: GPLv3
|
15 |
* Plugin Name: LiteSpeed Cache
|
16 |
* Plugin URI: https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
|
17 |
* Description: High-performance page caching and site optimization from LiteSpeed
|
18 |
+
* Version: 2.9.1
|
19 |
* Author: LiteSpeed Technologies
|
20 |
* Author URI: https://www.litespeedtech.com
|
21 |
* License: GPLv3
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: LiteSpeedTech
|
3 |
Tags: caching, optimize, performance, pagespeed, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner
|
4 |
Requires at least: 4.0
|
5 |
-
Tested up to: 5.0.
|
6 |
-
Stable tag: 2.9
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl.html
|
9 |
|
@@ -271,6 +271,7 @@ Click on the `Advanced View` link at the top of the page, and several more tabs
|
|
271 |
* [WP-PostRatings](https://wordpress.org/plugins/wp-postratings/)
|
272 |
* [Avada 5.1 RC1+](https://avada.theme-fusion.com/)
|
273 |
* [Elegant Themes Divi 3.0.67+](https://www.elegantthemes.com/gallery/divi/)
|
|
|
274 |
* [Caldera Forms](https://wordpress.org/plugins/caldera-forms/) 1.5.6.2+
|
275 |
* Login With Ajax
|
276 |
* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
|
@@ -280,6 +281,21 @@ Click on the `Advanced View` link at the top of the page, and several more tabs
|
|
280 |
|
281 |
== Changelog ==
|
282 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
= 2.9 - Dec 31 2018 =
|
284 |
* 🌱<strong>Media</strong>: Lazy Load Image Classname Excludes. (@thinkmedia)
|
285 |
* 🌱: New EU/AS cloud servers for faster image optimization handling.
|
2 |
Contributors: LiteSpeedTech
|
3 |
Tags: caching, optimize, performance, pagespeed, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner
|
4 |
Requires at least: 4.0
|
5 |
+
Tested up to: 5.0.3
|
6 |
+
Stable tag: 2.9.1
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl.html
|
9 |
|
271 |
* [WP-PostRatings](https://wordpress.org/plugins/wp-postratings/)
|
272 |
* [Avada 5.1 RC1+](https://avada.theme-fusion.com/)
|
273 |
* [Elegant Themes Divi 3.0.67+](https://www.elegantthemes.com/gallery/divi/)
|
274 |
+
* [Elegant Divi Builder] (https://www.elegantthemes.com/plugins/divi-builder/)
|
275 |
* [Caldera Forms](https://wordpress.org/plugins/caldera-forms/) 1.5.6.2+
|
276 |
* Login With Ajax
|
277 |
* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
|
281 |
|
282 |
== Changelog ==
|
283 |
|
284 |
+
= 2.9.1 - Jan 25 2019 =
|
285 |
+
* <strong>Compatibility</strong>: Fixed fatal error for PHP 5.3.
|
286 |
+
* <strong>Compatibility</strong>: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2)
|
287 |
+
* <strong>Media</strong>: Excluded invalid image src from lazyload. (@andrew55)
|
288 |
+
* <strong>Optm</strong>: Improved URL compatibility when detecting closest cloud server.
|
289 |
+
* <strong>ESI</strong>: Supported JSON format comment format in ESI with `is_json` parameter.
|
290 |
+
* <strong>API</strong>: Added filters to CCSS/CSS/JS content. (@lhoucine)
|
291 |
+
* <strong>3rd</strong>: Improved comment compatibility with Elegant Divi Builder.
|
292 |
+
* <strong>IAPI</strong>: New Europe Image Optimization server (EU5). <strong>Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
|
293 |
+
* <strong>GUI</strong>: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress)
|
294 |
+
* <strong>GUI</strong>: Fixed button style for RTL languages.
|
295 |
+
* <strong>GUI</strong>: Removed unnecessary translation in report.
|
296 |
+
* <strong>GUI</strong>: Updated readme wiki links.
|
297 |
+
* <strong>GUI</strong>: Fixed pie styles in image optimization page.
|
298 |
+
|
299 |
= 2.9 - Dec 31 2018 =
|
300 |
* 🌱<strong>Media</strong>: Lazy Load Image Classname Excludes. (@thinkmedia)
|
301 |
* 🌱: New EU/AS cloud servers for faster image optimization handling.
|
thirdparty/lscwp-3rd-divi-theme-builder.cls.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Third Party integration with DIVI Theme.
|
4 |
+
*
|
5 |
+
* @since 2.9.0
|
6 |
+
* @package LiteSpeed_Cache
|
7 |
+
* @subpackage LiteSpeed_Cache/thirdparty
|
8 |
+
* @author LiteSpeed Technologies <info@litespeedtech.com>
|
9 |
+
*/
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
11 |
+
die() ;
|
12 |
+
}
|
13 |
+
LiteSpeed_Cache_API::register( 'LiteSpeed_Cache_ThirdParty_Divi_Theme_Builder' ) ;
|
14 |
+
|
15 |
+
class LiteSpeed_Cache_ThirdParty_Divi_Theme_Builder
|
16 |
+
{
|
17 |
+
private static $js_comment_box = false ;
|
18 |
+
|
19 |
+
public static function detect()
|
20 |
+
{
|
21 |
+
if ( ! defined( 'ET_CORE' ) ) return ;
|
22 |
+
|
23 |
+
add_action( 'et_fb_before_comments_template', 'LiteSpeed_Cache_ThirdParty_Divi_Theme_Builder::js_comment_box_on' ) ;
|
24 |
+
add_action( 'et_fb_after_comments_template', 'LiteSpeed_Cache_ThirdParty_Divi_Theme_Builder::js_comment_box_off' ) ;
|
25 |
+
add_filter( 'litespeed_cache_sub_esi_params-comment-form', 'LiteSpeed_Cache_ThirdParty_Divi_Theme_Builder::esi_comment_add_slash' ) ;
|
26 |
+
}
|
27 |
+
|
28 |
+
public static function js_comment_box_on() {
|
29 |
+
self::$js_comment_box = true ;
|
30 |
+
}
|
31 |
+
|
32 |
+
public static function js_comment_box_off() {
|
33 |
+
self::$js_comment_box = false ;
|
34 |
+
}
|
35 |
+
|
36 |
+
public static function esi_comment_add_slash( $params )
|
37 |
+
{
|
38 |
+
if ( self::$js_comment_box ) {
|
39 |
+
$params[ 'is_json' ] = 1 ;
|
40 |
+
$params[ '_ls_silence' ] = 1 ;
|
41 |
+
}
|
42 |
+
|
43 |
+
return $params ;
|
44 |
+
}
|
45 |
+
}
|
thirdparty/lscwp-3rd-nextgengallery.cls.php
CHANGED
@@ -72,8 +72,8 @@ class LiteSpeed_Cache_ThirdParty_NextGenGallery
|
|
72 |
*/
|
73 |
public static function update_image()
|
74 |
{
|
75 |
-
if ( isset( $
|
76 |
-
LiteSpeed_Cache_API::purge( self::CACHETAG_GALLERIES . $
|
77 |
return ;
|
78 |
}
|
79 |
|
@@ -168,6 +168,11 @@ class LiteSpeed_Cache_ThirdParty_NextGenGallery
|
|
168 |
*/
|
169 |
public static function update_gallery($gid)
|
170 |
{
|
|
|
|
|
|
|
|
|
|
|
171 |
LiteSpeed_Cache_API::purge(self::CACHETAG_GALLERIES . $gid) ;
|
172 |
}
|
173 |
|
72 |
*/
|
73 |
public static function update_image()
|
74 |
{
|
75 |
+
if ( isset( $_REQUEST[ 'gallery_id' ] ) ) {
|
76 |
+
LiteSpeed_Cache_API::purge( self::CACHETAG_GALLERIES . $_REQUEST[ 'gallery_id' ] ) ;
|
77 |
return ;
|
78 |
}
|
79 |
|
168 |
*/
|
169 |
public static function update_gallery($gid)
|
170 |
{
|
171 |
+
// New version input will be an object with gid value
|
172 |
+
if ( is_object( $gid ) && ! empty( $gid->gid ) ) {
|
173 |
+
$gid = $gid->gid ;
|
174 |
+
}
|
175 |
+
|
176 |
LiteSpeed_Cache_API::purge(self::CACHETAG_GALLERIES . $gid) ;
|
177 |
}
|
178 |
|
thirdparty/lscwp-registry-3rd.php
CHANGED
@@ -30,6 +30,7 @@ $thirdparty_list = array(
|
|
30 |
'yith-wishlist',
|
31 |
'avada',
|
32 |
'wp-postratings',
|
|
|
33 |
) ;
|
34 |
|
35 |
foreach ($thirdparty_list as $val) {
|
30 |
'yith-wishlist',
|
31 |
'avada',
|
32 |
'wp-postratings',
|
33 |
+
'divi-theme-builder',
|
34 |
) ;
|
35 |
|
36 |
foreach ($thirdparty_list as $val) {
|