/**
  * 
  * export slider from data, output a file for download
  */
 public function exportSlider($useDummy = false)
 {
     $export_zip = true;
     if (function_exists("unzip_file") == false) {
         if (UniteZipRev::isZipExists() == false) {
             $export_zip = false;
         }
         //UniteFunctionsRev::throwError("The ZipArchive php extension not exists, can't create the export file. Please turn it on in php ini.");
     }
     if (!class_exists('ZipArchive')) {
         $export_zip = false;
     }
     //if(!class_exists('ZipArchive')) UniteFunctionsRev::throwError("The ZipArchive php extension not exists, can't create the export file. Please turn it on in php ini.");
     if ($export_zip) {
         $zip = new ZipArchive();
         $success = $zip->open(GlobalsRevSlider::$urlExportZip, ZipArchive::OVERWRITE);
         if ($success == false) {
             throwError("Can't create zip file: " . GlobalsRevSlider::$urlExportZip);
         }
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport($useDummy);
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         $strExport = serialize($arrSliderExport);
         //$strExportAnim = serialize(RevOperations::getFullCustomAnimations());
         $exportname = !empty($this->alias) ? $this->alias . '.zip' : "slider_export.zip";
         $usedCaptions = array();
         $usedAnimations = array();
         $usedImages = array();
         if (!empty($arrSlides) && count($arrSlides) > 0) {
             foreach ($arrSlides as $key => $slide) {
                 if (isset($slide['params']['image']) && $slide['params']['image'] != '') {
                     $usedImages[$slide['params']['image']] = true;
                 }
                 //['params']['image'] background url
                 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
                     }
                 }
             }
         }
         $styles = '';
         if (!empty($usedCaptions)) {
             $captions = array();
             foreach ($usedCaptions as $class => $val) {
                 $captions[] = RevOperations::getCaptionsContentArray($class);
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         }
         $animations = '';
         if (!empty($usedAnimations)) {
             $animation = array();
             foreach ($usedAnimations as $anim => $val) {
                 $anima = RevOperations::getFullCustomAnimationByID($anim);
                 if ($anima !== false) {
                     $animation[] = RevOperations::getFullCustomAnimationByID($anim);
                 }
             }
             if (!empty($animation)) {
                 $animations = serialize($animation);
             }
         }
         //add images to zip
         if (!empty($usedImages)) {
             $upload_dir = UniteFunctionsWPRev::getPathUploads();
             foreach ($usedImages as $file => $val) {
                 if ($useDummy == "true") {
                     //only use dummy images
                 } else {
                     //use the real images
                     $zip->addFile($upload_dir . $file, 'images/' . $file);
                 }
             }
         }
         $zip->addFromString("slider_export.txt", $strExport);
         //add slider settings
         if (strlen(trim($animations)) > 0) {
             $zip->addFromString("custom_animations.txt", $animations);
         }
         //add custom animations
         if (strlen(trim($styles)) > 0) {
             $zip->addFromString("dynamic-captions.css", $styles);
         }
         //add dynamic styles
         //$zip->addFromString("custom_animations.txt", $strExportAnim); //add custom animations
         //$zip->addFile(GlobalsRevSlider::$filepath_dynamic_captions,'dynamic-captions.css'); //add dynamic styles
         $zip->addFile(GlobalsRevSlider::$filepath_static_captions, 'static-captions.css');
         //add static styles
         $zip->close();
         header("Content-type: application/zip");
         header("Content-Disposition: attachment; filename=" . $exportname);
         header("Pragma: no-cache");
         header("Expires: 0");
         readfile(GlobalsRevSlider::$urlExportZip);
         @unlink(GlobalsRevSlider::$urlExportZip);
         //delete file after sending it to user
     } else {
         //fallback, do old export
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport();
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         $strExport = serialize($arrSliderExport);
         if (!empty($this->alias)) {
             $filename = $this->alias . ".txt";
         } else {
             $filename = "slider_export.txt";
         }
         UniteFunctionsRev::downloadFile($strExport, $filename);
     }
 }
 /**
  *
  * update dynamic-captions css file content
  */
 public static function updateDynamicCaptions($full = false)
 {
     if ($full) {
         $captions = array();
         $captions = RevOperations::getCaptionsContentArray();
         $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         //write styles into dynamic css
         //UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
     } else {
         //go through all sliders and check which classes are used, get all classes from DB and write them into the file
         $slider = new RevSlider();
         $arrSliders = $slider->getArrSliders();
         $classes = array();
         //get used classes
         if (!empty($arrSliders)) {
             foreach ($arrSliders as $slider) {
                 try {
                     $slides = $slider->getSlides();
                     if (!empty($slides)) {
                         foreach ($slides as $slide) {
                             $layers = $slide->getLayers();
                             if (!empty($layers)) {
                                 foreach ($layers as $layer) {
                                     if (isset($layer['style'])) {
                                         if (!empty($layer['style'])) {
                                             $classes[$layer['style']] = true;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } catch (Exception $e) {
                     $errorMessage = "ERROR: " . $e->getMessage();
                 }
             }
         }
         if (!empty($classes)) {
             $captions = array();
             foreach ($classes as $class => $val) {
                 $captionCheck = RevOperations::getCaptionsContentArray($class);
                 if (!empty($captionCheck)) {
                     $captions[] = $captionCheck;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
             //write styles into dynamic css
             //UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
         }
     }
 }
Exemple #3
0
}
require self::getSettingsFilePath("slide_settings");
require self::getSettingsFilePath("layer_settings");
//add tools.min.js
self::addScript("jquery.themepunch.tools.min", "rs-plugin/js", 'tp-tools');
$settingsLayerOutput = new UniteSettingsProductSidebarRev();
$settingsSlideOutput = new UniteSettingsRevProductRev();
$arrLayers = $slide->getLayers();
$loadGoogleFont = $slider->getParam("load_googlefont", "false");
//get settings objects
$settingsLayer = self::getSettings("layer_settings");
$settingsSlide = self::getSettings("slide_settings");
$cssContent = self::getSettings("css_captions_content");
$arrCaptionClasses = $operations->getArrCaptionClasses($cssContent);
$arrFontFamily = $operations->getArrFontFamilys($slider);
$arrCSS = $operations->getCaptionsContentArray();
$arrButtonClasses = $operations->getButtonClasses();
$urlCaptionsCSS = GlobalsRevSlider::$urlCaptionsCSS;
$arrAnim = $operations->getFullCustomAnimations();
//set layer caption as first caption class
$firstCaption = !empty($arrCaptionClasses) ? $arrCaptionClasses[0] : "";
$settingsLayer->updateSettingValue("layer_caption", $firstCaption);
//set stored values from "slide params"
$settingsSlide->setStoredValues($slideParams);
//init the settings output object
$settingsLayerOutput->init($settingsLayer);
$settingsSlideOutput->init($settingsSlide);
//set various parameters needed for the page
$width = $sliderParams["width"];
$height = $sliderParams["height"];
$imageUrl = $slide->getImageUrl();
Exemple #4
0
 /**
  * Constructor
  */
 public function __construct()
 {
     parent::__construct();
     //get input
     $slideID = $this->getRequest()->getParam('id');
     //init slide object
     $slide = new RevSlide();
     $slide->initByID($slideID);
     $slideParams = $slide->getParams();
     $operations = new RevOperations();
     //init slider object
     $sliderID = $slide->getSliderID();
     $slider = new RevSlider();
     $slider->initByID($sliderID);
     $sliderParams = $slider->getParams();
     $arrSlideNames = $slider->getArrSlideNames();
     //check if slider is template
     $sliderTemplate = $slider->getParam("template", "false");
     //set slide delay
     $sliderDelay = $slider->getParam("delay", "9000");
     $slideDelay = $slide->getParam("delay", "");
     if (empty($slideDelay)) {
         $slideDelay = $sliderDelay;
     }
     require $this->getSettingsFilePath("slide_settings");
     require $this->getSettingsFilePath("layer_settings");
     $settingsLayerOutput = new UniteSettingsProductSidebarRev();
     $settingsSlideOutput = new UniteSettingsRevProductRev();
     $arrLayers = $slide->getLayers();
     $loadGoogleFont = $slider->getParam("load_googlefont", "false");
     //get settings objects
     $settingsLayer = $this->getSettings("layer_settings");
     $settingsSlide = $this->getSettings("slide_settings");
     $cssContent = $this->getSettings("css_captions_content");
     $arrCaptionClasses = $operations->getArrCaptionClasses($cssContent);
     $arrFontFamily = $operations->getArrFontFamilys($slider);
     $arrCSS = $operations->getCaptionsContentArray();
     $arrButtonClasses = $operations->getButtonClasses();
     $urlCaptionsCSS = GlobalsRevSlider::$urlCaptionsCSS;
     $arrAnim = $operations->getFullCustomAnimations();
     //set layer caption as first caption class
     $firstCaption = !empty($arrCaptionClasses) ? $arrCaptionClasses[0] : "";
     $settingsLayer->updateSettingValue("layer_caption", $firstCaption);
     //set stored values from "slide params"
     $settingsSlide->setStoredValues($slideParams);
     //init the settings output object
     $settingsLayerOutput->init($settingsLayer);
     $settingsSlideOutput->init($settingsSlide);
     //set various parameters needed for the page
     $width = $sliderParams["width"];
     $height = $sliderParams["height"];
     $imageUrl = $slide->getImageUrl();
     $imageID = $slide->getImageID();
     $imageFilename = $slide->getImageFilename();
     $style = "height:" . $height . "px;";
     //
     $divLayersWidth = "width:" . $width . "px;";
     $divbgminwidth = "min-width:" . $width . "px;";
     //set iframe parameters
     $iframeWidth = $width + 60;
     $iframeHeight = $height + 50;
     $iframeStyle = "width:" . $iframeWidth . "px;height:" . $iframeHeight . "px;";
     $closeUrl = $this->getViewUrl(RevSliderAdmin::VIEW_SLIDES, "id=" . $sliderID);
     $jsonLayers = UniteFunctionsRev::jsonEncodeForClientSide($arrLayers);
     $jsonCaptions = UniteFunctionsRev::jsonEncodeForClientSide($arrCaptionClasses);
     $jsonFontFamilys = UniteFunctionsRev::jsonEncodeForClientSide($arrFontFamily);
     $arrCssStyles = UniteFunctionsRev::jsonEncodeForClientSide($arrCSS);
     $arrCustomAnim = UniteFunctionsRev::jsonEncodeForClientSide($arrAnim);
     //bg type params
     $bgType = UniteFunctionsRev::getVal($slideParams, "background_type", "image");
     $slideBGColor = UniteFunctionsRev::getVal($slideParams, "slide_bg_color", "#E7E7E7");
     $divLayersClass = "slide_layers";
     $bgSolidPickerProps = 'class="inputColorPicker slide_bg_color disabled" disabled="disabled"';
     $bgFit = UniteFunctionsRev::getVal($slideParams, "bg_fit", "cover");
     $bgFitX = intval(UniteFunctionsRev::getVal($slideParams, "bg_fit_x", "100"));
     $bgFitY = intval(UniteFunctionsRev::getVal($slideParams, "bg_fit_y", "100"));
     $bgPosition = UniteFunctionsRev::getVal($slideParams, "bg_position", "center top");
     $bgPositionX = intval(UniteFunctionsRev::getVal($slideParams, "bg_position_x", "0"));
     $bgPositionY = intval(UniteFunctionsRev::getVal($slideParams, "bg_position_y", "0"));
     $bgEndPosition = UniteFunctionsRev::getVal($slideParams, "bg_end_position", "center top");
     $bgEndPositionX = intval(UniteFunctionsRev::getVal($slideParams, "bg_end_position_x", "0"));
     $bgEndPositionY = intval(UniteFunctionsRev::getVal($slideParams, "bg_end_position_y", "0"));
     $kenburn_effect = UniteFunctionsRev::getVal($slideParams, "kenburn_effect", "off");
     $kb_duration = UniteFunctionsRev::getVal($slideParams, "kb_duration", $sliderParams["delay"]);
     $kb_easing = UniteFunctionsRev::getVal($slideParams, "kb_easing", "Linear.easeNone");
     $kb_start_fit = UniteFunctionsRev::getVal($slideParams, "kb_start_fit", "100");
     $kb_end_fit = UniteFunctionsRev::getVal($slideParams, "kb_end_fit", "100");
     $bgRepeat = UniteFunctionsRev::getVal($slideParams, "bg_repeat", "no-repeat");
     $slideBGExternal = UniteFunctionsRev::getVal($slideParams, "slide_bg_external", "");
     $style_wrapper = '';
     $class_wrapper = '';
     switch ($bgType) {
         case "trans":
             $divLayersClass = "slide_layers";
             $class_wrapper = "trans_bg";
             break;
         case "solid":
             $style_wrapper .= "background-color:" . $slideBGColor . ";";
             $bgSolidPickerProps = 'class="inputColorPicker slide_bg_color" style="background-color:' . $slideBGColor . '"';
             break;
         case "image":
             $style_wrapper .= "background-image:url('" . $imageUrl . "');";
             if ($bgFit == 'percentage') {
                 $style_wrapper .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;';
             } else {
                 $style_wrapper .= "background-size: " . $bgFit . ";";
             }
             if ($bgPosition == 'percentage') {
                 $style_wrapper .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;';
             } else {
                 $style_wrapper .= "background-position: " . $bgPosition . ";";
             }
             $style_wrapper .= "background-repeat: " . $bgRepeat . ";";
             break;
         case "external":
             $style_wrapper .= "background-image:url('" . $slideBGExternal . "');";
             if ($bgFit == 'percentage') {
                 $style_wrapper .= "background-size: " . $bgFitX . '% ' . $bgFitY . '%;';
             } else {
                 $style_wrapper .= "background-size: " . $bgFit . ";";
             }
             if ($bgPosition == 'percentage') {
                 $style_wrapper .= "background-position: " . $bgPositionX . '% ' . $bgPositionY . '%;';
             } else {
                 $style_wrapper .= "background-position: " . $bgPosition . ";";
             }
             $style_wrapper .= "background-repeat: " . $bgRepeat . ";";
             break;
     }
     $slideTitle = $slide->getParam("title", "Slide");
     $slideOrder = $slide->getOrder();
     $this->assign('loadGoogleFont', $loadGoogleFont)->assign('settingsLayerOutput', $settingsLayerOutput)->assign('slider', $slider)->assign('slide', $slide)->assign('sliderTemplate', $sliderTemplate)->assign('slideOrder', $slideOrder)->assign('slideTitle', $slideTitle)->assign('slideDelay', $slideDelay)->assign('sliderParams', $sliderParams)->assign('arrSlideNames', $arrSlideNames)->assign('arrCustomAnim', $arrCustomAnim)->assign('slideID', $slideID)->assign('sliderID', $sliderID)->assign('settingsSlideOutput', $settingsSlideOutput)->assign('imageUrl', $imageUrl)->assign('imageID', $imageID)->assign('bgType', $bgType)->assign('slideBGColor', $slideBGColor)->assign('divLayersClass', $divLayersClass)->assign('bgSolidPickerProps', $bgSolidPickerProps)->assign('bgFit', $bgFit)->assign('bgFitX', $bgFitX)->assign('bgFitY', $bgFitY)->assign('bgRepeat', $bgRepeat)->assign('bgPosition', $bgPosition)->assign('bgPositionX', $bgPositionX)->assign('bgPositionY', $bgPositionY)->assign('bgEndPosition', $bgEndPosition)->assign('bgEndPositionX', $bgEndPositionX)->assign('bgEndPositionY', $bgEndPositionY)->assign('slideBGExternal', $slideBGExternal)->assign('slideBGColor', $slideBGColor)->assign('style', $style)->assign('iframeStyle', $iframeStyle)->assign('closeUrl', $closeUrl)->assign('jsonLayers', $jsonLayers)->assign('jsonCaptions', $jsonCaptions)->assign('jsonFontFamilys', $jsonFontFamilys)->assign('arrCssStyles', $arrCssStyles)->assign('arrButtonClasses', $arrButtonClasses)->assign('urlCaptionsCSS', $urlCaptionsCSS)->assign('divLayersWidth', $divLayersWidth)->assign('divbgminwidth', $divbgminwidth)->assign('style_wrapper', $style_wrapper)->assign('class_wrapper', $class_wrapper)->assign('kenburn_effect', $kenburn_effect)->assign('kb_duration', $kb_duration)->assign('kb_easing', $kb_easing)->assign('kb_start_fit', $kb_start_fit)->assign('kb_end_fit', $kb_end_fit);
 }
 /**
  *
  * export slider from data, output a file for download
  */
 public function exportSlider($useDummy = false)
 {
     $export_zip = true;
     if (function_exists("unzip_file") == false) {
         if (UniteZipRev::isZipExists() == false) {
             $export_zip = false;
         }
     }
     if (!class_exists('ZipArchive')) {
         $export_zip = false;
     }
     if ($export_zip) {
         $zip = new ZipArchive();
         $success = $zip->open(GlobalsRevSlider::$urlExportZip, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE);
         if ($success !== true) {
             throwError("Can't create zip file: " . GlobalsRevSlider::$urlExportZip);
         }
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport($useDummy);
         $arrStaticSlide = $this->getStaticSlideForExport($useDummy);
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         if ($useDummy == 'true') {
             $upload_dir = wp_upload_dir();
             $arrSliderExport = $this->recursive_preg_replace('#^uploads#', $upload_dir['baseurl'], $arrSliderExport);
         }
         if (!empty($arrStaticSlide)) {
             $arrSliderExport['static_slides'] = $arrStaticSlide;
         }
         $strExport = serialize($arrSliderExport);
         //$strExportAnim = serialize(RevOperations::getFullCustomAnimations());
         $exportname = !empty($this->alias) ? $this->alias . '.zip' : "slider_export.zip";
         $usedCaptions = array();
         $usedAnimations = array();
         $usedImages = array();
         if (!empty($arrSlides) && count($arrSlides) > 0) {
             foreach ($arrSlides as $key => $slide) {
                 if (isset($slide['params']['image']) && $slide['params']['image'] != '') {
                     $usedImages[$slide['params']['image']] = true;
                 }
                 //['params']['image'] background url
                 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 (!empty($arrStaticSlide) && count($arrStaticSlide) > 0) {
             foreach ($arrStaticSlide as $key => $slide) {
                 if (isset($slide['params']['image']) && $slide['params']['image'] != '') {
                     $usedImages[$slide['params']['image']] = true;
                 }
                 //['params']['image'] background url
                 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
                     }
                 }
             }
         }
         $styles = '';
         if (!empty($usedCaptions)) {
             $captions = array();
             foreach ($usedCaptions as $class => $val) {
                 $cap = RevOperations::getCaptionsContentArray($class);
                 if (!empty($cap)) {
                     $captions[] = $cap;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n", false);
         }
         $animations = '';
         if (!empty($usedAnimations)) {
             $animation = array();
             foreach ($usedAnimations as $anim => $val) {
                 $anima = RevOperations::getFullCustomAnimationByID($anim);
                 if ($anima !== false) {
                     $animation[] = RevOperations::getFullCustomAnimationByID($anim);
                 }
             }
             if (!empty($animation)) {
                 $animations = serialize($animation);
             }
         }
         //add images to zip
         if (!empty($usedImages)) {
             $upload_dir = UniteFunctionsWPRev::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) {
                         $checkpath = str_replace(array($cont_url, $cont_url_no_www), '', $file);
                         if (is_file($upload_dir . $checkpath)) {
                             $zip->addFile($upload_dir . $checkpath, 'images/' . $checkpath);
                         } elseif (is_file($upload_dir_multisiteless . $checkpath)) {
                             $zip->addFile($upload_dir_multisiteless . $checkpath, 'images/' . $checkpath);
                         }
                     } else {
                         if (is_file($upload_dir . $file)) {
                             $zip->addFile($upload_dir . $file, 'images/' . $file);
                         } elseif (is_file($upload_dir_multisiteless . $file)) {
                             $zip->addFile($upload_dir_multisiteless . $file, 'images/' . $file);
                         }
                     }
                 }
             }
         }
         $zip->addFromString("slider_export.txt", $strExport);
         //add slider settings
         if (strlen(trim($animations)) > 0) {
             $zip->addFromString("custom_animations.txt", $animations);
         }
         //add custom animations
         if (strlen(trim($styles)) > 0) {
             $zip->addFromString("dynamic-captions.css", $styles);
         }
         //add dynamic styles
         $static_css = RevOperations::getStaticCss();
         $zip->addFromString("static-captions.css", $static_css);
         //add slider settings
         $zip->close();
         header("Content-type: application/zip");
         header("Content-Disposition: attachment; filename=" . $exportname);
         header("Pragma: no-cache");
         header("Expires: 0");
         readfile(GlobalsRevSlider::$urlExportZip);
         @unlink(GlobalsRevSlider::$urlExportZip);
         //delete file after sending it to user
     } else {
         //fallback, do old export
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport();
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         $strExport = serialize($arrSliderExport);
         if (!empty($this->alias)) {
             $filename = $this->alias . ".txt";
         } else {
             $filename = "slider_export.txt";
         }
         UniteFunctionsRev::downloadFile($strExport, $filename);
     }
 }
 public function exportSlider($useDummy = false)
 {
     $export_zip = true;
     if (function_exists("unzip_file") == false) {
         if (UniteZipRev::isZipExists() == false) {
             $export_zip = false;
         }
     }
     if (!class_exists('ZipArchive')) {
         $export_zip = false;
     }
     if ($export_zip) {
         $zip = new ZipArchive();
         // $success = $zip->open(GlobalsRevSlider::$urlExportZip, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE);
         $success = $zip->open(GlobalsRevSlider::$urlExportZip, ZipArchive::OVERWRITE);
         if ($success !== true) {
             throwError("Can't create zip file: " . GlobalsRevSlider::$urlExportZip);
         }
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport($useDummy);
         $arrStaticSlide = $this->getStaticSlideForExport($useDummy);
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         if (!empty($arrStaticSlide)) {
             $arrSliderExport['static_slides'] = $arrStaticSlide;
         }
         $strExport = serialize($arrSliderExport);
         $exportname = !empty($this->alias) ? $this->alias . '.zip' : "slider_export.zip";
         $usedCaptions = array();
         $usedAnimations = array();
         $usedImages = array();
         if (!empty($arrSlides) && count($arrSlides) > 0) {
             foreach ($arrSlides as $key => $slide) {
                 if (isset($slide['params']['image']) && $slide['params']['image'] != '') {
                     $usedImages[$slide['params']['image']] = true;
                 }
                 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;
                         }
                     }
                 }
             }
         }
         if (!empty($arrStaticSlide) && count($arrStaticSlide) > 0) {
             foreach ($arrStaticSlide as $key => $slide) {
                 if (isset($slide['params']['image']) && $slide['params']['image'] != '') {
                     $usedImages[$slide['params']['image']] = true;
                 }
                 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;
                         }
                     }
                 }
             }
         }
         $styles = '';
         if (!empty($usedCaptions)) {
             $captions = array();
             foreach ($usedCaptions as $class => $val) {
                 $cap = RevOperations::getCaptionsContentArray($class);
                 if (!empty($cap)) {
                     $captions[] = $cap;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         }
         $animations = '';
         if (!empty($usedAnimations)) {
             $animation = array();
             foreach ($usedAnimations as $anim => $val) {
                 $anima = RevOperations::getFullCustomAnimationByID($anim);
                 if ($anima !== false) {
                     $animation[] = RevOperations::getFullCustomAnimationByID($anim);
                 }
             }
             if (!empty($animation)) {
                 $animations = serialize($animation);
             }
         }
         if (!empty($usedImages)) {
             // $upload_dir = UniteFunctionsWPRev::getPathUploads();
             $upload_dir = get_mainsite_dir();
             foreach ($usedImages as $file => $val) {
                 if ($useDummy == "true") {
                 } else {
                     if (strpos($file, 'http') !== false) {
                     } else {
                         if (is_file($upload_dir . $file)) {
                             $zip->addFile(realpath($upload_dir . $file), 'images/' . $file);
                         }
                     }
                 }
             }
         }
         $zip->addFromString("slider_export.txt", $strExport);
         if (strlen(trim($animations)) > 0) {
             $zip->addFromString("custom_animations.txt", $animations);
         }
         if (strlen(trim($styles)) > 0) {
             $zip->addFromString("dynamic-captions.css", $styles);
         }
         $static_css = RevOperations::getStaticCss();
         $zip->addFromString("static-captions.css", $static_css);
         $zip->close();
         header("Content-type: application/zip");
         header("Content-Disposition: attachment; filename=" . $exportname);
         header("Pragma: no-cache");
         header("Expires: 0");
         readfile(GlobalsRevSlider::$urlExportZip);
         @unlink(GlobalsRevSlider::$urlExportZip);
     } else {
         $this->validateInited();
         $sliderParams = $this->getParamsForExport();
         $arrSlides = $this->getSlidesForExport();
         $arrSliderExport = array("params" => $sliderParams, "slides" => $arrSlides);
         $strExport = serialize($arrSliderExport);
         if (!empty($this->alias)) {
             $filename = $this->alias . ".txt";
         } else {
             $filename = "slider_export.txt";
         }
         UniteFunctionsRev::downloadFile($strExport, $filename);
     }
 }
 public static function updateDynamicCaptions($full = false)
 {
     if ($full) {
         $captions = array();
         $captions = RevOperations::getCaptionsContentArray();
         $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
     } else {
         $slider = new RevSlider();
         $arrSliders = $slider->getArrSliders();
         $classes = array();
         if (!empty($arrSliders)) {
             foreach ($arrSliders as $slider) {
                 try {
                     $slides = $slider->getSlides();
                     if (!empty($slides)) {
                         foreach ($slides as $slide) {
                             $layers = $slide->getLayers();
                             if (!empty($layers)) {
                                 foreach ($layers as $layer) {
                                     if (isset($layer['style'])) {
                                         if (!empty($layer['style'])) {
                                             $classes[$layer['style']] = true;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } catch (Exception $e) {
                     $errorMessage = "ERROR: " . $e->getMessage();
                 }
             }
         }
         if (!empty($classes)) {
             $captions = array();
             foreach ($classes as $class => $val) {
                 $captionCheck = RevOperations::getCaptionsContentArray($class);
                 if (!get_magic_quotes_gpc()) {
                     $captionCheck = str_replace('"', "'", $captionCheck);
                 } else {
                     $captionCheck = str_replace('"', "'", $captionCheck);
                     $captionCheck = str_replace('\\\\', "", $captionCheck);
                 }
                 if (!empty($captionCheck)) {
                     $captions[] = $captionCheck;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
             UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
         }
     }
 }