<?php /** * @package Revolution Slider * @author ThemePunch <*****@*****.**> * @link http://www.revolution.themepunch.com/ * @copyright 2015 ThemePunch */ if (!defined('ABSPATH')) { exit; } $nav = new RevSliderNavigation(); $navigation = intval(RevSliderBase::getGetVar('navigation', 0)); $navigs = $nav->get_all_navigations(); $rsopr = new RevSliderOperations(); $font_families = $rsopr->getArrFontFamilys(); ?> <div class='wrap'> <div class="clear_both"></div> <div class="title_line nobgnopd" style="margin-bottom: 20px !important;"> <div class="icon32" id="icon-options-general"></div> <div class="view_title"> <?php _e('Navigation Editor', REVSLIDER_TEXTDOMAIN); ?> </div> </div> <div class="setting_box navig" style="margin-bottom: 20px;"> <h3><span class="setting-step-number">1</span><span style="max-width: 400px;"><?php
/** * * onAjax action handler */ public static function onAjaxAction() { $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 { //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 "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': $notices_discarded = get_option('revslider-notices-dc', array()); $notices_discarded[] = esc_attr(trim($data['id'])); update_option('revslider-notices-dc', $notices_discarded); 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: {$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; }
<?php /** * @author ThemePunch <*****@*****.**> * @link http://www.themepunch.com/ * @copyright 2015 ThemePunch */ if (!defined('ABSPATH')) { exit; } $operations = new RevSliderOperations(); $rs_nav = new RevSliderNavigation(); $arrValues = $operations->getGeneralSettingsValues(); $arr_navigations = $rs_nav->get_all_navigations(); $transitions = $operations->getArrTransition(); $_width = isset($arrValues['width']) ? $arrValues['width'] : 1240; $_width_notebook = isset($arrValues['width_notebook']) ? $arrValues['width_notebook'] : 1024; $_width_tablet = isset($arrValues['width_tablet']) ? $arrValues['width_tablet'] : 778; $_width_mobile = isset($arrValues['width_mobile']) ? $arrValues['width_mobile'] : 480; if (!isset($is_edit)) { $is_edit = false; } if (!isset($linksEditSlides)) { $linksEditSlides = ''; } ?> <div class="wrap settings_wrap"> <div class="clear_both"></div> <div class="title_line" style="margin-bottom:0px !important"> <div id="icon-options-general" class="icon32"></div>
public function add_custom_navigation_css($slides) { $rs_nav = new RevSliderNavigation(); $all_navs = $rs_nav->get_all_navigations(); $slider_type = $this->slider->getParam('slider-type'); $enable_arrows = $this->slider->getParam('enable_arrows', 'off'); $enable_bullets = $this->slider->getParam('enable_bullets', 'off'); $enable_tabs = $this->slider->getParam('enable_tabs', 'off'); $enable_thumbnails = $this->slider->getParam('enable_thumbnails', 'off'); if ($slider_type !== 'hero' && ($enable_arrows == 'on' || $enable_bullets == 'on' || $enable_tabs == 'on' || $enable_thumbnails == 'on')) { if (!empty($slides)) { foreach ($slides as $slide) { $navigation_arrow_style = $this->slider->getParam('navigation_arrow_style', 'round'); $navigation_bullets_style = $this->slider->getParam('navigation_bullets_style', 'round'); $tabs_style = $this->slider->getParam('tabs_style', 'round'); $thumbnails_style = $this->slider->getParam('thumbnails_style', 'round'); if (!empty($all_navs)) { foreach ($all_navs as $cur_nav) { //get modifications out, wrap the class with slide class to be specific if ($enable_arrows == 'on' && $cur_nav['handle'] == $navigation_arrow_style) { $this->rev_custom_navigation_css .= $rs_nav->add_placeholder_sub_modifications($cur_nav['css']['arrows'], $cur_nav['handle'], 'arrows', $cur_nav['settings'], $slide, $this) . "\n"; } if ($enable_bullets == 'on' && $cur_nav['handle'] == $navigation_bullets_style) { $this->rev_custom_navigation_css .= $rs_nav->add_placeholder_sub_modifications($cur_nav['css']['bullets'], $cur_nav['handle'], 'bullets', $cur_nav['settings'], $slide, $this) . "\n"; } if ($enable_tabs == 'on' && $cur_nav['handle'] == $tabs_style) { $this->rev_custom_navigation_css .= $rs_nav->add_placeholder_sub_modifications($cur_nav['css']['tabs'], $cur_nav['handle'], 'tabs', $cur_nav['settings'], $slide, $this) . "\n"; } if ($enable_thumbnails == 'on' && $cur_nav['handle'] == $thumbnails_style) { $this->rev_custom_navigation_css .= $rs_nav->add_placeholder_sub_modifications($cur_nav['css']['thumbs'], $cur_nav['handle'], 'thumbs', $cur_nav['settings'], $slide, $this) . "\n"; } } } } if ($this->markup_export === true) { echo '<!-- STYLE -->'; } if (!is_admin()) { echo '<script>var htmlDiv = document.getElementById("rs-plugin-settings-inline-css"); var htmlDivCss="'; } else { echo "<style>"; } if (!is_admin()) { echo addslashes(RevSliderCssParser::compress_css($this->rev_custom_navigation_css)) . '"; if(htmlDiv) { htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss; }else{ var htmlDiv = document.createElement("div"); htmlDiv.innerHTML = "<style>" + htmlDivCss + "</style>"; document.getElementsByTagName("head")[0].appendChild(htmlDiv.childNodes[0]); } </script>' . "\n"; } else { echo $this->rev_custom_navigation_css . '</style>'; } if ($this->markup_export === true) { echo '<!-- /STYLE -->'; } } } }
/** * * put slider javascript */ private function putJS($markup_export = false) { $params = $this->slider->getParams(); $sliderType = $this->slider->getParam('slider_type'); $force_fullwidth = $this->slider->getParam('force_full_width', 'on'); if ($sliderType == 'fixed' || $sliderType == 'responsitive' || $sliderType == 'fullwidth' && $force_fullwidth == "off") { $sliderType = 'auto'; } $optFullWidth = $sliderType == 'fullwidth' ? 'on' : 'off'; $optFullScreen = 'off'; if ($sliderType == 'fullscreen') { $optFullWidth = 'off'; $optFullScreen = 'on'; } $use_spinner = $this->slider->getParam('use_spinner', '0'); $spinner_color = $this->slider->getParam('spinner_color', '#FFFFFF'); $noConflict = $this->slider->getParam("jquery_noconflict", "on"); $debugmode = $this->slider->getParam("jquery_debugmode", "off") == 'on' ? 'true' : 'false'; //set thumb amount $numSlides = $this->slider->getNumSlides(true); //get stop slider options $stopSlider = $this->slider->getParam("stop_slider", "off"); $stopAfterLoops = $this->slider->getParam("stop_after_loops", "0"); $stopAtSlide = $this->slider->getParam("stop_at_slide", "2"); if ($stopSlider == "off") { $stopAfterLoops = "-1"; $stopAtSlide = "-1"; } $oneSlideLoop = $this->slider->getParam("loop_slide", "loop"); if ($oneSlideLoop == 'noloop' && $this->hasOnlyOneSlide == true) { $stopAfterLoops = '0'; $stopAtSlide = '1'; } $sliderID = $this->slider->getID(); //treat hide slider at limit $hideSliderAtLimit = $this->slider->getParam("hide_slider_under", "0", RevSlider::VALIDATE_NUMERIC); if (!empty($hideSliderAtLimit)) { $hideSliderAtLimit++; } $hideCaptionAtLimit = $this->slider->getParam("hide_defined_layers_under", "0", RevSlider::VALIDATE_NUMERIC); if (!empty($hideCaptionAtLimit)) { $hideCaptionAtLimit++; } $hideAllCaptionAtLimit = $this->slider->getParam("hide_all_layers_under", "0", RevSlider::VALIDATE_NUMERIC); if (!empty($hideAllCaptionAtLimit)) { $hideAllCaptionAtLimit++; } //start_with_slide $startWithSlide = $this->slider->getStartWithSlideSetting(); //modify navigation type (backward compatability) //FALLBACK $enable_arrows = $this->slider->getParam('enable_arrows', 'off'); $arrowsType = $enable_arrows == 'on' ? 'solo' : 'none'; //More Mobile Options $hideThumbsOnMobile = $this->slider->getParam("hide_thumbs_on_mobile", "off"); $enable_progressbar = $this->slider->getParam('enable_progressbar', 'on'); $disableKenBurnOnMobile = $this->slider->getParam("disable_kenburns_on_mobile", "off"); $swipe_velocity = $this->slider->getParam("swipe_velocity", "0.7", RevSlider::VALIDATE_NUMERIC); $swipe_min_touches = $this->slider->getParam("swipe_min_touches", "1", RevSlider::VALIDATE_NUMERIC); $swipe_direction = $this->slider->getParam("swipe_direction", "horizontal"); $drag_block_vertical = $this->slider->getParam("drag_block_vertical", "false"); $use_parallax = $this->slider->getParam("use_parallax", $this->slider->getParam('use_parallax', 'off')); $disable_parallax_mobile = $this->slider->getParam("disable_parallax_mobile", "off"); if ($use_parallax == 'on') { $parallax_type = $this->slider->getParam("parallax_type", "mouse"); $parallax_origo = $this->slider->getParam("parallax_origo", "enterpoint"); $parallax_speed = $this->slider->getParam("parallax_speed", "400"); $parallax_level[] = intval($this->slider->getParam("parallax_level_1", "5")); $parallax_level[] = intval($this->slider->getParam("parallax_level_2", "10")); $parallax_level[] = intval($this->slider->getParam("parallax_level_3", "15")); $parallax_level[] = intval($this->slider->getParam("parallax_level_4", "20")); $parallax_level[] = intval($this->slider->getParam("parallax_level_5", "25")); $parallax_level[] = intval($this->slider->getParam("parallax_level_6", "30")); $parallax_level[] = intval($this->slider->getParam("parallax_level_7", "35")); $parallax_level[] = intval($this->slider->getParam("parallax_level_8", "40")); $parallax_level[] = intval($this->slider->getParam("parallax_level_9", "45")); $parallax_level[] = intval($this->slider->getParam("parallax_level_10", "50")); $parallax_level = implode(',', $parallax_level); } $operations = new RevSliderOperations(); $arrValues = $operations->getGeneralSettingsValues(); $do_delay = $this->slider->getParam("start_js_after_delay", "0"); $do_delay = apply_filters('revslider_add_js_delay', $do_delay); $do_delay = intval($do_delay); $js_to_footer = isset($arrValues['js_to_footer']) && $arrValues['js_to_footer'] == 'on' ? true : false; $slider_type = $this->slider->getParam('slider-type', 'standard'); //add inline style into the footer if ($js_to_footer && $this->previewMode == false && $markup_export == false) { ob_start(); } $nav_css = ''; if ($markup_export === true) { echo '<!-- STYLE -->'; } //ADD SCOPED INLINE STYLES $this->add_inline_styles(); if ($markup_export === true) { echo '<!-- /STYLE -->'; } $csizes = RevSliderFunctions::get_responsive_size($this); if ($markup_export === true) { echo '<!-- SCRIPT -->'; } ?> <script type="text/javascript"> <?php if (!$markup_export) { //not needed for html markup export ?> /****************************************** - PREPARE PLACEHOLDER FOR SLIDER - ******************************************/ var setREVStartSize=function(){ try{var e=new Object,i=jQuery(window).width(),t=9999,r=0,n=0,l=0,f=0,s=0,h=0; e.c = jQuery('#<?php echo $this->sliderHtmlID; ?> '); <?php if (isset($csizes['level']) && !empty($csizes['level'])) { ?> e.responsiveLevels = <?php echo '[' . $csizes['level'] . ']'; ?> ; e.gridwidth = <?php echo '[' . $csizes['width'] . ']'; ?> ; e.gridheight = <?php echo '[' . $csizes['height'] . ']'; ?> ; <?php } else { ?> e.gridwidth = <?php echo '[' . $csizes['width'] . ']'; ?> ; e.gridheight = <?php echo '[' . $csizes['height'] . ']'; ?> ; <?php } ?> <?php if ($optFullScreen == 'on') { $sl_layout = 'fullscreen'; } elseif ($optFullWidth == 'on') { $sl_layout = 'fullwidth'; } else { $sl_layout = 'auto'; } ?> e.sliderLayout = "<?php echo $sl_layout; ?> "; <?php if ($this->slider->getParam("slider_type") == "fullscreen") { ?> e.fullScreenAutoWidth='<?php echo esc_attr($this->slider->getParam("autowidth_force", "off")); ?> '; e.fullScreenAlignForce='<?php echo esc_attr($this->slider->getParam("full_screen_align_force", "off")); ?> '; e.fullScreenOffsetContainer= '<?php echo esc_attr($this->slider->getParam("fullscreen_offset_container", "")); ?> '; e.fullScreenOffset='<?php echo esc_attr($this->slider->getParam("fullscreen_offset_size", "")); ?> '; <?php } $minHeight = $this->slider->getParam('slider_type') !== 'fullscreen' ? $this->slider->getParam('min_height', '0', RevSlider::FORCE_NUMERIC) : $this->slider->getParam('fullscreen_min_height', '0', RevSlider::FORCE_NUMERIC); if ($minHeight > 0) { ?> e.minHeight = <?php echo $minHeight; ?> ; <?php } ?> if(e.responsiveLevels&&(jQuery.each(e.responsiveLevels,function(e,f){f>i&&(t=r=f,l=e),i>f&&f>r&&(r=f,n=e)}),t>r&&(l=n)),f=e.gridheight[l]||e.gridheight[0]||e.gridheight,s=e.gridwidth[l]||e.gridwidth[0]||e.gridwidth,h=i/s,h=h>1?1:h,f=Math.round(h*f),"fullscreen"==e.sliderLayout){var u=(e.c.width(),jQuery(window).height());if(void 0!=e.fullScreenOffsetContainer){var c=e.fullScreenOffsetContainer.split(",");if (c) jQuery.each(c,function(e,i){u=jQuery(i).length>0?u-jQuery(i).outerHeight(!0):u}),e.fullScreenOffset.split("%").length>1&&void 0!=e.fullScreenOffset&&e.fullScreenOffset.length>0?u-=jQuery(window).height()*parseInt(e.fullScreenOffset,0)/100:void 0!=e.fullScreenOffset&&e.fullScreenOffset.length>0&&(u-=parseInt(e.fullScreenOffset,0))}f=u}else void 0!=e.minHeight&&f<e.minHeight&&(f=e.minHeight);e.c.closest(".rev_slider_wrapper").css({height:f}) }catch(d){console.log("Failure at Presize of Slider:"+d)} }; setREVStartSize(); function revslider_showDoubleJqueryError(sliderID) { var errorMessage = "Revolution Slider Error: You have some jquery.js library include that comes after the revolution files js include."; errorMessage += "<br> This includes make eliminates the revolution slider libraries, and make it not work."; errorMessage += "<br><br> To fix it you can:<br> 1. In the Slider Settings -> Troubleshooting set option: <strong><b>Put JS Includes To Body</b></strong> option to true."; errorMessage += "<br> 2. Find the double jquery.js include and remove it."; errorMessage = "<span style='font-size:16px;color:#BC0C06;'>" + errorMessage + "</span>" jQuery(sliderID).show().html(errorMessage); } <?php } ?> var tpj=jQuery; <?php if ($noConflict == "on") { ?> tpj.noConflict();<?php } ?> var revapi<?php echo $sliderID; ?> ; <?php echo 'tpj(document).ready(function() {' . "\n"; echo ' if(tpj("#' . $this->sliderHtmlID . '").revolution == undefined){' . "\n"; echo ' revslider_showDoubleJqueryError("#' . $this->sliderHtmlID . '");' . "\n"; echo ' }else{' . "\n"; echo ' revapi' . $sliderID . ' = tpj("#' . $this->sliderHtmlID . '").show().revolution({' . "\n"; if ($do_delay > 0) { echo ' startDelay: ' . esc_attr($do_delay) . ',' . "\n"; } echo ' sliderType:"' . esc_attr($slider_type) . '",' . "\n"; echo ' jsFileLocation:"' . esc_attr(RS_PLUGIN_URL . 'public/assets/js/') . '",' . "\n"; if ($optFullScreen == 'on') { $sl_layout = 'fullscreen'; } elseif ($optFullWidth == 'on') { $sl_layout = 'fullwidth'; } else { $sl_layout = 'auto'; } echo ' sliderLayout:"' . $sl_layout . '",' . "\n"; echo ' dottedOverlay:"' . esc_attr($this->slider->getParam("background_dotted_overlay", "none")) . '",' . "\n"; echo ' delay:' . esc_attr($this->slider->getParam("delay", "9000", RevSlider::FORCE_NUMERIC)) . ',' . "\n"; $enable_arrows = $this->slider->getParam('enable_arrows', 'off'); $enable_bullets = $this->slider->getParam('enable_bullets', 'off'); $enable_tabs = $this->slider->getParam('enable_tabs', 'off'); $enable_thumbnails = $this->slider->getParam('enable_thumbnails', 'off'); $rs_nav = new RevSliderNavigation(); $all_navs = $rs_nav->get_all_navigations(); $touch_enabled = $this->slider->getParam('touchenabled', 'on'); $keyboard_enabled = $this->slider->getParam('keyboard_navigation', 'off'); $keyboard_direction = $this->slider->getParam('keyboard_direction', 'horizontal'); $mousescroll_enabled = $this->slider->getParam('mousescroll_navigation', 'off'); //no navigation if we are hero if ($slider_type !== 'hero' && ($enable_arrows == 'on' || $enable_bullets == 'on' || $enable_tabs == 'on' || $enable_thumbnails == 'on' || $touch_enabled == 'on' || $keyboard_enabled == 'on' || $mousescroll_enabled == 'on')) { echo ' navigation: {' . "\n"; echo ' keyboardNavigation:"' . esc_attr($keyboard_enabled) . '",' . "\n"; echo ' keyboard_direction: "' . esc_attr($keyboard_direction) . '",' . "\n"; echo ' mouseScrollNavigation:"' . esc_attr($mousescroll_enabled) . '",' . "\n"; if ($slider_type !== 'hero') { echo ' onHoverStop:"' . esc_attr($this->slider->getParam("stop_on_hover", "on")) . '",' . "\n"; } $add_comma = false; if ($touch_enabled == 'on') { $add_comma = true; echo ' touch:{' . "\n"; echo ' touchenabled:"' . esc_attr($touch_enabled) . '",' . "\n"; echo ' swipe_threshold: ' . esc_attr($swipe_velocity) . ',' . "\n"; echo ' swipe_min_touches: ' . esc_attr($swipe_min_touches) . ',' . "\n"; echo ' swipe_direction: "' . esc_attr($swipe_direction) . '",' . "\n"; echo ' drag_block_vertical: '; echo $drag_block_vertical == 'true' ? 'true' : 'false'; echo "\n"; echo ' }' . "\n"; } if ($enable_arrows == 'on') { $navigation_arrow_style = $this->slider->getParam('navigation_arrow_style', 'round'); $arrows_always_on = $this->slider->getParam('arrows_always_on', 'true') == 'true' ? 'true' : 'false'; $hide_arrows_on_mobile = $this->slider->getParam('hide_arrows_on_mobile', 'off') == 'on' ? 'true' : 'false'; $hide_arrows_over = $this->slider->getParam('hide_arrows_over', 'off') == 'on' ? 'true' : 'false'; $arr_tmp = ''; $ff = false; if (!empty($all_navs)) { foreach ($all_navs as $cur_nav) { if ($cur_nav['handle'] == $navigation_arrow_style) { if (isset($cur_nav['markup']['arrows'])) { $arr_tmp = $cur_nav['markup']['arrows']; } if (isset($cur_nav['css']['arrows'])) { $nav_css .= $cur_nav['css']['arrows'] . "\n"; } $ff = true; break; } } } if ($ff == false) { $navigation_arrow_style = ''; } $navigation_arrow_style = $rs_nav->translate_navigation($navigation_arrow_style); if ($add_comma) { echo ' ,' . "\n"; } $add_comma = true; echo ' arrows: {' . "\n"; echo ' style:"' . esc_attr($navigation_arrow_style) . '",' . "\n"; echo ' enable:'; echo $this->slider->getParam('enable_arrows', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' hide_onmobile:' . $hide_arrows_on_mobile . ',' . "\n"; if ($hide_arrows_on_mobile === 'true') { echo ' hide_under:' . esc_attr($this->slider->getParam('arrows_under_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } if ($hide_arrows_over === 'true') { echo ' hide_over:' . esc_attr($this->slider->getParam('arrows_over_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' hide_onleave:' . $arrows_always_on . ',' . "\n"; if ($arrows_always_on === 'true') { echo ' hide_delay:' . esc_attr($this->slider->getParam('hide_arrows', '200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_delay_mobile:' . esc_attr($this->slider->getParam('hide_arrows_mobile', '1200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' tmp:\''; echo preg_replace("/\r|\n/", "", $arr_tmp); echo '\',' . "\n"; echo ' left: {' . "\n"; echo ' h_align:"' . esc_attr($this->slider->getParam('leftarrow_align_hor', 'left')) . '",' . "\n"; echo ' v_align:"' . esc_attr($this->slider->getParam('leftarrow_align_vert', 'center')) . '",' . "\n"; echo ' h_offset:' . esc_attr($this->slider->getParam('leftarrow_offset_hor', '20', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' v_offset:' . esc_attr($this->slider->getParam('leftarrow_offset_vert', '0', RevSlider::FORCE_NUMERIC)) . "\n"; echo ' },' . "\n"; echo ' right: {' . "\n"; echo ' h_align:"' . esc_attr($this->slider->getParam('rightarrow_align_hor', 'right')) . '",' . "\n"; echo ' v_align:"' . esc_attr($this->slider->getParam('rightarrow_align_vert', 'center')) . '",' . "\n"; echo ' h_offset:' . esc_attr($this->slider->getParam('rightarrow_offset_hor', '20', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' v_offset:' . esc_attr($this->slider->getParam('rightarrow_offset_vert', '0', RevSlider::FORCE_NUMERIC)) . "\n"; echo ' }' . "\n"; echo ' }' . "\n"; } if ($enable_bullets == 'on') { $navigation_bullets_style = $this->slider->getParam('navigation_bullets_style', 'round'); $bullets_always_on = $this->slider->getParam('bullets_always_on', 'true') == 'true' ? 'true' : 'false'; $hide_bullets_on_mobile = $this->slider->getParam('hide_bullets_on_mobile', 'off') == 'on' ? 'true' : 'false'; $hide_bullets_over = $this->slider->getParam('hide_bullets_over', 'off') == 'on' ? 'true' : 'false'; $bul_tmp = '<span class="tp-bullet-image"></span><span class="tp-bullet-title"></span>'; if (!empty($all_navs)) { foreach ($all_navs as $cur_nav) { if ($cur_nav['handle'] == $navigation_bullets_style) { if (isset($cur_nav['markup']['bullets'])) { $bul_tmp = $cur_nav['markup']['bullets']; } if (isset($cur_nav['css']['bullets'])) { $nav_css .= $cur_nav['css']['bullets'] . "\n"; } break; } } } $navigation_bullets_style = $rs_nav->translate_navigation($navigation_bullets_style); if ($add_comma) { echo ' ,' . "\n"; } $add_comma = true; echo ' bullets: {' . "\n"; echo ' enable:'; echo $this->slider->getParam('enable_bullets', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' hide_onmobile:' . $hide_bullets_on_mobile . ',' . "\n"; if ($hide_bullets_on_mobile === 'true') { echo ' hide_under:' . esc_attr($this->slider->getParam('bullets_under_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } if ($hide_bullets_over === 'true') { echo ' hide_over:' . esc_attr($this->slider->getParam('bullets_over_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' style:"' . esc_attr($navigation_bullets_style) . '",' . "\n"; echo ' hide_onleave:' . $bullets_always_on . ',' . "\n"; if ($bullets_always_on === 'true') { echo ' hide_delay:' . esc_attr($this->slider->getParam('hide_bullets', '200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_delay_mobile:' . esc_attr($this->slider->getParam('hide_bullets_mobile', '1200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' direction:"' . esc_attr($this->slider->getParam('bullets_direction', 'horizontal')) . '",' . "\n"; echo ' h_align:"' . esc_attr($this->slider->getParam('bullets_align_hor', 'right')) . '",' . "\n"; echo ' v_align:"' . esc_attr($this->slider->getParam('bullets_align_vert', 'center')) . '",' . "\n"; echo ' h_offset:' . esc_attr($this->slider->getParam('bullets_offset_hor', '20', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' v_offset:' . esc_attr($this->slider->getParam('bullets_offset_vert', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' space:' . esc_attr($this->slider->getParam('bullets_space', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' tmp:\''; echo preg_replace("/\r|\n/", "", $bul_tmp); echo '\'' . "\n"; echo ' }' . "\n"; } if ($enable_thumbnails == 'on') { $thumbnails_style = $this->slider->getParam('thumbnails_style', 'round'); $thumbs_always_on = $this->slider->getParam('thumbs_always_on', 'true') == 'true' ? 'true' : 'false'; $hide_thumbs_on_mobile = $this->slider->getParam('hide_thumbs_on_mobile', 'off') == 'on' ? 'true' : 'false'; $hide_thumbs_over = $this->slider->getParam('hide_thumbs_over', 'off') == 'on' ? 'true' : 'false'; $thumbs_tmp = '<span class="tp-thumb-image"></span><span class="tp-thumb-title"></span>'; if (!empty($all_navs)) { foreach ($all_navs as $cur_nav) { if ($cur_nav['handle'] == $thumbnails_style) { if (isset($cur_nav['markup']['thumbs'])) { $thumbs_tmp = $cur_nav['markup']['thumbs']; } if (isset($cur_nav['css']['thumbs'])) { $nav_css .= $cur_nav['css']['thumbs'] . "\n"; } break; } } } $thumbnails_style = $rs_nav->translate_navigation($thumbnails_style); if ($add_comma) { echo ' ,' . "\n"; } $add_comma = true; echo ' thumbnails: {' . "\n"; echo ' style:"' . esc_attr($thumbnails_style) . '",' . "\n"; echo ' enable:'; echo $this->slider->getParam('enable_thumbnails', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' width:' . esc_attr($this->slider->getParam('thumb_width', '100', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' height:' . esc_attr($this->slider->getParam('thumb_height', '50', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' min_width:' . esc_attr($this->slider->getParam('thumb_width_min', '100', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' wrapper_padding:' . esc_attr($this->slider->getParam('thumbnails_padding', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' wrapper_color:"' . esc_attr($this->slider->getParam('thumbnails_wrapper_color', 'transparent')) . '",' . "\n"; echo ' wrapper_opacity:"' . esc_attr(round($this->slider->getParam('thumbnails_wrapper_opacity', '100') / 100, 2)) . '",' . "\n"; echo ' tmp:\''; echo preg_replace("/\r|\n/", "", $thumbs_tmp); echo '\',' . "\n"; echo ' visibleAmount:' . esc_attr($this->slider->getParam('thumb_amount', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_onmobile:' . $hide_thumbs_on_mobile . ',' . "\n"; if ($hide_thumbs_on_mobile === 'true') { echo ' hide_under:' . esc_attr($this->slider->getParam('thumbs_under_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } if ($hide_thumbs_over === 'true') { echo ' hide_over:' . esc_attr($this->slider->getParam('thumbs_over_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' hide_onleave:' . $thumbs_always_on . ',' . "\n"; if ($thumbs_always_on === 'true') { echo ' hide_delay:' . esc_attr($this->slider->getParam('hide_thumbs', '200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_delay_mobile:' . esc_attr($this->slider->getParam('hide_thumbs_mobile', '1200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' direction:"' . esc_attr($this->slider->getParam('thumbnail_direction', 'horizontal')) . '",' . "\n"; echo ' span:'; echo $this->slider->getParam('span_thumbnails_wrapper', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' position:"' . esc_attr($this->slider->getParam('thumbnails_inner_outer', 'inner')) . '",' . "\n"; echo ' space:' . esc_attr($this->slider->getParam('thumbnails_space', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' h_align:"' . esc_attr($this->slider->getParam('thumbnails_align_hor', 'left')) . '",' . "\n"; echo ' v_align:"' . esc_attr($this->slider->getParam('thumbnails_align_vert', 'center')) . '",' . "\n"; echo ' h_offset:' . esc_attr($this->slider->getParam('thumbnails_offset_hor', '20', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' v_offset:' . esc_attr($this->slider->getParam('thumbnails_offset_vert', '0', RevSlider::FORCE_NUMERIC)) . "\n"; echo ' }' . "\n"; } if ($enable_tabs == 'on') { $tabs_style = $this->slider->getParam('tabs_style', 'round'); $tabs_always_on = $this->slider->getParam('tabs_always_on', 'true') == 'true' ? 'true' : 'false'; $hide_tabs_on_mobile = $this->slider->getParam('hide_tabs_on_mobile', 'off') == 'on' ? 'true' : 'false'; $hide_tabs_over = $this->slider->getParam('hide_tabs_over', 'off') == 'on' ? 'true' : 'false'; $tabs_tmp = '<span class="tp-thumb-image"></span>'; if (!empty($all_navs)) { foreach ($all_navs as $cur_nav) { if ($cur_nav['handle'] == $tabs_style) { if (isset($cur_nav['markup']['tabs'])) { $tabs_tmp = $cur_nav['markup']['tabs']; } if (isset($cur_nav['css']['tabs'])) { $nav_css .= $cur_nav['css']['tabs'] . "\n"; } break; } } } $tabs_style = $rs_nav->translate_navigation($tabs_style); if ($add_comma) { echo ' ,' . "\n"; } $add_comma = true; echo ' tabs: {' . "\n"; echo ' style:"' . esc_attr($tabs_style) . '",' . "\n"; echo ' enable:'; echo $this->slider->getParam('enable_tabs', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' width:' . esc_attr($this->slider->getParam('tabs_width', '100', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' height:' . esc_attr($this->slider->getParam('tabs_height', '50', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' min_width:' . esc_attr($this->slider->getParam('tabs_width_min', '100', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' wrapper_padding:' . esc_attr($this->slider->getParam('tabs_padding', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' wrapper_color:"' . esc_attr($this->slider->getParam('tabs_wrapper_color', 'transparent')) . '",' . "\n"; echo ' wrapper_opacity:"' . esc_attr(round($this->slider->getParam('tabs_wrapper_opacity', '100') / 100, 2)) . '",' . "\n"; echo ' tmp:\''; echo preg_replace("/\r|\n/", "", $tabs_tmp); echo '\',' . "\n"; echo ' visibleAmount: ' . esc_attr($this->slider->getParam('tabs_amount', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_onmobile: ' . $hide_tabs_on_mobile . ',' . "\n"; if ($hide_tabs_on_mobile === 'true') { echo ' hide_under:' . esc_attr($this->slider->getParam('tabs_under_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } if ($hide_tabs_over === 'true') { echo ' hide_over:' . esc_attr($this->slider->getParam('tabs_over_hidden', '0', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' hide_onleave:' . $tabs_always_on . ',' . "\n"; if ($tabs_always_on === 'true') { echo ' hide_delay:' . esc_attr($this->slider->getParam('hide_tabs', '200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' hide_delay_mobile:' . esc_attr($this->slider->getParam('hide_tabs_mobile', '1200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; } echo ' hide_delay:' . esc_attr($this->slider->getParam('hide_tabs', '200', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' direction:"' . esc_attr($this->slider->getParam('tabs_direction', 'horizontal')) . '",' . "\n"; echo ' span:'; echo $this->slider->getParam('span_tabs_wrapper', 'off') == 'on' ? 'true' : 'false'; echo ',' . "\n"; echo ' position:"' . esc_attr($this->slider->getParam('tabs_inner_outer', 'inner')) . '",' . "\n"; echo ' space:' . esc_attr($this->slider->getParam('tabs_space', '5', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' h_align:"' . esc_attr($this->slider->getParam('tabs_align_hor', 'left')) . '",' . "\n"; echo ' v_align:"' . esc_attr($this->slider->getParam('tabs_align_vert', 'center')) . '",' . "\n"; echo ' h_offset:' . esc_attr($this->slider->getParam('tabs_offset_hor', '20', RevSlider::FORCE_NUMERIC)) . ',' . "\n"; echo ' v_offset:' . esc_attr($this->slider->getParam('tabs_offset_vert', '0', RevSlider::FORCE_NUMERIC)) . "\n"; echo ' }' . "\n"; } echo ' },' . "\n"; } else { //maybe write navigation stuff still here echo ' navigation: {' . "\n"; if ($slider_type !== 'hero') { echo ' onHoverStop:"' . esc_attr($this->slider->getParam("stop_on_hover", "on")) . '",' . "\n"; } echo ' },' . "\n"; } if ($slider_type == 'carousel') { $car_inf = $this->slider->getParam('carousel_infinity', 'off'); $car_space = $this->slider->getParam('carousel_space', 0, RevSlider::FORCE_NUMERIC); $car_stretch = $this->slider->getParam('carousel_stretch', 'off'); $car_maxitems = $this->slider->getParam('carousel_maxitems', 5, RevSlider::FORCE_NUMERIC); $car_fadeout = $this->slider->getParam('carousel_fadeout', 'on'); $car_varyfade = $this->slider->getParam('carousel_varyfade', 'off'); $car_hpos = $this->slider->getParam('carousel_hposition', 'center'); $car_vpos = $this->slider->getParam('carousel_vposition', 'center'); $carousel_rotation = $this->slider->getParam('carousel_rotation', 'off'); $car_maxrotation = $this->slider->getParam('carousel_maxrotation', 90, RevSlider::FORCE_NUMERIC); $car_varyrotate = $this->slider->getParam('carousel_varyrotate', 'off'); $carousel_scale = $this->slider->getParam('carousel_scale', 'off'); $car_varyscale = $this->slider->getParam('carousel_varyscale', 'off'); $car_scaledown = $this->slider->getParam('carousel_scaledown', 50, RevSlider::FORCE_NUMERIC); if ($car_scaledown > 100) { $car_scaledown = 100; } $car_borderr = $this->slider->getParam('carousel_borderr', 0, RevSlider::FORCE_NUMERIC); $car_borderr_unit = $this->slider->getParam('carousel_borderr_unit', 'px'); $car_padding_top = $this->slider->getParam('carousel_padding_top', 0, RevSlider::FORCE_NUMERIC); $car_padding_bottom = $this->slider->getParam('carousel_padding_bottom', 0, RevSlider::FORCE_NUMERIC); echo ' carousel: {' . "\n"; if ($car_borderr > 0) { echo ' border_radius: "' . esc_attr($car_borderr . $car_borderr_unit) . '",' . "\n"; } if ($car_padding_top > 0) { echo ' padding_top: "' . esc_attr($car_padding_top) . '",' . "\n"; } if ($car_padding_bottom > 0) { echo ' padding_bottom: "' . esc_attr($car_padding_bottom) . '",' . "\n"; } if ($carousel_rotation == 'on') { echo ' maxRotation: ' . esc_attr($car_maxrotation) . ',' . "\n"; echo ' vary_rotation: "' . esc_attr($car_varyrotate) . '",' . "\n"; } if ($carousel_scale == 'on') { echo ' minScale: ' . esc_attr($car_scaledown) . ',' . "\n"; echo ' vary_scale: "' . esc_attr($car_varyscale) . '",' . "\n"; } echo ' horizontal_align: "' . esc_attr($car_hpos) . '",' . "\n"; echo ' vertical_align: "' . esc_attr($car_vpos) . '",' . "\n"; echo ' fadeout: "' . esc_attr($car_fadeout) . '",' . "\n"; if ($car_fadeout == 'on') { echo ' vary_fade: "' . esc_attr($car_varyfade) . '",' . "\n"; } echo ' maxVisibleItems: ' . esc_attr($car_maxitems) . ',' . "\n"; echo ' infinity: "' . esc_attr($car_inf) . '",' . "\n"; echo ' space: ' . esc_attr($car_space) . ',' . "\n"; echo ' stretch: "' . esc_attr($car_stretch) . '"' . "\n"; echo ' },' . "\n"; } $label_viewport = $this->slider->getParam('label_viewport', 'off'); $viewport_start = $this->slider->getParam('viewport_start', 'wait'); $viewport_area = $this->slider->getParam('viewport_area', 80, RevSlider::FORCE_NUMERIC); if ($label_viewport === 'on') { echo ' viewPort: {' . "\n"; echo ' enable:true,' . "\n"; echo ' outof:"' . esc_attr($viewport_start) . '",' . "\n"; echo ' visible_area:"' . esc_attr($viewport_area) . '%"' . "\n"; echo ' },' . "\n"; } if (isset($csizes['level']) && !empty($csizes['level'])) { echo ' responsiveLevels:[' . $csizes['level'] . '],' . "\n"; echo ' gridwidth:[' . $csizes['width'] . '],' . "\n"; echo ' gridheight:[' . $csizes['height'] . '],' . "\n"; } else { echo ' gridwidth:' . $csizes['width'] . ',' . "\n"; echo ' gridheight:' . $csizes['height'] . ',' . "\n"; } $lazyLoad = $this->slider->getParam('lazy_load_type', false); if ($lazyLoad === false) { //do fallback checks to removed lazy_load value since version 5.0 and replaced with an enhanced version $old_ll = $this->slider->getParam('lazy_load', 'off'); $lazyLoad = $old_ll == 'on' ? 'all' : 'none'; } echo ' lazyType:"' . esc_attr($lazyLoad) . '",' . "\n"; $minHeight = $this->slider->getParam('slider_type') !== 'fullscreen' ? $this->slider->getParam('min_height', '0', RevSlider::FORCE_NUMERIC) : $this->slider->getParam('fullscreen_min_height', '0', RevSlider::FORCE_NUMERIC); if ($minHeight > 0) { echo ' minHeight:' . $minHeight . ',' . "\n"; } if ($use_parallax == 'on') { echo ' parallax: {' . "\n"; echo ' type:"' . esc_attr($parallax_type) . '",' . "\n"; echo ' origo:"' . esc_attr($parallax_origo) . '",' . "\n"; echo ' speed:' . esc_attr($parallax_speed) . ',' . "\n"; echo ' levels:[' . esc_attr($parallax_level) . '],' . "\n"; if ($disable_parallax_mobile == 'on') { echo ' disable_onmobile:"on"' . "\n"; } echo ' },' . "\n"; } echo ' shadow:' . esc_attr($this->slider->getParam("shadow_type", "2")) . ',' . "\n"; if ($use_spinner == '-1') { echo ' spinner:"off",' . "\n"; } else { echo ' spinner:"spinner' . esc_attr($use_spinner) . '",' . "\n"; } if ($slider_type !== 'hero') { echo ' stopLoop:"' . esc_attr($stopSlider) . '",' . "\n"; echo ' stopAfterLoops:' . esc_attr($stopAfterLoops) . ',' . "\n"; echo ' stopAtSlide:' . esc_attr($stopAtSlide) . ',' . "\n"; echo ' shuffle:"' . esc_attr($this->slider->getParam("shuffle", "off")) . '",' . "\n"; } echo ' autoHeight:"' . esc_attr($this->slider->getParam("auto_height", 'off')) . '",' . "\n"; if ($this->slider->getParam("slider_type") == "fullscreen") { echo ' fullScreenAutoWidth:"' . esc_attr($this->slider->getParam("autowidth_force", "off")) . '",' . "\n"; echo ' fullScreenAlignForce:"' . esc_attr($this->slider->getParam("full_screen_align_force", "off")) . '",' . "\n"; echo ' fullScreenOffsetContainer: "' . esc_attr($this->slider->getParam("fullscreen_offset_container", "")) . '",' . "\n"; echo ' fullScreenOffset: "' . esc_attr($this->slider->getParam("fullscreen_offset_size", "")) . '",' . "\n"; } if ($enable_progressbar !== 'on' || $slider_type == 'hero') { echo ' disableProgressBar:"on",' . "\n"; } echo ' hideThumbsOnMobile:"' . esc_attr($hideThumbsOnMobile) . '",' . "\n"; echo ' hideSliderAtLimit:' . esc_attr($hideSliderAtLimit) . ',' . "\n"; echo ' hideCaptionAtLimit:' . esc_attr($hideCaptionAtLimit) . ',' . "\n"; echo ' hideAllCaptionAtLilmit:' . esc_attr($hideAllCaptionAtLimit) . ',' . "\n"; if ($slider_type !== 'hero') { $start_with_slide_enable = $this->slider->getParam('start_with_slide_enable', 'off'); if ($start_with_slide_enable == 'on') { echo ' startWithSlide:' . esc_attr($startWithSlide) . ',' . "\n"; } } echo ' debugMode:' . $debugmode . ',' . "\n"; echo ' fallbacks: {' . "\n"; echo ' simplifyAll:"' . esc_attr($this->slider->getParam('simplify_ie8_ios4', 'off')) . '",' . "\n"; if ($slider_type !== 'hero') { echo ' nextSlideOnWindowFocus:"' . esc_attr($this->slider->getParam('next_slide_on_window_focus', 'off')) . '",' . "\n"; } $dfl = $this->slider->getParam('disable_focus_listener', 'off') == 'on' ? 'true' : 'false'; echo ' disableFocusListener:' . $dfl . ',' . "\n"; if ($disableKenBurnOnMobile == 'on') { echo ' panZoomDisableOnMobile:"on",' . "\n"; } echo ' }' . "\n"; echo ' });' . "\n"; if ($this->slider->getParam("custom_javascript", '') !== '') { echo stripslashes($this->slider->getParam("custom_javascript", '')); } echo ' }' . "\n"; echo ' }); /*ready*/' . "\n"; ?> </script> <?php if ($js_to_footer && $this->previewMode == false && $markup_export == false) { $js_content = ob_get_contents(); ob_clean(); ob_end_clean(); $this->rev_inline_js = $js_content; add_action('wp_footer', array($this, 'add_inline_js')); } if ($markup_export === true) { echo '<!-- /SCRIPT -->'; } switch ($use_spinner) { case '1': case '2': if (!is_admin()) { ?> <script> var htmlDivCss = ' #<?php echo $this->sliderHtmlID_wrapper; ?> .tp-loader.spinner<?php echo $use_spinner; ?> { background-color: <?php echo $spinner_color; ?> !important; } '; var htmlDiv = document.getElementById('rs-plugin-settings-inline-css'); if(htmlDiv) { htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss; } else{ var htmlDiv = document.createElement('div'); htmlDiv.innerHTML = '<style>' + htmlDivCss + '</style>'; document.getElementsByTagName('head')[0].appendChild(htmlDiv.childNodes[0]); } </script> <?php } else { if ($markup_export === true) { echo '<!-- STYLE -->'; } echo '<style type="text/css"> #' . $this->sliderHtmlID_wrapper . ' .tp-loader.spinner' . $use_spinner . '{ background-color: ' . $spinner_color . ' !important; } </style>'; if ($markup_export === true) { echo '<!-- /STYLE -->'; } } break; case '3': case '4': if (!is_admin()) { ?> <script> var htmlDivCss = ' #<?php echo $this->sliderHtmlID_wrapper; ?> .tp-loader.spinner<?php echo $use_spinner; ?> div { background-color: <?php echo $spinner_color; ?> !important; } '; var htmlDiv = document.getElementById('rs-plugin-settings-inline-css'); if(htmlDiv) { htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss; } else{ var htmlDiv = document.createElement('div'); htmlDiv.innerHTML = '<style>' + htmlDivCss + '</style>'; document.getElementsByTagName('head')[0].appendChild(htmlDiv.childNodes[0]); } </script> <?php } else { if ($markup_export === true) { echo '<!-- STYLE -->'; } echo '<style type="text/css"> #' . $this->sliderHtmlID_wrapper . ' .tp-loader.spinner' . $use_spinner . '{ background-color: ' . $spinner_color . ' !important; } </style>'; if ($markup_export === true) { echo '<!-- /STYLE -->'; } } break; case '0': case '5': default: break; } if ($this->slider->getParam("custom_css", '') !== '') { if (!is_admin()) { ?> <script> var htmlDivCss = unescape("<?php echo RevSliderCssParser::compress_css(rawurlencode(stripslashes($this->slider->getParam('custom_css', '')))); ?> "); var htmlDiv = document.getElementById('rs-plugin-settings-inline-css'); if(htmlDiv) { htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss; } else{ var htmlDiv = document.createElement('div'); htmlDiv.innerHTML = '<style>' + htmlDivCss + '</style>'; document.getElementsByTagName('head')[0].appendChild(htmlDiv.childNodes[0]); } </script><?php } else { if ($markup_export === true) { echo '<!-- STYLE -->'; } ?> <style type="text/css"><?php echo RevSliderCssParser::compress_css(stripslashes($this->slider->getParam('custom_css', ''))); ?> </style><?php if ($markup_export === true) { echo '<!-- /STYLE -->'; } } } if (trim($nav_css) !== '') { if (!is_admin()) { ?> <script> var htmlDivCss = unescape("<?php echo RevSliderCssParser::compress_css(rawurlencode($nav_css)); ?> "); var htmlDiv = document.getElementById('rs-plugin-settings-inline-css'); if(htmlDiv) { htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss; } else{ var htmlDiv = document.createElement('div'); htmlDiv.innerHTML = '<style>' + htmlDivCss + '</style>'; document.getElementsByTagName('head')[0].appendChild(htmlDiv.childNodes[0]); } </script> <?php } else { if ($markup_export === true) { echo '<!-- STYLE -->'; } ?> <style type="text/css"><?php echo RevSliderCssParser::compress_css($nav_css); ?> </style> <?php if ($markup_export === true) { echo '<!-- /STYLE -->'; } } } }
/** * * export slider from data, output a file for download */ public function exportSlider($useDummy = false) { $this->validateInited(); $sliderParams = $this->getParamsForExport(); $arrSlides = $this->getSlidesForExport($useDummy); $arrStaticSlide = $this->getStaticSlideForExport($useDummy); $usedCaptions = array(); $usedAnimations = array(); $usedImages = array(); $usedSVG = array(); $usedVideos = array(); $usedNavigations = array(); $cfw = array(); if (!empty($arrSlides) && count($arrSlides) > 0) { $cfw = array_merge($cfw, $arrSlides); } if (!empty($arrStaticSlide) && count($arrStaticSlide) > 0) { $cfw = array_merge($cfw, $arrStaticSlide); } //remove image_id as it is not needed in export //plus remove background image if solid color or transparent if (!empty($arrSlides)) { foreach ($arrSlides as $k => $s) { if (isset($arrSlides[$k]['params']['image_id'])) { unset($arrSlides[$k]['params']['image_id']); } if (isset($arrSlides[$k]['params']["background_type"]) && ($arrSlides[$k]['params']["background_type"] == 'solid' || $arrSlides[$k]['params']["background_type"] == "trans" || $arrSlides[$k]['params']["background_type"] == "transparent")) { if (isset($arrSlides[$k]['params']['background_image'])) { $arrSlides[$k]['params']['background_image'] = ''; } } } } if (!empty($arrStaticSlide)) { foreach ($arrStaticSlide as $k => $s) { if (isset($arrStaticSlide[$k]['params']['image_id'])) { unset($arrStaticSlide[$k]['params']['image_id']); } if (isset($arrStaticSlide[$k]['params']["background_type"]) && ($arrStaticSlide[$k]['params']["background_type"] == 'solid' || $arrStaticSlide[$k]['params']["background_type"] == "trans" || $arrStaticSlide[$k]['params']["background_type"] == "transparent")) { if (isset($arrStaticSlide[$k]['params']['background_image'])) { $arrStaticSlide[$k]['params']['background_image'] = ''; } } } } if (!empty($cfw) && count($cfw) > 0) { foreach ($cfw as $key => $slide) { //check if we are transparent and so on if (isset($slide['params']['image']) && $slide['params']['image'] != '') { $usedImages[$slide['params']['image']] = true; } //['params']['image'] background url if (isset($slide['params']['background_image']) && $slide['params']['background_image'] != '') { $usedImages[$slide['params']['background_image']] = true; } //['params']['image'] background url if (isset($slide['params']['slide_thumb']) && $slide['params']['slide_thumb'] != '') { $usedImages[$slide['params']['slide_thumb']] = true; } //['params']['image'] background url //html5 video if (isset($slide['params']['background_type']) && $slide['params']['background_type'] == 'html5') { if (isset($slide['params']['slide_bg_html_mpeg']) && $slide['params']['slide_bg_html_mpeg'] != '') { $usedVideos[$slide['params']['slide_bg_html_mpeg']] = true; } if (isset($slide['params']['slide_bg_html_webm']) && $slide['params']['slide_bg_html_webm'] != '') { $usedVideos[$slide['params']['slide_bg_html_webm']] = true; } if (isset($slide['params']['slide_bg_html_ogv']) && $slide['params']['slide_bg_html_ogv'] != '') { $usedVideos[$slide['params']['slide_bg_html_ogv']] = true; } } else { if (isset($slide['params']['slide_bg_html_mpeg']) && $slide['params']['slide_bg_html_mpeg'] != '') { $slide['params']['slide_bg_html_mpeg'] = ''; } if (isset($slide['params']['slide_bg_html_webm']) && $slide['params']['slide_bg_html_webm'] != '') { $slide['params']['slide_bg_html_webm'] = ''; } if (isset($slide['params']['slide_bg_html_ogv']) && $slide['params']['slide_bg_html_ogv'] != '') { $slide['params']['slide_bg_html_ogv'] = ''; } } //image thumbnail if (isset($slide['layers']) && !empty($slide['layers']) && count($slide['layers']) > 0) { foreach ($slide['layers'] as $lKey => $layer) { if (isset($layer['style']) && $layer['style'] != '') { $usedCaptions[$layer['style']] = true; } if (isset($layer['animation']) && $layer['animation'] != '' && strpos($layer['animation'], 'customin') !== false) { $usedAnimations[str_replace('customin-', '', $layer['animation'])] = true; } if (isset($layer['endanimation']) && $layer['endanimation'] != '' && strpos($layer['endanimation'], 'customout') !== false) { $usedAnimations[str_replace('customout-', '', $layer['endanimation'])] = true; } if (isset($layer['image_url']) && $layer['image_url'] != '') { $usedImages[$layer['image_url']] = true; } //image_url if image caption if (isset($layer['type']) && ($layer['type'] == 'video' || $layer['type'] == 'audio')) { $video_data = isset($layer['video_data']) ? (array) $layer['video_data'] : array(); if (!empty($video_data) && isset($video_data['video_type']) && $video_data['video_type'] == 'html5') { if (isset($video_data['urlPoster']) && $video_data['urlPoster'] != '') { $usedImages[$video_data['urlPoster']] = true; } if (isset($video_data['urlMp4']) && $video_data['urlMp4'] != '') { $usedVideos[$video_data['urlMp4']] = true; } if (isset($video_data['urlWebm']) && $video_data['urlWebm'] != '') { $usedVideos[$video_data['urlWebm']] = true; } if (isset($video_data['urlOgv']) && $video_data['urlOgv'] != '') { $usedVideos[$video_data['urlOgv']] = true; } } elseif (!empty($video_data) && isset($video_data['video_type']) && $video_data['video_type'] != 'html5') { //video cover image if ($video_data['video_type'] == 'audio') { if (isset($video_data['urlAudio']) && $video_data['urlAudio'] != '') { $usedVideos[$video_data['urlAudio']] = true; } } else { if (isset($video_data['previewimage']) && $video_data['previewimage'] != '') { $usedImages[$video_data['previewimage']] = true; } } } if ($video_data['video_type'] != 'html5') { $video_data['urlMp4'] = ''; $video_data['urlWebm'] = ''; $video_data['urlOgv'] = ''; } if ($video_data['video_type'] != 'audio') { $video_data['urlAudio'] = ''; } } if (isset($layer['type']) && $layer['type'] == 'svg') { if (isset($layer['svg']) && isset($layer['svg']->src)) { $usedSVG[$layer['svg']->src] = true; } } } } } } $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides); if (!empty($arrStaticSlide)) { $arrSliderExport['static_slides'] = $arrStaticSlide; } $strExport = serialize($arrSliderExport); //$strExportAnim = serialize(RevSliderOperations::getFullCustomAnimations()); $exportname = !empty($this->alias) ? $this->alias . '.zip' : "slider_export.zip"; //add navigations if not default animation if (isset($sliderParams['navigation_arrow_style'])) { $usedNavigations[$sliderParams['navigation_arrow_style']] = true; } if (isset($sliderParams['navigation_bullets_style'])) { $usedNavigations[$sliderParams['navigation_bullets_style']] = true; } if (isset($sliderParams['thumbnails_style'])) { $usedNavigations[$sliderParams['thumbnails_style']] = true; } if (isset($sliderParams['tabs_style'])) { $usedNavigations[$sliderParams['tabs_style']] = true; } $navs = false; if (!empty($usedNavigations)) { $navs = RevSliderNavigation::export_navigation($usedNavigations); if ($navs !== false) { $navs = serialize($navs); } } $styles = ''; if (!empty($usedCaptions)) { $captions = array(); foreach ($usedCaptions as $class => $val) { $cap = RevSliderOperations::getCaptionsContentArray($class); //set also advanced styles here... if (!empty($cap)) { $captions[] = $cap; } } $styles = RevSliderCssParser::parseArrayToCss($captions, "\n", true); } $animations = ''; if (!empty($usedAnimations)) { $animation = array(); foreach ($usedAnimations as $anim => $val) { $anima = RevSliderOperations::getFullCustomAnimationByID($anim); if ($anima !== false) { $animation[] = $anima; } } if (!empty($animation)) { $animations = serialize($animation); } } $usedImages = array_merge($usedImages, $usedVideos); $usepcl = false; if (class_exists('ZipArchive')) { $zip = new ZipArchive(); $success = $zip->open(RevSliderGlobals::$uploadsUrlExportZip, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE); if ($success !== true) { throwError("Can't create zip file: " . RevSliderGlobals::$uploadsUrlExportZip); } } else { //fallback to pclzip require_once ABSPATH . 'wp-admin/includes/class-pclzip.php'; $pclzip = new PclZip(RevSliderGlobals::$uploadsUrlExportZip); //either the function uses die() or all is cool $usepcl = true; } //add svg to the zip if (!empty($usedSVG)) { $content_url = content_url(); $content_path = ABSPATH . 'wp-content'; $ud = wp_upload_dir(); $up_dir = $ud['baseurl']; foreach ($usedSVG as $file => $val) { if (strpos($file, 'http') !== false) { //remove all up to wp-content folder $checkpath = str_replace($content_url, '', $file); $checkpath2 = str_replace($up_dir, '', $file); if ($checkpath2 === $file) { //we have an SVG like whiteboard, fallback to older export $checkpath2 = $checkpath; } if (is_file($content_path . $checkpath)) { $strExport = str_replace($file, str_replace('/revslider/assets/svg', '', $checkpath2), $strExport); } } } } //add images to zip if (!empty($usedImages)) { $upload_dir = RevSliderFunctionsWP::getPathUploads(); $upload_dir_multisiteless = wp_upload_dir(); $cont_url = $upload_dir_multisiteless['baseurl']; $cont_url_no_www = str_replace('www.', '', $upload_dir_multisiteless['baseurl']); $upload_dir_multisiteless = $upload_dir_multisiteless['basedir'] . '/'; foreach ($usedImages as $file => $val) { if ($useDummy == "true") { //only use dummy images } else { //use the real images if (strpos($file, 'http') !== false) { $remove = false; $checkpath = str_replace(array($cont_url, $cont_url_no_www), '', $file); if (is_file($upload_dir . $checkpath)) { if (!$usepcl) { $zip->addFile($upload_dir . $checkpath, 'images/' . $checkpath); } else { $v_list = $pclzip->add($upload_dir . $checkpath, PCLZIP_OPT_REMOVE_PATH, $upload_dir, PCLZIP_OPT_ADD_PATH, 'images/'); } $remove = true; } elseif (is_file($upload_dir_multisiteless . $checkpath)) { if (!$usepcl) { $zip->addFile($upload_dir_multisiteless . $checkpath, 'images/' . $checkpath); } else { $v_list = $pclzip->add($upload_dir_multisiteless . $checkpath, PCLZIP_OPT_REMOVE_PATH, $upload_dir_multisiteless, PCLZIP_OPT_ADD_PATH, 'images/'); } $remove = true; } if ($remove) { //as its http, remove this from strexport $strExport = str_replace(array($cont_url . $checkpath, $cont_url_no_www . $checkpath), $checkpath, $strExport); } } else { if (is_file($upload_dir . $file)) { if (!$usepcl) { $zip->addFile($upload_dir . $file, 'images/' . $file); } else { $v_list = $pclzip->add($upload_dir . $file, PCLZIP_OPT_REMOVE_PATH, $upload_dir, PCLZIP_OPT_ADD_PATH, 'images/'); } } elseif (is_file($upload_dir_multisiteless . $file)) { if (!$usepcl) { $zip->addFile($upload_dir_multisiteless . $file, 'images/' . $file); } else { $v_list = $pclzip->add($upload_dir_multisiteless . $file, PCLZIP_OPT_REMOVE_PATH, $upload_dir_multisiteless, PCLZIP_OPT_ADD_PATH, 'images/'); } } } } } } if (!$usepcl) { $zip->addFromString("slider_export.txt", $strExport); //add slider settings } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'slider_export.txt', PCLZIP_ATT_FILE_CONTENT => $strExport))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } if (strlen(trim($animations)) > 0) { if (!$usepcl) { $zip->addFromString("custom_animations.txt", $animations); //add custom animations } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'custom_animations.txt', PCLZIP_ATT_FILE_CONTENT => $animations))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } } if (strlen(trim($styles)) > 0) { if (!$usepcl) { $zip->addFromString("dynamic-captions.css", $styles); //add dynamic styles } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'dynamic-captions.css', PCLZIP_ATT_FILE_CONTENT => $styles))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } } if (strlen(trim($navs)) > 0) { if (!$usepcl) { $zip->addFromString("navigation.txt", $navs); //add dynamic styles } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'navigation.txt', PCLZIP_ATT_FILE_CONTENT => $navs))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } } $static_css = RevSliderOperations::getStaticCss(); if (trim($static_css) !== '') { if (!$usepcl) { $zip->addFromString("static-captions.css", $static_css); //add slider settings } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'static-captions.css', PCLZIP_ATT_FILE_CONTENT => $static_css))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } } $enable_slider_pack = apply_filters('revslider_slider_pack_export', false); if ($enable_slider_pack) { //allow for slider packs the automatic creation of the info.cfg if (!$usepcl) { $zip->addFromString('info.cfg', md5($this->alias)); //add slider settings } else { $list = $pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'info.cfg', PCLZIP_ATT_FILE_CONTENT => md5($this->alias)))); if ($list == 0) { die("ERROR : '" . $pclzip->errorInfo(true) . "'"); } } } if (!$usepcl) { $zip->close(); } else { //do nothing } header("Content-type: application/zip"); header("Content-Disposition: attachment; filename=" . $exportname); header("Pragma: no-cache"); header("Expires: 0"); readfile(RevSliderGlobals::$uploadsUrlExportZip); @unlink(RevSliderGlobals::$uploadsUrlExportZip); //delete file after sending it to user exit; }