| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656 |
- <?php
- /**
- * @author ThemePunch <info@themepunch.com>
- * @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;
-
- /**
- *
- * 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;
-
- }
-
-
- /**
- *
- * add some wordpress action
- */
- protected static function addAction($action,$eventFunction){
-
- add_action( $action, array(self::$t, $eventFunction) );
- }
-
-
- /**
- *
- * 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);
- }
-
- /**
- * 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);
- }
-
-
- /**
- *
- * 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 __('Image not Found', 'revslider');
- exit();
- }
- }
-
- /**
- * 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();
- }
-
- /**
- *
- * get POST var
- */
- protected static function getPostVar($key,$defaultValue = ""){
- $val = self::getVar($_POST, $key, $defaultValue);
- return($val);
- }
-
- /**
- *
- * get GET var
- */
- protected static function getGetVar($key,$defaultValue = ""){
- $val = self::getVar($_GET, $key, $defaultValue);
- return($val);
- }
-
-
- /**
- *
- * 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);
- }
-
-
- /**
- *
- * get some var from array
- */
- public static function getVar($arr,$key,$defaultValue = ""){
- $val = $defaultValue;
- if(isset($arr[$key])) $val = $arr[$key];
- return($val);
- }
-
-
- /**
- * 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'),
- 'large' => __('Large', 'revslider'),
- 'large-square' => __('Large Square', 'revslider'),
- 'medium' => __('Medium', 'revslider'),
- 'medium-800' => __('Medium 800', 'revslider'),
- 'medium-640' => __('Medium 640', 'revslider'),
- 'small' => __('Small', 'revslider'),
- 'small-320' => __('Small 320', 'revslider'),
- 'thumbnail'=> __('Thumbnail', 'revslider'),
- 'square' => __('Square', 'revslider')
- );
- break;
- case 'instagram':
- $custom_sizes = array(
- 'standard_resolution' => __('Standard Resolution', 'revslider'),
- 'thumbnail' => __('Thumbnail', 'revslider'),
- 'low_resolution' => __('Low Resolution', 'revslider')
- );
- break;
- case 'twitter':
- $custom_sizes = array(
- 'large' => __('Standard Resolution', 'revslider')
- );
- break;
- case 'facebook':
- $custom_sizes = array(
- 'full' => __('Original Size', 'revslider'),
- 'thumbnail' => __('Thumbnail', 'revslider')
- );
- break;
- case 'youtube':
- $custom_sizes = array(
- 'default' => __('Default', 'revslider'),
- 'medium' => __('Medium', 'revslider'),
- 'high' => __('High', 'revslider'),
- 'standard' => __('Standard', 'revslider'),
- 'maxres' => __('Max. Res.', 'revslider')
- );
- break;
- case 'vimeo':
- $custom_sizes = array(
- 'thumbnail_small' => __('Small', 'revslider'),
- 'thumbnail_medium' => __('Medium', 'revslider'),
- 'thumbnail_large' => __('Large', 'revslider'),
- );
- 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'),
- 'thumbnail' => __('Thumbnail', 'revslider'),
- 'medium' => __('Medium', 'revslider'),
- 'large' => __('Large', 'revslider')
- );
- $custom_sizes = array_merge($img_orig_sources, $custom_sizes);
- break;
- }
-
- return $custom_sizes;
- }
-
-
- /**
- * retrieve the image id from the given image url
- */
- public static function get_image_id_by_url($image_url) {
- global $wpdb;
-
- $attachment_id = 0;
- // If there is no url, return.
- if('' == $image_url || !$image_url)
- return $attachment_id;
-
- if(function_exists('attachment_url_to_postid')){
- $attachment_id = attachment_url_to_postid($image_url); //0 if failed
- }
- if ( 0 == $attachment_id ){ //try to get it old school way
- //for WP < 4.0.0
- $attachment_id = false;
- // 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;
- }
-
- /**
- * get all the svg url sets used in Slider Revolution
- * @since: 5.1.7
- **/
- public static function get_svg_sets_url(){
- $svg_sets = array();
-
- $path = RS_PLUGIN_PATH . 'public/assets/assets/svg/';
- $url = RS_PLUGIN_URL . 'public/assets/assets/svg/';
-
- if(!file_exists($path.'action/ic_3d_rotation_24px.svg')){ //the path needs to be changed to the uploads folder then
- $upload_dir = wp_upload_dir();
- $path = $upload_dir['basedir'].'/revslider/assets/svg/';
- $url = $upload_dir['baseurl'].'/revslider/assets/svg/';
- }
-
- $svg_sets['Actions'] = array('path' => $path.'action/', 'url' => $url.'action/');
- $svg_sets['Alerts'] = array('path' => $path.'alert/', 'url' => $url.'alert/');
- $svg_sets['AV'] = array('path' => $path.'av/', 'url' => $url.'av/');
- $svg_sets['Communication'] = array('path' => $path.'communication/', 'url' => $url.'communication/');
- $svg_sets['Content'] = array('path' => $path.'content/', 'url' => $url.'content/');
- $svg_sets['Device'] = array('path' => $path.'device/', 'url' => $url.'device/');
- $svg_sets['Editor'] = array('path' => $path.'editor/', 'url' => $url.'editor/');
- $svg_sets['File'] = array('path' => $path.'file/', 'url' => $url.'file/');
- $svg_sets['Hardware'] = array('path' => $path.'hardware/', 'url' => $url.'hardware/');
- $svg_sets['Images'] = array('path' => $path.'image/', 'url' => $url.'image/');
- $svg_sets['Maps'] = array('path' => $path.'maps/', 'url' => $url.'maps/');
- $svg_sets['Navigation'] = array('path' => $path.'navigation/', 'url' => $url.'navigation/');
- $svg_sets['Notifications'] = array('path' => $path.'notification/', 'url' => $url.'notification/');
- $svg_sets['Places'] = array('path' => $path.'places/', 'url' => $url.'places/');
- $svg_sets['Social'] = array('path' => $path.'social/', 'url' => $url.'social/');
- $svg_sets['Toggle'] = array('path' => $path.'toggle/', 'url' => $url.'toggle/');
-
-
- $svg_sets = apply_filters('revslider_get_svg_sets', $svg_sets);
-
- return $svg_sets;
- }
-
- /**
- * get all the svg files for given sets used in Slider Revolution
- * @since: 5.1.7
- **/
- public static function get_svg_sets_full(){
-
- $svg_sets = self::get_svg_sets_url();
-
- $svg = array();
-
- if(!empty($svg_sets)){
- foreach($svg_sets as $handle => $values){
- $svg[$handle] = array();
-
- if($dir = opendir($values['path'])) {
- while(false !== ($file = readdir($dir))){
- if ($file != "." && $file != "..") {
- $filetype = pathinfo($file);
-
- if(isset($filetype['extension']) && $filetype['extension'] == 'svg'){
- $svg[$handle][$file] = $values['url'].$file;
- }
- }
- }
- }
- }
- }
-
- $svg = apply_filters('revslider_get_svg_sets_full', $svg);
-
- return $svg;
- }
-
-
- /**
- * 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;
- }
-
-
- /**
- * 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;
- }
-
-
- /**
- * 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;
- }
-
-
- /**
- * 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 = explode('&', $string);
- $string = $string[0];
- }
-
- $nums = count(explode(',', $string));
- }
-
- return $nums;
- }
-
-
- /**
- * 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;
- }
-
-
- /**
- * check if file is in zip
- * @since: 5.0
- */
- public static function check_file_in_zip($d_path, $image, $alias, &$alreadyImported, $add_path = false){
- global $wp_filesystem;
-
- if(trim($image) !== ''){
- if(strpos($image, 'http') !== false){
- }else{
- $strip = false;
- $zimage = $wp_filesystem->exists( $d_path.'images/'.$image );
- if(!$zimage){
- $zimage = $wp_filesystem->exists( str_replace('//', '/', $d_path.'images/'.$image) );
- $strip = true;
- }
-
- if(!$zimage){
- //echo $image.__(' not found!<br>', 'revslider');
- }else{
- if(!isset($alreadyImported['images/'.$image])){
- //check if we are object folder, if yes, do not import into media library but add it to the object folder
- $uimg = ($strip == true) ? str_replace('//', '/', 'images/'.$image) : $image; //pclzip
-
- $object_library = (strpos($uimg, 'revslider/objects/') === 0) ? true : false;
-
- if($object_library === true){ //copy the image to the objects folder if false
- $objlib = new RevSliderObjectLibrary();
- $importImage = $objlib->_import_object($d_path.'images/'.$uimg);
- }else{
- $importImage = RevSliderFunctionsWP::import_media($d_path.'images/'.$uimg, $alias.'/');
- }
-
- if($importImage !== false){
- $alreadyImported['images/'.$image] = $importImage['path'];
-
- $image = $importImage['path'];
- }
- }else{
- $image = $alreadyImported['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;
- }
-
-
- /**
- * 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, '<a href="'.$url[0].'" rel="nofollow" target="_blank">'.$url[0].'</a>', $text);
- }else{
- // if no urls in the text just return the text
- return $text;
- }
- }
-
-
- /**
- * prints out debug text if constant TP_DEBUG is defined and true
- * @since: 5.2.4
- */
- public static function debug($value , $message, $where = "console"){
- if( defined('TP_DEBUG') && TP_DEBUG ){
- if($where=="console"){
- echo '<script>
- jQuery(document).ready(function(){
- if(window.console) {
- console.log("'.$message.'");
- console.log('.json_encode($value).');
- }
- });
- </script>
- ';
- }
- else{
- var_dump($value);
- }
- }
- else {
- return false;
- }
- }
- }
- /**
- * old classname extends new one (old classnames will be obsolete soon)
- * @since: 5.0
- **/
- class UniteBaseClassRev extends RevSliderBase {}
- ?>
|