* @link http://www.themepunch.com/ * @copyright 2015 ThemePunch */ if( !defined( 'ABSPATH') ) exit(); class RevSliderBase { protected static $wpdb; protected static $table_prefix; protected static $t; protected static $url_ajax; protected static $url_ajax_showimage; protected static $path_views; protected static $path_templates; protected static $is_multisite; public static $url_ajax_actions; /* Provider: - * * * the constructor */ public function __construct($t){ global $wpdb; self::$is_multisite = RevSliderFunctionsWP::isMultisite(); self::$wpdb = $wpdb; self::$table_prefix = self::$wpdb->base_prefix; if(self::$is_multisite){ $blogID = RevSliderFunctionsWP::getBlogID(); if($blogID != 1){ self::$table_prefix .= $blogID."_"; } } self::$t = $t; self::$url_ajax = admin_url("admin-ajax.php"); self::$url_ajax_actions = self::$url_ajax . "?action=revslider_ajax_action"; self::$url_ajax_showimage = self::$url_ajax . "?action=revslider_show_image"; self::$path_views = RS_PLUGIN_PATH."admin/views/"; self::$path_templates = self::$path_views."/templates/"; load_plugin_textdomain('revslider',false,'revslider/languages/'); //update globals oldversion flag RevSliderGlobals::$isNewVersion = false; $version = get_bloginfo("version"); $version = (double)$version; if($version >= 3.5) RevSliderGlobals::$isNewVersion = true; } /* Provider: - * * * add some wordpress action */ protected static function addAction($action,$eventFunction){ add_action( $action, array(self::$t, $eventFunction) ); } /* Provider: - * * * get image url to be shown via thumb making script. */ public static function getImageUrl($filepath, $width=null,$height=null,$exact=false,$effect=null,$effect_param=null){ $urlImage = self::getUrlThumb(self::$url_ajax_showimage, $filepath,$width ,$height ,$exact ,$effect ,$effect_param); return($urlImage); } /* Provider: - * * get thumb url * @since: 5.0 * @moved from image_view.class.php */ public static function getUrlThumb($urlBase, $filename,$width=null,$height=null,$exact=false,$effect=null,$effect_param=null){ $filename = urlencode($filename); $url = $urlBase."&img=$filename"; if(!empty($width)) $url .= "&w=".$width; if(!empty($height)) $url .= "&h=".$height; if($exact == true){ $url .= "&t=".self::TYPE_EXACT; } if(!empty($effect)){ $url .= "&e=".$effect; if(!empty($effect_param)) $url .= "&ea1=".$effect_param; } return($url); } /* Provider: - * * * on show image ajax event. outputs image with parameters */ public static function onShowImage(){ $pathImages = RevSliderFunctionsWP::getPathContent(); $urlImages = RevSliderFunctionsWP::getUrlContent(); try{ $imageID = intval(RevSliderFunctions::getGetVar("img")); $img = wp_get_attachment_image_src( $imageID, 'thumb' ); if(empty($img)) exit; self::outputImage($img[0]); }catch (Exception $e){ header("status: 500"); echo $e->getMessage(); exit(); } } /* Provider: - * * show Image to client * @since: 5.0 * @moved from image_view.class.php */ private static function outputImage($filepath){ $info = RevSliderFunctions::getPathInfo($filepath); $ext = $info["extension"]; $ext = strtolower($ext); if($ext == "jpg") $ext = "jpeg"; $numExpires = 31536000; //one year $strExpires = @date('D, d M Y H:i:s',time()+$numExpires); $contents = file_get_contents($filepath); $filesize = strlen($contents); header("Expires: $strExpires GMT"); header("Cache-Control: public"); header("Content-Type: image/$ext"); header("Content-Length: $filesize"); echo $contents; exit(); } /* Provider: - * * * get POST var */ protected static function getPostVar($key,$defaultValue = ""){ $val = self::getVar($_POST, $key, $defaultValue); return($val); } /* Provider: - * * * get GET var */ protected static function getGetVar($key,$defaultValue = ""){ $val = self::getVar($_GET, $key, $defaultValue); return($val); } /* Provider: - * * * get post or get variable */ protected static function getPostGetVar($key,$defaultValue = ""){ if(array_key_exists($key, $_POST)) $val = self::getVar($_POST, $key, $defaultValue); else $val = self::getVar($_GET, $key, $defaultValue); return($val); } /* Provider: - * * * get some var from array */ public static function getVar($arr,$key,$defaultValue = ""){ $val = $defaultValue; if(isset($arr[$key])) $val = $arr[$key]; return($val); } /* Provider: - * * Get all images sizes + custom added sizes */ public static function get_all_image_sizes($type = 'gallery'){ $custom_sizes = array(); switch($type){ case 'flickr': $custom_sizes = array( 'original' => __('Original', REVSLIDER_TEXTDOMAIN), 'large' => __('Large', REVSLIDER_TEXTDOMAIN), 'large-square' => __('Large Square', REVSLIDER_TEXTDOMAIN), 'medium' => __('Medium', REVSLIDER_TEXTDOMAIN), 'medium-800' => __('Medium 800', REVSLIDER_TEXTDOMAIN), 'medium-640' => __('Medium 640', REVSLIDER_TEXTDOMAIN), 'small' => __('Small', REVSLIDER_TEXTDOMAIN), 'small-320' => __('Small 320', REVSLIDER_TEXTDOMAIN), 'thumbnail'=> __('Thumbnail', REVSLIDER_TEXTDOMAIN), 'square' => __('Square', REVSLIDER_TEXTDOMAIN) ); break; case 'instagram': $custom_sizes = array( 'standard_resolution' => __('Standard Resolution', REVSLIDER_TEXTDOMAIN), 'thumbnail' => __('Thumbnail', REVSLIDER_TEXTDOMAIN), 'low_resolution' => __('Low Resolution', REVSLIDER_TEXTDOMAIN) ); break; case 'twitter': $custom_sizes = array( 'large' => __('Standard Resolution', REVSLIDER_TEXTDOMAIN) ); break; case 'facebook': $custom_sizes = array( 'size-0' => __('Size 0', REVSLIDER_TEXTDOMAIN), 'size-1' => __('Size 1', REVSLIDER_TEXTDOMAIN), 'size-2' => __('Size 2', REVSLIDER_TEXTDOMAIN), 'size-3' => __('Size 3', REVSLIDER_TEXTDOMAIN), 'size-4' => __('Size 4', REVSLIDER_TEXTDOMAIN), 'size-5' => __('Size 5', REVSLIDER_TEXTDOMAIN), 'size-6' => __('Size 6', REVSLIDER_TEXTDOMAIN) ); break; case 'youtube': $custom_sizes = array( 'default' => __('Default', REVSLIDER_TEXTDOMAIN), 'medium' => __('Medium', REVSLIDER_TEXTDOMAIN), 'high' => __('High', REVSLIDER_TEXTDOMAIN), 'standard' => __('Standard', REVSLIDER_TEXTDOMAIN), 'maxres' => __('Max. Res.', REVSLIDER_TEXTDOMAIN) ); break; case 'vimeo': $custom_sizes = array( 'thumbnail_small' => __('Small', REVSLIDER_TEXTDOMAIN), 'thumbnail_medium' => __('Medium', REVSLIDER_TEXTDOMAIN), 'thumbnail_large' => __('Large', REVSLIDER_TEXTDOMAIN), ); break; case 'gallery': default: $added_image_sizes = get_intermediate_image_sizes(); if(!empty($added_image_sizes) && is_array($added_image_sizes)){ foreach($added_image_sizes as $key => $img_size_handle){ $custom_sizes[$img_size_handle] = ucwords(str_replace('_', ' ', $img_size_handle)); } } $img_orig_sources = array( 'full' => __('Original Size', REVSLIDER_TEXTDOMAIN), 'thumbnail' => __('Thumbnail', REVSLIDER_TEXTDOMAIN), 'medium' => __('Medium', REVSLIDER_TEXTDOMAIN), 'large' => __('Large', REVSLIDER_TEXTDOMAIN) ); $custom_sizes = array_merge($img_orig_sources, $custom_sizes); break; } return $custom_sizes; } /* Provider: - * * retrieve the image id from the given image url */ public static function get_image_id_by_url($image_url) { global $wpdb; $attachment_id = false; // If there is no url, return. if ( '' == $image_url ) return; // Get the upload directory paths $upload_dir_paths = wp_upload_dir(); // Make sure the upload path base directory exists in the attachment URL, to verify that we're working with a media library image if ( false !== strpos( $image_url, $upload_dir_paths['baseurl'] ) ) { // If this is the URL of an auto-generated thumbnail, get the URL of the original image $image_url = preg_replace( '/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $image_url ); // Remove the upload path base directory from the attachment URL $image_url = str_replace( $upload_dir_paths['baseurl'] . '/', '', $image_url ); // Finally, run a custom database query to get the attachment ID from the modified attachment URL $attachment_id = $wpdb->get_var( $wpdb->prepare( "SELECT wposts.ID FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = '_wp_attached_file' AND wpostmeta.meta_value = '%s' AND wposts.post_type = 'attachment'", $image_url ) ); } return $attachment_id; } /* Provider: - * * get all the icon sets used in Slider Revolution * @since: 5.0 **/ public static function get_icon_sets(){ $icon_sets = array(); $icon_sets = apply_filters('revslider_mod_icon_sets', $icon_sets); return $icon_sets; } /* Provider: - * * add default icon sets of Slider Revolution * @since: 5.0 **/ public static function set_icon_sets($icon_sets){ $icon_sets[] = 'fa-icon-'; $icon_sets[] = 'pe-7s-'; return $icon_sets; } /* Provider: - * * translates removed settings from Slider Settings from version <= 4.x to 5.0 * @since: 5.0 **/ public static function translate_settings_to_v5($settings){ if(isset($settings['navigaion_type'])){ switch($settings['navigaion_type']){ case 'none': // all is off, so leave the defaults break; case 'bullet': $settings['enable_bullets'] = 'on'; $settings['enable_thumbnails'] = 'off'; $settings['enable_tabs'] = 'off'; break; case 'thumb': $settings['enable_bullets'] = 'off'; $settings['enable_thumbnails'] = 'on'; $settings['enable_tabs'] = 'off'; break; } unset($settings['navigaion_type']); } if(isset($settings['navigation_arrows'])){ $settings['enable_arrows'] = ($settings['navigation_arrows'] == 'solo' || $settings['navigation_arrows'] == 'nexttobullets') ? 'on' : 'off'; unset($settings['navigation_arrows']); } if(isset($settings['navigation_style'])){ $settings['navigation_arrow_style'] = $settings['navigation_style']; $settings['navigation_bullets_style'] = $settings['navigation_style']; unset($settings['navigation_style']); } if(isset($settings['navigaion_always_on'])){ $settings['arrows_always_on'] = $settings['navigaion_always_on']; $settings['bullets_always_on'] = $settings['navigaion_always_on']; $settings['thumbs_always_on'] = $settings['navigaion_always_on']; unset($settings['navigaion_always_on']); } if(isset($settings['hide_thumbs']) && !isset($settings['hide_arrows']) && !isset($settings['hide_bullets'])){ //as hide_thumbs is still existing, we need to check if the other two were already set and only translate this if they are not set yet $settings['hide_arrows'] = $settings['hide_thumbs']; $settings['hide_bullets'] = $settings['hide_thumbs']; } if(isset($settings['navigaion_align_vert'])){ $settings['bullets_align_vert'] = $settings['navigaion_align_vert']; $settings['thumbnails_align_vert'] = $settings['navigaion_align_vert']; unset($settings['navigaion_align_vert']); } if(isset($settings['navigaion_align_hor'])){ $settings['bullets_align_hor'] = $settings['navigaion_align_hor']; $settings['thumbnails_align_hor'] = $settings['navigaion_align_hor']; unset($settings['navigaion_align_hor']); } if(isset($settings['navigaion_offset_hor'])){ $settings['bullets_offset_hor'] = $settings['navigaion_offset_hor']; $settings['thumbnails_offset_hor'] = $settings['navigaion_offset_hor']; unset($settings['navigaion_offset_hor']); } if(isset($settings['navigaion_offset_hor'])){ $settings['bullets_offset_hor'] = $settings['navigaion_offset_hor']; $settings['thumbnails_offset_hor'] = $settings['navigaion_offset_hor']; unset($settings['navigaion_offset_hor']); } if(isset($settings['navigaion_offset_vert'])){ $settings['bullets_offset_vert'] = $settings['navigaion_offset_vert']; $settings['thumbnails_offset_vert'] = $settings['navigaion_offset_vert']; unset($settings['navigaion_offset_vert']); } if(isset($settings['show_timerbar']) && !isset($settings['enable_progressbar'])){ if($settings['show_timerbar'] == 'hide'){ $settings['enable_progressbar'] = 'off'; $settings['show_timerbar'] = 'top'; }else{ $settings['enable_progressbar'] = 'on'; } } return $settings; } /* Provider: - * * explodes google fonts and returns the number of font weights of all fonts * @since: 5.0 **/ public static function get_font_weight_count($string){ $string = explode(':', $string); $nums = 0; if(count($string) >= 2){ $string = $string[1]; if(strpos($string, '&') !== false){ $string = expode('&', $string); $string = $string[0]; } $nums = count(explode(',', $string)); } return $nums; } /* Provider: - * * strip slashes recursive * @since: 5.0 */ public static function stripslashes_deep($value){ $value = is_array($value) ? array_map( array('RevSliderBase', 'stripslashes_deep'), $value) : stripslashes($value); return $value; } /* Provider: - * * check if file is in zip * @since: 5.0 */ public static function check_file_in_zip($zip, $image, $filepath, $alias, &$alreadyImported, $add_path = false){ if(trim($image) !== ''){ if(strpos($image, 'http') !== false){ }else{ $zimage = $zip->getStream('images/'.$image); if(!$zimage){ echo $image.__(' not found!
', REVSLIDER_TEXTDOMAIN); }else{ if(!isset($alreadyImported['zip://'.$filepath."#".'images/'.$image])){ $importImage = RevSliderFunctionsWP::import_media('zip://'.$filepath."#".'images/'.$image, $alias.'/'); if($importImage !== false){ $alreadyImported['zip://'.$filepath."#".'images/'.$image] = $importImage['path']; $image = $importImage['path']; } }else{ $image = $alreadyImported['zip://'.$filepath."#".'images/'.$image]; } } if($add_path){ $upload_dir = wp_upload_dir(); $cont_url = $upload_dir['baseurl']; $image = str_replace('uploads/uploads/', 'uploads/', $cont_url . '/' . $image); } } } return $image; } /* Provider: - * * add "a" tags to links within a text * @since: 5.0 */ public static function add_wrap_around_url($text){ $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; // Check if there is a url in the text if(preg_match($reg_exUrl, $text, $url)){ // make the urls hyper links return preg_replace($reg_exUrl, ''.$url[0].'', $text); }else{ // if no urls in the text just return the text return $text; } } } /* Provider: - * * old classname extends new one (old classnames will be obsolete soon) * @since: 5.0 **/ class UniteBaseClassRev extends RevSliderBase {} ?>