Skip to content

Commit

Permalink
Merge pull request #384 from wp-media/branch-2.9.9
Browse files Browse the repository at this point in the history
2.9.9
  • Loading branch information
GeekPress authored Mar 20, 2017
2 parents 16363bc + 563c2d8 commit 57fab4b
Show file tree
Hide file tree
Showing 15 changed files with 420 additions and 588 deletions.
172 changes: 130 additions & 42 deletions inc/3rd-party/hosting/godaddy.php
Original file line number Diff line number Diff line change
@@ -1,48 +1,136 @@
<?php
<?php
defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );

if ( class_exists( 'GD_System_Plugin_Cache_Purge' ) ) :

/**
* Clear WP Rocket cache after purged the Varnish cache via GoDaddy Hosting
*
* @since 2.6.5
*
* @return void
*/
add_action( 'init', '__rocket_clear_cache_after_godaddy', 0 );
function __rocket_clear_cache_after_godaddy() {
if ( ! isset( $_REQUEST['GD_COMMAND'] ) || $_REQUEST['GD_COMMAND'] != 'FLUSH_CACHE' ) {
return;
if ( class_exists( 'WPaaS\Plugin' ) ) :

add_filter( 'rocket_display_varnish_options_tab', '__return_false' );
add_filter( 'set_rocket_wp_cache_define', '__return_true' );

/**
* Remove expiration on HTML to prevent issue with Varnish cache
*
* @since 2.9.5
* @author Remy Perona
*
* @param string $rules htaccess rules.
* @return Updated htaccess rules
*/
function rocket_remove_html_expire_goddady( $rules ) {
$rules = <<<HTACCESS
# Expires headers (for better cache control)
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# Feed
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType application/x-font-woff2 "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
HTACCESS;

return $rules;
}
add_filter('rocket_htaccess_mod_expires', 'rocket_remove_html_expire_goddady');

/**
* Call the Varnish server to purge the cache with GoDaddy.
*
* @since 2.9.5
*
* @return void
*/
function rocket_clean_domain_godaddy() {
rocket_godaddy_request( 'BAN' );
}
add_action( 'before_rocket_clean_domain', 'rocket_clean_domain_godaddy' );

/**
* Call the Varnish server to purge a specific URL with GoDaddy.
*
* @since 2.9.5
*
* @return void
*/
function rocket_clean_file_godaddy( $url ) {
rocket_godaddy_request( 'PURGE', home_url( $url ) );
}

if ( wp_verify_nonce( $_REQUEST['GD_NONCE'], 'GD_FLUSH_CACHE' ) ) {
// Clear all caching files
rocket_clean_domain();

// Preload cache
run_rocket_preload_cache( 'cache-preload' );
add_action( 'before_rocket_clean_file', 'rocket_clean_file_godaddy' );

/**
* Call the Varnish server to purge the home with GoDaddy.
*
* @since 2.9.5
*
* @return void
*/
function rocket_clean_home_godaddy( $root, $lang ) {
$home_url = trailingslashit( get_rocket_i18n_home_url( $lang ) );
$home_pagination_url = $home_url . trailingslashit( $GLOBALS['wp_rewrite']->pagination_base );

rocket_godaddy_request( 'PURGE', $home_url );
rocket_godaddy_request( 'PURGE', $home_pagination_url );
}
}

/* @since 2.6.5
* For not conflit with GoDaddy
*/
add_action( 'after_rocket_clean_domain', 'rocket_clean_godaddy' );

/**
* Call the cache server to purge the cache with GoDaddy hosting.
*
* @since 2.6.5
*
* @return void
*/
function rocket_clean_godaddy() {
global $gd_cache_purge;

if( is_a( $gd_cache_purge, 'GD_System_Plugin_Cache_Purge' ) && method_exists( 'GD_System_Plugin_Cache_Purge', 'ban_cache' ) ) {
$gd_cache_purge->ban_cache();
add_action( 'before_rocket_clean_home', 'rocket_clean_home_godaddy', 10, 2 );

/**
* Perform the call to the Varnish server to purge
*
* @since 2.9.5
* @source WPaaS\Cache
*
* @param string $method can be BAN or PURGE.
* @param string $url URL to purge.
* @return void
*/
function rocket_godaddy_request( $method, $url = null ) {
$url = empty( $url ) ? home_url() : $url;
$host = parse_url( $url, PHP_URL_HOST );
$url = set_url_scheme( str_replace( $host, WPaas\Plugin::vip(), $url ), 'http' );

wp_cache_flush();

// This forces the APC cache to flush across the server
update_option( 'gd_system_last_cache_flush', time() );

wp_remote_request(
esc_url_raw( $url ),
array(
'method' => $method,
'blocking' => false,
'headers' => array(
'Host' => $host,
),
)
);
}
}

endif;
endif;
5 changes: 3 additions & 2 deletions inc/admin/ui/css/admin.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,17 @@ p.description.file-error{color:#F00}
.rocket-renew{font-weight:400}
.rkt-disabled{color:#CCC}
.rkt-note{font-style:italic; font-weight:bold; font-size:smaller}
.rkt-imagify-notice.rkt-imagify-notice{position:relative; display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; -ms-grid-row-align:center; align-items:center; padding:5px 45px 5px 0; border:0 none; box-shadow:none; color:#FFF; background:#2e3243}
.rkt-imagify-notice.rkt-imagify-notice{position:relative; display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; -ms-grid-row-align:center; align-items:center; float:none; width:auto; padding:5px 45px 5px 0; border:0 none; box-shadow:none; color:#FFF; background:#2e3243}
.rkt-imagify-notice .rkt-cross{position:absolute; right:8px; top:50%; width:22px; height:22px; padding:0; margin-top:-11px; background:#FFF; color:#2e3243; border-radius:50%; transition:all .275s}
.rkt-imagify-notice .rkt-cross .dashicons{position:relative; top:2px; left:1px; transition:all .275s}
.rkt-imagify-notice .rkt-cross:hover{background:#2e3243}
.rkt-imagify-notice .rkt-cross:hover .dashicons{color:#FFF}
.rkt-imagify-notice .rkt-imagify-logo, .rkt-imagify-notice .rkt-imagify-cta{-webkit-flex-shrink: 0;-ms-flex-negative: 0;flex-shrink: 0;}
.rkt-imagify-notice .rkt-imagify-logo{width:160px!important; text-align:right; padding:0 15px; line-height:0.8}
.rkt-imagify-notice .rkt-imagify-msg{width:100%!important; padding:0 15px; }
.rkt-imagify-notice .rkt-imagify-cta{width:200px;!important; -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; -webkit-flex-basis: 200px; -ms-flex-preferred-size: 200px; flex-basis: 200px; }
.rkt-imagify-notice .rkt-imagify-cta{padding-top: 7px; -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; -webkit-flex-basis: 200px; -ms-flex-preferred-size: 200px; flex-basis: 200px; }
.rkt-imagify-notice .button.button{height:auto; font-weight:600; font-size:14px; box-shadow:0 3px 0 rgba(0,0,0,.15); border:0 none; padding:4px 18px; background:#40B1D0; text-shadow:1px 1px 1px rgba(0,0,0,.2)}
.rkt-imagify-cta .thickbox{display: inline-block;margin-top:.5em;color:rgba(255,255,255,.5);}
@media (max-width:650px){.rkt-imagify-notice{-webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap}
.rkt-imagify-notice .rkt-imagify-msg,
.rkt-imagify-notice .rkt-imagify-cta,
Expand Down
6 changes: 3 additions & 3 deletions inc/admin/ui/enqueue.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ function __rocket_admin_print_styles() {
add_action( 'admin_print_styles-upload.php', '__rocket_enqueue_modal_plugin' );
add_action( 'admin_print_styles-settings_page_' . WP_ROCKET_PLUGIN_SLUG, '__rocket_enqueue_modal_plugin' );
function __rocket_enqueue_modal_plugin() {
wp_enqueue_style( 'thickbox' );
wp_enqueue_style( 'plugin-install' );

wp_enqueue_script( 'plugin-install' );
wp_enqueue_script( 'tgm-modal-wp-rocket', WP_ROCKET_ADMIN_UI_JS_URL . 'vendors/tgm-modal.min.js', array( 'jquery' ), WP_ROCKET_VERSION, true );
}
wp_enqueue_script( 'updates' );
add_thickbox();
}
1 change: 0 additions & 1 deletion inc/admin/ui/js/vendors/tgm-modal.min.js

This file was deleted.

21 changes: 16 additions & 5 deletions inc/admin/ui/notices.php
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,15 @@ function __rocket_imagify_notice() {
$action_url = $is_imagify_installed ?
rocket_get_plugin_activation_link( $imagify_plugin )
:
add_query_arg(
wp_nonce_url( add_query_arg(
array(
'action' => 'install-plugin',
'plugin' => 'imagify',
),
admin_url( 'update.php' )
), 'install-plugin_imagify' );

$details_url = add_query_arg(
array(
'tab' => 'plugin-information',
'plugin' => 'imagify',
Expand All @@ -538,7 +546,7 @@ function __rocket_imagify_notice() {
admin_url( 'plugin-install.php' )
);

$classes = $is_imagify_installed ? '' : ' tgm-plugin-update-modal';
$classes = $is_imagify_installed ? '' : ' install-now';
$cta_txt = $is_imagify_installed ? esc_html__( 'Activate Imagify', 'rocket' ) : esc_html__( 'Install Imagify for Free', 'rocket' );

$dismiss_url = wp_nonce_url(
Expand All @@ -547,7 +555,7 @@ function __rocket_imagify_notice() {
);
?>

<div class="updated rkt-imagify-notice">
<div id="plugin-filter" class="updated plugin-card plugin-card-imagify rkt-imagify-notice">
<a href="<?php echo $dismiss_url; ?>" class="rkt-cross"><span class="dashicons dashicons-no"></span></a>

<p class="rkt-imagify-logo">
Expand All @@ -557,7 +565,10 @@ function __rocket_imagify_notice() {
<?php _e( 'Speed up your website and boost your SEO by reducing image file sizes without losing quality with Imagify.', 'rocket' ); ?>
</p>
<p class="rkt-imagify-cta">
<a href="<?php echo $action_url; ?>" class="button button-primary<?php echo $classes; ?>"><?php echo $cta_txt; ?></a>
<a data-slug="imagify" href="<?php echo $action_url; ?>" class="button button-primary<?php echo $classes; ?>"><?php echo $cta_txt; ?></a>
<?php if ( ! $is_imagify_installed ) : ?>
<br><a data-slug="imagify" data-name="Imagify Image Optimizer" class="thickbox open-plugin-details-modal" href="<?php echo $details_url; ?>"><?php _e( 'More details', 'rocket' ); ?></a>
<?php endif; ?>
</p>
</div>

Expand Down Expand Up @@ -641,4 +652,4 @@ function rocket_cloudflare_update_settings() {
</div>
<?php }
}
}
}
9 changes: 7 additions & 2 deletions inc/front/cdn.php
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ function rocket_cdn_images( $html ) {
list( $host, $path, $scheme, $query ) = get_rocket_parse_url( $image_url );
$path = trim( $path );
if ( empty( $path ) || '{href}' === $path ) {
if ( empty( $path ) || '{href}' === $path || '+markerData[i].thumbnail+' === $path ) {
continue;
}

Expand Down Expand Up @@ -211,7 +211,12 @@ function rocket_cdn_inline_styles( $html ) {
if ( ( bool ) $matches ) {
$i = 0;
foreach( $matches[1] as $url ) {
$url = trim( $url, " \t\n\r\0\x0B\"'&quot;#039;" );
$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '&quot;', '#039;' ), '', $url );

if ( '#' === substr( $url, 0, 1 ) ) {
continue;
}

$url = get_rocket_cdn_url( $url, $zone );
$property = str_replace( $matches[1][$i], $url, $matches[0][$i] );
$html = str_replace( $matches[0][$i], $property, $html );
Expand Down
Loading

0 comments on commit 57fab4b

Please sign in to comment.