function rev_slider_shortcode($args, $mid_content = null) { extract(shortcode_atts(array('alias' => ''), $args, 'rev_slider')); $sliderAlias = $alias != '' ? $alias : RevSliderFunctions::getVal($args, 0); $gal_ids = RevSliderFunctionsWP::check_for_shortcodes($mid_content); //check for example on gallery shortcode and do stuff ob_start(); if (!empty($gal_ids)) { //add a gallery based slider $slider = RevSliderOutput::putSlider($sliderAlias, '', $gal_ids); } else { $slider = RevSliderOutput::putSlider($sliderAlias); } $content = ob_get_contents(); ob_clean(); ob_end_clean(); // Do not output Slider if we are on mobile $disable_on_mobile = $slider->getParam("disable_on_mobile", "off"); if ($disable_on_mobile == 'on') { $mobile = strstr($_SERVER['HTTP_USER_AGENT'], 'Android') || strstr($_SERVER['HTTP_USER_AGENT'], 'webOS') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPad') || strstr($_SERVER['HTTP_USER_AGENT'], 'Windows Phone') || wp_is_mobile() ? true : false; if ($mobile) { return false; } } $show_alternate = $slider->getParam("show_alternative_type", "off"); if ($show_alternate == 'mobile' || $show_alternate == 'mobile-ie8') { if (wp_is_mobile()) { $show_alternate_image = $slider->getParam("show_alternate_image", ""); return '<img class="tp-slider-alternative-image" src="' . $show_alternate_image . '" data-no-retina>'; } } //handle slider output types if (!empty($slider)) { $outputType = $slider->getParam("output_type", ""); switch ($outputType) { case "compress": $content = str_replace("\n", "", $content); $content = str_replace("\r", "", $content); return $content; break; case "echo": echo $content; //bypass the filters break; default: return $content; break; } } else { return $content; } //normal output }
_e('Import', 'revslider'); ?> </li> <li data-content="#import-export" class=""><?php _e('Export', 'revslider'); ?> </li> <li data-content="#import-replace" class=""><?php _e('Replace URL', 'revslider'); ?> </li> </ul> <div id="import-import"> <?php if (!RevSliderFunctionsWP::isAdminUser() && apply_filters('revslider_restrict_role', true)) { _e('Import only available for Administrators', 'revslider'); } else { ?> <form name="import_slider_form" id="rs_import_slider_form" action="<?php echo RevSliderBase::$url_ajax; ?> " enctype="multipart/form-data" method="post"> <input type="hidden" name="action" value="revslider_ajax_action"> <input type="hidden" name="client_action" value="import_slider"> <input type="hidden" name="sliderid" value="<?php echo $sliderID; ?> "> <input type="hidden" name="nonce" value="<?php echo wp_create_nonce("revslider_actions");
/** * get image real path physical on disk from url */ public static function getImageRealPathFromUrl($urlImage) { $filepath = self::getImagePathFromURL($urlImage); $realPath = RevSliderFunctionsWP::getPathUploads() . $filepath; return $realPath; }
/** * * put html slider on the html page. * @param $data - mixed, can be ID ot Alias. */ public function putSliderBase($sliderID, $gal_ids = array(), $markup_export = false, $settings = array(), $order = array()) { $this->markup_export = $markup_export; try { $slver = apply_filters('revslider_remove_version', RevSliderGlobals::SLIDER_REVISION); self::$sliderSerial++; $this->slider = new RevSlider(); if ($sliderID !== '-99') { $this->slider->initByMixed($sliderID); } else { //do default $this->slider->initByMixed($sliderID); } //modify settings if there are any special settings given through the shortcode if (!empty($settings)) { $this->modify_settings($settings); } //modify settings for admin preview mode if ($this->previewMode == true) { $this->modifyPreviewModeSettings(); } //set slider language $isWpmlExists = RevSliderWpml::isWpmlExists(); $useWpml = $this->slider->getParam("use_wpml", "off"); if ($isWpmlExists && $useWpml == "on") { if ($this->previewMode == false) { $this->sliderLang = RevSliderFunctionsWP::getCurrentLangCode(); } } //edit html before slider $htmlBeforeSlider = ""; if ($markup_export === true) { $htmlBeforeSlider .= '<!-- FONT -->'; } if ($this->slider->getParam("load_googlefont", "false") == "true") { $googleFont = $this->slider->getParam("google_font"); if (is_array($googleFont)) { foreach ($googleFont as $key => $font) { } } else { $htmlBeforeSlider .= RevSliderOperations::getCleanFontImport($googleFont); } } $gfonts = $this->slider->getParam("google_font", array()); if (!empty($gfonts) && is_array($gfonts)) { foreach ($gfonts as $gf) { $gf = str_replace(array('"', '+'), array('', ' '), $gf); $htmlBeforeSlider .= RevSliderOperations::getCleanFontImport($gf); } } //add all google fonts of layers $gfsubsets = $this->slider->getParam("subsets", array()); $gf = $this->slider->getUsedFonts(false); foreach ($gf as $gfk => $gfv) { $tcf = $gfk . ':'; if (!empty($gfv['variants'])) { $mgfirst = true; foreach ($gfv['variants'] as $mgvk => $mgvv) { if (!$mgfirst) { $tcf .= ','; } $tcf .= $mgvk; $mgfirst = false; } } if (!empty($gfv['subsets'])) { $mgfirst = true; foreach ($gfv['subsets'] as $ssk => $ssv) { if (array_search(esc_attr($gfk . '+' . $ssv), $gfsubsets) !== false) { if ($mgfirst) { $tcf .= '&subset='; } if (!$mgfirst) { $tcf .= ','; } $tcf .= $ssv; $mgfirst = false; } } } $htmlBeforeSlider .= RevSliderOperations::getCleanFontImport($tcf); } if ($markup_export === true) { $htmlBeforeSlider .= '<!-- /FONT -->'; } //pub js to body handle if ($this->slider->getParam("js_to_body", "false") == "true") { $operations = new RevSliderOperations(); $arrValues = $operations->getGeneralSettingsValues(); $enable_logs = RevSliderFunctions::getVal($arrValues, "enable_logs", 'off'); if ($markup_export === true) { $htmlBeforeSlider .= '<!-- SCRIPTINCLUDE -->'; } if ($enable_logs == 'on') { $urlIncludeJS = RS_PLUGIN_URL . 'public/assets/js/jquery.themepunch.enablelog.js?rev=' . $slver; $htmlBeforeSlider .= '<script type="text/javascript" src="' . $urlIncludeJS . '"></script>'; } $urlIncludeJS = RS_PLUGIN_URL . 'public/assets/js/jquery.themepunch.tools.min.js?rev=' . $slver; $htmlBeforeSlider .= '<script type="text/javascript" src="' . $urlIncludeJS . '"></script>'; $urlIncludeJS = RS_PLUGIN_URL . 'public/assets/js/jquery.themepunch.revolution.min.js?rev=' . $slver; $htmlBeforeSlider .= '<script type="text/javascript" src="' . $urlIncludeJS . '"></script>'; if ($markup_export === true) { $htmlBeforeSlider .= '<!-- /SCRIPTINCLUDE -->'; } } //the initial id can be alias $sliderID = $this->slider->getID(); $bannerWidth = $this->slider->getParam("width", null, RevSlider::VALIDATE_NUMERIC, "Slider Width"); $bannerHeight = $this->slider->getParam("height", null, RevSlider::VALIDATE_NUMERIC, "Slider Height"); $sliderType = $this->slider->getParam("slider_type"); $slider_type = $this->slider->getParam("slider-type"); //set wrapper height $wrapperHeigh = 0; $wrapperHeigh += $this->slider->getParam("height"); //add thumb height if ($this->slider->getParam('enable_thumbnails', 'off') == 'on') { $wrapperHeigh += $this->slider->getParam('thumb_height'); } $slider_id = $this->slider->getParam('slider_id', ''); if (trim($slider_id) !== '') { $this->sliderHtmlID = $slider_id; } else { $this->sliderHtmlID = 'rev_slider_' . $sliderID . '_' . self::$sliderSerial; } $this->sliderHtmlID_wrapper = $this->sliderHtmlID . '_wrapper'; $containerStyle = ""; $sliderPosition = $this->slider->getParam("position", "center"); $do_overflow = ''; //set position: if ($sliderType != "fullscreen") { switch ($sliderPosition) { case "center": default: $containerStyle .= "margin:0px auto;"; break; case "left": $containerStyle .= "float:left;"; break; case "right": $containerStyle .= "float:right;"; break; } if ($this->slider->getParam('main_overflow_hidden', 'on') == 'on') { $do_overflow = ' tp-overflow-hidden'; } } //add background color $backgroundColor = esc_attr(trim($this->slider->getParam('background_color'))); if (!empty($backgroundColor)) { $containerStyle .= 'background-color:' . $backgroundColor . ';'; } //set padding $containerStyle .= 'padding:' . esc_attr($this->slider->getParam('padding', '0')) . 'px;'; //set margin: if ($sliderType != 'fullscreen') { if ($sliderPosition != 'center') { $containerStyle .= 'margin-left:' . esc_attr($this->slider->getParam('margin_left', '0', RevSlider::FORCE_NUMERIC)) . 'px;'; $containerStyle .= 'margin-right:' . esc_attr($this->slider->getParam('margin_right', '0', RevSlider::FORCE_NUMERIC)) . 'px;'; } $containerStyle .= 'margin-top:' . esc_attr($this->slider->getParam('margin_top', '0', RevSlider::FORCE_NUMERIC)) . 'px;'; $containerStyle .= 'margin-bottom:' . esc_attr($this->slider->getParam('margin_bottom', '0', RevSlider::FORCE_NUMERIC)) . 'px;'; } //set height and width: $bannerStyle = 'display:none;'; //add background image (to banner style) $showBackgroundImage = $this->slider->getParam('show_background_image', 'off'); if ($showBackgroundImage == 'true' || $showBackgroundImage == 'on') { $backgroundImage = esc_attr($this->slider->getParam('background_image')); $backgroundFit = esc_attr($this->slider->getParam('bg_fit', $this->slider->getParam('def-background_fit', 'cover'))); $backgroundRepeat = esc_attr($this->slider->getParam('bg_repeat', $this->slider->getParam('def-bg_repeat', 'no-repeat'))); $backgroundPosition = esc_attr($this->slider->getParam('bg_position', $this->slider->getParam('def-bg_position', 'center center'))); if (!empty($backgroundImage)) { $containerStyle .= "background-image:url(" . $backgroundImage . ");background-repeat:" . $backgroundRepeat . ";background-size:" . $backgroundFit . ";background-position:" . $backgroundPosition . ";"; } } //set wrapper and slider class: $sliderWrapperClass = "rev_slider_wrapper"; $sliderClass = "rev_slider"; switch ($sliderType) { case "responsitive": //@since 5.0: obsolete now, was custom //@since 5.0: obsolete now, was custom case "fixed": //@since 5.0: obsolete now //@since 5.0: obsolete now case 'auto': case 'fullwidth': $sliderWrapperClass .= " fullwidthbanner-container"; $sliderClass .= " fullwidthabanner"; // KRISZTIAN REMOVED SOME LINE //$bannerStyle .= "max-height:".$bannerHeight."px;height:".$bannerHeight."px;"; //$containerStyle .= "max-height:".$bannerHeight."px;"; break; case 'fullscreen': $sliderWrapperClass .= " fullscreen-container"; $sliderClass .= " fullscreenbanner"; break; default: $bannerStyle .= "height:" . $bannerHeight . "px;width:" . $bannerWidth . "px;"; $containerStyle .= "height:" . $bannerHeight . "px;width:" . $bannerWidth . "px;"; break; } $maxWidth = $this->slider->getParam('max_width', '0', RevSlider::FORCE_NUMERIC); if ($maxWidth > 0 && $this->slider->getParam('slider_type') == 'auto') { $containerStyle .= 'max-width:' . $maxWidth . 'px;'; } $htmlTimerBar = ""; $enable_progressbar = $this->slider->getParam('enable_progressbar', 'on'); $timerBar = $this->slider->getParam('show_timerbar', 'top'); $progress_height = $this->slider->getParam('progress_height', '5'); $progress_opa = $this->slider->getParam('progress_opa', '15'); $progressbar_color = $this->slider->getParam('progressbar_color', '#000000'); if ($enable_progressbar !== 'on' || $slider_type == 'hero') { $timerBar = 'hide'; } $progress_style = ' style="height: ' . esc_attr($progress_height) . 'px; background-color: ' . RevSliderFunctions::hex2rgba($progressbar_color, $progress_opa) . ';"'; switch ($timerBar) { case "top": $htmlTimerBar = '<div class="tp-bannertimer"' . $progress_style . '></div>'; break; case "bottom": $htmlTimerBar = '<div class="tp-bannertimer tp-bottom"' . $progress_style . '></div>'; break; case "hide": $htmlTimerBar = '<div class="tp-bannertimer tp-bottom" style="visibility: hidden !important;"></div>'; break; } //check inner / outer border $paddingType = $this->slider->getParam("padding_type", "outer"); if ($paddingType == "inner") { $sliderWrapperClass .= " tp_inner_padding"; } global $revSliderVersion; $add_alias = ''; if (is_super_admin() || is_admin_bar_showing()) { if (current_user_can('edit_theme_options')) { $add_alias = ' data-alias="' . esc_attr($this->slider->getAlias()) . '"'; } } echo $htmlBeforeSlider . "\n"; echo '<div id="' . $this->sliderHtmlID_wrapper . '" class="' . $sliderWrapperClass . '"' . $add_alias; $show_alternate = $this->slider->getParam("show_alternative_type", "off"); if ($show_alternate !== 'off') { $show_alternate_image = $this->slider->getParam("show_alternate_image", ""); echo ' data-aimg="' . $show_alternate_image . '" '; if ($show_alternate == 'mobile' || $show_alternate == 'mobile-ie8') { echo ' data-amobile="enabled" '; } else { echo ' data-amobile="disabled" '; } if ($show_alternate == 'mobile-ie8' || $show_alternate == 'ie8') { echo ' data-aie8="enabled" '; } else { echo ' data-aie8="disabled" '; } } echo ' style="' . $containerStyle . '">' . "\n"; echo '<!-- START REVOLUTION SLIDER ' . $revSliderVersion . ' ' . $sliderType . ' mode -->' . "\n"; echo ' <div id="' . $this->sliderHtmlID . '"'; echo ' class="' . $sliderClass . $do_overflow . '"'; echo ' style="' . $bannerStyle . '"'; echo ' data-version="' . $revSliderVersion . '">' . "\n"; echo $this->putSlides($gal_ids, $order); echo $htmlTimerBar; echo ' </div>' . "\n"; $this->putJS($markup_export); echo '</div>'; echo '<!-- END REVOLUTION SLIDER -->'; } catch (Exception $e) { $message = $e->getMessage(); $this->putErrorMessage($message); } }
public function get_image_attributes($slider_type) { $params = $this->params; $bgType = RevSliderBase::getVar($params, "background_type", "transparent"); $bgColor = RevSliderBase::getVar($params, "slide_bg_color", "transparent"); $bgFit = RevSliderBase::getVar($params, "bg_fit", "cover"); $bgFitX = intval(RevSliderBase::getVar($params, "bg_fit_x", "100")); $bgFitY = intval(RevSliderBase::getVar($params, "bg_fit_y", "100")); $bgPosition = RevSliderBase::getVar($params, "bg_position", "center top"); $bgPositionX = intval(RevSliderBase::getVar($params, "bg_position_x", "0")); $bgPositionY = intval(RevSliderBase::getVar($params, "bg_position_y", "0")); $bgRepeat = RevSliderBase::getVar($params, "bg_repeat", "no-repeat"); $bgStyle = ' '; if ($bgFit == 'percentage') { $bgStyle .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;'; } else { $bgStyle .= "background-size: " . $bgFit . ";"; } if ($bgPosition == 'percentage') { $bgStyle .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;'; } else { $bgStyle .= "background-position: " . $bgPosition . ";"; } $bgStyle .= "background-repeat: " . $bgRepeat . ";"; $thumb = ''; switch ($slider_type) { case 'gallery': $imageID = RevSliderBase::getVar($params, "image_id"); if (empty($imageID)) { $thumb = RevSliderBase::getVar($params, "image"); $imgID = RevSliderBase::get_image_id_by_url($thumb); if ($imgID !== false) { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imgID, RevSliderFunctionsWP::THUMB_MEDIUM); } } else { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imageID, RevSliderFunctionsWP::THUMB_MEDIUM); } break; case 'posts': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/post.png'; $bgStyle = 'background-size: cover;'; break; case 'facebook': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/fb.png'; $bgStyle = 'background-size: cover;'; break; case 'twitter': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/tw.png'; $bgStyle = 'background-size: cover;'; break; case 'instagram': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/ig.png'; $bgStyle = 'background-size: cover;'; break; case 'flickr': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/fr.png'; $bgStyle = 'background-size: cover;'; break; case 'youtube': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/yt.png'; $bgStyle = 'background-size: cover;'; break; case 'vimeo': $thumb = RS_PLUGIN_URL . 'public/assets/assets/sources/vm.png'; $bgStyle = 'background-size: cover;'; break; } if ($thumb == '') { $thumb = RevSliderBase::getVar($params, "image"); } $bg_fullstyle = ''; $bg_extraClass = ''; $data_urlImageForView = ''; //if($bgType=="image" || $bgType=="streamvimeo" || $bgType=="streamyoutube" || $bgType=="streaminstagram" || $bgType=="html5") { $data_urlImageForView = $thumb; $bg_fullstyle = $bgStyle; //} if ($bgType == "solid") { $bg_fullstyle = 'background-color:' . $bgColor . ';'; } if ($bgType == "trans" || $bgType == "transparent") { $bg_extraClass = 'mini-transparent'; } return array('url' => $data_urlImageForView, 'class' => $bg_extraClass, 'style' => $bg_fullstyle); }
/** * * get current language */ public static function getCurrentLang() { self::validateWpmlExists(); $wpml = new SitePress(); if (is_admin()) { $lang = $wpml->get_default_language(); } else { $lang = RevSliderFunctionsWP::getCurrentLangCode(); } return $lang; }
/** * 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!<br>', 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; }
/** * create tables */ public static function createTable($tableName) { global $wpdb; $parseCssToDb = false; $checkForTablesOneTime = get_option('revslider_checktables', '0'); if ($checkForTablesOneTime == '0') { update_option('revslider_checktables', '1'); if (RevSliderFunctionsWP::isDBTableExists(self::$table_prefix . RevSliderGlobals::TABLE_CSS_NAME)) { //$wpdb->tables( 'global' ) //check if database is empty $result = $wpdb->get_row("SELECT COUNT( DISTINCT id ) AS NumberOfEntrys FROM " . self::$table_prefix . RevSliderGlobals::TABLE_CSS_NAME); if ($result->NumberOfEntrys == 0) { $parseCssToDb = true; } } } if ($parseCssToDb) { $RevSliderOperations = new RevSliderOperations(); $RevSliderOperations->importCaptionsCssContentArray(); $RevSliderOperations->moveOldCaptionsCss(); } //if table exists - don't create it. $tableRealName = self::$table_prefix . $tableName; if (RevSliderFunctionsWP::isDBTableExists($tableRealName)) { return false; } switch ($tableName) { case RevSliderGlobals::TABLE_SLIDERS_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t title tinytext NOT NULL,\r\r\n\t\t\t\t\t\t alias tinytext,\r\r\n\t\t\t\t\t\t params MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t);"; break; case RevSliderGlobals::TABLE_SLIDES_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t\t slider_id int(9) NOT NULL,\r\r\n\t\t\t\t\t\t\t slide_order int not NULL,\r\r\n\t\t\t\t\t\t\t params MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t layers MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t\t);"; break; case RevSliderGlobals::TABLE_STATIC_SLIDES_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t\t slider_id int(9) NOT NULL,\r\r\n\t\t\t\t\t\t\t params MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t layers MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t\t);"; break; case RevSliderGlobals::TABLE_CSS_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t\t handle TEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t settings MEDIUMTEXT,\r\r\n\t\t\t\t\t\t\t hover MEDIUMTEXT,\r\r\n\t\t\t\t\t\t\t params MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t\t);"; $parseCssToDb = true; break; case RevSliderGlobals::TABLE_LAYER_ANIMS_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t\t handle TEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t params TEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t\t);"; break; case RevSliderGlobals::TABLE_NAVIGATION_NAME: $sql = "CREATE TABLE " . self::$table_prefix . $tableName . " (\r\r\n\t\t\t\t\t\t\t id int(9) NOT NULL AUTO_INCREMENT,\r\r\n\t\t\t\t\t\t\t name VARCHAR(191) NOT NULL,\r\r\n\t\t\t\t\t\t\t handle VARCHAR(191) NOT NULL,\r\r\n\t\t\t\t\t\t\t css MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t markup MEDIUMTEXT NOT NULL,\r\r\n\t\t\t\t\t\t\t settings MEDIUMTEXT NULL,\r\r\n\t\t\t\t\t\t\t UNIQUE KEY id (id)\r\r\n\t\t\t\t\t\t\t);"; break; default: RevSliderFunctions::throwError("table: {$tableName} not found"); break; } require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta($sql); if ($parseCssToDb) { $RevSliderOperations = new RevSliderOperations(); $RevSliderOperations->importCaptionsCssContentArray(); $RevSliderOperations->moveOldCaptionsCss(); } }
/** * output markup for template * @since: 5.0 */ public function write_template_markup($template, $slider_id = false) { $params = $template['params']; $settings = $template['settings']; $slide_id = $template['id']; $title = str_replace("'", "", RevSliderBase::getVar($params, 'title', 'Slide')); if ($slider_id !== false) { $title = ''; } //remove Title if Slider $width = RevSliderBase::getVar($settings, "width", 1240); $height = RevSliderBase::getVar($settings, "height", 868); $bgType = RevSliderBase::getVar($params, "background_type", "transparent"); $bgColor = RevSliderBase::getVar($params, "slide_bg_color", "transparent"); $bgFit = RevSliderBase::getVar($params, "bg_fit", "cover"); $bgFitX = intval(RevSliderBase::getVar($params, "bg_fit_x", "100")); $bgFitY = intval(RevSliderBase::getVar($params, "bg_fit_y", "100")); $bgPosition = RevSliderBase::getVar($params, "bg_position", "center center"); $bgPositionX = intval(RevSliderBase::getVar($params, "bg_position_x", "0")); $bgPositionY = intval(RevSliderBase::getVar($params, "bg_position_y", "0")); $bgRepeat = RevSliderBase::getVar($params, "bg_repeat", "no-repeat"); $bgStyle = ' '; if ($bgFit == 'percentage') { if (intval($bgFitY) == 0 || intval($bgFitX) == 0) { $bgStyle .= "background-size: cover;"; } else { $bgStyle .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;'; } } else { $bgStyle .= "background-size: " . $bgFit . ";"; } if ($bgPosition == 'percentage') { $bgStyle .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;'; } else { $bgStyle .= "background-position: " . $bgPosition . ";"; } $bgStyle .= "background-repeat: " . $bgRepeat . ";"; if (isset($template['img'])) { $thumb = $template['img']; } else { $imageID = RevSliderBase::getVar($params, "image_id"); if (empty($imageID)) { $thumb = RevSliderBase::getVar($params, "image"); $imgID = RevSliderBase::get_image_id_by_url($thumb); if ($imgID !== false) { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imgID, RevSliderFunctionsWP::THUMB_MEDIUM); } } else { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imageID, RevSliderFunctionsWP::THUMB_MEDIUM); } if ($thumb == '') { $thumb = RevSliderBase::getVar($params, "image"); } } $bg_fullstyle = ''; $bg_extraClass = ''; $data_urlImageForView = ''; if ($bgType == 'image' || $bgType == 'vimeo' || $bgType == 'youtube' || $bgType == 'html5') { $data_urlImageForView = 'data-src="' . $thumb . '"'; $bg_fullstyle = ' style="' . $bgStyle . '" '; } if ($bgType == "solid") { $bg_fullstyle = ' style="background-color:' . $bgColor . ';" '; } if ($bgType == "trans" || $bgType == "transparent") { $bg_extraClass = 'mini-transparent'; } ?> <div <?php echo $data_urlImageForView; ?> class="<?php echo $slider_id !== false ? 'template_slider_item' : 'template_item'; ?> <?php echo $bg_extraClass; ?> " <?php echo $bg_fullstyle; ?> data-gridwidth="<?php echo $width; ?> " data-gridheight="<?php echo $height; ?> " <?php if ($slider_id !== false) { ?> data-sliderid="<?php echo $slider_id; ?> " <?php } else { ?> data-slideid="<?php echo $slide_id; ?> " <?php } ?> > <div class="template_title"><?php echo $title; ?> </div> </div> <?php }
} else { $order = $index + 1; } $urlImageForView = $slide->getUrlImageThumb(); $slideTitle = $slide->getParam("title", "Slide"); $title = $slideTitle; $filename = $slide->getImageFilename(); $imageAlt = stripslashes($slideTitle); if (empty($imageAlt)) { $imageAlt = "slide"; } if ($bgType == "image" && !empty($filename)) { $title .= " (" . $filename . ")"; } $postID = $slide->getID(); $urlEditSlide = RevSliderFunctionsWP::getUrlEditPost($postID); $linkEdit = RevSliderFunctions::getHtmlLink($urlEditSlide, $title, "", "", true); $state = $slide->getParam("state", "published"); ?> <li id="slidelist_item_<?php echo $postID; ?> " class="ui-state-default"> <span class="slide-col col-order"> <span class="order-text"><?php echo $order; ?> </span> <div class="state_loader" style="display:none;"></div> <?php
/** * * get posts from specific posts list */ private function getPostsFromSpecificList() { $strPosts = $this->getParam("posts_list", ""); $strPosts = apply_filters('revslider_set_posts_list', $strPosts); $slider_id = $this->getID(); $arrPosts = RevSliderFunctionsWP::getPostsByIDs($strPosts, $slider_id); return $arrPosts; }
/** * 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])) { if ($strip == true) { //pclzip $importImage = RevSliderFunctionsWP::import_media($d_path . str_replace('//', '/', 'images/' . $image), $alias . '/'); } else { $importImage = RevSliderFunctionsWP::import_media($d_path . 'images/' . $image, $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; }
/** * * get posts from specific posts list */ private function getPostsFromSpecificList($gal_ids = array()) { $is_gal = false; $additional = array(); if (!empty($gal_ids) && $gal_ids[0]) { $strPosts = $gal_ids; $strPosts = apply_filters('revslider_set_posts_list_gal', $strPosts, $this->getID()); $is_gal = true; } else { if (isset($gal_ids[0])) { unset($gal_ids[0]); $strPosts = implode(",", $gal_ids); $additional['order'] = "none"; $additional['orderby'] = "post__in"; } else { $strPosts = $this->getParam("posts_list", ""); $additional['order'] = $this->getParam("posts_sort_direction", "DESC"); $additional['orderby'] = $this->getParam("post_sortby", ""); } $strPosts = apply_filters('revslider_set_posts_list', $strPosts, $this->getID()); } $slider_id = $this->getID(); $arrPosts = RevSliderFunctionsWP::getPostsByIDs($strPosts, $slider_id, $is_gal, $additional); return $arrPosts; }
/** * view the estimated speed of the Slider * @since: 5.0 */ public static function get_slider_speed($sliderID) { //$data = wp_get_attachment_metadata($cur_img_id); ob_start(); $total_size = 0; $do_ssl = is_ssl() ? 'http:' : 'https:'; $slider = new RevSliderSlider(); $slider->initByID($sliderID); $slides = $slider->getSlidesForExport(); $static_slides = $slider->getStaticSlideForExport(); if (!empty($static_slides) && is_array($static_slides)) { foreach ($static_slides as $s_slide) { $slides[] = $s_slide; } } $used_images = array(); $used_videos = array(); $used_captions = array(); $using_kenburns = false; $using_parallax = false; $using_carousel = false; $using_navigation = false; $using_videos = false; $using_actions = false; $using_layeranim = false; $img_size = 0; $video_size = 0; $slide_counter = 0; $firstslide_size = 0; $smartslide_size = 0; if ($slider->getParam("use_parallax", "off") == 'on') { $using_parallax = true; } if ($slider->getParam("slider-type", "standard") == 'carousel') { $using_carousel = true; } $enable_arrows = $slider->getParam('enable_arrows', 'off'); $enable_bullets = $slider->getParam('enable_bullets', 'off'); $enable_tabs = $slider->getParam('enable_tabs', 'off'); $enable_thumbnails = $slider->getParam('enable_thumbnails', 'off'); if ($enable_arrows == 'on' || $enable_bullets == 'on' || $enable_tabs == 'on' || $enable_thumbnails == 'on') { $using_navigation = true; } if (!empty($slides) && count($slides) > 0) { foreach ($slides as $key => $slide) { if (isset($slide['params']['state']) && $slide['params']['state'] != 'published') { continue; } if (!isset($slide['id'])) { continue; } $slide_counter++; $slide_id = $slide['id']; if (isset($slide['params']['kenburn_effect']) && $slide['params']['kenburn_effect'] == 'on') { $using_kenburns = true; } if (!isset($slide['params']['image_source_type'])) { $slide['params']['image_source_type'] = 'full'; } if (isset($slide['params']['image']) && $slide['params']['image'] != '') { //add infos of image to an array $infos = array(); $urlImage = false; switch ($slide['params']['background_type']) { case 'streamyoutube': case 'streaminstagram': case 'streamvimeo': case 'youtube': case 'vimeo': $using_videos = true; break; } if (isset($slide['params']['image_id'])) { $cur_img_id = $slide['params']['image_id']; //get image sizes by ID $urlImage = wp_get_attachment_image_src($slide['params']['image_id'], $slide['params']['image_source_type']); } if ($urlImage === false) { $cur_img_id = RevSliderFunctionsWP::get_image_id_by_url($slide['params']['image']); if ($cur_img_id !== false) { $urlImage = wp_get_attachment_image_src($cur_img_id, $slide['params']['image_source_type']); } } if ($urlImage !== false) { $infos['id'] = $cur_img_id; $file = get_attached_file($cur_img_id); $infos['info'] = pathinfo($file); if (file_exists($file)) { $infos['size'] = filesize($file); $infos['size-format'] = size_format($infos['size'], 2); $img_size += $infos['size']; if ($slide_counter == 1) { $firstslide_size += $infos['size']; } if ($slide_counter == 1 || $slide_counter == 2 || $slide_counter == count($slides)) { $smartslide_size += $infos['size']; } } else { $infos['id'] = false; } } else { $infos['id'] = 'external'; } if (strpos($slide_id, 'static_') !== false) { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=static_' . $sliderID); } else { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=' . $slide_id); } $used_images[$slide['params']['image']] = $infos; } if (isset($slide['layers']) && !empty($slide['layers']) && count($slide['layers']) > 0) { $using_layeranim = true; foreach ($slide['layers'] as $lKey => $layer) { switch ($layer['type']) { case 'image': $infos = array(); if (isset($layer['image_url']) && trim($layer['image_url']) != '') { $cur_img_id = RevSliderFunctionsWP::get_image_id_by_url($layer['image_url']); if ($cur_img_id !== false) { if (!isset($layer['layer-image-size']) || $layer['layer-image-size'] == 'auto') { $layer['layer-image-size'] = $slide['params']['image_source_type']; } $urlImage = wp_get_attachment_image_src($cur_img_id, $layer['layer-image-size']); if ($urlImage !== false) { $infos['id'] = $cur_img_id; $file = get_attached_file($cur_img_id); $infos['info'] = pathinfo($file); if (file_exists($file)) { $infos['size'] = filesize($file); $infos['size-format'] = size_format($infos['size'], 2); $img_size += $infos['size']; if ($slide_counter == 1) { $firstslide_size += $infos['size']; } if ($slide_counter == 1 || $slide_counter == 2 || $slide_counter == count($slides)) { $smartslide_size += $infos['size']; } } else { $infos['id'] = false; } } else { $infos['id'] = 'external'; } } else { $infos['id'] = 'external'; } if (strpos($slide_id, 'static_') !== false) { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=static_' . $sliderID); } else { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=' . $slide_id); } $used_images[$layer['image_url']] = $infos; //image_url if image caption } break; case 'video': $using_videos = true; //get cover image if existing $infos = array(); $poster_img = array(); if (isset($layer['video_data']) && isset($layer['video_data']->urlPoster)) { $poster_img[] = $layer['video_data']->urlPoster; } if (isset($layer['video_image_url']) && isset($layer['video_image_url'])) { $poster_img[] = $layer['video_image_url']; } if (!empty($poster_img)) { foreach ($poster_img as $img) { if (trim($img) == '') { continue; } $cur_img_id = RevSliderFunctionsWP::get_image_id_by_url($img); if ($cur_img_id !== false) { if (!isset($layer['layer-image-size']) || $layer['layer-image-size'] == 'auto') { $layer['layer-image-size'] = $slide['params']['image_source_type']; } $urlImage = wp_get_attachment_image_src($cur_img_id, $layer['layer-image-size']); if ($urlImage !== false) { $infos['id'] = $cur_img_id; $file = get_attached_file($cur_img_id); $infos['info'] = pathinfo($file); if (file_exists($file)) { $infos['size'] = filesize($file); $infos['size-format'] = size_format($infos['size'], 2); $img_size += $infos['size']; if ($slide_counter == 1) { $firstslide_size += $infos['size']; } if ($slide_counter == 1 || $slide_counter == 2 || $slide_counter == count($slides)) { $smartslide_size += $infos['size']; } } else { $infos['id'] = false; } } else { $infos['id'] = 'external'; } } else { $infos['id'] = 'external'; } if (strpos($slide_id, 'static_') !== false) { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=static_' . $sliderID); } else { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=' . $slide_id); } $used_images[$img] = $infos; //image_url if image caption } } $infos = array(); if (isset($layer['video_type'])) { //add videos and try to get video size if (isset($layer['video_data'])) { $video_arr = array(); $max_video_size = 0; if (strpos($slide_id, 'static_') !== false) { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=static_' . $sliderID); } else { $infos['url'] = RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=' . $slide_id); } switch ($layer['video_type']) { case 'html5': if (isset($layer['video_data']->urlMp4) && !empty($layer['video_data']->urlMp4)) { $video_arr['mp4'] = $layer['video_data']->urlMp4; } if (isset($layer['video_data']->urlWebm) && !empty($layer['video_data']->urlWebm)) { $video_arr['webm'] = $layer['video_data']->urlWebm; } if (isset($layer['video_data']->urlOgv) && !empty($layer['video_data']->urlOgv)) { $video_arr['mp4'] = $layer['video_data']->urlOgv; } if (!empty($video_arr)) { foreach ($video_arr as $type => $url) { $cur_id = RevSliderFunctionsWP::get_image_id_by_url($url); if ($cur_id !== false) { $infos['id'] = $cur_id; $file = get_attached_file($cur_id); $infos['info'] = pathinfo($file); if (file_exists($file)) { $infos['size'] = filesize($file); $infos['size-format'] = size_format($infos['size'], 2); if ($infos['size'] > $max_video_size) { $max_video_size = $infos['size']; } //add only the largest video of the three here as each browser loads only one file and we can add here the biggest } else { $infos['id'] = 'external'; } } else { $infos['id'] = 'external'; } $used_videos[$url] = $infos; } $video_size += $max_video_size; } break; case 'youtube': $infos['id'] = 'external'; if (!isset($layer['video_data']->id) || empty($layer['video_data']->id)) { continue; } $used_videos[$do_ssl . '//www.youtube.com/watch?v=' . $layer['video_data']->id] = $infos; break; case 'vimeo': if (!isset($layer['video_data']->id) || empty($layer['video_data']->id)) { continue; } $infos['id'] = 'external'; $used_videos[$do_ssl . '//vimeo.com/' . $layer['video_data']->id] = $infos; break; } } } break; } //check captions for actions if (isset($layer['layer_action']) && !empty($layer['layer_action'])) { $a_action = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($layer['layer_action'], 'action', array())); $a_link_type = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($layer['layer_action'], 'link_type', array())); if (!empty($a_action)) { foreach ($a_action as $num => $action) { if ($using_actions == true) { break; } if ($action !== 'link') { $using_actions = true; } else { //check if jQuery or a tag if ($a_link_type[$num] == 'jquery') { $using_actions = true; } } } } } if (isset($layer['style']) && $layer['style'] != '') { $used_captions[$layer['style']] = true; } } } } } $total_size += $img_size; $img_counter = 0; $issues = ""; //$total_size += $video_size; ?> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- HEADER OF MONITORING --> <span class="tp-monitor-performance-title"><?php echo __("Overall Slider Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="image-performace-bar" style="width: %overall_performance%%" class="tp-monitor-performance-bar mo-%overall_color%-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:50px"></span> <span class="tp-monitor-speed-table tp-monitor-single-speed"> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed UMTS:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="umts-speed">%umtsspeed-single%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed DSL:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="dsl-speed">%dslspeed-single%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed T1:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="t1-speed">%t1speed-single%</span> </span> </span> <span class="tp-monitor-speed-table tp-monitor-smart-speed"> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed UMTS:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="umts-speed">%umtsspeed-smart%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed DSL:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="dsl-speed">%dslspeed-smart%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed T1:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="t1-speed">%t1speed-smart%</span> </span> </span> <span class="tp-monitor-speed-table tp-monitor-all-speed"> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed UMTS:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="umts-speed">%umtsspeed-all%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed DSL:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="dsl-speed">%dslspeed-all%</span> </span> <span class="tp-monitor-speed-cell"> <span class="tp-monitor-smalllabel"><?php echo __("Load Speed T1:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-total-subsize" id="t1-speed">%t1speed-all%</span> </span> </span> <span class="tp-clearfix" style="height:25px"></span> <span style="float:left;width:165px"> <span class="tp-monitor-smalllabel"><?php echo __("Total Slider Size:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fullsize">%overall_size%</span> <a class="button-primary revblue tp-monitor-showdetails" data-target="#performance_overall_details" style="float:right; width:160px;vertical-align:top"><i class="eg-icon-chart-bar"></i>Show Full Statistics</a> </span> <span style="float:right; width:165px"> <span class="tp-monitor-smalllabel"><?php echo __("Preloaded Slides Size:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fullsize tp-monitor-single-speed">%firstslide_size%</span> <span class="tp-monitor-fullsize tp-monitor-smart-speed">%smartslide_size%</span> <span class="tp-monitor-fullsize tp-monitor-all-speed">%allslide_size%</span> <a class="button-primary revred tp-monitor-showdetails" data-target="#monitor-problems" style="float:right; width:160px;vertical-align:top;"><i class="eg-icon-info"></i>Show All Issues</a> </span> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- THE IMAGE PERFORMANCE MESSING --> <div id="monitor-problems" style="display:none"> <span class="tp-monitor-performance-title"><?php echo __("Need Some Attention", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-clearfix" style="height:25px"></span> <ul class="tp-monitor-list" id="monitor-problem-details" style="margin-bottom:15px;"> %issues% </ul> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> </div> <div id="performance_overall_details" style="display:none"> <!-- IMAGE LIST --> <?php if (!empty($used_images)) { ?> <!-- THE IMAGE PERFORMANCE MESSING --> <span class="tp-monitor-performance-title"><?php echo __("Image Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="image-performace-bar" style="width: %image_performance%%" class="tp-monitor-performance-bar mo-%image_color%-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:35px"></span> <!-- FULL SIZE OF SUBCATEGORY && SHOW/HIDE LIST --> <span style="float:left;width:40%"> <span class="tp-monitor-smalllabel"><?php echo __("Images Loaded:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-imageicon"></span> <span id="image_sub_size" class="tp-monitor-total-subsize"><?php echo size_format($img_size, 2); ?> </span> </span> <span style="float:left;width:60%; text-align:right;"> <span class="tp-monitor-showdetails" data-target="#monitor-image-details" data-open="</span><?php echo __("Hide Details", REVSLIDER_TEXTDOMAIN); ?> " data-close="</span><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> "><span class="tp-monitor-openclose"></span><span class="tp-show-inner-btn"><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> </span></span> </span> <span class="tp-clearfix" style="height:15px"></span> <!-- THE IMAGE LIST --> <ul class="tp-monitor-list" id="monitor-image-details" style="display:none;margin-bottom:15px;"> <?php foreach ($used_images as $path => $image) { $_li = '<li class="tp-monitor-listli">'; if (isset($image['size'])) { $img_counter++; if ($image['size'] < 200000) { $_li .= '<span class="tp-monitor-good"></span>'; } else { if ($image['size'] < 400000) { $_li .= '<span class="tp-monitor-well"></span>'; } else { $_li .= '<span class="tp-monitor-warning"></span>'; } } if ($image['size'] > 1000000) { $_li .= '<span class="tp-monitor-size">' . size_format($image['size'], 2) . '</span>'; } else { $_li .= '<span class="tp-monitor-size">' . size_format($image['size'], 0) . '</span>'; } } else { if ($image['id'] == 'external') { $_li .= '<span class="tp-monitor-neutral"></span><span class="tp-monitor-size">' . __('extern', REVSLIDER_TEXTDOMAIN) . '</span>'; } else { $_li .= '<span class="tp-monitor-warning"></span><span class="tp-monitor-size">' . __('missing', REVSLIDER_TEXTDOMAIN) . '</span>'; } } $_li .= '<span class="tp-monitor-file">'; if (!isset($image['info']['basename']) || empty($image['info']['basename'])) { $_li .= '...' . substr($path, -20); } else { $_li .= substr($image['info']['basename'], -20); } $_li .= '</span>'; if (isset($image['url'])) { //$_li .= ' <a href="'.$image['url'].'" target="_blank" class="tp-monitor-showimage"></a>'; $_li .= ' <a href="' . $image['url'] . '" target="_blank" class="tp-monitor-linktoslide"></a>'; } $_li .= '</li>'; echo $_li; if (isset($image['size']) && $image['size'] > 199999 || !isset($image['size']) && !$image['id'] == 'external') { $issues .= $_li; } } ?> </ul> <?php } ?> <!-- VIDEO LIST --> <?php if (!empty($used_videos)) { ?> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- THE VIDEO PERFORMANCE MESSING --> <span class="tp-monitor-performance-title"><?php echo __("Video Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="video-performace-bar" style="width:50%" class="tp-monitor-performance-bar mo-neutral-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:35px"></span> <!-- FULL SIZE OF SUBCATEGORY && SHOW/HIDE LIST --> <span style="float:left;width:40%; display:block"> <span class="tp-monitor-smalllabel"><?php echo __("Videos Loaded (max):", REVSLIDER_TEXTDOMAIN); ?> </span> <?php if ($video_size > 0) { ?> <span class="tp-monitor-imageicon"></span> <span id="video_sub_size" class="tp-monitor-total-subsize"><?php echo size_format($video_size, 2); ?> </span> <?php } else { ?> <span class="tp-monitor-imageicon"></span> <span class="tp-monitor-total-subsize"><?php echo __("Unknown", REVSLIDER_TEXTDOMAIN); ?> </span> <?php } ?> </span> <span style="float:left;width:60%; text-align:right;"> <span class="tp-monitor-showdetails" data-target="#monitor-video-details" data-open="</span><?php echo __("Hide Details", REVSLIDER_TEXTDOMAIN); ?> " data-close="</span><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> "><span class="tp-monitor-openclose"></span><span class="tp-show-inner-btn"><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> </span></span> </span> <span class="tp-clearfix" style="height:15px"></span> <ul class="tp-monitor-list" id="monitor-video-details" style="margin-bottom:15px;display:none;"> <?php foreach ($used_videos as $path => $video) { $_li = '<li class="tp-monitor-listli">'; if (isset($video['size'])) { $_li .= ' <span class="tp-monitor-neutral"></span>'; if ($video['size'] > 1000000) { $_li .= '<span class="tp-monitor-size">' . size_format($video['size'], 2) . '</span>'; } else { $_li .= '<span class="tp-monitor-size">' . size_format($video['size'], 0) . '</span>'; } } else { if ($video['id'] == 'external') { $_li .= '<span class="tp-monitor-neutral"></span><span class="tp-monitor-size">' . __('extern', REVSLIDER_TEXTDOMAIN) . '</span>'; } else { $_li .= '<span class="tp-monitor-warning"></span><span class="tp-monitor-size">' . __('missing', REVSLIDER_TEXTDOMAIN) . '</span>'; } } $_li .= '<span class="tp-monitor-file">'; if (!isset($video['info']['basename']) || empty($video['info']['basename'])) { $_li .= '...' . substr($path, -20); } else { $_li .= substr($video['info']['basename'], -20); } $_li .= '</span>'; if (isset($image['url'])) { $_li .= ' <a href="' . $video['url'] . '" target="_blank" class="tp-monitor-linktoslide"></a>'; } $_li .= '</li>'; if (!isset($video['size']) && !$video['id'] == 'external') { $issues .= $_li; } echo $_li; } ?> </ul> <?php } $css_size = 0; ?> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- THE IMAGE PERFORMANCE MESSING --> <span class="tp-monitor-performance-title"><?php echo __("CSS Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="image-performace-bar" style="width:%css_performance%%" class="tp-monitor-performance-bar mo-%css_color%-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:35px"></span> <!-- FULL SIZE OF SUBCATEGORY && SHOW/HIDE LIST --> <span style="float:left;width:40%"> <span class="tp-monitor-smalllabel"><?php echo __("CSS Loaded:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-cssicon"></span><span id="css_sub_size" class="tp-monitor-total-subsize">%css_size%</span> </span> <span style="float:left;width:60%; text-align:right;"> <span class="tp-monitor-showdetails" data-target="#monitor-CSS-details" data-open="</span><?php echo __("Hide Details", REVSLIDER_TEXTDOMAIN); ?> " data-close="</span><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> "><span class="tp-monitor-openclose"></span><span class="tp-show-inner-btn"><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> </span></span> </span> <span class="tp-clearfix" style="height:15px"></span> <?php //get css files echo '<ul class="tp-monitor-list" id="monitor-CSS-details" style="margin-bottom:15px;display:none;">'; if (file_exists(RS_PLUGIN_PATH . '/public/assets/css/settings.css')) { $fs = filesize(RS_PLUGIN_PATH . '/public/assets/css/settings.css'); $_li = '<li class="tp-monitor-listli">'; if ($fs < 60000) { $_li .= '<span class="tp-monitor-good"></span>'; } else { if ($fs < 100000) { $_li .= '<span class="tp-monitor-well"></span>'; } else { $_li .= '<span class="tp-monitor-warning"></span>'; } } $_li .= '<span class="tp-monitor-size">' . size_format($fs, 0) . '</span>'; $_li .= '<span class="tp-monitor-file">'; $_li .= __('css/settings.css', REVSLIDER_TEXTDOMAIN); $_li .= '</span>'; $_li .= '</li>'; if ($fs > 99999) { $issues .= $_li; } echo $_li; $total_size += $fs; $css_size += $fs; } $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $_li = '<li class="tp-monitor-listli">'; if (strlen($custom_css) < 50000) { $_li .= '<span class="tp-monitor-good"></span>'; } else { if (strlen($custom_css) < 100000) { $_li .= '<span class="tp-monitor-well"></span>'; } else { $_li .= '<span class="tp-monitor-warning"></span>'; } } $_li .= '<span class="tp-monitor-size">' . size_format(strlen($custom_css), 0) . '</span>'; $_li .= '<span class="tp-monitor-file">'; $_li .= __('Static Styles', REVSLIDER_TEXTDOMAIN); $_li .= '</span>'; $_li .= '</li>'; if (strlen($custom_css) > 49999) { $issues .= $_li; } echo $_li; $total_size += strlen($custom_css); $css_size += strlen($custom_css); if (!empty($used_captions)) { $captions = array(); foreach ($used_captions as $class => $val) { $cap = RevSliderOperations::getCaptionsContentArray($class); if (!empty($cap)) { $captions[] = $cap; } } $styles = RevSliderCssParser::parseArrayToCss($captions, "\n"); $styles = RevSliderCssParser::compress_css($styles); $_li = '<li class="tp-monitor-listli">'; if (strlen($styles) < 50000) { $_li .= '<span class="tp-monitor-good"></span>'; } else { if (strlen($styles) < 100000) { $_li .= '<span class="tp-monitor-well"></span>'; } else { $_li .= '<span class="tp-monitor-warning"></span>'; } } $_li .= '<span class="tp-monitor-size">' . size_format(strlen($styles), 0) . '</span>'; $_li .= '<span class="tp-monitor-file">'; $_li .= __('Dynamic Styles', REVSLIDER_TEXTDOMAIN); $_li .= '</span>'; $_li .= '</li>'; if (strlen($styles) > 49999) { $issues .= $_li; } echo $_li; $total_size += strlen($styles); $css_size += strlen($styles); } echo '</ul>'; echo ' <span style="display:none" id="css-size-hidden">' . size_format($css_size, 2) . '</span>'; $js_size = 0; ?> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- THE jQuery PERFORMANCE MESSING --> <span class="tp-monitor-performance-title"><?php echo __("jQuery Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="video-performace-bar" style="width:%js_performance%%" class="tp-monitor-performance-bar mo-%js_color%-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:35px"></span> <!-- FULL SIZE OF SUBCATEGORY && SHOW/HIDE LIST --> <span style="float:left;width:40%; display:block"> <span class="tp-monitor-smalllabel"><?php echo __("jQuery Loaded:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-imageicon"></span><span id="jquery_sub_size" class="tp-monitor-total-subsize">%js_size%</span> </span> <span style="float:left;width:60%; text-align:right;"> <span class="tp-monitor-showdetails" data-target="#monitor-jquery-details" data-open="</span><?php echo __("Hide Details", REVSLIDER_TEXTDOMAIN); ?> " data-close="</span><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> "><span class="tp-monitor-openclose"></span><span class="tp-show-inner-btn"><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> </span></span> </span> <span class="tp-clearfix" style="height:15px"></span> <?php echo '<ul class="tp-monitor-list" id="monitor-jquery-details" style="margin-bottom:15px;display:none">'; $jsfiles = array('jquery.themepunch.tools.min.js' => RS_PLUGIN_PATH . '/public/assets/js/jquery.themepunch.tools.min.js', 'jquery.themepunch.revolution.min.js' => RS_PLUGIN_PATH . '/public/assets/js/jquery.themepunch.revolution.min.js'); //check which js files will be used by the Slider if ($using_kenburns == true) { $jsfiles['revolution.extension.kenburn.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.kenburn.min.js'; } if ($using_parallax == true) { $jsfiles['revolution.extension.parallax.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.parallax.js'; } if ($using_navigation == true) { $jsfiles['revolution.extension.navigation.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.navigation.min.js'; } if ($using_videos == true) { $jsfiles['revolution.extension.video.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.video.min.js'; } if ($using_actions == true) { $jsfiles['revolution.extension.actions.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.actions.min.js'; } if ($using_layeranim == true) { $jsfiles['revolution.extension.layeranimation.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.layeranimation.min.js'; } if ($using_carousel == true) { $jsfiles['revolution.extension.carousel.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.carousel.min.js'; } else { $jsfiles['revolution.extension.slideanims.min.js'] = RS_PLUGIN_PATH . '/public/assets/js/extensions/revolution.extension.slideanims.min.js'; } //get the js files foreach ($jsfiles as $name => $path) { if (file_exists($path)) { $fs = filesize($path); echo '<li class="tp-monitor-listli">'; echo '<span class="tp-monitor-good"></span>'; echo '<span class="tp-monitor-size">' . size_format($fs, 0) . '</span>'; echo '<span class="tp-monitor-file">'; echo $name; echo '</span>'; echo '</li>'; $total_size += $fs; $js_size += $fs; } } echo '</ul>'; echo ' <span style="display:none" id="css-size-hidden">' . size_format($js_size, 2) . '</span>'; $http = is_ssl() ? 'https' : 'http'; $operations = new RevSliderOperations(); $arrValues = $operations->getGeneralSettingsValues(); $set_diff_font = RevSliderFunctions::getVal($arrValues, "change_font_loading", ''); if ($set_diff_font !== '') { $font_url = $set_diff_font; } else { $font_url = $http . '://fonts.googleapis.com/css?family='; } $my_fonts = $slider->getParam('google_font', array()); ?> <span class="tp-clearfix" style="height:15px"></span> <hr> <span class="tp-clearfix" style="height:25px"></span> <!-- THE Fonts PERFORMANCE MESSING --> <span class="tp-monitor-performance-title"><?php echo __("Google Fonts Performance", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-performace-wrap"> <span id="video-performace-bar" style="width:%font_performance%%" class="tp-monitor-performance-bar mo-%font_color%-col"></span> <span class="tp-monitor-slow"><?php echo __("Slow", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-ok"><?php echo __("Ok", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-fast"><?php echo __("Fast", REVSLIDER_TEXTDOMAIN); ?> </span> </span> <span class="tp-clearfix" style="height:35px"></span> <!-- FULL SIZE OF SUBCATEGORY && SHOW/HIDE LIST --> <span style="float:left;width:40%; display:block"> <span class="tp-monitor-smalllabel"><?php echo __("Fonts Loaded:", REVSLIDER_TEXTDOMAIN); ?> </span> <span class="tp-monitor-jsicon"></span><span class="tp-monitor-total-subsize">%font_size%</span> </span> <span style="float:left;width:60%; text-align:right;"> <span class="tp-monitor-showdetails" data-target="#monitor-fonts-details" data-open="</span><?php echo __("Hide Details", REVSLIDER_TEXTDOMAIN); ?> " data-close="</span><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> "><span class="tp-monitor-openclose"></span><span class="tp-show-inner-btn"><?php echo __("Show Details", REVSLIDER_TEXTDOMAIN); ?> </span></span> </span> <span class="tp-clearfix" style="height:15px"></span> <?php //echo '<span class="tp-monitor-smalllabel">'.$font_url.'</span>'; echo '<ul class="tp-monitor-list" id="monitor-fonts-details" style="margin-bottom:15px;display:none">'; $all_font_count = 0; if (!empty($my_fonts)) { foreach ($my_fonts as $c_font) { $fcount = RevSliderBase::get_font_weight_count($c_font); $_li = '<li class="tp-monitor-listli">'; if ($fcount < 4) { $_li .= '<span class="tp-monitor-good"></span>'; } else { if ($fcount < 7) { $_li .= '<span class="tp-monitor-well"></span>'; } else { $_li .= '<span class="tp-monitor-warning"></span>'; } } $_li .= '<span class="tp-monitor-file">'; $_li .= strip_tags($c_font); $_li .= '</span>'; $_li .= '</li>'; if ($fcount > 4) { $issues .= $_li; } echo $_li; $all_font_count += $fcount; } } echo '</ul>'; ?> </div><!-- END OF OVERALL Div--> <script> jQuery(document).on("ready",function() { jQuery('body').on('click','.tp-monitor-showdetails',function() { var bt = jQuery(this); if (bt.hasClass("selected")) { bt.find('.tp-show-inner-btn').html(bt.data('close')); bt.removeClass("selected"); jQuery(bt.data('target')).slideUp(200); } else { bt.find('.tp-show-inner-btn').html(bt.data('open')); bt.addClass("selected"); jQuery(bt.data('target')).slideDown(200); } }) }) </script> <?php $content = ob_get_contents(); ob_end_clean(); if ($img_counter == 0) { $img_counter = 1; } if ($slide_counter == 0) { $slide_counter = 1; } $overall = RevSliderOperations::get_performance($total_size / $slide_counter, 0, 400000); // 400KB / Slide is ok $image = RevSliderOperations::get_performance($img_size / $img_counter, 0, 100000); // 100KB Image OK $css = RevSliderOperations::get_performance($css_size, 0, 150000); // 150KB CSS OK $js = RevSliderOperations::get_performance($js_size, 0, 250000); // 250KB Image OK $font = RevSliderOperations::get_performance($all_font_count, 0, 15); // 250KB Image OK $firstslide_size += $js_size; $firstslide_size += $css_size; $smartslide_size += $js_size; $smartslide_size += $css_size; $content = str_replace("%overall_performance%", $overall["proc"], $content); $content = str_replace("%overall_color%", $overall["col"], $content); $content = str_replace("%overall_size%", size_format($total_size, 2), $content); $content = str_replace("%image_performance%", $image["proc"], $content); $content = str_replace("%image_color%", $image["col"], $content); $content = str_replace("%css_performance%", $css["proc"], $content); $content = str_replace("%css_color%", $css["col"], $content); $content = str_replace("%css_size%", size_format($css_size, 2), $content); $content = str_replace("%js_performance%", $js["proc"], $content); $content = str_replace("%js_color%", $js["col"], $content); $content = str_replace("%js_size%", size_format($js_size, 2), $content); $content = str_replace("%font_performance%", $font["proc"], $content); $content = str_replace("%font_color%", $font["col"], $content); $content = str_replace("%font_size%", $all_font_count, $content); $content = str_replace("%issues%", $issues, $content); $content = str_replace("%firstslide_size%", size_format($firstslide_size, 2), $content); $content = str_replace("%smartslide_size%", size_format($smartslide_size, 2), $content); $content = str_replace("%allslide_size%", size_format($total_size, 2), $content); $total_size = $total_size / 1000; $content = str_replace("%umtsspeed-all%", gmdate('i:s', $total_size / 48), $content); $content = str_replace("%dslspeed-all%", gmdate('i:s', $total_size / 307), $content); $content = str_replace("%t1speed-all%", gmdate('i:s', $total_size / 1180), $content); $firstslide_size = $firstslide_size / 1000; $content = str_replace("%umtsspeed-single%", gmdate('i:s', $firstslide_size / 48), $content); $content = str_replace("%dslspeed-single%", gmdate('i:s', $firstslide_size / 307), $content); $content = str_replace("%t1speed-single%", gmdate('i:s', $firstslide_size / 1180), $content); $smartslide_size = $smartslide_size / 1000; $content = str_replace("%umtsspeed-smart%", gmdate('i:s', $smartslide_size / 48), $content); $content = str_replace("%dslspeed-smart%", gmdate('i:s', $smartslide_size / 307), $content); $content = str_replace("%t1speed-smart%", gmdate('i:s', $smartslide_size / 1180), $content); echo $content; }
/** * output markup for template * @since: 5.0 */ public function write_template_markup($template, $slider_id = false) { $params = $template['params']; $settings = $template['settings']; $slide_id = $template['id']; if ($slider_id !== false) { $title = ''; } //remove Title if Slider $width = RevSliderBase::getVar($settings, "width", 1240); $height = RevSliderBase::getVar($settings, "height", 868); $bgType = RevSliderBase::getVar($params, "background_type", "transparent"); $bgColor = RevSliderBase::getVar($params, "slide_bg_color", "transparent"); $bgFit = RevSliderBase::getVar($params, "bg_fit", "cover"); $bgFitX = intval(RevSliderBase::getVar($params, "bg_fit_x", "100")); $bgFitY = intval(RevSliderBase::getVar($params, "bg_fit_y", "100")); $bgPosition = RevSliderBase::getVar($params, "bg_position", "center center"); $bgPositionX = intval(RevSliderBase::getVar($params, "bg_position_x", "0")); $bgPositionY = intval(RevSliderBase::getVar($params, "bg_position_y", "0")); $bgRepeat = RevSliderBase::getVar($params, "bg_repeat", "no-repeat"); $bgStyle = ' '; if ($bgFit == 'percentage') { if (intval($bgFitY) == 0 || intval($bgFitX) == 0) { $bgStyle .= "background-size: cover;"; } else { $bgStyle .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;'; } } else { $bgStyle .= "background-size: " . $bgFit . ";"; } if ($bgPosition == 'percentage') { $bgStyle .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;'; } else { $bgStyle .= "background-position: " . $bgPosition . ";"; } $bgStyle .= "background-repeat: " . $bgRepeat . ";"; if (isset($template['img'])) { $thumb = $this->_check_file_path($template['img'], true); } else { $imageID = RevSliderBase::getVar($params, "image_id"); if (empty($imageID)) { $thumb = RevSliderBase::getVar($params, "image"); $imgID = RevSliderBase::get_image_id_by_url($thumb); if ($imgID !== false) { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imgID, RevSliderFunctionsWP::THUMB_MEDIUM); } } else { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imageID, RevSliderFunctionsWP::THUMB_MEDIUM); } if ($thumb == '') { $thumb = RevSliderBase::getVar($params, "image"); } } $bg_fullstyle = ''; $bg_extraClass = ''; $data_urlImageForView = ''; if (isset($template['img'])) { $data_urlImageForView = 'data-src="' . $thumb . '"'; } else { if ($bgType == 'image' || $bgType == 'vimeo' || $bgType == 'youtube' || $bgType == 'html5') { $data_urlImageForView = 'data-src="' . $thumb . '"'; $bg_fullstyle = ' style="' . $bgStyle . '" '; } if ($bgType == "solid") { $bg_fullstyle = ' style="background-color:' . $bgColor . ';" '; } if ($bgType == "trans" || $bgType == "transparent") { $bg_extraClass = 'mini-transparent'; } } ?> <div class="template_slide_single_element" style="display:inline-block"> <div <?php echo $data_urlImageForView; ?> class="<?php echo $slider_id !== false ? 'template_slider_item' : 'template_item'; ?> <?php echo $bg_extraClass; ?> " <?php echo $bg_fullstyle; ?> data-gridwidth="<?php echo $width; ?> " data-gridheight="<?php echo $height; ?> " <?php if ($slider_id !== false) { ?> data-sliderid="<?php echo $slider_id; ?> " <?php } else { ?> data-slideid="<?php echo $slide_id; ?> " <?php } ?> > </div> <div class="template_thumb_overview"></div> <div class="template_preview_add_wrapper"> <?php if (isset($template['preview']) && $template['preview'] !== '') { ?> <a class="preview_template_slider" href="<?php echo esc_attr($template['preview']); ?> " target="_blank"><i class="eg-icon-search"></i></a> <?php } ?> <span data-sliderid="<?php echo $slider_id; ?> " data-slideid="<?php echo $slide_id; ?> " class="show_more_template_slider <?php if (isset($template["user_template"])) { echo 'add_user_template_slide_item'; } ?> "><i class="eg-icon-plus"></i></span> </div> <?php if ($slider_id == false) { ?> <?php } ?> </div> <?php if (isset($template["user_template"])) { // USER TEMPLATE, CAN BE IGNORED } else { ?> <div class="template_thumb_more"> <?php if (isset($template['title'])) { ?> <span class="ttm_label"><?php echo $template['title']; ?> </span> <?php if (isset($template['description'])) { echo $template['description']; } } ?> <?php if (isset($template['setup_notes']) && !empty($template['setup_notes'])) { ?> <span class="ttm_label"><?php _e('Setup Notes', 'revslider'); ?> </span> <?php echo $template['setup_notes']; ?> <span class="ttm_space"></span> <?php } ?> <span class="ttm_label"><?php _e('Requirements', 'revslider'); ?> </span> <ul class="ttm_requirements"> <?php $allow_install = true; if (isset($template['required'])) { ?> <li><?php if (version_compare(RevSliderGlobals::SLIDER_REVISION, $template['required'], '>=')) { ?> <i class="eg-icon-check"></i><?php } else { ?> <i class="eg-icon-cancel"></i><?php $allow_install = false; } _e('Slider Revolution Version', 'revslider'); echo ' ' . $template['required']; ?> </li> <?php } if (isset($template['plugin_require']) && !empty($template['plugin_require'])) { foreach ($template['plugin_require'] as $pk => $pr) { if ($pr['installed'] === true) { $pr_icon = '<i class="eg-icon-check"></i>'; } else { $pr_icon = '<i class="eg-icon-cancel"></i>'; $allow_install = false; } echo '<li>'; echo $pr_icon; //echo the icon if (isset($pr['url'])) { echo '<a href="' . esc_attr($pr['url']) . '" target="_blank">'; } echo $pr['name']; if (isset($pr['url'])) { echo '</a>'; } echo '</li>'; } } //allow / disallow download ?> </ul> <?php if (isset($template['version'])) { ?> <span class="ttm_space"></span> <span class="ttm_label_direct"><span class="ttm_label_half"><?php _e('Installed Vers.', 'revslider'); ?> </span><span class="ttm_label_half"><?php _e('Available Vers.', 'revslider'); ?> </span></span> <span class="ttm_label_half ttm_insalled"><?php echo isset($template['current_version']) ? $template['current_version'] : 'N/A'; ?> </span><span class="ttm_label_half ttm_available"><?php echo $template['version']; ?> </span> <?php } ?> <span class="ttm_space"></span> <?php if ($allow_install !== false) { if ($slider_id !== false) { ?> <div class="install_template_slider" data-zipname="<?php echo $template['zip']; ?> " data-uid="<?php echo $template['uid']; ?> "><i class="eg-icon-download"></i><?php _e('Re-Install Slider', 'revslider'); ?> </div> <span class="tp-clearfix" style="margin-bottom:5px"></span> <?php if (isset($template['package']) && $template['package'] !== '') { $txt = $template['package_full_installded'] ? __('Re-Install Slider Pack', 'revslider') : __('Install Slider Pack', 'revslider'); ?> <div class="install_template_slider_package" data-zipname="<?php echo $template['zip']; ?> " data-uid="<?php echo $template['uid']; ?> "><i class="eg-icon-download"></i><?php echo $txt; ?> </div> <span class="tp-clearfix" style="margin-bottom:5px"></span> <?php } } ?> <?php if ($slider_id !== false) { ?> <div class="add_template_slider_item" data-sliderid="<?php echo $slider_id; ?> "> <?php } else { ?> <div class="add_template_slide_item" data-slideid="<?php echo $slide_id; ?> "> <?php } ?> <i class="eg-icon-plus"></i><?php if ($slider_id == false) { echo __('Add Slide', 'revslider'); } else { echo __('Add Slider', 'revslider'); } ?> </div> <?php if ($slider_id !== false && isset($template['package']) && $template['package'] !== '' && $template['package_full_installded']) { ?> <div class="add_template_slider_item_package" data-uid="<?php echo $template['uid']; ?> "><i class="eg-icon-plus"></i><?php echo __('Add Slider Pack', 'revslider'); ?> </div> <?php } } else { ?> <div class="dontadd_template_slider_item"><i class="icon-not-registered"></i><?php _e('Requirements not met', 'revslider'); ?> </div> <?php } ?> </div> <?php } }
<span class="rev-new-label"><?php _e('Specific Posts List:', REVSLIDER_TEXTDOMAIN); ?> </span> <input type="text" class='regular-text' placeholder="coma separated | ex: 23,24,25" id="posts_list" name="posts_list" value="<?php echo RevSliderFunctions::getVal($arrFieldsParams, 'posts_list', ''); ?> " style="width:255px" /> </div> <div class="rs-post-types-wrapper"> <span class="rev-new-label"><?php _e('Post Types:', REVSLIDER_TEXTDOMAIN); ?> </span> <?php $post_type = RevSliderFunctionsWP::getPostTypesAssoc(); $sel_post_types = RevSliderFunctions::getVal($arrFieldsParams, 'post_types', 'post'); $sel_post_types = explode(',', $sel_post_types); if (empty($sel_post_types)) { $sel_post_types = array('post'); } //default ?> <select id="post_types" name="post_types" multiple size='7' style="width:181px; vertical-align: top; height:100px"> <?php if (!empty($post_type)) { foreach ($post_type as $post_handle => $post_name) { $sel = in_array($post_handle, $sel_post_types) ? ' selected="selected"' : ''; echo '<option value="' . $post_handle . '"' . $sel . '>' . $post_name . '</option>'; } }
/** * * onAjax action handler */ public static function onAjaxAction() { $role = self::getMenuRole(); //add additional security check and allow for example import only for admin $slider = new RevSlider(); $slide = new RevSlide(); $operations = new RevSliderOperations(); $action = self::getPostGetVar("client_action"); $data = self::getPostGetVar("data"); $nonce = self::getPostGetVar("nonce"); if (empty($nonce)) { $nonce = self::getPostGetVar("rs-nonce"); } try { if (RS_DEMO) { switch ($action) { case 'import_slider_online_template_slidersview': case 'duplicate_slider': case 'preview_slider': case 'get_static_css': case 'get_dynamic_css': case 'preview_slide': //these are all okay in demo mode break; default: RevSliderFunctions::throwError(__('Function Not Available in Demo Mode', 'revslider')); exit; break; } } if (!RevSliderFunctionsWP::isAdminUser() && apply_filters('revslider_restrict_role', true)) { switch ($action) { case 'change_specific_navigation': case 'change_navigations': case 'update_static_css': case 'add_new_preset': case 'update_preset': case 'import_slider': case 'import_slider_slidersview': case 'import_slider_template_slidersview': case 'import_slide_template_slidersview': RevSliderFunctions::throwError(__('Function Only Available for Adminstrators', 'revslider')); exit; break; } } //verify the nonce $isVerified = wp_verify_nonce($nonce, "revslider_actions"); if ($isVerified == false) { RevSliderFunctions::throwError("Wrong request"); } switch ($action) { case 'add_new_preset': if (!isset($data['settings']) || !isset($data['values'])) { self::ajaxResponseError(__('Missing values to add preset', 'revslider'), false); } $result = $operations->add_preset_setting($data); if ($result === true) { $presets = $operations->get_preset_settings(); self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets)); } else { self::ajaxResponseError($result, false); } exit; break; case 'update_preset': if (!isset($data['name']) || !isset($data['values'])) { self::ajaxResponseError(__('Missing values to update preset', 'revslider'), false); } $result = $operations->update_preset_setting($data); if ($result === true) { $presets = $operations->get_preset_settings(); self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets)); } else { self::ajaxResponseError($result, false); } exit; break; case 'remove_preset': if (!isset($data['name'])) { self::ajaxResponseError(__('Missing values to remove preset', 'revslider'), false); } $result = $operations->remove_preset_setting($data); if ($result === true) { $presets = $operations->get_preset_settings(); self::ajaxResponseSuccess(__('Preset deleted', 'revslider'), array('data' => $presets)); } else { self::ajaxResponseError($result, false); } exit; break; case "export_slider": $sliderID = self::getGetVar("sliderid"); $dummy = self::getGetVar("dummy"); $slider->initByID($sliderID); $slider->exportSlider($dummy); break; case "import_slider": $updateAnim = self::getPostGetVar("update_animations"); $updateNav = self::getPostGetVar("update_navigations"); $updateStatic = self::getPostGetVar("update_static_captions"); self::importSliderHandle(null, $updateAnim, $updateStatic, $updateNav); break; case "import_slider_slidersview": $viewBack = self::getViewUrl(self::VIEW_SLIDERS); $updateAnim = self::getPostGetVar("update_animations"); $updateNav = self::getPostGetVar("update_navigations"); $updateStatic = self::getPostGetVar("update_static_captions"); self::importSliderHandle($viewBack, $updateAnim, $updateStatic, $updateNav); break; case "import_slider_online_template_slidersview": $viewBack = self::getViewUrl(self::VIEW_SLIDERS); self::importSliderOnlineTemplateHandle($viewBack, 'true', 'none'); break; case "import_slide_online_template_slidersview": $redirect_id = esc_attr(self::getPostGetVar("redirect_id")); $viewBack = self::getViewUrl(self::VIEW_SLIDE, "id={$redirect_id}"); $slidenum = intval(self::getPostGetVar("slidenum")); $sliderid = intval(self::getPostGetVar("slider_id")); self::importSliderOnlineTemplateHandle($viewBack, 'true', 'none', array('slider_id' => $sliderid, 'slide_id' => $slidenum)); break; case "import_slider_template_slidersview": $viewBack = self::getViewUrl(self::VIEW_SLIDERS); $updateAnim = self::getPostGetVar("update_animations"); $updateStatic = self::getPostGetVar("update_static_captions"); self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic); break; case "import_slide_template_slidersview": $redirect_id = esc_attr(self::getPostGetVar("redirect_id")); $viewBack = self::getViewUrl(self::VIEW_SLIDE, "id={$redirect_id}"); $updateAnim = self::getPostGetVar("update_animations"); $updateStatic = self::getPostGetVar("update_static_captions"); $slidenum = intval(self::getPostGetVar("slidenum")); $sliderid = intval(self::getPostGetVar("slider_id")); self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic, array('slider_id' => $sliderid, 'slide_id' => $slidenum)); break; case "create_slider": $data = $operations->modifyCustomSliderParams($data); $newSliderID = $slider->createSliderFromOptions($data); self::ajaxResponseSuccessRedirect(__("Slider created", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, 'id=new&slider=' . esc_attr($newSliderID))); //redirect to slide now break; case "update_slider": $data = $operations->modifyCustomSliderParams($data); $slider->updateSliderFromOptions($data); self::ajaxResponseSuccess(__("Slider updated", 'revslider')); break; case "delete_slider": case "delete_slider_stay": $isDeleted = $slider->deleteSliderFromData($data); if (is_array($isDeleted)) { $isDeleted = implode(', ', $isDeleted); self::ajaxResponseError(__("Template can't be deleted, it is still being used by the following Sliders: ", 'revslider') . $isDeleted); } else { if ($action == 'delete_slider_stay') { self::ajaxResponseSuccess(__("Slider deleted", 'revslider')); } else { self::ajaxResponseSuccessRedirect(__("Slider deleted", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS)); } } break; case "duplicate_slider": $slider->duplicateSliderFromData($data); self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS)); break; case "add_slide": case "add_bulk_slide": $numSlides = $slider->createSlideFromData($data); $sliderID = $data["sliderid"]; if ($numSlides == 1) { $responseText = __("Slide Created", 'revslider'); } else { $responseText = $numSlides . " " . __("Slides Created", 'revslider'); } $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}"); self::ajaxResponseSuccessRedirect($responseText, $urlRedirect); break; case "add_slide_fromslideview": $slideID = $slider->createSlideFromData($data, true); $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id={$slideID}"); $responseText = __("Slide Created, redirecting...", 'revslider'); self::ajaxResponseSuccessRedirect($responseText, $urlRedirect); break; case 'copy_slide_to_slider': $slideID = isset($data['redirect_id']) ? $data['redirect_id'] : -1; if ($slideID === -1) { RevSliderFunctions::throwError(__('Missing redirect ID!', 'revslider')); } $return = $slider->copySlideToSlider($data); if ($return !== true) { RevSliderFunctions::throwError($return); } $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id={$slideID}"); $responseText = __("Slide copied to current Slider, redirecting...", 'revslider'); self::ajaxResponseSuccessRedirect($responseText, $urlRedirect); break; case "update_slide": $slide->updateSlideFromData($data); self::ajaxResponseSuccess(__("Slide updated", 'revslider')); break; case "update_static_slide": $slide->updateStaticSlideFromData($data); self::ajaxResponseSuccess(__("Static Global Layers updated", 'revslider')); break; case "delete_slide": case "delete_slide_stay": $isPost = $slide->deleteSlideFromData($data); if ($isPost) { $message = __("Post deleted", 'revslider'); } else { $message = __("Slide deleted", 'revslider'); } $sliderID = RevSliderFunctions::getVal($data, "sliderID"); if ($action == 'delete_slide_stay') { self::ajaxResponseSuccess($message); } else { self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}")); } break; case "duplicate_slide": case "duplicate_slide_stay": $return = $slider->duplicateSlideFromData($data); if ($action == 'duplicate_slide_stay') { self::ajaxResponseSuccess(__("Slide duplicated", 'revslider'), array('id' => $return[1])); } else { self::ajaxResponseSuccessRedirect(__("Slide duplicated", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider=" . $return[0])); } break; case "copy_move_slide": case "copy_move_slide_stay": $sliderID = $slider->copyMoveSlideFromData($data); if ($action == 'copy_move_slide_stay') { self::ajaxResponseSuccess(__("Success!", 'revslider')); } else { self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}")); } break; case "add_slide_to_template": $template = new RevSliderTemplate(); if (!isset($data['slideID']) || intval($data['slideID']) == 0) { RevSliderFunctions::throwError(__('No valid Slide ID given', 'revslider')); exit; } if (!isset($data['title']) || strlen(trim($data['title'])) < 3) { RevSliderFunctions::throwError(__('No valid title given', 'revslider')); exit; } if (!isset($data['settings']) || !isset($data['settings']['width']) || !isset($data['settings']['height'])) { RevSliderFunctions::throwError(__('No valid title given', 'revslider')); exit; } $return = $template->copySlideToTemplates($data['slideID'], $data['title'], $data['settings']); if ($return == false) { RevSliderFunctions::throwError(__('Could not save Slide as Template', 'revslider')); exit; } //get HTML for template section ob_start(); $rs_disable_template_script = true; //disable the script output of template selector file include RS_PLUGIN_PATH . 'admin/views/templates/template-selector.php'; $html = ob_get_contents(); ob_clean(); ob_end_clean(); self::ajaxResponseSuccess(__('Slide added to Templates', 'revslider'), array('HTML' => $html)); exit; break; break; case "get_static_css": $contentCSS = $operations->getStaticCss(); self::ajaxResponseData($contentCSS); break; case "get_dynamic_css": $contentCSS = $operations->getDynamicCss(); self::ajaxResponseData($contentCSS); break; case "insert_captions_css": $arrCaptions = $operations->insertCaptionsContentData($data); if ($arrCaptions !== false) { $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $arrCSS = $operations->getCaptionsContentArray(); $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS); $arrCssStyles = $arrCSS; self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles)); } RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider')); exit; break; case "update_captions_css": $arrCaptions = $operations->updateCaptionsContentData($data); if ($arrCaptions !== false) { $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $arrCSS = $operations->getCaptionsContentArray(); $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS); $arrCssStyles = $arrCSS; self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles)); } RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider')); exit; break; case "update_captions_advanced_css": $arrCaptions = $operations->updateAdvancedCssData($data); if ($arrCaptions !== false) { $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $arrCSS = $operations->getCaptionsContentArray(); $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS); $arrCssStyles = $arrCSS; self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles)); } RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider')); exit; break; case "rename_captions_css": //rename all captions in all sliders with new handle if success $arrCaptions = $operations->renameCaption($data); $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $arrCSS = $operations->getCaptionsContentArray(); $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS); $arrCssStyles = $arrCSS; self::ajaxResponseSuccess(__("Class name renamed", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles)); break; case "delete_captions_css": $arrCaptions = $operations->deleteCaptionsContentData($data); $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); $arrCSS = $operations->getCaptionsContentArray(); $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS); $arrCssStyles = $arrCSS; self::ajaxResponseSuccess(__("Style deleted!", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles)); break; case "update_static_css": $staticCss = $operations->updateStaticCss($data); $db = new RevSliderDB(); $styles = $db->fetch(RevSliderGlobals::$table_css); $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n"); $styles = RevSliderCssParser::compress_css($styles); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("css" => $staticCss, 'compressed_css' => $styles . $custom_css)); break; case "insert_custom_anim": $arrAnims = $operations->insertCustomAnim($data); //$arrCaptions = self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions) break; case "update_custom_anim": $arrAnims = $operations->updateCustomAnim($data); self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions) break; case "update_custom_anim_name": $arrAnims = $operations->updateCustomAnimName($data); self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions) break; case "delete_custom_anim": $arrAnims = $operations->deleteCustomAnim($data); self::ajaxResponseSuccess(__("Animation deleted", 'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions) break; case "update_slides_order": $slider->updateSlidesOrderFromData($data); self::ajaxResponseSuccess(__("Order updated", 'revslider')); break; case "change_slide_title": $slide->updateTitleByID($data); self::ajaxResponseSuccess(__('Title updated', 'revslider')); break; case "change_slide_image": $slide->updateSlideImageFromData($data); $sliderID = RevSliderFunctions::getVal($data, "slider_id"); self::ajaxResponseSuccessRedirect(__("Slide changed", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}")); break; case "preview_slide": $operations->putSlidePreviewByData($data); break; case "preview_slider": $sliderID = RevSliderFunctions::getPostGetVariable("sliderid"); $do_markup = RevSliderFunctions::getPostGetVariable("only_markup"); if ($do_markup == 'true') { $operations->previewOutputMarkup($sliderID); } else { $operations->previewOutput($sliderID); } break; case "get_import_slides_data": $slides = array(); if (!is_array($data)) { $slider->initByID(intval($data)); $full_slides = $slider->getSlides(); //static slide is missing if (!empty($full_slides)) { foreach ($full_slides as $slide_id => $mslide) { $slides[$slide_id]['layers'] = $mslide->getLayers(); $slides[$slide_id]['params'] = $mslide->getParams(); } } $staticID = $slide->getStaticSlideID($slider->getID()); if ($staticID !== false) { $msl = new RevSliderSlide(); if (strpos($staticID, 'static_') === false) { $staticID = 'static_' . $slider->getID(); } $msl->initByID($staticID); if ($msl->getID() !== '') { $slides[$msl->getID()]['layers'] = $msl->getLayers(); $slides[$msl->getID()]['params'] = $msl->getParams(); $slides[$msl->getID()]['params']['title'] = __('Static Slide', 'revslider'); } } } if (!empty($slides)) { self::ajaxResponseData(array('slides' => $slides)); } else { self::ajaxResponseData(''); } break; case "toggle_slide_state": $currentState = $slide->toggleSlideStatFromData($data); self::ajaxResponseData(array("state" => $currentState)); break; case "toggle_hero_slide": $currentHero = $slider->setHeroSlide($data); self::ajaxResponseSuccess(__('Slide is now the new active Hero Slide', 'revslider')); break; case "slide_lang_operation": $responseData = $slide->doSlideLangOperation($data); self::ajaxResponseData($responseData); break; case "update_general_settings": $operations->updateGeneralSettings($data); self::ajaxResponseSuccess(__("General settings updated", 'revslider')); break; case "update_posts_sortby": $slider->updatePostsSortbyFromData($data); self::ajaxResponseSuccess(__("Sortby updated", 'revslider')); break; case "replace_image_urls": $slider->replaceImageUrlsFromData($data); self::ajaxResponseSuccess(__("Image urls replaced", 'revslider')); break; case "reset_slide_settings": $slider->resetSlideSettings($data); self::ajaxResponseSuccess(__("Settings in all Slides changed", 'revslider')); break; case "activate_purchase_code": $result = false; if (!empty($data['code'])) { $result = $operations->checkPurchaseVerification($data); } else { RevSliderFunctions::throwError(__('The API key, the Purchase Code and the Username need to be set!', 'revslider')); exit; } if ($result) { self::ajaxResponseSuccessRedirect(__("Purchase Code Successfully Activated", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS)); } else { RevSliderFunctions::throwError(__('Purchase Code is invalid', 'revslider')); } break; case "deactivate_purchase_code": $result = $operations->doPurchaseDeactivation($data); if ($result) { self::ajaxResponseSuccessRedirect(__("Successfully removed validation", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS)); } else { RevSliderFunctions::throwError(__('Could not remove Validation!', 'revslider')); } break; case 'dismiss_notice': update_option('revslider-valid-notice', 'false'); self::ajaxResponseSuccess(__(".", 'revslider')); break; case 'dismiss_dynamic_notice': if (trim($data['id']) !== 'DISCARD') { $notices_discarded = get_option('revslider-notices-dc', array()); $notices_discarded[] = esc_attr(trim($data['id'])); update_option('revslider-notices-dc', $notices_discarded); } else { update_option('revslider-deact-notice', false); } self::ajaxResponseSuccess(__(".", 'revslider')); break; case 'toggle_favorite': if (isset($data['id']) && intval($data['id']) > 0) { $return = self::toggle_favorite_by_id($data['id']); if ($return === true) { self::ajaxResponseSuccess(__('Setting Changed!', 'revslider')); } else { $error = $return; } } else { $error = __('No ID given', 'revslider'); } self::ajaxResponseError($error); break; case "subscribe_to_newsletter": if (isset($data['email']) && !empty($data['email'])) { $return = ThemePunch_Newsletter::subscribe($data['email']); if ($return !== false) { if (!isset($return['status']) || $return['status'] === 'error') { $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', 'revslider'); self::ajaxResponseError($error); } else { self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the subscription", 'revslider'), $return); } } else { self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider')); } } else { self::ajaxResponseError(__('No Email given', 'revslider')); } break; case "unsubscribe_to_newsletter": if (isset($data['email']) && !empty($data['email'])) { $return = ThemePunch_Newsletter::unsubscribe($data['email']); if ($return !== false) { if (!isset($return['status']) || $return['status'] === 'error') { $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', 'revslider'); self::ajaxResponseError($error); } else { self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the process", 'revslider'), $return); } } else { self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider')); } } else { self::ajaxResponseError(__('No Email given', 'revslider')); } break; case 'change_specific_navigation': $nav = new RevSliderNavigation(); $found = false; $navigations = $nav->get_all_navigations(); foreach ($navigations as $navig) { if ($data['id'] == $navig['id']) { $found = true; break; } } if ($found) { $nav->create_update_navigation($data, $data['id']); } else { $nav->create_update_navigation($data); } self::ajaxResponseSuccess(__('Navigation saved/updated', 'revslider'), array('navs' => $nav->get_all_navigations())); break; case 'change_navigations': $nav = new RevSliderNavigation(); $nav->create_update_full_navigation($data); self::ajaxResponseSuccess(__('Navigations updated', 'revslider'), array('navs' => $nav->get_all_navigations())); break; case 'delete_navigation': $nav = new RevSliderNavigation(); if (isset($data) && intval($data) > 0) { $return = $nav->delete_navigation($data); if ($return !== true) { self::ajaxResponseError($return); } else { self::ajaxResponseSuccess(__('Navigation deleted', 'revslider'), array('navs' => $nav->get_all_navigations())); } } self::ajaxResponseError(__('Wrong ID given', 'revslider')); break; case "get_facebook_photosets": if (!empty($data['url'])) { $facebook = new RevSliderFacebook(); $return = $facebook->get_photo_set_photos_options($data['url'], $data['album'], $data['app_id'], $data['app_secret']); if (!empty($return)) { self::ajaxResponseSuccess(__('Successfully fetched Facebook albums', 'revslider'), array('html' => implode(' ', $return))); } else { $error = __('Could not fetch Facebook albums', 'revslider'); self::ajaxResponseError($error); } } else { self::ajaxResponseSuccess(__('Cleared Albums', 'revslider'), array('html' => implode(' ', $return))); } break; case "get_flickr_photosets": if (!empty($data['url']) && !empty($data['key'])) { $flickr = new RevSliderFlickr($data['key']); $user_id = $flickr->get_user_from_url($data['url']); $return = $flickr->get_photo_sets($user_id, $data['count'], $data['set']); if (!empty($return)) { self::ajaxResponseSuccess(__('Successfully fetched flickr photosets', 'revslider'), array("data" => array('html' => implode(' ', $return)))); } else { $error = __('Could not fetch flickr photosets', 'revslider'); self::ajaxResponseError($error); } } else { if (empty($data['url']) && empty($data['key'])) { self::ajaxResponseSuccess(__('Cleared Photosets', 'revslider'), array('html' => implode(' ', $return))); } elseif (empty($data['url'])) { $error = __('No User URL - Could not fetch flickr photosets', 'revslider'); self::ajaxResponseError($error); } else { $error = __('No API KEY - Could not fetch flickr photosets', 'revslider'); self::ajaxResponseError($error); } } break; case "get_youtube_playlists": if (!empty($data['id'])) { $youtube = new RevSliderYoutube(trim($data['api']), trim($data['id'])); $return = $youtube->get_playlist_options($data['playlist']); self::ajaxResponseSuccess(__('Successfully fetched YouTube playlists', 'revslider'), array("data" => array('html' => implode(' ', $return)))); } else { $error = __('Could not fetch YouTube playlists', 'revslider'); self::ajaxResponseError($error); } break; case 'rs_get_store_information': global $wp_version; $code = get_option('revslider-code', ''); $shop_version = RevSliderTemplate::SHOP_VERSION; $validated = get_option('revslider-valid', 'false'); if ($validated == 'false') { $api_key = ''; $username = ''; $code = ''; } $rattr = array('code' => urlencode($code), 'product' => urlencode('revslider'), 'shop_version' => urlencode($shop_version), 'version' => urlencode(RevSliderGlobals::SLIDER_REVISION)); $request = wp_remote_post('http://templates.themepunch.tools/revslider/store.php', array('user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo('url'), 'body' => $rattr)); $response = ''; if (!is_wp_error($request)) { $response = json_decode(@$request['body'], true); } self::ajaxResponseData(array("data" => $response)); break; default: self::ajaxResponseError("wrong ajax action: " . esc_attr($action)); break; } } catch (Exception $e) { $message = $e->getMessage(); if ($action == "preview_slide" || $action == "preview_slider") { echo $message; exit; } self::ajaxResponseError($message); } //it's an ajax action, so exit self::ajaxResponseError("No response output on {$action} action. please check with the developer."); exit; }
/** * * get current language */ public static function getCurrentLang() { self::validateWpmlExists(); $wpml = new SitePress(); if (is_admin()) { $lang = $wpml->get_default_language(); } else { $lang = RevSliderFunctionsWP::getCurrentLangCode(); } /* NEW: if ( is_admin() ) { return apply_filters( 'wpml_default_language', null ); } return apply_filters( 'wpml_current_language', null ); */ return $lang; }
/** * output markup for template * @since: 5.0 */ public function write_template_markup($template, $slider_id = false) { $params = $template['params']; $settings = $template['settings']; $slide_id = $template['id']; $title = str_replace("'", "", RevSliderBase::getVar($params, 'title', 'Slide')); if ($slider_id !== false) { $title = ''; } //remove Title if Slider $width = RevSliderBase::getVar($settings, "width", 1240); $height = RevSliderBase::getVar($settings, "height", 868); $bgType = RevSliderBase::getVar($params, "background_type", "transparent"); $bgColor = RevSliderBase::getVar($params, "slide_bg_color", "transparent"); $bgFit = RevSliderBase::getVar($params, "bg_fit", "cover"); $bgFitX = intval(RevSliderBase::getVar($params, "bg_fit_x", "100")); $bgFitY = intval(RevSliderBase::getVar($params, "bg_fit_y", "100")); $bgPosition = RevSliderBase::getVar($params, "bg_position", "center center"); $bgPositionX = intval(RevSliderBase::getVar($params, "bg_position_x", "0")); $bgPositionY = intval(RevSliderBase::getVar($params, "bg_position_y", "0")); $bgRepeat = RevSliderBase::getVar($params, "bg_repeat", "no-repeat"); $bgStyle = ' '; if ($bgFit == 'percentage') { if (intval($bgFitY) == 0 || intval($bgFitX) == 0) { $bgStyle .= "background-size: cover;"; } else { $bgStyle .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;'; } } else { $bgStyle .= "background-size: " . $bgFit . ";"; } if ($bgPosition == 'percentage') { $bgStyle .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;'; } else { $bgStyle .= "background-position: " . $bgPosition . ";"; } $bgStyle .= "background-repeat: " . $bgRepeat . ";"; if (isset($template['img'])) { $thumb = $this->_check_file_path($template['img'], true); } else { $imageID = RevSliderBase::getVar($params, "image_id"); if (empty($imageID)) { $thumb = RevSliderBase::getVar($params, "image"); $imgID = RevSliderBase::get_image_id_by_url($thumb); if ($imgID !== false) { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imgID, RevSliderFunctionsWP::THUMB_MEDIUM); } } else { $thumb = RevSliderFunctionsWP::getUrlAttachmentImage($imageID, RevSliderFunctionsWP::THUMB_MEDIUM); } if ($thumb == '') { $thumb = RevSliderBase::getVar($params, "image"); } } $bg_fullstyle = ''; $bg_extraClass = ''; $data_urlImageForView = ''; if (isset($template['img'])) { $data_urlImageForView = 'data-src="' . $thumb . '"'; } else { if ($bgType == 'image' || $bgType == 'vimeo' || $bgType == 'youtube' || $bgType == 'html5') { $data_urlImageForView = 'data-src="' . $thumb . '"'; $bg_fullstyle = ' style="' . $bgStyle . '" '; } if ($bgType == "solid") { $bg_fullstyle = ' style="background-color:' . $bgColor . ';" '; } if ($bgType == "trans" || $bgType == "transparent") { $bg_extraClass = 'mini-transparent'; } } ?> <div class="template_slide_single_element" style="display:inline-block"> <div <?php echo $data_urlImageForView; ?> class="<?php echo $slider_id !== false ? 'template_slider_item' : 'template_item'; ?> <?php echo $bg_extraClass; ?> " <?php echo $bg_fullstyle; ?> data-gridwidth="<?php echo $width; ?> " data-gridheight="<?php echo $height; ?> " <?php if ($slider_id !== false) { ?> data-sliderid="<?php echo $slider_id; ?> " <?php } else { ?> data-slideid="<?php echo $slide_id; ?> " <?php } ?> > <div class="not-imported-overlay"></div> <div style="position:absolute;top:10px;right:10px;width:35px;text-align:right;z-index:2"><div class="icon-add_slider"></div></div> </div> <div style="position:absolute;top:10px;right:50px;width:35px;text-align:right;z-index:2"> <?php if (isset($template['preview']) && $template['preview'] !== '') { ?> <a class="icon-preview_slider" href="<?php echo esc_attr($template['preview']); ?> " target="_blank"></a> <?php } ?> </div> <?php if ($slider_id == false) { ?> <div class="template_title"><?php echo $title; ?> </div> <?php } ?> </div> <?php }
/** * change image id of all slides to 5.1.1 * @since 5.1.1 */ public static function change_slide_settings_5_1_1($sliders = false) { $sr = new RevSlider(); $sl = new RevSliderSlide(); //$operations = new RevSliderOperations(); if ($sliders === false) { //do it on all Sliders $sliders = $sr->getArrSliders(false); } else { $sliders = array($sliders); } if (!empty($sliders) && is_array($sliders)) { foreach ($sliders as $slider) { $slides = $slider->getSlides(); $staticID = $sl->getStaticSlideID($slider->getID()); if ($staticID !== false) { $msl = new RevSliderSlide(); if (strpos($staticID, 'static_') === false) { $staticID = 'static_' . $slider->getID(); } $msl->initByID($staticID); if ($msl->getID() !== '') { $slides = array_merge($slides, array($msl)); } } if (!empty($slides) && is_array($slides)) { foreach ($slides as $slide) { //get image url, then get the image id and save it in image_id $image_id = $slide->getParam('image_id', ''); $image = $slide->getParam('image', ''); $ml_id = ''; if ($image !== '') { $ml_id = RevSliderFunctionsWP::get_image_id_by_url($image); } if ($image == '' && $image_id == '') { continue; } //if we are a video and have no cover image, do nothing if ($ml_id !== false && $ml_id !== $image_id) { $urlImage = wp_get_attachment_image_src($ml_id, 'full'); $slide->setParam('image_id', $ml_id); $slide->saveParams(); } } } } } }
/** * @since: 5.0 **/ public static function update_preset_setting($data) { if (!isset($data['name'])) { return __('Missing values to update preset', 'revslider'); } $customer_presets = get_option('revslider_presets', array()); if (!empty($customer_presets)) { foreach ($customer_presets as $key => $preset) { if ($preset['settings']['name'] == $data['name']) { $customer_presets[$key]['values'] = $data['values']; break; } } } RevSliderFunctionsWP::update_option('revslider_presets', $customer_presets, 'off'); return true; }