File "revslider-front.class.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/revslider/sr6/revslider-front.class.php
File size: 11.13 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* @author ThemePunch <[email protected]>
* @link https://www.themepunch.com/
* @copyright 2024 ThemePunch
*/
if(!defined('ABSPATH')) exit();
class RevSliderFront extends RevSliderFrontGlobal {
public function __construct(){
parent::__construct();
add_action('wp_enqueue_scripts', array('RevSliderFront', 'add_actions'));
add_filter('wp_img_tag_add_loading_attr', array('RevSliderFront', 'check_lazy_loading'), 99, 3);
}
/**
* Add all actions that the frontend needs here
**/
public static function add_actions(){
global $SR_GLOBALS;
$func = RevSliderGlobals::instance()->get('RevSliderFunctions');
$rs_ver = apply_filters('revslider_remove_version', RS_REVISION);
$global = $func->get_global_settings();
$inc_global = $func->_truefalse($func->get_val($global, 'allinclude', true));
$inc_footer = $func->_truefalse($func->get_val($global, array('script', 'footer'), true));
$widget = is_active_widget(false, false, 'rev-slider-widget', true);
$load = false;
$load = apply_filters('revslider_include_libraries', $load);
$load = ($SR_GLOBALS['preview_mode'] === true) ? true : $load;
$load = ($inc_global === true) ? true : $load;
$load = (self::has_shortcode('rev_slider') === true) ? true : $load;
$load = ($widget !== false) ? true : $load;
if($inc_global === false){
$output = new RevSliderOutput();
$output->set_add_to($func->get_val($global, 'includeids', ''));
$add_to = $output->check_add_to(true);
$load = ($add_to === true) ? true : $load;
}
if($load === false) return false;
wp_enqueue_script(array('jquery'));
/**
* dequeue tp-tools to make sure that always the latest is loaded
**/
global $wp_scripts;
if(version_compare($func->get_val($wp_scripts, array('registered', 'tp-tools', 'ver'), '1.0'), RS_TP_TOOLS, '<')){
wp_deregister_script('tp-tools');
wp_dequeue_script('tp-tools');
}
wp_enqueue_script('tp-tools', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/rbtools.min.js', array('jquery'), RS_TP_TOOLS, $inc_footer);
if(!file_exists(RS_PLUGIN_PATH.'sr6/assets/js/rs6.min.js')){
wp_enqueue_script('revmin', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.main.js', array('jquery'), $rs_ver, $inc_footer);
//if on, load all libraries instead of dynamically loading them
wp_enqueue_script('revmin-actions', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.actions.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-carousel', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.carousel.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-layeranimation', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.layeranimation.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-navigation', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.navigation.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-panzoom', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.panzoom.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-parallax', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.parallax.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-slideanims', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.slideanims.js', array('jquery'), $rs_ver, $inc_footer);
wp_enqueue_script('revmin-video', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/dev/rs6.video.js', array('jquery'), $rs_ver, $inc_footer);
}else{
wp_enqueue_script('revmin', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/rs6.min.js', array('tp-tools', 'jquery'), $rs_ver, $inc_footer);
}
add_action('wp_head', array('RevSliderFront', 'add_meta_generator'));
add_action('wp_head', array('RevSliderFunctions', 'js_set_start_size'), 99);
add_action('admin_head', array('RevSliderFunctions', 'js_set_start_size'), 99);
add_action('wp_footer', array('RevSliderFront', 'add_inline_css'), 10);
add_action('wp_footer', array('RevSliderFront', 'load_icon_fonts'), 11);
add_action('wp_footer', array('RevSliderFront', 'load_google_fonts'));
add_action('wp_footer', array('RevSliderFront', 'add_waiting_script'), 1);
add_action('wp_print_footer_scripts', array('RevSliderFront', 'add_inline_js'), 100);
//defer JS Loading
if($func->_truefalse($func->get_val($global, array('script', 'defer'), true)) === true){
add_filter('script_loader_tag', array('RevSliderFront', 'add_defer_forscript'), 11, 2);
}
//Async JS Loading
if($func->_truefalse($func->get_val($global, array('script', 'async'), true)) === true){
add_filter('script_loader_tag', array('RevSliderFront', 'add_async_forscript'), 11, 2);
}
}
/**
* add css to the footer
**/
public static function add_inline_css(){
global $wp_version, $SR_GLOBALS; //$rs_revicons;
$css = RevSliderGlobals::instance()->get('RevSliderCssParser');
$rs_ver = apply_filters('revslider_remove_version', RS_REVISION);
/**
* Fix for WordPress versions below 3.7
**/
$style_pre = ($wp_version < 3.7) ? '<style id="rs-plugin-settings-inline-css">' : '';
$style_post = ($wp_version < 3.7) ? '</style>' : '';
$custom_css = $css->get_static_css();
$custom_css = $css->compress_css($custom_css);
if(!empty($SR_GLOBALS['collections']['css'])){
$custom_css .= RS_T2;
$custom_css .= implode("\n".RS_T2, $SR_GLOBALS['collections']['css']);
}
$custom_css = (trim($custom_css) == '') ? '#rs-demo-id {}' : $custom_css;
if(strpos($custom_css, 'revicon') !== false){
if(!isset($SR_GLOBALS['icon_sets']['RevIcon'])) $SR_GLOBALS['icon_sets']['RevIcon'] = array('css' => false, 'parsed' => false);
$SR_GLOBALS['icon_sets']['RevIcon']['css'] = true;
//$rs_revicons = true;
}
wp_enqueue_style('rs-plugin-settings', RS_PLUGIN_URL_CLEAN . 'sr6/assets/css/rs6.css', array(), $rs_ver);
wp_add_inline_style('rs-plugin-settings', $style_pre . $custom_css . $style_post);
}
/**
* add all the JavaScript from the Sliders to the footer
**/
public static function add_inline_js(){
global $SR_GLOBALS;
if(empty($SR_GLOBALS['collections']['js'])) return true;
if(empty($SR_GLOBALS['collections']['js']['revapi'])) return true;
echo '<script id="rs-initialisation-scripts">'."\n";
echo RS_T2.'var tpj = jQuery;'."\n\n";
echo RS_T2.'var '.implode(',', $SR_GLOBALS['collections']['js']['revapi']) . ';'."\n";
if(!empty($SR_GLOBALS['collections']['js']['js'])){
echo "\n" . implode("\n", $SR_GLOBALS['collections']['js']['js']);
}
if(!empty($SR_GLOBALS['collections']['js']['minimal'])){
echo "\n" . $SR_GLOBALS['collections']['js']['minimal'];
}
echo RS_T.'</script>'."\n";
}
/**
* Load Used Icon Fonts
* @since: 5.0
*/
public static function load_icon_fonts(){
global $SR_GLOBALS;
$func = RevSliderGlobals::instance()->get('RevSliderFunctions');
$global = $func->get_global_settings();
$ignore_fa = $func->_truefalse($func->get_val($global, 'fontawesomedisable', false));
$fa = $func->get_val($SR_GLOBALS, array('icon_sets', 'FontAwesome', 'css'), false);
$fai = $func->get_val($SR_GLOBALS, array('icon_sets', 'FontAwesomeIcon', 'css'), false);
echo ($func->get_val($SR_GLOBALS, array('icon_sets', 'RevIcon', 'css'), false) === true) ? RS_T3.'<link rel="preload" as="font" id="rs-icon-set-revicon-woff" href="' . RS_PLUGIN_URL_CLEAN . 'sr6/assets/fonts/revicons/revicons.woff?5510888" type="font/woff" crossorigin="anonymous" media="all" />'."\n" : '';
if($ignore_fa === false && $fa === true || $fai === true){
echo RS_T3.'<link rel="preload" as="font" id="rs-icon-set-fa-icon-woff" type="font/woff2" crossorigin="anonymous" href="' . RS_PLUGIN_URL_CLEAN . 'sr6/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0" media="all" />'."\n";
echo RS_T3.'<link rel="stylesheet" property="stylesheet" id="rs-icon-set-fa-icon-css" href="' . RS_PLUGIN_URL_CLEAN . 'sr6/assets/fonts/font-awesome/css/font-awesome.css" type="text/css" media="all" />'."\n";
}
echo ($func->get_val($SR_GLOBALS, array('icon_sets', 'PeIcon', 'css'), false)) ? RS_T3.'<link rel="stylesheet" property="stylesheet" id="rs-icon-set-pe-7s-css" href="' . RS_PLUGIN_URL_CLEAN . 'sr6/assets/fonts/pe-icon-7-stroke/css/pe-icon-7-stroke.css" type="text/css" media="all" />'."\n" : '';
}
/**
* Load Used Google Fonts
* add google fonts of all sliders found on the page
* @since: 6.0
*/
public static function load_google_fonts(){
$func = RevSliderGlobals::instance()->get('RevSliderFunctions');
$fonts = $func->print_clean_font_import();
if(!empty($fonts)){
echo $fonts."\n";
}
}
/**
* add the scripts that needs to be waited on
* @since: 6.4.12
**/
public static function add_waiting_script(){
$func = RevSliderGlobals::instance()->get('RevSliderFunctions');
$dev = (!file_exists(RS_PLUGIN_PATH.'sr6/assets/js/rs6.min.js')) ? true : false;
$global = $func->get_global_settings();
$wait = array();
$wait = apply_filters('revslider_modify_waiting_scripts', $wait);
?>
<script>
window.RS_MODULES = window.RS_MODULES || {};
window.RS_MODULES.modules = window.RS_MODULES.modules || {};
window.RS_MODULES.waiting = window.RS_MODULES.waiting || [];
window.RS_MODULES.defered = <?php echo ($func->_truefalse($func->get_val($global, array('script', 'defer'), true)) === true) ? 'true' : 'false'; ?>;
<?php if (!empty($wait)) {?>
window.RS_MODULES.waiting = window.RS_MODULES.waiting.concat([ <?php echo '"'. implode('","', $wait) . '"'; ?>]);
<?php }; ?>window.RS_MODULES.moduleWaiting = window.RS_MODULES.moduleWaiting || {};
window.RS_MODULES.type = '<?php echo ($dev) ? "developer" : "compiled"; ?>';
</script>
<?php
}
/**
* check that loading="lazy" is not written in slider HTML
**/
public static function check_lazy_loading($value, $image, $context){
return (strpos($image, 'tp-rs-img') !== false) ? false : $value;
}
/**
* adds async loading
* @since: 5.0
* @updated: 6.4.12
*/
public static function add_defer_forscript($tag, $handle){
if(strpos($tag, 'rs6') === false && strpos($tag, 'rbtools.min.js') === false && strpos($tag, 'revolution.addon.') === false && strpos($tag, 'sr6/assets/js/libs/') === false && (strpos($tag, 'liquideffect') === false && strpos($tag, 'pixi.min.js') === false) && strpos($tag, 'rslottie-js') === false){
return $tag;
}elseif(is_admin()){
return $tag;
}else{
return str_replace(' id=', ' defer id=', $tag);
}
}
/**
* adds async loading
* @since: 5.0
* @updated: 6.4.12
*/
public static function add_async_forscript($tag, $handle){
if(strpos($tag, 'rs6') === false && strpos($tag, 'rbtools.min.js') === false && strpos($tag, 'revolution.addon.') === false && strpos($tag, 'sr6/assets/js/libs/') === false && (strpos($tag, 'liquideffect') === false && strpos($tag, 'pixi.min.js') === false) && strpos($tag, 'rslottie-js') === false){
return $tag;
}elseif(is_admin()){
return $tag;
}else{
return str_replace(' id=', ' async id=', $tag);
}
}
/**
* check the current post for the existence of a short code
* @before: hasShortcode()
*/
public static function has_shortcode($shortcode = ''){
$found = false;
if(empty($shortcode)) return false;
if(!is_singular()) return false;
$post = get_post(get_the_ID());
if(stripos($post->post_content, '[' . $shortcode) !== false) $found = true;
return $found;
}
}