PATH:
home
/
ptadmin
/
public_html
/
wp-content
/
plugins
/
speedycache
/
main
<?php /* * SPEEDYCACHE * https://speedycache.com/ * (c) SpeedyCache Team */ if(!defined('ABSPATH')){ die('Hacking Attempt'); } // Loads Instant Page to improve load page speed by 1% if(defined('SPEEDYCACHE_PRO') && !empty($speedycache->options['instant_page'])){ add_action('wp_enqueue_scripts', 'speedycache_enqueue_instant_page'); } $speedycache->options['test_mode'] = get_transient('speedycache_test_mode', false); // Delete the Cache if using test mode with ?delete_test as the parameter. if(!empty($speedycache->options['test_mode']) && !empty($_GET['delete_test'])){ \SpeedyCache\Delete::rm_dir(speedycache_cache_path('test')); } // For test mode if(!empty($_GET['test_speedycache'])){ $speedycache_test_options = get_transient('speedycache_test_settings', $speedycache->options); if(!empty($speedycache_test_options) && is_array($speedycache_test_options)){ $speedycache->options = array_merge($speedycache->options, $speedycache_test_options); } if(!empty($speedycache->options['test_mode'])){ $speedycache->options['status'] = true; } } $cache_dir = speedycache_cache_path(); if(defined('SPEEDYCACHE_PRO') && is_dir($cache_dir . 'fonts')){ $dir_cont = scandir($cache_dir . 'fonts'); if(!empty($dir_cont)){ add_filter('speedycache_content_via_php', '\SpeedyCache\GoogleFonts::replace', 10, 1); } } // Filter for Gravatar cache. We are updating the URL of the gravatar here so the local hosted Gravatar URL will be cached. if(!empty($speedycache->options['gravatar_cache'])){ add_filter('get_avatar_data', '\SpeedyCache\Gravatar::get_avatar_data', 10, 2); } // CSS / JS if(preg_match('/\/([^\/]+)\/([^\/]+(\.css|\.js))(\?.+)?$/', speedycache_current_url(), $path)){ // Security : Prevent Directory Traversal ! if(preg_match("/\.{2,}/", speedycache_current_url())){ die('May be Directory Traversal Attack'); } // Outputs the cached minified data if(file_exists(speedycache_cache_path('assets/').$path[1])){ if($sources = @scandir(speedycache_cache_path('assets/').$path[1], 1)){ if(isset($sources[0])){ if(preg_match('/\.css/', speedycache_current_url())){ header('Content-type: text/css'); }else if(preg_match('/\.js/', speedycache_current_url())){ header('Content-type: text/js'); } die(file_get_contents(speedycache_cache_path('assets/').$path[1].'/'.$sources[0])); } } } // for non-exists files if(preg_match("/\/speedycache.*\/assets\//i", speedycache_current_url())){ if(preg_match('/\.css/', speedycache_current_url())){ header('Content-type: text/css'); die('/* File not found */'); }else if(preg_match('/\.js/', speedycache_current_url())){ header('Content-type: text/js'); die('/*File not found*/'); } } // Regular HTML }else{ // To show if the user is logged-in add_action('wp_loaded', 'speedycache_load_admin_toolbar'); // For cache speedycache_cache(); } if(!empty($speedycache->options['status']) && !empty($speedycache->options['lazy_load'])){ \SpeedyCache\LazyLoad::init(); // Instagram add_filter('script_loader_tag', '\SpeedyCache\LazyLoad::instagram', 10, 1); if(!empty($speedycache->options['lazy_load_exclude_full_size_img'])){ add_filter('wp_get_attachment_image_attributes', '\SpeedyCache\LazyLoad::mark_attachment_page_images', 10, 2); add_filter('the_content', '\SpeedyCache\LazyLoad::mark_images', 99); } } if(!empty($speedycache->options['mobile_theme']) && !empty($speedycache->options['mobile_theme_name'])){ add_action('plugins_loaded', 'speedycache_mts_init', 1); } // To delete/ preload cache through URL if(isset($_GET['action']) && $_GET['action'] == 'speedycache'){ if(isset($_GET['type']) && $_GET['type'] == 'preload'){ // /?action=speedycache&type=preload add_action('init', '\SpeedyCache\Precache::create', 11); } if(isset($_GET['type']) && preg_match('/^clearcache(andminified|allsites)*$/i', speedycache_optget('type'))){ // /?action=speedycache&type=clearcache&token=123 // /?action=speedycache&type=clearcacheandminified&token=123 if(empty($_GET['token'])){ die('Security token must be set.'); } if(!defined('SPEEDYCACHE_CLEAR_CACHE_URL_TOKEN') && empty(SPEEDYCACHE_CLEAR_CACHE_URL_TOKEN)){ die('SPEEDYCACHE_CLEAR_CACHE_URL_TOKEN must be defined'); } if(SPEEDYCACHE_CLEAR_CACHE_URL_TOKEN != $_GET['token']){ die('Wrong token'); } if($_GET['type'] == 'clearcache'){ speedycache_delete_cache(); } if($_GET['type'] == 'clearcacheandminified'){ speedycache_delete_cache(true); } if($_GET['type'] == 'clearcacheallsites'){ if(!function_exists('speedycache_clear_cache_of_allsites_callback')){ include_once SPEEDYCACHE_DIR . '/main/ajax.php'; } speedycache_clear_cache_of_allsites_callback(); } die('Done'); } } function speedycache_mts_init(){ global $speedycache; if(!empty(speedycache_is_mobile())){ $themes = wp_get_themes(); $speedycache->options['mobile_theme_obj'] = $themes[$speedycache->options['mobile_theme_name']]; add_filter('stylesheet', 'speedycache_load_mobile_style'); add_filter('template', 'speedycache_load_mobile_theme'); } } function speedycache_load_mobile_style(){ global $speedycache; return $speedycache['speedycache_mobile_theme_obj']->get_template(); } function speedycache_load_mobile_theme(){ global $speedycache; return $speedycache['speedycache_mobile_theme_obj']->get_stylesheet(); } function speedycache_cache(){ if(!empty($_SERVER['HTTP_HOST'])){ \SpeedyCache\Cache::init(); \SpeedyCache\Cache::create(); } } function speedycache_current_url(){ $url = home_url(); $url = parse_url($url); $url = $url['host'] . (!empty($_SERVER['REQUEST_URI']) ? sanitize_url(wp_unslash($_SERVER['REQUEST_URI'])) : ''); return esc_url($url); } // Loads InstantPage which helps load pages faster function speedycache_enqueue_instant_page(){ wp_enqueue_script('speedycache_instant_page', SPEEDYCACHE_PRO_URL . '/assets/js/instantpage.js', array(), SPEEDYCACHE_PRO_VERSION, true); }
[-] metabox.php
[edit]
[-] install.php
[edit]
[-] tpp.php
[edit]
[-] toolbar.php
[edit]
[-] advanced-cache.php
[edit]
[-] preload.php
[edit]
[-] cdn.php
[edit]
[-] settings.php
[edit]
[-] delete.php
[edit]
[-] js.php
[edit]
[+]
..
[-] front.php
[edit]
[-] admin.php
[edit]
[-] cache.php
[edit]
[-] autocache.php
[edit]
[-] util.php
[edit]
[-] precache.php
[edit]
[-] css.php
[edit]
[-] gravatar.php
[edit]
[-] htaccess.php
[edit]
[-] ajax.php
[edit]
[-] promo.php
[edit]