add wp-rocket
This commit is contained in:
117
wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/SimpleCustomCss.php
vendored
Normal file
117
wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/SimpleCustomCss.php
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
namespace WP_Rocket\ThirdParty\Plugins;
|
||||
|
||||
use WP_Rocket\Engine\Optimization\CSSTrait;
|
||||
use WP_Rocket\Event_Management\Subscriber_Interface;
|
||||
|
||||
/**
|
||||
* Subscriber for compatibility with Simple Custom CSS plugin.
|
||||
*
|
||||
* @since 3.6
|
||||
* @author Soponar Cristina
|
||||
*/
|
||||
class SimpleCustomCss implements Subscriber_Interface {
|
||||
use CSSTrait;
|
||||
|
||||
const FILENAME = 'sccss.css';
|
||||
|
||||
/**
|
||||
* Base cache busting folder path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $cache_busting_path;
|
||||
|
||||
/**
|
||||
* SCCSS cache busting file path
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $filepath;
|
||||
|
||||
/**
|
||||
* SCCSS cache busting file URL
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $file_url;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $cache_busting_path Base cache busting folder path.
|
||||
* @param string $cache_busting_url Base cache busting URL.
|
||||
*/
|
||||
public function __construct( $cache_busting_path, $cache_busting_url ) {
|
||||
$blog_id = get_current_blog_id();
|
||||
$this->cache_busting_path = $cache_busting_path . $blog_id . '/';
|
||||
$this->filepath = $this->cache_busting_path . self::FILENAME;
|
||||
$this->file_url = $cache_busting_url . $blog_id . '/' . self::FILENAME;
|
||||
}
|
||||
/**
|
||||
* Subscribed events for AMP.
|
||||
*
|
||||
* @since 3.5.3
|
||||
* @author Soponar Cristina
|
||||
* @inheritDoc
|
||||
*/
|
||||
public static function get_subscribed_events() {
|
||||
if ( ! defined( 'SCCSS_FILE' ) ) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [
|
||||
'wp_enqueue_scripts' => [ 'cache_sccss', 98 ],
|
||||
'update_option_sccss_settings' => 'update_cache_file',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Caches SCCSS code & remove the default enqueued URL
|
||||
*
|
||||
* @since 2.9
|
||||
* @author Remy Perona
|
||||
*/
|
||||
public function cache_sccss() {
|
||||
if ( ! rocket_direct_filesystem()->exists( $this->filepath ) ) {
|
||||
$this->create_cache_file();
|
||||
}
|
||||
|
||||
// This filter is documented in inc/Engine/Optimization/CSS/AbstractCSSOptimization.php.
|
||||
wp_enqueue_style( 'scss', apply_filters( 'rocket_css_url', $this->file_url ), '', rocket_direct_filesystem()->mtime( $this->filepath ) );
|
||||
remove_action( 'wp_enqueue_scripts', 'sccss_register_style', 99 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes & recreates cache for SCCSS code
|
||||
*
|
||||
* @since 3.6
|
||||
* @author Remy Perona
|
||||
*/
|
||||
public function update_cache_file() {
|
||||
rocket_clean_domain();
|
||||
$this->create_cache_file();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates cache file for SCCSS code if it does not exist.
|
||||
*
|
||||
* @since 2.9
|
||||
* @author Remy Perona
|
||||
*
|
||||
* @return bool Returns bool if the files exists or could not be created.
|
||||
*/
|
||||
private function create_cache_file() {
|
||||
$options = get_option( 'sccss_settings' );
|
||||
$raw_content = isset( $options['sccss-content'] ) ? $options['sccss-content'] : '';
|
||||
$content = wp_kses( $raw_content, [ '\'', '\"' ] );
|
||||
$content = str_replace( '>', '>', $content );
|
||||
$content = $this->apply_font_display_swap( $content );
|
||||
|
||||
if ( ! rocket_direct_filesystem()->is_dir( $this->cache_busting_path ) ) {
|
||||
rocket_mkdir_p( $this->cache_busting_path );
|
||||
}
|
||||
|
||||
return rocket_put_content( $this->filepath, $content );
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user