Example #1
0
<?php

//get input
$slideID = UniteFunctionsRev::getGetVar("id");
//init slide object
$slide = new RevSlide();
$slide->initByID($slideID);
$slideParams = $slide->getParams();
//dmp($slideParams);exit();
$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 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();
Example #2
0
 /**
  * 
  * add language (add slide that connected to current slide) from data
  */
 private function addLangFromData($data)
 {
     $sliderID = RevSliderFunctions::getVal($data, "sliderid");
     $slideID = RevSliderFunctions::getVal($data, "slideid");
     $lang = RevSliderFunctions::getVal($data, "lang");
     //duplicate slide
     $slider = new RevSlider();
     $slider->initByID($sliderID);
     $newSlideID = $slider->duplicateSlide($slideID);
     //update new slide
     $this->initByID($newSlideID);
     $arrUpdate = array();
     $arrUpdate["lang"] = $lang;
     $arrUpdate["parentid"] = $slideID;
     $this->updateParamsInDB($arrUpdate);
     $urlIcon = RevSliderWpml::getFlagUrl($lang);
     $title = RevSliderWpml::getLangTitle($lang);
     $newSlide = new RevSlide();
     $newSlide->initByID($slideID);
     $arrLangCodes = $newSlide->getArrChildLangCodes();
     $isAll = RevSliderWpml::isAllLangsInArray($arrLangCodes);
     $html = "<li>\r\n\t\t\t\t\t<img id=\"icon_lang_" . $newSlideID . "\" class=\"icon_slide_lang\" src=\"" . $urlIcon . "\" title=\"" . $title . "\" data-slideid=\"" . $newSlideID . "\" data-lang=\"" . $lang . "\">\r\n\t\t\t\t\t<div class=\"icon_lang_loader loader_round\" style=\"display:none\"></div>\t\t\t\t\t\t\t\t\r\n\t\t\t\t</li>";
     $response = array();
     $response["operation"] = "add";
     $response["isAll"] = $isAll;
     $response["html"] = $html;
     return $response;
 }
 /**
  * 
  * get slides of the current slider
  */
 public function getSlides()
 {
     $this->validateInited();
     $arrSlides = array();
     $arrSlideRecords = $this->db->fetch(GlobalsRevSlider::$table_slides, "slider_id=" . $this->id, "slide_order");
     foreach ($arrSlideRecords as $record) {
         $slide = new RevSlide();
         $slide->initByData($record);
         $arrSlides[] = $slide;
     }
     $this->arrSlides = $arrSlides;
     return $arrSlides;
 }
 /**
  * 
  * get slides of the current slider
  */
 public function getSlidesFromGallery($publishedOnly = false)
 {
     $this->validateInited();
     $arrSlides = array();
     $arrSlideRecords = $this->db->fetch(GlobalsRevSlider::$table_slides, "slider_id=" . $this->id, "slide_order");
     $arrChildren = array();
     foreach ($arrSlideRecords as $record) {
         $slide = new RevSlide();
         $slide->initByData($record);
         $slideID = $slide->getID();
         $arrIdsAssoc[$slideID] = true;
         if ($publishedOnly == true) {
             $state = $slide->getParam("state", "published");
             if ($state == "unpublished") {
                 continue;
             }
         }
         $parentID = $slide->getParam("parentid", "");
         if (!empty($parentID)) {
             $lang = $slide->getParam("lang", "");
             if (!isset($arrChildren[$parentID])) {
                 $arrChildren[$parentID] = array();
             }
             $arrChildren[$parentID][] = $slide;
             continue;
             //skip adding to main list
         }
         //init the children array
         $slide->setArrChildren(array());
         $arrSlides[$slideID] = $slide;
     }
     //add children array to the parent slides
     foreach ($arrChildren as $parentID => $arr) {
         if (!isset($arrSlides[$parentID])) {
             continue;
         }
         $arrSlides[$parentID]->setArrChildren($arr);
     }
     $this->arrSlides = $arrSlides;
     return $arrSlides;
 }
Example #5
0
<?php

//get input
$slideID = UniteFunctionsRev::getGetVar("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();
//set slide delay
$sliderDelay = $slider->getParam("delay", "9000");
$slideDelay = $slide->getParam("delay", "");
if (empty($slideDelay)) {
    $slideDelay = $sliderDelay;
}
require self::getSettingsFilePath("slide_settings");
require self::getSettingsFilePath("layer_settings");
$settingsLayerOutput = new UniteSettingsProductSidebarRev();
$settingsSlideOutput = new UniteSettingsRevProductRev();
$arrLayers = $slide->getLayers();
//get settings objects
$settingsLayer = self::getSettings("layer_settings");
$settingsSlide = self::getSettings("slide_settings");
$cssContent = self::getSettings("css_captions_content");
$arrCaptionClasses = $operations->getArrCaptionClasses($cssContent);
$arrButtonClasses = $operations->getButtonClasses();
Example #6
0
 /**
  * 
  * onAjax action handler
  */
 public static function onAjaxAction()
 {
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevOperations();
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     try {
         switch ($action) {
             case "export_slider":
                 $sliderID = self::getGetVar("sliderid");
                 $slider->initByID($sliderID);
                 $slider->exportSlider();
                 break;
             case "import_slider":
                 self::importSliderHandle();
                 break;
             case "create_slider":
                 $newSliderID = $slider->createSliderFromOptions($data);
                 self::ajaxResponseSuccessRedirect("The slider successfully created", self::getViewUrl("sliders"));
                 break;
             case "update_slider":
                 $slider->updateSliderFromOptions($data);
                 self::ajaxResponseSuccess("Slider updated");
                 break;
             case "delete_slider":
                 $slider->deleteSliderFromData($data);
                 self::ajaxResponseSuccessRedirect("The slider deleted", self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "duplicate_slider":
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect("The duplicate successfully, refreshing page...", self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
                 $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 self::ajaxResponseSuccessRedirect("Slide Created", self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "update_slide":
                 $slide->updateSlideFromData($data);
                 self::ajaxResponseSuccess("Slide updated");
                 break;
             case "delete_slide":
                 $slide->deleteSlideFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
                 self::ajaxResponseSuccessRedirect("Slide Deleted Successfully", self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "duplicate_slide":
                 $sliderID = $slider->duplicateSlideFromData($data);
                 self::ajaxResponseSuccessRedirect("Slide Duplicated Successfully", self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "get_captions_css":
                 $contentCSS = $operations->getCaptionsContent();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 self::ajaxResponseSuccess("CSS file saved succesfully!", array("arrCaptions" => $arrCaptions));
                 break;
             case "restore_captions_css":
                 $operations->restoreCaptionsCss();
                 $contentCSS = $operations->getCaptionsContent();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "update_slides_order":
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess("Order updated successfully");
                 break;
             case "change_slide_image":
                 $slide->updateSlideImageFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect("Slide Changed Successfully", self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
             case "preview_slider":
                 $sliderID = UniteFunctionsRev::getPostVariable("sliderid");
                 $operations->previewOutput($sliderID);
                 break;
             default:
                 self::ajaxResponseError("wrong ajax action: {$action} ");
                 break;
         }
     } catch (Exception $e) {
         $message = $e->getMessage();
         self::ajaxResponseError($message);
     }
     //it's an ajax action, so exit
     self::ajaxResponseError("No response output on <b> {$action} </b> action. please check with the developer.");
     exit;
 }
Example #7
0
 /**
  * 
  * onAjax action handler
  */
 public static function onAjaxAction()
 {
     $actionIndicator = self::getPostGetVar("action");
     if ($actionIndicator != "uniterevolution_ajax_action") {
         return false;
     }
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     $nonce = self::getPostGetVar("nonce");
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevOperations();
     try {
         //verify the nonce
         $isVerified = wp_verify_nonce($nonce, "revslider_actions");
         if ($isVerified == false) {
             UniteFunctionsRev::throwError("Wrong request");
         }
         switch ($action) {
             case "export_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $sliderID = self::getGetVar("sliderid");
                 $dummy = self::getGetVar("dummy");
                 $slider->initByID($sliderID);
                 $slider->exportSlider($dummy);
                 break;
             case "import_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle(null, $updateAnim, $updateStatic);
                 break;
             case "import_slider_slidersview":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle($viewBack, $updateAnim, $updateStatic);
                 break;
             case "create_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 $newSliderID = $slider->createSliderFromOptions($data, $settingsMain, $settingsParams);
                 self::ajaxResponseSuccessRedirect(__ug("The slider successfully created", REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders"));
                 break;
             case "update_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_SETTINGS);
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 $slider->updateSliderFromOptions($data, $settingsMain, $settingsParams);
                 self::ajaxResponseSuccess(__ug("Slider updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $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: " . $isDeleted);
                 } else {
                     self::ajaxResponseSuccessRedirect(__ug("The slider deleted", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 }
                 break;
             case "duplicate_slider":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__ug("The duplicate successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $numSlides = $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 if ($numSlides == 1) {
                     $responseText = __ug("Slide Created", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $responseText = $numSlides . " " . __ug("Slides Created", REVSLIDER_TEXTDOMAIN);
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}");
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "add_slide_fromslideview":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $slideID = $slider->createSlideFromData($data, true);
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id={$slideID}");
                 $responseText = __ug("Slide Created, redirecting...", REVSLIDER_TEXTDOMAIN);
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "update_slide":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_EDIT_SLIDE);
                 require self::getSettingsFilePath("slide_settings");
                 $slide->updateSlideFromData($data, $slideSettings);
                 self::ajaxResponseSuccess(__ug("Slide updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slide":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $isPost = $slide->deleteSlideFromData($data);
                 if ($isPost) {
                     $message = __ug("Post Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $message = __ug("Slide Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 }
                 $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
                 self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "update_static_slide":
                 $slide->updateStaticSlideFromData($data);
                 self::ajaxResponseSuccess(__ug("Static Global Layers updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "duplicate_slide":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $sliderID = $slider->duplicateSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__ug("Slide Duplicated Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "copy_move_slide":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $sliderID = $slider->copyMoveSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__ug("The operation successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 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);
                 self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "delete_captions_css":
                 $arrCaptions = $operations->deleteCaptionsContentData($data);
                 self::ajaxResponseSuccess(__ug("Style deleted succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_static_css":
                 $staticCss = $operations->updateStaticCss($data);
                 self::ajaxResponseSuccess(__ug("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("css" => $staticCss));
                 break;
             case "insert_custom_anim":
                 $arrAnims = $operations->insertCustomAnim($data);
                 //$arrCaptions =
                 self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_custom_anim":
                 $arrAnims = $operations->updateCustomAnim($data);
                 self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "delete_custom_anim":
                 $arrAnims = $operations->deleteCustomAnim($data);
                 self::ajaxResponseSuccess(__ug("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_slides_order":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess(__ug("Order updated successfully", REVSLIDER_TEXTDOMAIN));
                 break;
             case "change_slide_image":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $slide->updateSlideImageFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect(__ug("Slide Changed Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
             case "preview_slider":
                 $sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
                 $do_markup = UniteFunctionsRev::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 "slide_lang_operation":
                 $responseData = $slide->doSlideLangOperation($data);
                 self::ajaxResponseData($responseData);
                 break;
             case "update_plugin":
                 self::updatePlugin(self::DEFAULT_VIEW);
                 break;
             case "update_text":
                 self::updateSettingsText();
                 self::ajaxResponseSuccess(__ug("All files successfully updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_general_settings":
                 $operations->updateGeneralSettings($data);
                 self::ajaxResponseSuccess(__ug("General settings updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_posts_sortby":
                 $slider->updatePostsSortbyFromData($data);
                 self::ajaxResponseSuccess(__ug("Sortby updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "replace_image_urls":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDER_OPERATIONS);
                 $slider->replaceImageUrlsFromData($data);
                 self::ajaxResponseSuccess(__ug("Image urls replaced", REVSLIDER_TEXTDOMAIN));
                 break;
             case "reset_slide_settings":
                 RevOperations::validatePermission(GlobalsRevSlider::PERMISSION_SLIDE_OPERATIONS);
                 $slider->resetSlideSettings($data);
                 self::ajaxResponseSuccess(__ug("Settings in all Slides changed", REVSLIDER_TEXTDOMAIN));
                 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 <b> {$action} </b> action. please check with the developer.");
     exit;
 }
 /**
  * 
  * onAjax action handler
  */
 public static function onAjaxAction()
 {
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevOperations();
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     try {
         switch ($action) {
             case "export_slider":
                 $sliderID = self::getGetVar("sliderid");
                 $slider->initByID($sliderID);
                 $slider->exportSlider();
                 break;
             case "import_slider":
                 self::importSliderHandle();
                 break;
             case "import_slider_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 self::importSliderHandle($viewBack);
                 break;
             case "create_slider":
                 $newSliderID = $slider->createSliderFromOptions($data);
                 self::ajaxResponseSuccessRedirect(__("The slider successfully created", REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders"));
                 break;
             case "update_slider":
                 $slider->updateSliderFromOptions($data);
                 self::ajaxResponseSuccess(__("Slider updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slider":
                 $slider->deleteSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The slider deleted", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "duplicate_slider":
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The duplicate successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
                 $numSlides = $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 if ($numSlides == 1) {
                     $responseText = __("Slide Created", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $responseText = $numSlides . " " . __("Slides Created", REVSLIDER_TEXTDOMAIN);
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDES, "id={$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_TEXTDOMAIN);
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "update_slide":
                 $slide->updateSlideFromData($data);
                 self::ajaxResponseSuccess(__("Slide updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slide":
                 $slide->deleteSlideFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
                 self::ajaxResponseSuccessRedirect(__("Slide Deleted Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "duplicate_slide":
                 $sliderID = $slider->duplicateSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("Slide Duplicated Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "copy_move_slide":
                 $sliderID = $slider->copyMoveSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The operation successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "get_captions_css":
                 $contentCSS = $operations->getCaptionsContent();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 self::ajaxResponseSuccess(__("CSS file saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "restore_captions_css":
                 $operations->restoreCaptionsCss();
                 $contentCSS = $operations->getCaptionsContent();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "update_slides_order":
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess(__("Order updated successfully", REVSLIDER_TEXTDOMAIN));
                 break;
             case "change_slide_image":
                 $slide->updateSlideImageFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect(__("Slide Changed Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
             case "preview_slider":
                 $sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
                 $operations->previewOutput($sliderID);
                 break;
             case "toggle_slide_state":
                 $currentState = $slide->toggleSlideStatFromData($data);
                 self::ajaxResponseData(array("state" => $currentState));
                 break;
             case "slide_lang_operation":
                 $responseData = $slide->doSlideLangOperation($data);
                 self::ajaxResponseData($responseData);
                 break;
             case "update_plugin":
                 self::updatePlugin(self::DEFAULT_VIEW);
                 break;
             case "update_text":
                 self::updateSettingsText();
                 self::ajaxResponseSuccess("All files successfully updated");
                 break;
             case "update_general_settings":
                 $operations->updateGeneralSettings($data);
                 self::ajaxResponseSuccess(__("General settings updated"));
                 break;
             default:
                 self::ajaxResponseError("wrong ajax action: {$action} ");
                 break;
         }
     } catch (Exception $e) {
         $message = $e->getMessage();
         self::ajaxResponseError($message);
     }
     //it's an ajax action, so exit
     self::ajaxResponseError("No response output on <b> {$action} </b> action. please check with the developer.");
     exit;
 }
 public static function include_custom_css()
 {
     $type = isset($_GET['view']) ? $_GET['view'] : '';
     $page = isset($_GET['page']) ? $_GET['page'] : '';
     if ($page !== 'slider' && $page !== 'revslider_navigation') {
         return false;
     }
     //showbiz fix
     $sliderID = '';
     switch ($type) {
         case 'slider':
             $sliderID = isset($_GET['id']) ? $_GET['id'] : '';
             break;
         case 'slide':
             $slideID = isset($_GET['id']) ? $_GET['id'] : '';
             if ($slideID == 'new') {
                 break;
             }
             $slide = new RevSlide();
             $slide->initByID($slideID);
             $sliderID = $slide->getSliderID();
             break;
         default:
             if (isset($_GET['slider'])) {
                 $sliderID = $_GET['slider'];
             }
             break;
     }
     $arrFieldsParams = array();
     if (!empty($sliderID)) {
         $slider = new RevSlider();
         $slider->initByID($sliderID);
         $settingsFields = $slider->getSettingsFields();
         $arrFieldsMain = $settingsFields['main'];
         $arrFieldsParams = $settingsFields['params'];
         $custom_css = @stripslashes($arrFieldsParams['custom_css']);
         $custom_css = RevSliderCssParser::compress_css($custom_css);
         echo '<style>' . $custom_css . '</style>';
     }
 }
 /**
  * 
  * get slides of the current slider
  */
 public function getSlides($publishedOnly = false)
 {
     $this->validateInited();
     $arrSlides = array();
     $arrSlideRecords = $this->db->fetch(GlobalsRevSlider::$table_slides, "slider_id=" . $this->id, "slide_order");
     foreach ($arrSlideRecords as $record) {
         $slide = new RevSlide();
         $slide->initByData($record);
         if ($publishedOnly == true) {
             $state = $slide->getParam("state", "published");
             if ($state == "unpublished") {
                 continue;
             }
         }
         $arrSlides[] = $slide;
     }
     $this->arrSlides = $arrSlides;
     return $arrSlides;
 }
    /**
     * 
     * put creative layer
     */
    private function putCreativeLayer(RevSlide $slide)
    {
        $layers = $slide->getLayers();
        if (empty($layers)) {
            return false;
        }
        ?>
				<?php 
        foreach ($layers as $layer) {
            $type = UniteFunctionsRev::getVal($layer, "type", "text");
            $class = UniteFunctionsRev::getVal($layer, "style");
            $animation = UniteFunctionsRev::getVal($layer, "animation", "fade");
            //set output class:
            $outputClass = "tp-caption " . trim($class);
            $outputClass = trim($outputClass) . " ";
            $outputClass .= trim($animation);
            $left = UniteFunctionsRev::getVal($layer, "left", 0);
            $top = UniteFunctionsRev::getVal($layer, "top", 0);
            $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
            $time = UniteFunctionsRev::getVal($layer, "time", 0);
            $easing = UniteFunctionsRev::getVal($layer, "easing", "easeOutExpo");
            $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation", "false");
            $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
            $text = UniteFunctionsRev::getVal($layer, "text");
            $htmlVideoAutoplay = "";
            //set html:
            $html = "";
            switch ($type) {
                default:
                case "text":
                    $html = $text;
                    $html = do_shortcode($html);
                    break;
                case "image":
                    $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                    $html = '<img src="' . $urlImage . '" alt="' . $text . '">';
                    $imageLink = UniteFunctionsRev::getVal($layer, "link", "");
                    if (!empty($imageLink)) {
                        $openIn = UniteFunctionsRev::getVal($layer, "link_open_in", "same");
                        $target = "";
                        if ($openIn == "new") {
                            $target = ' target="_blank"';
                        }
                        $html = '<a href="' . $imageLink . '"' . $target . '>' . $html . '</a>';
                    }
                    break;
                case "video":
                    $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
                    $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
                    $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
                    $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
                    switch ($videoType) {
                        case "youtube":
                            $html = "<iframe src='http://www.youtube.com/embed/{$videoID}?hd=1&amp;wmode=opaque&amp;controls=1&amp;showinfo=0;rel=0' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        case "vimeo":
                            $html = "<iframe src='http://player.vimeo.com/video/{$videoID}?title=0&amp;byline=0&amp;portrait=0' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        default:
                            UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                            break;
                    }
                    $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
                    if ($videoAutoplay == "true") {
                        $htmlVideoAutoplay = ' data-autoplay="true"';
                    }
                    break;
            }
            //handle end transitions:
            $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
            $htmlEnd = "";
            if (!empty($endTime)) {
                $htmlEnd = "data-end=\"{$endTime}\"";
                $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
                if (!empty($endSpeed)) {
                    $htmlEnd .= " data-endspeed=\"{$endSpeed}\"";
                }
                $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
                if (!empty($endSpeed) && $endEasing != "nothing") {
                    $htmlEnd .= " data-endeasing=\"{$endEasing}\"";
                }
                //add animation to class
                $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
                if (!empty($endAnimation) && $endAnimation != "auto") {
                    $outputClass .= " " . $endAnimation;
                }
            }
            //slide link
            $htmlLink = "";
            $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
            if (!empty($slideLink) && $slideLink != "nothing") {
                //get slide index from id
                if (is_numeric($slideLink)) {
                    $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
                }
                if (!empty($slideLink)) {
                    $htmlLink = " data-linktoslide=\"{$slideLink}\"";
                }
            }
            //hidden under resolution
            $htmlHidden = "";
            $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
            if ($layerHidden == "true") {
                $htmlHidden = ' data-captionhidden="on"';
            }
            $htmlParams = $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlHidden;
            ?>
				
				<div class="<?php 
            echo $outputClass;
            ?>
"  
					 data-x="<?php 
            echo $left;
            ?>
" 
					 data-y="<?php 
            echo $top;
            ?>
" 
					 data-speed="<?php 
            echo $speed;
            ?>
" 
					 data-start="<?php 
            echo $time;
            ?>
" 
					 data-easing="<?php 
            echo $easing;
            ?>
" <?php 
            echo $htmlParams;
            ?>
 ><?php 
            echo $html;
            ?>
</div>
				<?php 
        }
        ?>
			<?php 
    }
Example #12
0
 /**
  * put creative layer
  */
 private function putCreativeLayer(RevSlide $slide, $static_slide = false)
 {
     $layers = $slide->getLayers();
     $slider_type = $this->slider->getParam('slider-type');
     $icon_sets = RevSliderBase::set_icon_sets(array());
     $customAnimations = RevSliderOperations::getCustomAnimations('customin');
     //get all custom animations
     $customEndAnimations = RevSliderOperations::getCustomAnimations('customout');
     //get all custom animations
     $startAnimations = RevSliderOperations::getArrAnimations(false);
     //only get the standard animations
     $endAnimations = RevSliderOperations::getArrEndAnimations(false);
     //only get the standard animations
     $fullCustomAnims = RevSliderOperations::getFullCustomAnimations();
     $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';
     }
     $isTemplate = $this->slider->getParam('template', 'false');
     $enable_custom_size_notebook = $this->slider->getParam('enable_custom_size_notebook', 'off');
     $enable_custom_size_tablet = $this->slider->getParam('enable_custom_size_tablet', 'off');
     $enable_custom_size_iphone = $this->slider->getParam('enable_custom_size_iphone', 'off');
     $enabled_sizes = array('desktop' => 'on', 'notebook' => $enable_custom_size_notebook, 'tablet' => $enable_custom_size_tablet, 'mobile' => $enable_custom_size_iphone);
     $adv_resp_sizes = $enable_custom_size_notebook == 'on' || $enable_custom_size_tablet == 'on' || $enable_custom_size_iphone == 'on' ? true : false;
     $image_source_type = $this->slider->getParam('def-image_source_type', 'full');
     if (empty($layers)) {
         return false;
     }
     $zIndex = 5;
     $slideID = $slide->getID();
     $in_class_usage = array();
     foreach ($layers as $layer) {
         $unique_id = RevSliderFunctions::getVal($layer, 'unique_id');
         if ($unique_id == '') {
             $unique_id = $zIndex - 4;
         }
         //$visible = RevSliderFunctions::getVal($layer, 'visible', true);
         //if($visible == false) continue;
         $type = RevSliderFunctions::getVal($layer, 'type', 'text');
         //set if video full screen
         $videoclass = '';
         $isFullWidthVideo = false;
         if ($type == 'video') {
             $videoclass = ' tp-videolayer';
             $videoData = RevSliderFunctions::getVal($layer, 'video_data');
             if (!empty($videoData)) {
                 $videoData = (array) $videoData;
                 $isFullWidthVideo = RevSliderFunctions::getVal($videoData, 'fullwidth');
                 $isFullWidthVideo = RevSliderFunctions::strToBool($isFullWidthVideo);
             } else {
                 $videoData = array();
             }
         }
         $class = RevSliderFunctions::getVal($layer, 'style');
         if (trim($class) !== '') {
             $this->class_include['.' . trim($class)] = true;
             //add classname for style inclusion
             //get class styles for further compare usage
             if (!isset($in_class_usage[trim($class)])) {
                 $in_class_usage[trim($class)] = RevSliderOperations::getCaptionsContentArray(trim($class));
             }
         }
         //set defaults for stylings
         $dff = '';
         $dta = 'left';
         $dfs = 'normal';
         $dtd = 'none';
         $dpa = '0px 0px 0px 0px';
         $dbs = 'none';
         $dbw = '0px';
         $dbr = '0px 0px 0px 0px';
         $dfos = false;
         $dlh = false;
         $dfw = false;
         $dco = false;
         $dcot = 1;
         $dbc = 'transparent';
         $dbt = 1;
         $dboc = 'transparent';
         $dbot = 1;
         /**
          * remove this following to get back to 5.0.4.1 in terms of output styling
          **/
         $do_remove_inline = apply_filters('revslider_remove_inline', true);
         if ($do_remove_inline) {
             if (isset($in_class_usage[trim($class)]) && isset($in_class_usage[trim($class)]['params'])) {
                 //defaults get set here
                 $dfos = isset($in_class_usage[trim($class)]['params']->{'font-size'}) ? $in_class_usage[trim($class)]['params']->{'font-size'} : $dfos;
                 $dlh = isset($in_class_usage[trim($class)]['params']->{'line-height'}) ? $in_class_usage[trim($class)]['params']->{'line-height'} : $dlh;
                 $dfw = isset($in_class_usage[trim($class)]['params']->{'font-weight'}) ? $in_class_usage[trim($class)]['params']->{'font-weight'} : $dfw;
                 $dco = isset($in_class_usage[trim($class)]['params']->{'color'}) ? $in_class_usage[trim($class)]['params']->{'color'} : $dco;
                 $dcot = isset($in_class_usage[trim($class)]['params']->{'color-transparency'}) ? $in_class_usage[trim($class)]['params']->{'color-transparency'} : $dcot;
                 $dbc = isset($in_class_usage[trim($class)]['params']->{'background-color'}) ? $in_class_usage[trim($class)]['params']->{'background-color'} : $dbc;
                 $dbt = isset($in_class_usage[trim($class)]['params']->{'background-transparency'}) ? $in_class_usage[trim($class)]['params']->{'background-transparency'} : $dbt;
                 $dboc = isset($in_class_usage[trim($class)]['params']->{'border-color'}) ? $in_class_usage[trim($class)]['params']->{'border-color'} : $dboc;
                 $dbot = isset($in_class_usage[trim($class)]['params']->{'border-transparency'}) ? $in_class_usage[trim($class)]['params']->{'border-transparency'} : $dbot;
                 $dff = isset($in_class_usage[trim($class)]['params']->{'font-family'}) ? $in_class_usage[trim($class)]['params']->{'font-family'} : $dff;
                 $dta = isset($in_class_usage[trim($class)]['params']->{'text-align'}) ? $in_class_usage[trim($class)]['params']->{'text-align'} : $dta;
                 $dfs = isset($in_class_usage[trim($class)]['params']->{'font-styles'}) ? $in_class_usage[trim($class)]['params']->{'font-styles'} : $dfs;
                 $dtd = isset($in_class_usage[trim($class)]['params']->{'text-decoration'}) ? $in_class_usage[trim($class)]['params']->{'text-decoration'} : $dtd;
                 $dpa = isset($in_class_usage[trim($class)]['params']->{'padding'}) ? $in_class_usage[trim($class)]['params']->{'padding'} : $dpa;
                 if (is_array($dpa)) {
                     $dpa = implode(' ', $dpa);
                 }
                 $dbs = isset($in_class_usage[trim($class)]['params']->{'border-style'}) ? $in_class_usage[trim($class)]['params']->{'border-style'} : $dbs;
                 $dbw = isset($in_class_usage[trim($class)]['params']->{'border-width'}) ? $in_class_usage[trim($class)]['params']->{'border-width'} : $dbw;
                 $dbr = isset($in_class_usage[trim($class)]['params']->{'border-radius'}) ? $in_class_usage[trim($class)]['params']->{'border-radius'} : $dbr;
                 if (is_array($dbr)) {
                     $dbr = implode(' ', $dbr);
                 }
             }
         }
         $animation = RevSliderFunctions::getVal($layer, 'animation', 'tp-fade');
         //if($animation == "fade") $animation = "tp-fade";
         $customin = '';
         $maskin = '';
         if (!array_key_exists($animation, $startAnimations) && array_key_exists($animation, $customAnimations)) {
             //if true, add custom animation
             //check with custom values, if same, we do not need to write all down and just refer
         }
         $tcin = RevSliderOperations::parseCustomAnimationByArray($layer, 'start');
         if ($tcin !== '') {
             $customin = ' data-transform_in="' . $tcin . '"';
         }
         $do_mask_in = RevSliderFunctions::getVal($layer, 'mask_start', false);
         if ($do_mask_in) {
             $tmask = RevSliderOperations::parseCustomMaskByArray($layer, 'start');
             if ($tmask !== '') {
                 $maskin = ' data-mask_in="' . $tmask . '"';
             }
         }
         //if(strpos($animation, 'customin-') !== false || strpos($animation, 'customout-') !== false) $animation = "tp-fade";
         //set output class:
         $layer_2d_rotation = intval(RevSliderFunctions::getVal($layer, '2d_rotation', '0'));
         $internal_class = RevSliderFunctions::getVal($layer, 'internal_class', '');
         if ($layer_2d_rotation == 0) {
             $outputClass = 'tp-caption ' . trim($class);
         } else {
             $outputClass = 'tp-caption ';
         }
         $outputClass = trim($outputClass) . ' ' . $internal_class . ' ';
         //if($type == 'button') $outputClass .= ' ';
         //$speed = RevSliderFunctions::getVal($layer, "speed",300);
         $time = RevSliderFunctions::getVal($layer, 'time', 0);
         $easing = RevSliderFunctions::getVal($layer, 'easing', 'easeOutExpo');
         $randomRotate = RevSliderFunctions::getVal($layer, 'random_rotation', 'false');
         $randomRotate = RevSliderFunctions::boolToStr($randomRotate);
         $splitin = RevSliderFunctions::getVal($layer, 'split', 'none');
         $splitout = RevSliderFunctions::getVal($layer, 'endsplit', 'none');
         $elementdelay = intval(RevSliderFunctions::getVal($layer, 'splitdelay', 0));
         $endelementdelay = intval(RevSliderFunctions::getVal($layer, 'endsplitdelay', 0));
         $basealign = RevSliderFunctions::getVal($layer, 'basealign', 'grid');
         if ($elementdelay > 0) {
             $elementdelay /= 100;
         }
         if ($endelementdelay > 0) {
             $endelementdelay /= 100;
         }
         $text = RevSliderFunctions::getVal($layer, 'text');
         if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
             //use qTranslate
             $text = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text);
         } elseif (function_exists('ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
             //use qTranslate plus
             $text = ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text);
         } elseif (function_exists('qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
             //use qTranslate X
             $text = qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage($text);
         }
         $htmlVideoAutoplay = '';
         $htmlVideoAutoplayOnlyFirstTime = '';
         $htmlVideoNextSlide = '';
         $htmlVideoThumbnail = '';
         $htmlMute = '';
         $htmlCover = '';
         $htmlDotted = '';
         $htmlRatio = '';
         $htmlRewind = '';
         $htmlStartAt = '';
         $htmlEndAt = '';
         $htmlCoverPause = '';
         $htmlDisableOnMobile = '';
         $ids = RevSliderFunctions::getVal($layer, 'attrID');
         $classes = RevSliderFunctions::getVal($layer, 'attrClasses');
         $title = RevSliderFunctions::getVal($layer, 'attrTitle');
         $rel = RevSliderFunctions::getVal($layer, 'attrRel');
         if (trim($ids) == '') {
             $ids = 'slide-' . preg_replace("/[^\\w]+/", "", $slideID) . '-layer-' . $unique_id;
         }
         $ids = $ids != '' ? ' id="' . $ids . '"' : '';
         $classes = $classes != '' ? ' ' . $classes : '';
         $title = $title != '' ? ' title="' . $title . '"' : '';
         $rel = $rel != '' ? ' rel="' . $rel . '"' : '';
         $inline_styles = '';
         $do_rotation = false;
         $add_data = '';
         $videoType = '';
         $cover = false;
         //set html:
         $html = '';
         switch ($type) {
             case 'shape':
                 break;
             case 'typeA':
                 break;
             case 'typeB':
                 break;
             default:
                 //case 'no_edit':
             //case 'no_edit':
             case 'text':
             case 'button':
                 $html = $text;
                 $html = do_shortcode(stripslashes($html));
                 global $fa_icon_var, $pe_7s_var;
                 foreach ($icon_sets as $is) {
                     if (strpos($html, $is) !== false) {
                         //include default Icon Sets if used
                         $font_var = str_replace("-", "_", $is) . "var";
                         ${$font_var} = true;
                         //wp_enqueue_style('rs-icon-set-'.$is);
                     }
                 }
                 $max_width = RevSliderFunctions::getVal($layer, 'max_width', 'auto');
                 $max_height = RevSliderFunctions::getVal($layer, 'max_height', 'auto');
                 $white_space = RevSliderFunctions::getVal($layer, 'whitespace', 'nowrap');
                 $max_width = is_object($max_width) ? RevSliderFunctions::get_biggest_device_setting($max_width, $enabled_sizes) : $max_width;
                 $max_height = is_object($max_height) ? RevSliderFunctions::get_biggest_device_setting($max_height, $enabled_sizes) : $max_height;
                 $white_space = is_object($white_space) ? RevSliderFunctions::get_biggest_device_setting($white_space, $enabled_sizes) : $white_space;
                 if ($max_width !== 'auto') {
                     $max_width = $max_width !== 'none' ? RevSliderFunctions::add_missing_val($max_width) : $max_width;
                     $inline_styles .= ' min-width: ' . $max_width . '; max-width: ' . $max_width . ';';
                 }
                 if ($max_height !== 'auto') {
                     $max_height = $max_height !== 'none' ? RevSliderFunctions::add_missing_val($max_height) : $max_height;
                     $inline_styles .= ' max-width: ' . $max_height . '; max-width: ' . $max_height . ';';
                 }
                 $inline_styles .= ' white-space: ' . $white_space . ';';
                 //$inline_styles .= ' min-width: '.$max_width.'; min-height: '.$max_height.'; white-space: '.$white_space.';';
                 //$inline_styles .= ' max-width: '.$max_width.'; max-height: '.$max_height.';';
                 //add more inline styling
                 $static_styles = RevSliderFunctions::getVal($layer, 'static_styles', array());
                 if (!empty($static_styles)) {
                     $static_styles = (array) $static_styles;
                     if (!empty($static_styles['font-size'])) {
                         $static_styles['font-size'] = RevSliderFunctions::add_missing_val($static_styles['font-size'], 'px');
                         if (is_object($static_styles['font-size'])) {
                             $mcfs = RevSliderFunctions::get_biggest_device_setting($static_styles['font-size'], $enabled_sizes);
                         } else {
                             $mcfs = $static_styles['font-size'];
                         }
                         if ($mcfs !== $dfos) {
                             $inline_styles .= ' font-size: ' . $mcfs . ';';
                         }
                     }
                     if (!empty($static_styles['line-height'])) {
                         $static_styles['line-height'] = RevSliderFunctions::add_missing_val($static_styles['line-height'], 'px');
                         if (is_object($static_styles['line-height'])) {
                             $mclh = RevSliderFunctions::get_biggest_device_setting($static_styles['line-height'], $enabled_sizes);
                         } else {
                             $mclh = $static_styles['line-height'];
                         }
                         if ($mclh !== $dlh) {
                             $inline_styles .= ' line-height: ' . $mclh . ';';
                         }
                     }
                     if (!empty($static_styles['font-weight'])) {
                         if (is_object($static_styles['font-weight'])) {
                             $mcfw = RevSliderFunctions::get_biggest_device_setting($static_styles['font-weight'], $enabled_sizes);
                         } else {
                             $mcfw = $static_styles['font-weight'];
                         }
                         if ($mcfw !== $dfw) {
                             $inline_styles .= ' font-weight: ' . $mcfw . ';';
                         }
                     }
                     if (!empty($static_styles['color'])) {
                         if (is_object($static_styles['color'])) {
                             $use_color = RevSliderFunctions::get_biggest_device_setting($static_styles['color'], $enabled_sizes);
                         } else {
                             $use_color = $static_styles['color'];
                         }
                         $def_val = (array) RevSliderFunctions::getVal($layer, 'deformation', array());
                         $color_trans = RevSliderFunctions::getVal($def_val, 'color-transparency', 1);
                         if ($color_trans != $dcot || $use_color != $dco) {
                             if ($color_trans > 0) {
                                 $color_trans *= 100;
                             }
                             $color_trans = intval($color_trans);
                             $use_color = RevSliderFunctions::hex2rgba($use_color, $color_trans);
                             $inline_styles .= ' color: ' . $use_color . ';';
                         }
                     }
                 }
                 if ($layer_2d_rotation !== 0) {
                     $do_rotation = true;
                 }
                 break;
             case 'image':
                 $additional = '';
                 $urlImage = RevSliderFunctions::getVal($layer, 'image_url');
                 $do_image_change = RevSliderFunctions::getVal($layer, 'layer-image-size', 'auto');
                 $img_size = 'full';
                 switch ($do_image_change) {
                     case 'auto':
                         $img_size = $image_source_type;
                         break;
                     default:
                         $img_size = $do_image_change;
                         break;
                 }
                 $cur_img_id = RevSliderFunctionsWP::get_image_id_by_url($urlImage);
                 if ($img_size !== 'full') {
                     if ($cur_img_id !== false) {
                         $urlImage = wp_get_attachment_image_src($cur_img_id, $img_size);
                     }
                 }
                 $img_w = '';
                 $img_h = '';
                 if ($cur_img_id !== false) {
                     $img_data = wp_get_attachment_metadata($cur_img_id);
                     if ($img_data !== false && !empty($img_data)) {
                         if ($img_size !== 'full') {
                             if (isset($img_data['sizes']) && isset($img_data['sizes'][$img_size])) {
                                 $img_w = $img_data['sizes'][$img_size]['width'];
                                 $img_h = $img_data['sizes'][$img_size]['height'];
                             }
                         }
                         if ($img_w == '' || $img_h == '') {
                             $img_w = $img_data['width'];
                             $img_h = $img_data['height'];
                         }
                         $additional .= ' width="' . $img_w . '" height="' . $img_h . '"';
                     }
                 }
                 $alt = '';
                 $alt_option = RevSliderFunctions::getVal($layer, 'alt_option', 'media_library');
                 switch ($alt_option) {
                     case 'media_library':
                         if ($cur_img_id !== false) {
                             $alt = get_post_meta($cur_img_id, '_wp_attachment_image_alt', true);
                         }
                         break;
                     case 'file_name':
                         $info = pathinfo($urlImage);
                         $alt = $info['filename'];
                         break;
                     case 'custom':
                         $alt = RevSliderFunctions::getVal($layer, 'alt');
                         break;
                 }
                 if (isset($slide->ignore_alt)) {
                     $alt = '';
                 }
                 $scaleX = RevSliderFunctions::getVal($layer, 'scaleX');
                 $scaleY = RevSliderFunctions::getVal($layer, 'scaleY');
                 $cover_mode = RevSliderFunctions::getVal($layer, 'cover_mode', array());
                 if (is_string($cover_mode)) {
                     $cover_mode = array('desktop' => $cover_mode, 'notebook' => $cover_mode, 'tablet' => $cover_mode, 'mobile' => $cover_mode);
                 } else {
                     //change to array
                     $cover_mode = (array) $cover_mode;
                 }
                 if ($adv_resp_sizes == true) {
                     $y_is_single = true;
                     $x_is_single = true;
                     if ($scaleX !== '') {
                         if (!is_object($scaleX)) {
                             if (trim($scaleX) == '' || $scaleX == 'NaNpx') {
                                 $scaleX = 'auto';
                             }
                             $myScaleX = $scaleX;
                             foreach ($cover_mode as $cvmk => $cvmv) {
                                 if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                     $myScaleX = 'full';
                                 }
                                 break;
                             }
                         } else {
                             foreach ($cover_mode as $cvmk => $cvmv) {
                                 if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                     $scaleX->{$cvmk} = 'full';
                                 }
                             }
                             $myScaleX = RevSliderFunctions::normalize_device_settings($scaleX, $enabled_sizes, 'html-array', array('NaNpx' => '', 'auto' => ''));
                             if ($myScaleX == "['','','','']") {
                                 $myScaleX = '';
                             }
                             if (strpos($myScaleX, '[') !== false) {
                                 $y_is_single = false;
                             }
                         }
                         if ($y_is_single) {
                             //force to array if voffset is also array
                             if (!isset($myScaleX)) {
                                 $myScaleX = RevSliderFunctions::get_biggest_device_setting($scaleX, $enabled_sizes);
                             }
                             if (trim($myScaleX) == '' || $myScaleX == 'NaNpx' || $myScaleX == 'auto') {
                                 $myScaleX = '';
                             } else {
                                 $myScaleX = "['" . $myScaleX . "','" . $myScaleX . "','" . $myScaleX . "','" . $myScaleX . "']";
                             }
                         }
                     }
                     if ($scaleY !== '') {
                         if (!is_object($scaleY)) {
                             if (trim($scaleY) == '' || $scaleY == 'NaNpx') {
                                 $scaleY = 'auto';
                             }
                             $myScaleY = $scaleY;
                             foreach ($cover_mode as $cvmk => $cvmv) {
                                 if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                     $myScaleY = 'full';
                                 }
                                 break;
                             }
                         } else {
                             foreach ($cover_mode as $cvmk => $cvmv) {
                                 if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                     $scaleY->{$cvmk} = 'full';
                                 }
                                 break;
                             }
                             $myScaleY = RevSliderFunctions::normalize_device_settings($scaleY, $enabled_sizes, 'html-array', array('NaNpx' => '', 'auto' => ''));
                             if ($myScaleY == "['','','','']") {
                                 $myScaleY = '';
                             }
                             if (strpos($myScaleY, '[') !== false) {
                                 $y_is_single = false;
                             }
                         }
                         if ($y_is_single) {
                             //force to array if voffset is also array
                             if (!isset($myScaleY)) {
                                 $myScaleY = RevSliderFunctions::get_biggest_device_setting($scaleY, $enabled_sizes);
                             }
                             if (trim($myScaleY) == '' || $myScaleY == 'NaNpx' || $myScaleY == 'auto') {
                                 $myScaleY = '';
                             } else {
                                 $myScaleY = "['" . $myScaleY . "','" . $myScaleY . "','" . $myScaleY . "','" . $myScaleY . "']";
                             }
                         }
                     }
                 } else {
                     $myScaleX = is_object($scaleX) ? RevSliderFunctions::get_biggest_device_setting($scaleX, $enabled_sizes) : $scaleX;
                     if (trim($myScaleX) == '' || $myScaleX == 'NaNpx') {
                         $myScaleX = 'auto';
                     }
                     $myScaleY = is_object($scaleY) ? RevSliderFunctions::get_biggest_device_setting($scaleY, $enabled_sizes) : $scaleY;
                     if (trim($myScaleY) == '' || $myScaleY == 'NaNpx') {
                         $myScaleY = 'auto';
                     }
                     foreach ($cover_mode as $cvmk => $cvmv) {
                         if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                             $myScaleX = 'full';
                         }
                         if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                             $myScaleY = 'full';
                         }
                         break;
                     }
                 }
                 if ($scaleX != '') {
                     $additional .= ' data-ww="' . $myScaleX . '"';
                 }
                 if ($scaleY != '') {
                     $additional .= ' data-hh="' . $myScaleY . '"';
                 }
                 if (is_ssl()) {
                     $urlImage = str_replace("http://", "https://", $urlImage);
                 }
                 $do_ll = RevSliderFunctions::getVal($layer, "lazy-load", 'auto');
                 $imageAddParams = "";
                 if ($lazyLoad != 'none' || $do_ll == 'force' && $do_ll !== 'ignore') {
                     $seo_opti = RevSliderFunctions::getVal($layer, 'seo-optimized', false);
                     if ($seo_opti === 'false' || $seo_opti === false) {
                         $imageAddParams .= ' data-lazyload="' . $urlImage . '"';
                         $urlImage = RS_PLUGIN_URL . "admin/assets/images/dummy.png";
                     } else {
                         $additional .= ' class="forceseo"';
                     }
                 }
                 $html = '<img src="' . $urlImage . '" alt="' . $alt . '"' . $additional . $imageAddParams . ' data-no-retina>';
                 $imageLink = RevSliderFunctions::getVal($layer, "link", "");
                 //add more inline styling
                 $static_styles = RevSliderFunctions::getVal($layer, 'static_styles', array());
                 if (!empty($static_styles) && trim($class) !== '') {
                     $static_styles = (array) $static_styles;
                     if (!empty($static_styles['line-height'])) {
                         $static_styles['line-height'] = RevSliderFunctions::add_missing_val($static_styles['line-height'], 'px');
                         if (is_object($static_styles['line-height'])) {
                             $mclh = RevSliderFunctions::get_biggest_device_setting($static_styles['line-height'], $enabled_sizes);
                         } else {
                             $mclh = $static_styles['line-height'];
                         }
                         if ($mclh !== $dlh) {
                             $inline_styles .= ' line-height: ' . $mclh . ';';
                         }
                     }
                 }
                 // KRIKI - AUSKOMMENTIERT, DAMIT IMG TAG NICHT DOPPELT a HREF BEKOMMT.
                 /*if(!empty($imageLink)){
                 						$openIn = RevSliderFunctions::getVal($layer, "link_open_in","same");
                 
                 						$target = ($openIn == "new") ? ' target="_blank"' : '';
                 						
                 						$linkID = RevSliderFunctions::getVal($layer, "link_id","");
                 						$linkClass = RevSliderFunctions::getVal($layer, "link_class","");
                 						$linkTitle = RevSliderFunctions::getVal($layer, "link_title","");
                 						$linkRel = RevSliderFunctions::getVal($layer, "link_rel","");
                 
                 						$linkIDHtml = "";
                 						$linkClassHtml = "";
                 						$linkTitleHtml = "";
                 						$linkRelHtml = "";
                 						if(!empty($linkID))
                 							$linkIDHtml = ' id="'.$linkID.'"';
                 
                 						if(!empty($linkClass))
                 							$linkClassHtml = ' class="'.$linkClass.'"';
                 
                 						if(!empty($linkTitle))
                 							$linkTitleHtml = ' title="'.$linkTitle.'"';
                 
                 						if(!empty($linkRel))
                 							$linkRelHtml = ' rel="'.$linkRel.'"';
                 
                 						$html = '<a test="test" href="'.$imageLink.'"'.$target.$linkIDHtml.$linkClassHtml.$linkTitleHtml.$linkRelHtml.'>'.$html.'</a>';
                 					}*/
                 if ($layer_2d_rotation !== 0) {
                     $do_rotation = true;
                 }
                 break;
             case 'video':
                 $videoType = trim(RevSliderFunctions::getVal($layer, 'video_type'));
                 $videoID = trim(RevSliderFunctions::getVal($layer, 'video_id'));
                 $videoWidth = RevSliderFunctions::getVal($layer, 'video_width');
                 $videoHeight = RevSliderFunctions::getVal($layer, 'video_height');
                 $videoArgs = trim(RevSliderFunctions::getVal($layer, 'video_args'));
                 $v_controls = RevSliderFunctions::getVal($videoData, 'controls');
                 $v_controls = RevSliderFunctions::strToBool($v_controls);
                 $start_at = RevSliderFunctions::getVal($videoData, 'start_at');
                 $htmlStartAt = $start_at !== '' ? ' data-videostartat="' . $start_at . '"' : '';
                 $end_at = RevSliderFunctions::getVal($videoData, 'end_at');
                 $htmlEndAt = $end_at !== '' ? ' data-videoendat="' . $end_at . '"' : '';
                 $show_cover_pause = RevSliderFunctions::getVal($videoData, 'show_cover_pause');
                 $show_cover_pause = RevSliderFunctions::strToBool($show_cover_pause);
                 $htmlCoverPause = $show_cover_pause == true ? ' data-showcoveronpause="on"' : '';
                 $rewind = RevSliderFunctions::getVal($videoData, 'forcerewind');
                 $rewind = RevSliderFunctions::strToBool($rewind);
                 $htmlRewind = $rewind == true ? ' data-forcerewind="on"' : '';
                 $only_poster_on_mobile = isset($layer['video_data']->use_poster_on_mobile) ? $layer['video_data']->use_poster_on_mobile : '';
                 $only_poster_on_mobile = RevSliderFunctions::strToBool($only_poster_on_mobile);
                 if ($isFullWidthVideo == true) {
                     // || $cover == true
                     $videoWidth = '100%';
                     $videoHeight = '100%';
                 }
                 if ($adv_resp_sizes == true) {
                     if (is_object($videoWidth)) {
                         $videoWidth = RevSliderFunctions::normalize_device_settings($videoWidth, $enabled_sizes, 'html-array');
                     }
                     if (is_object($videoHeight)) {
                         $videoHeight = RevSliderFunctions::normalize_device_settings($videoHeight, $enabled_sizes, 'html-array');
                     }
                 } else {
                     if (is_object($videoWidth)) {
                         $videoWidth = RevSliderFunctions::get_biggest_device_setting($videoWidth, $enabled_sizes);
                     }
                     if (is_object($videoHeight)) {
                         $videoHeight = RevSliderFunctions::get_biggest_device_setting($videoHeight, $enabled_sizes);
                     }
                 }
                 $setBase = is_ssl() ? 'https://' : 'http://';
                 $cover = RevSliderFunctions::getVal($videoData, 'cover');
                 $cover = RevSliderFunctions::strToBool($cover);
                 $videoloop = RevSliderFunctions::getVal($videoData, "videoloop");
                 $mute = RevSliderFunctions::getVal($videoData, "mute");
                 $mute = RevSliderFunctions::strToBool($mute);
                 $htmlMute = $mute ? '			data-volume="mute"' : '';
                 switch ($videoType) {
                     case 'streamyoutube':
                     case 'streamyoutubeboth':
                     case 'youtube':
                         if ($videoType == 'streamyoutube' || $videoType == 'streamyoutubeboth') {
                             //change $videoID to the stream!
                             $videoID = $slide->getParam('slide_bg_youtube', '');
                         }
                         if (empty($videoArgs)) {
                             $videoArgs = RevSliderGlobals::DEFAULT_YOUTUBE_ARGUMENTS;
                         }
                         if (!$mute) {
                             $volume = RevSliderFunctions::getVal($videoData, "volume", '100');
                             $htmlMute = '			data-volume="' . intval($volume) . '"';
                             $videoArgs = 'volume=' . intval($volume) . '&' . $videoArgs;
                         }
                         if ($start_at !== '') {
                             $start_raw = explode(':', $start_at);
                             if (count($start_raw) == 2) {
                                 if (intval($start_raw[0]) > 0) {
                                     $start_at = $start_raw[0] * 60 + $start_raw[1];
                                 } else {
                                     $start_at = $start_raw[1];
                                 }
                             }
                             $videoArgs .= $start_at !== '' ? '&start=' . $start_at : '';
                         }
                         if ($end_at !== '') {
                             $end_raw = explode(':', $end_at);
                             if (count($end_raw) == 2) {
                                 if (intval($end_raw[0]) > 0) {
                                     $end_at = $end_raw[0] * 60 + $end_raw[1];
                                 } else {
                                     $end_at = $end_raw[1];
                                 }
                             }
                             $videoArgs .= $end_at !== '' ? '&end=' . $end_at : '';
                         }
                         //check if full URL
                         if (strpos($videoID, 'http') !== false) {
                             //we have full URL, split it to ID
                             parse_str(parse_url($videoID, PHP_URL_QUERY), $my_v_ret);
                             $videoID = $my_v_ret['v'];
                         }
                         $videospeed = RevSliderFunctions::getVal($videoData, 'videospeed', '1');
                         $videoArgs .= ';origin=' . $setBase . $_SERVER['SERVER_NAME'] . ';';
                         $add_data = ' data-ytid="' . $videoID . '" data-videoattributes="version=3&amp;enablejsapi=1&amp;html5=1&amp;' . $videoArgs . '" data-videorate="' . $videospeed . '" data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '"';
                         $add_data .= $v_controls ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         break;
                     case 'streamvimeo':
                     case 'streamvimeoboth':
                     case 'vimeo':
                         if ($videoType == 'streamvimeo' || $videoType == 'streamvimeoboth') {
                             //change $videoID
                             $videoID = $slide->getParam('slide_bg_vimeo', '');
                         }
                         if (empty($videoArgs)) {
                             $videoArgs = RevSliderGlobals::DEFAULT_VIMEO_ARGUMENTS;
                         }
                         //check if full URL
                         if (strpos($videoID, 'http') !== false) {
                             //we have full URL, split it to ID
                             $videoID = (int) substr(parse_url($videoID, PHP_URL_PATH), 1);
                         }
                         if (!$mute) {
                             $volume = RevSliderFunctions::getVal($videoData, "volume", '100');
                             $htmlMute = '			data-volume="' . intval($volume) . '"';
                         }
                         $add_data = ' data-vimeoid="' . $videoID . '" data-videoattributes="' . $videoArgs . '" data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '"';
                         //$add_data .= ($v_controls) ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         break;
                     case 'streaminstagram':
                     case 'streaminstagramboth':
                     case 'html5':
                         $urlPoster = RevSliderFunctions::getVal($videoData, "urlPoster");
                         $urlMp4 = RevSliderFunctions::getVal($videoData, "urlMp4");
                         $urlWebm = RevSliderFunctions::getVal($videoData, "urlWebm");
                         $urlOgv = RevSliderFunctions::getVal($videoData, "urlOgv");
                         $videopreload = RevSliderFunctions::getVal($videoData, "preload");
                         if ($videoType == 'streaminstagram' || $videoType == 'streaminstagramboth') {
                             //change $videoID
                             $urlMp4 = $slide->getParam('slide_bg_instagram', '');
                             $urlWebm = '';
                             $urlOgv = '';
                         }
                         $add_data .= $v_controls ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         $add_data .= ' data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '"';
                         if (!empty($urlPoster)) {
                             $add_data .= ' data-videoposter="' . $urlPoster . '"';
                         }
                         if (!empty($urlOgv)) {
                             $add_data .= ' data-videoogv="' . $urlOgv . '"';
                         }
                         if (!empty($urlWebm)) {
                             $add_data .= ' data-videowebm="' . $urlWebm . '"';
                         }
                         if (!empty($urlMp4)) {
                             $add_data .= ' data-videomp4="' . $urlMp4 . '"';
                         }
                         if (!empty($urlPoster)) {
                             if ($only_poster_on_mobile === true) {
                                 $add_data .= ' data-posterOnMObile="on"';
                             } else {
                                 $add_data .= ' data-posterOnMObile="off"';
                             }
                         }
                         if (!empty($videopreload)) {
                             $add_data .= ' data-videopreload="' . $videopreload . '"';
                         }
                         break;
                     default:
                         RevSliderFunctions::throwError("wrong video type: {$videoType}");
                         break;
                 }
                 if (RevSliderFunctions::strToBool($videoloop) == true) {
                     //fallback
                     $add_data .= ' data-videoloop="loop"';
                 } else {
                     $add_data .= ' data-videoloop="' . $videoloop . '"';
                 }
                 if ($cover == true) {
                     $dotted = RevSliderFunctions::getVal($videoData, "dotted");
                     if ($dotted !== 'none') {
                         $add_data .= ' data-dottedoverlay="' . $dotted . '"';
                     }
                     $add_data .= ' data-forceCover="1"';
                     $ratio = RevSliderFunctions::getVal($videoData, "ratio");
                     if (!empty($ratio)) {
                         $add_data .= ' data-aspectratio="' . $ratio . '"';
                     }
                 }
                 $videoAutoplay = false;
                 if (array_key_exists("autoplayonlyfirsttime", $videoData)) {
                     $autoplayonlyfirsttime = RevSliderFunctions::strToBool(RevSliderFunctions::getVal($videoData, "autoplayonlyfirsttime"));
                     if ($autoplayonlyfirsttime == true) {
                         $videoAutoplay = '1sttime';
                     }
                 }
                 if ($videoAutoplay == false) {
                     if (array_key_exists("autoplay", $videoData)) {
                         $videoAutoplay = RevSliderFunctions::getVal($videoData, "autoplay");
                     } else {
                         //backword compatability
                         $videoAutoplay = RevSliderFunctions::getVal($layer, "video_autoplay");
                     }
                 }
                 if ($videoAutoplay !== false && $videoAutoplay !== 'false') {
                     if ($videoAutoplay === true || $videoAutoplay === 'true') {
                         $videoAutoplay = 'on';
                     }
                     $htmlVideoAutoplay = '			data-autoplay="' . $videoAutoplay . '"' . " \n";
                 } else {
                     $htmlVideoAutoplay = '			data-autoplay="off"' . " \n";
                 }
                 $videoNextSlide = RevSliderFunctions::getVal($videoData, "nextslide");
                 $videoNextSlide = RevSliderFunctions::strToBool($videoNextSlide);
                 if ($videoNextSlide == true) {
                     $htmlVideoNextSlide = '			data-nextslideatend="true"' . " \n";
                 }
                 $videoThumbnail = isset($videoData["previewimage"]) ? $videoData["previewimage"] : '';
                 if (trim($videoThumbnail) !== '') {
                     $htmlVideoThumbnail = '			data-videoposter="' . $videoThumbnail . '"' . " \n";
                 }
                 if (!empty($videoThumbnail)) {
                     if ($only_poster_on_mobile === true) {
                         $htmlVideoThumbnail .= '			data-posterOnMObile="on"' . " \n";
                     } else {
                         $htmlVideoThumbnail .= '			data-posterOnMObile="off"' . " \n";
                     }
                 }
                 $disable_on_mobile = RevSliderFunctions::getVal($videoData, "disable_on_mobile");
                 $disable_on_mobile = RevSliderFunctions::strToBool($disable_on_mobile);
                 $htmlDisableOnMobile = $disable_on_mobile ? '			data-disablevideoonmobile="1"' . " \n" : '';
                 $stopallvideo = RevSliderFunctions::getVal($videoData, "stopallvideo");
                 $stopallvideo = RevSliderFunctions::strToBool($stopallvideo);
                 $htmlDisableOnMobile .= $stopallvideo ? '			data-stopallvideos="true"' . " \n" : '';
                 break;
         }
         $has_trigger = false;
         foreach ($layers as $cl) {
             if ($has_trigger) {
                 break;
             }
             $all_actions = RevSliderFunctions::getVal($cl, 'layer_action', array());
             if (!empty($all_actions)) {
                 $a_action = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'action', array()));
                 $a_layer_target = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'layer_target', array()));
                 foreach ($a_action as $ak => $aa) {
                     switch ($aa) {
                         case 'start_in':
                         case 'start_out':
                         case 'toggle_layer':
                             /*case 'stop_video':
                             		case 'start_video':
                             		case 'toggle_video':*/
                             if ($unique_id == $a_layer_target[$ak]) {
                                 $has_trigger = true;
                                 break;
                             }
                             break;
                     }
                 }
             }
         }
         $last_trigger_state = '';
         $animation_overwrite = 'default';
         $trigger_memory = 'keep';
         if ($has_trigger) {
             $animation_overwrite = RevSliderFunctions::getVal($layer, 'animation_overwrite', 'wait');
             $trigger_memory = RevSliderFunctions::getVal($layer, 'trigger_memory', 'keep');
             $last_trigger_state = '			data-lasttriggerstate="' . esc_attr($trigger_memory) . '"';
         }
         if ($animation_overwrite == 'waitin' || $animation_overwrite == 'wait') {
             $time = 'bytrigger';
         }
         if ($animation_overwrite == 'waitout' || $animation_overwrite == 'wait') {
             $htmlEnd = ' data-end="bytrigger"' . "\n";
         } else {
             //handle end transitions:
             $endTime = trim(RevSliderFunctions::getVal($layer, 'endtime', 0));
             $endWithSlide = RevSliderFunctions::getVal($layer, 'endWithSlide', false);
             //backwards compatibility
             $realEndTime = UniteFunctionsRev::getVal($layer, "realEndTime", false);
             if ($realEndTime !== false) {
                 $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
                 $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
                 $calcSpeed = !empty($endSpeed) ? $endSpeed : $speed;
                 if (!empty($calcSpeed) && $realEndTime - $calcSpeed !== $endTime) {
                     $endTime = $realEndTime - $calcSpeed;
                 }
             }
             //backwards compatibility end
             $htmlEnd = '';
             //endtime - endspeed
             $es = RevSliderFunctions::getVal($layer, 'endspeed', 0);
             if (!empty($endTime) && $endTime - $es < 0) {
                 $endTime = 0;
             } else {
                 $endTime = $endTime - $es;
             }
         }
         $show_on_hover = RevSliderFunctions::getVal($layer, 'show-on-hover', false);
         if ($show_on_hover == true) {
             $time = 'sliderenter';
             $htmlEnd = ' data-end="sliderleave"' . " \n";
         } else {
             if (!empty($endTime) && $endWithSlide !== true) {
                 $htmlEnd = ' data-end="' . $endTime . '"' . " \n";
             }
         }
         $customout = '';
         $maskout = '';
         //add animation to class
         $endAnimation = trim(RevSliderFunctions::getVal($layer, "endanimation"));
         if ($endAnimation == "fade") {
             $endAnimation = "tp-fade";
         }
         if (!array_key_exists($endAnimation, $endAnimations) && array_key_exists($endAnimation, $customEndAnimations)) {
             //if true, add custom animation
             //check with custom values, if same, we do not need to write all down and just refer
         }
         $tcout = '';
         if ($endAnimation !== 'auto') {
             $tcout = RevSliderOperations::parseCustomAnimationByArray($layer, 'end');
         } else {
             //automatic reverse
             $tcout .= 'auto:auto;';
         }
         $es = RevSliderFunctions::getVal($layer, 'endspeed');
         $ee = trim(RevSliderFunctions::getVal($layer, 'endeasing'));
         if (!empty($es)) {
             $tcout .= 's:' . $es . ';';
         }
         if (!empty($ee) && $ee !== 'nothing') {
             $tcout .= 'e:' . $ee . ';';
         }
         if ($tcout !== '') {
             $customout = ' data-transform_out="' . $tcout . '"';
         }
         $do_mask_out = RevSliderFunctions::getVal($layer, 'mask_end', false);
         if ($do_mask_out) {
             $tmask = RevSliderOperations::parseCustomMaskByArray($layer, 'end');
             if ($tmask !== '') {
                 $maskout = ' data-mask_out="' . $tmask . '"';
             }
         }
         //slide link
         $html_simple_link = '';
         //hidden under resolution
         $htmlHidden = '';
         $layerHidden = RevSliderFunctions::getVal($layer, 'hiddenunder');
         if ($layerHidden == 'true' || $layerHidden == '1') {
             $htmlHidden = '			data-captionhidden="on"' . " \n";
         }
         $htmlParams = $add_data . $htmlEnd . $last_trigger_state . $htmlVideoAutoplay . $htmlVideoNextSlide . $htmlVideoThumbnail . $htmlHidden . $htmlMute . $htmlDisableOnMobile . $htmlCover . $htmlDotted . $htmlRatio . $htmlRewind . $htmlStartAt . $htmlEndAt . $htmlCoverPause . "\n";
         //.$htmlVideoAutoplayOnlyFirstTime
         //set positioning options
         $alignHor = RevSliderFunctions::getVal($layer, 'align_hor', 'left');
         $alignVert = RevSliderFunctions::getVal($layer, 'align_vert', 'top');
         $left = RevSliderFunctions::getVal($layer, 'left', 0);
         $top = RevSliderFunctions::getVal($layer, 'top', 0);
         $htmlPosX = '';
         $htmlPosY = '';
         $static_data = '';
         $extra_data = '';
         if ($adv_resp_sizes == true) {
             $do_x_full = false;
             $do_y_full = false;
             $x_is_single = true;
             $y_is_single = true;
             if (!is_object($left)) {
                 $myLeft = $left;
                 $myLeft = "['" . $myLeft . "','" . $myLeft . "','" . $myLeft . "','" . $myLeft . "']";
             } else {
                 $myLeft = RevSliderFunctions::normalize_device_settings($left, $enabled_sizes, 'html-array');
                 if (strpos($myLeft, '[') !== false) {
                     $do_x_full = true;
                 } else {
                     $myLeft = "['" . $myLeft . "','" . $myLeft . "','" . $myLeft . "','" . $myLeft . "']";
                 }
             }
             if (!is_object($top)) {
                 $myTop = $top;
                 $myTop = "['" . $myTop . "','" . $myTop . "','" . $myTop . "','" . $myTop . "']";
             } else {
                 $myTop = RevSliderFunctions::normalize_device_settings($top, $enabled_sizes, 'html-array');
                 if (strpos($myTop, '[') !== false) {
                     $do_y_full = true;
                 } else {
                     $myTop = "['" . $myTop . "','" . $myTop . "','" . $myTop . "','" . $myTop . "']";
                 }
             }
             if (!is_object($alignHor)) {
                 $myHor = $alignHor;
                 $myHor = "['" . $myHor . "','" . $myHor . "','" . $myHor . "','" . $myHor . "']";
             } else {
                 $myHor = RevSliderFunctions::normalize_device_settings($alignHor, $enabled_sizes, 'html-array');
                 if (strpos($myHor, '[') !== false) {
                     $x_is_single = false;
                 } else {
                     $myHor = "['" . $myHor . "','" . $myHor . "','" . $myHor . "','" . $myHor . "']";
                 }
             }
             if (!is_object($alignVert)) {
                 $myVer = $alignVert;
                 $myVer = "['" . $myVer . "','" . $myVer . "','" . $myVer . "','" . $myVer . "']";
             } else {
                 $myVer = RevSliderFunctions::normalize_device_settings($alignVert, $enabled_sizes, 'html-array');
                 if (strpos($myVer, '[') !== false) {
                     $y_is_single = false;
                 } else {
                     $myVer = "['" . $myVer . "','" . $myVer . "','" . $myVer . "','" . $myVer . "']";
                 }
             }
             $htmlPosX = ' data-x="' . $myHor . '" data-hoffset="' . $myLeft . '"';
             $htmlPosY = ' data-y="' . $myVer . '" data-voffset="' . $myTop . '"';
             $static_styles = RevSliderFunctions::getVal($layer, 'static_styles', array());
             if (!empty($static_styles)) {
                 $static_styles = (array) $static_styles;
                 if (!empty($static_styles['font-size'])) {
                     if (is_object($static_styles['font-size'])) {
                         $ss_fs = RevSliderFunctions::normalize_device_settings($static_styles['font-size'], $enabled_sizes, 'html-array');
                         if (strpos($ss_fs, '[') !== false) {
                             $static_data .= str_replace('px', '', '			data-fontsize="' . $ss_fs . '"') . "\n";
                         }
                     }
                 }
                 if (!empty($static_styles['line-height'])) {
                     if (is_object($static_styles['line-height'])) {
                         $ss_lh = RevSliderFunctions::normalize_device_settings($static_styles['line-height'], $enabled_sizes, 'html-array');
                         if (strpos($ss_lh, '[') !== false) {
                             $static_data .= str_replace('px', '', '			data-lineheight="' . $ss_lh . '"') . "\n";
                         }
                     }
                 }
                 if (!empty($static_styles['font-weight'])) {
                     if (is_object($static_styles['font-weight'])) {
                         $ss_fw = RevSliderFunctions::normalize_device_settings($static_styles['font-weight'], $enabled_sizes, 'html-array');
                         if (strpos($ss_fw, '[') !== false) {
                             $static_data .= str_replace('px', '', '			data-fontweight="' . $ss_fw . '"') . "\n";
                         }
                     }
                 }
                 if (!empty($static_styles['color'])) {
                     if (is_object($static_styles['color'])) {
                         $def_val = (array) RevSliderFunctions::getVal($layer, 'deformation', array());
                         foreach ($static_styles['color'] as $sk => $sv) {
                             if (strpos($sv, 'rgb') !== false) {
                                 $static_styles['color']->{$sk} = RevSliderFunctions::rgba2hex($sv);
                             }
                             $color_trans = RevSliderFunctions::getVal($def_val, 'color-transparency', 1);
                             if ($color_trans > 0) {
                                 $color_trans *= 100;
                             }
                             $color_trans = intval($color_trans);
                             $static_styles['color']->{$sk} = RevSliderFunctions::hex2rgba($static_styles['color']->{$sk}, $color_trans);
                         }
                         $ss_c = RevSliderFunctions::normalize_device_settings($static_styles['color'], $enabled_sizes, 'html-array');
                         if (strpos($ss_c, '[') !== false) {
                             $static_data .= '			data-color="' . $ss_c . '"' . "\n";
                             $static_data .= '			data-colortransparency="' . $color_trans . '"' . "\n";
                         }
                     }
                 }
             }
             $max_width = RevSliderFunctions::getVal($layer, 'max_width', 'auto');
             $max_height = RevSliderFunctions::getVal($layer, 'max_height', 'auto');
             $white_space = RevSliderFunctions::getVal($layer, 'whitespace', 'nowrap');
             $cover_mode = RevSliderFunctions::getVal($layer, 'cover_mode', array());
             if (is_string($cover_mode)) {
                 $cover_mode = array('desktop' => $cover_mode, 'notebook' => $cover_mode, 'tablet' => $cover_mode, 'mobile' => $cover_mode);
             } else {
                 //change to array
                 $cover_mode = (array) $cover_mode;
             }
             if (is_object($max_width)) {
                 $max_width = RevSliderFunctions::normalize_device_settings($max_width, $enabled_sizes);
                 if ($max_width->desktop == 'auto') {
                     $max_width->desktop = 'none';
                 }
                 if ($max_width->notebook == 'auto') {
                     $max_width->notebook = 'none';
                 }
                 if ($max_width->tablet == 'auto') {
                     $max_width->tablet = 'none';
                 }
                 if ($max_width->mobile == 'auto') {
                     $max_width->mobile = 'none';
                 }
                 if ($max_width->desktop == $max_width->notebook && $max_width->desktop == $max_width->tablet && $max_width->desktop == $max_width->mobile) {
                     $max_width = $max_width->desktop;
                 }
             }
             if (is_object($max_height)) {
                 $max_height = RevSliderFunctions::normalize_device_settings($max_height, $enabled_sizes);
                 if ($max_height->desktop == 'auto') {
                     $max_height->desktop = 'none';
                 }
                 if ($max_height->notebook == 'auto') {
                     $max_height->notebook = 'none';
                 }
                 if ($max_height->tablet == 'auto') {
                     $max_height->tablet = 'none';
                 }
                 if ($max_height->mobile == 'auto') {
                     $max_height->mobile = 'none';
                 }
                 if ($max_height->desktop == $max_height->notebook && $max_height->desktop == $max_height->tablet && $max_height->desktop == $max_height->mobile) {
                     $max_height = $max_height->desktop;
                 }
             }
             if (is_object($white_space)) {
                 $white_space = RevSliderFunctions::normalize_device_settings($white_space, $enabled_sizes);
                 if ($white_space->desktop == $white_space->notebook && $white_space->desktop == $white_space->tablet && $white_space->desktop == $white_space->mobile) {
                     $white_space = $white_space->desktop;
                 }
             }
             switch ($type) {
                 case 'shape':
                 case 'image':
                     if (is_object($max_width)) {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                 $max_width->{$cvmk} = 'full';
                             } else {
                                 if ($type == 'image') {
                                     $max_width->{$cvmk} = 'none';
                                 }
                             }
                         }
                     } else {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($type == 'image') {
                                 $max_width = $cvmv == 'fullwidth' || $cvmv == 'cover' ? 'full' : 'none';
                             } else {
                                 if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                     $max_width = 'full';
                                 }
                             }
                             break;
                         }
                     }
                     if (is_object($max_height)) {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                 $max_height->{$cvmk} = 'full';
                             } else {
                                 if ($type == 'image') {
                                     $max_height->{$cvmk} = 'none';
                                 }
                             }
                         }
                     } else {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($type == 'image') {
                                 $max_height = $cvmv == 'fullheight' || $cvmv == 'cover' ? 'full' : 'none';
                             } else {
                                 if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                     $max_height = 'full';
                                 }
                             }
                             break;
                         }
                     }
                     break;
                 case 'typeA':
                     break;
                 case 'typeB':
                     break;
             }
             //$static_data .= (is_object($max_width)) ? str_replace('px', '', "			data-minwidth=\"['".implode("','", (array)$max_width)."']\"")."\n" : str_replace('px', '', '			data-minwidth="'.$max_width.'"')."\n";
             $static_data .= is_object($max_width) ? str_replace('px', '', "\t\t\tdata-width=\"['" . implode("','", (array) $max_width) . "']\"") . "\n" : str_replace('px', '', '			data-width="' . $max_width . '"') . "\n";
             //$static_data .= (is_object($max_height)) ? str_replace('px', '', "			data-minheight=\"['".implode("','", (array)$max_height)."']\"")."\n" : str_replace('px', '', '			data-minheight="'.$max_height.'"')."\n";
             $static_data .= is_object($max_height) ? str_replace('px', '', "\t\t\tdata-height=\"['" . implode("','", (array) $max_height) . "']\"") . "\n" : str_replace('px', '', '			data-height="' . $max_height . '"') . "\n";
             $static_data .= is_object($white_space) ? str_replace('px', '', "\t\t\tdata-whitespace=\"['" . implode("','", (array) $white_space) . "']\"") . "\n" : str_replace('px', '', '			data-whitespace="' . $white_space . '"') . "\n";
         } else {
             if (is_object($alignHor)) {
                 $alignHor = RevSliderFunctions::get_biggest_device_setting($alignHor, $enabled_sizes);
             }
             if (is_object($alignVert)) {
                 $alignVert = RevSliderFunctions::get_biggest_device_setting($alignVert, $enabled_sizes);
             }
             if (is_object($left)) {
                 $left = RevSliderFunctions::get_biggest_device_setting($left, $enabled_sizes);
             }
             if (is_object($top)) {
                 $top = RevSliderFunctions::get_biggest_device_setting($top, $enabled_sizes);
             }
             switch ($alignHor) {
                 default:
                 case 'left':
                     $htmlPosX = ' data-x="' . $left . '"';
                     break;
                 case 'center':
                     $htmlPosX = ' data-x="center" data-hoffset="' . $left . '"';
                     break;
                 case 'right':
                     //$left = (int)$left*-1;
                     $htmlPosX = ' data-x="right" data-hoffset="' . $left . '"';
                     break;
             }
             switch ($alignVert) {
                 default:
                 case 'top':
                     $htmlPosY = ' data-y="' . $top . '"';
                     break;
                 case 'middle':
                     $htmlPosY = ' data-y="center" data-voffset="' . $top . '"';
                     break;
                 case 'bottom':
                     //$top = (int)$top*-1;
                     $htmlPosY = ' data-y="bottom" data-voffset="' . $top . '"';
                     break;
             }
             $max_width = RevSliderFunctions::getVal($layer, 'max_width', 'auto');
             $max_height = RevSliderFunctions::getVal($layer, 'max_height', 'auto');
             $cover_mode = RevSliderFunctions::getVal($layer, 'cover_mode', array());
             if (is_string($cover_mode)) {
                 $cover_mode = array('desktop' => $cover_mode, 'notebook' => $cover_mode, 'tablet' => $cover_mode, 'mobile' => $cover_mode);
             } else {
                 //change to array
                 $cover_mode = (array) $cover_mode;
             }
             switch ($type) {
                 case 'shape':
                 case 'image':
                     if (is_object($max_width)) {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                 $max_width->{$cvmk} = 'full';
                             } else {
                                 if ($type == 'image') {
                                     $max_width->{$cvmk} = 'none';
                                 }
                             }
                         }
                     } else {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($type == 'image') {
                                 $max_width = $cvmv == 'fullwidth' || $cvmv == 'cover' ? 'full' : 'none';
                             } else {
                                 if ($cvmv == 'fullwidth' || $cvmv == 'cover') {
                                     $max_width = 'full';
                                 }
                             }
                             break;
                         }
                     }
                     if (is_object($max_height)) {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                 $max_height->{$cvmk} = 'full';
                             } else {
                                 if ($type == 'image') {
                                     $max_height->{$cvmk} = 'none';
                                 }
                             }
                         }
                     } else {
                         foreach ($cover_mode as $cvmk => $cvmv) {
                             if ($type == 'image') {
                                 $max_height = $cvmv == 'fullheight' || $cvmv == 'cover' ? 'full' : 'none';
                             } else {
                                 if ($cvmv == 'fullheight' || $cvmv == 'cover') {
                                     $max_height = 'full';
                                 }
                             }
                             break;
                         }
                     }
                     break;
                 case 'typeA':
                     break;
                 case 'typeB':
                     break;
             }
             $static_data .= is_object($max_width) ? str_replace('px', '', "\t\t\tdata-width=\"['" . implode("','", (array) $max_width) . "']\"") . "\n" : str_replace('px', '', '			data-width="' . $max_width . '"') . "\n";
             $static_data .= is_object($max_height) ? str_replace('px', '', "\t\t\tdata-height=\"['" . implode("','", (array) $max_height) . "']\"") . "\n" : str_replace('px', '', '			data-height="' . $max_height . '"') . "\n";
         }
         $style_string = '';
         $vis_desktop = RevSliderFunctions::getVal($layer, 'visible-desktop', true);
         $vis_notebook = RevSliderFunctions::getVal($layer, 'visible-notebook', true);
         $vis_tablet = RevSliderFunctions::getVal($layer, 'visible-tablet', true);
         $vis_mobile = RevSliderFunctions::getVal($layer, 'visible-mobile', true);
         $vis_notebook = $vis_notebook === true ? 'on' : 'off';
         $vis_desktop = $vis_desktop === true ? 'on' : 'off';
         $vis_tablet = $vis_tablet === true ? 'on' : 'off';
         $vis_mobile = $vis_mobile === true ? 'on' : 'off';
         if ($vis_notebook == 'off' || $vis_desktop == 'off' || $vis_tablet == 'off' || $vis_mobile == 'off') {
             $static_data .= "\t\t\tdata-visibility=\"['" . $vis_desktop . "','" . $vis_notebook . "','" . $vis_tablet . "','" . $vis_mobile . "']\"\n";
         }
         $il_style = (array) RevSliderFunctions::getVal($layer, 'inline', array());
         $adv_style = (array) RevSliderFunctions::getVal($layer, 'advanced', array());
         //add deformation and hover deformation to the layers
         $def_val = (array) RevSliderFunctions::getVal($layer, 'deformation', array());
         $def = array();
         $st_idle = array();
         $def['o'] = array(RevSliderFunctions::getVal($def_val, 'opacity', '0'), '0');
         $def['sX'] = array(RevSliderFunctions::getVal($def_val, 'scalex', '1'), '1');
         $def['sY'] = array(RevSliderFunctions::getVal($def_val, 'scaley', '1'), '1');
         $def['skX'] = array(RevSliderFunctions::getVal($def_val, 'skewx', '0'), '0');
         $def['skY'] = array(RevSliderFunctions::getVal($def_val, 'skewy', '0'), '0');
         $def['rX'] = array(RevSliderFunctions::getVal($def_val, 'xrotate', '0'), '0');
         $def['rY'] = array(RevSliderFunctions::getVal($def_val, 'yrotate', '0'), '0');
         $def['rZ'] = array(RevSliderFunctions::getVal($layer, '2d_rotation', '0'), '0');
         $orix = RevSliderFunctions::getVal($def_val, '2d_origin_x', '50%');
         if (strpos($orix, '%') === false) {
             $orix .= '%';
         }
         $oriy = RevSliderFunctions::getVal($def_val, '2d_origin_y', '50%');
         if (strpos($oriy, '%') === false) {
             $oriy .= '%';
         }
         $def['tO'] = array($orix . ' ' . $oriy, '50% 50%');
         $def['tP'] = array(RevSliderFunctions::getVal($def_val, 'pers', '600'), '600');
         $def['z'] = array(RevSliderFunctions::getVal($def_val, 'z', '0'), '0');
         $st_idle['font-family'] = array(str_replace('"', "'", RevSliderFunctions::getVal($def_val, 'font-family', '')), str_replace('"', "'", $dff));
         $st_idle['text-align'] = array(RevSliderFunctions::getVal($def_val, 'text_align', 'left'), $dta);
         //styling
         $font_style = RevSliderFunctions::getVal($def_val, 'font-style', 'off') == 'on' ? 'italic' : 'normal';
         $st_idle['font-styles'] = array($font_style, $dfs);
         $st_idle['text-decoration'] = array(RevSliderFunctions::getVal($def_val, 'text-decoration', 'none'), $dtd);
         $bg_color = RevSliderFunctions::getVal($def_val, 'background-color', $dbc);
         if ($bg_color !== 'transparent') {
             $bg_trans = RevSliderFunctions::getVal($def_val, 'background-transparency', $dbt);
             if ($bg_trans > 0) {
                 $bg_trans *= 100;
             }
             if ($dbt > 0) {
                 $dbt *= 100;
             }
             $bg_trans = intval($bg_trans);
             $dbt = intval($dbt);
             $st_idle['background-color'] = array(RevSliderFunctions::hex2rgba($bg_color, $bg_trans), RevSliderFunctions::hex2rgba($dbc, $dbt));
             //'ALWAYS'
         }
         $my_padding = RevSliderFunctions::getVal($def_val, 'padding', array('0px', '0px', '0px', '0px'));
         if (!empty($my_padding)) {
             if (is_array($my_padding)) {
                 $my_padding = implode(' ', $my_padding);
             }
             if (trim($my_padding) != '') {
                 $st_idle['padding'] = array($my_padding, $dpa);
             }
         }
         $border_color = RevSliderFunctions::getVal($def_val, 'border-color', $dboc);
         if ($border_color !== 'transparent') {
             $border_trans = RevSliderFunctions::getVal($def_val, 'border-transparency', $dbot);
             if ($border_trans > 0) {
                 $border_trans *= 100;
             }
             if ($dbot > 0) {
                 $dbot *= 100;
             }
             $border_trans = intval($border_trans);
             $dbot = intval($dbot);
             $st_idle['border-color'] = array(RevSliderFunctions::hex2rgba($border_color, $border_trans), RevSliderFunctions::hex2rgba($dboc, $dbot));
             //'ALWAYS'
         }
         $st_idle['border-style'] = array(RevSliderFunctions::getVal($def_val, 'border-style', 'none'), $dbs);
         $bdw = RevSliderFunctions::getVal($def_val, 'border-width', '0px');
         $bdw = RevSliderFunctions::add_missing_val($bdw, 'px');
         if ($bdw == '0px') {
             unset($st_idle['border-style']);
         }
         $st_idle['border-width'] = array($bdw, $dbw);
         $my_border = RevSliderFunctions::getVal($def_val, 'border-radius', array('0px', '0px', '0px', '0px'));
         if (!empty($my_border)) {
             $my_border = implode(' ', $my_border);
             if (trim($my_border) != '') {
                 $st_idle['border-radius'] = array($my_border, $dbr);
             }
         }
         //Advanced Styles here:
         if (isset($adv_style['idle'])) {
             $adv_style['idle'] = (array) $adv_style['idle'];
             if (!empty($adv_style['idle'])) {
                 foreach ($adv_style['idle'] as $n => $v) {
                     $st_idle[$n] = array($v, 'ALWAYS');
                 }
             }
         }
         //Advanced Styles here:
         if (isset($il_style['idle'])) {
             $il_style['idle'] = (array) $il_style['idle'];
             if (!empty($il_style['idle'])) {
                 foreach ($il_style['idle'] as $n => $v) {
                     $st_idle[$n] = array($v, 'ALWAYS');
                 }
             }
         }
         $def_string = '';
         foreach ($def as $key => $value) {
             if (trim($value[0]) == '' || $value[0] == $value[1]) {
                 continue;
             }
             if (str_replace('px', '', $value[0]) == str_replace('px', '', $value[1])) {
                 continue;
             }
             $def_string .= $key . ':' . $value[0] . ';';
         }
         foreach ($st_idle as $key => $value) {
             if (trim($value[0]) == '' || $value[0] == $value[1]) {
                 continue;
             }
             if (str_replace('px', '', $value[0]) == str_replace('px', '', $value[1])) {
                 continue;
             }
             $style_string .= $key . ':' . $value[0] . ';';
         }
         $deform = '			data-transform_idle="' . str_replace('"', "'", $def_string) . '"' . "\n";
         $idle_style = $style_string;
         //check if hover is active for the layer
         $is_hover_active = RevSliderFunctions::getVal($layer, 'hover', '0');
         $deform_hover = '';
         $style_hover = '';
         $def_val = (array) RevSliderFunctions::getVal($layer, 'deformation-hover', array());
         $def = array();
         $css_cursor = RevSliderFunctions::getVal($def_val, 'css_cursor', 'auto');
         $st_h_string = '';
         if ($is_hover_active) {
             $def['o'] = array(RevSliderFunctions::getVal($def_val, 'opacity', '0'), '0');
             $def['sX'] = array(RevSliderFunctions::getVal($def_val, 'scalex', '1'), '1');
             $def['sY'] = array(RevSliderFunctions::getVal($def_val, 'scaley', '1'), '1');
             $def['skX'] = array(RevSliderFunctions::getVal($def_val, 'skewx', '0'), '0');
             $def['skY'] = array(RevSliderFunctions::getVal($def_val, 'skewy', '0'), '0');
             $def['rX'] = array(RevSliderFunctions::getVal($def_val, 'xrotate', '0'), '0');
             $def['rY'] = array(RevSliderFunctions::getVal($def_val, 'yrotate', '0'), '0');
             $def['rZ'] = array(RevSliderFunctions::getVal($def_val, '2d_rotation', '0'), 'inherit');
             $def['z'] = array(RevSliderFunctions::getVal($def_val, 'z', '0'), '0');
             $def['s'] = array(RevSliderFunctions::getVal($def_val, 'speed', '300'), 'ALWAYS');
             $def['e'] = array(RevSliderFunctions::getVal($def_val, 'easing', 'easeOutExpo'), 'ALWAYS');
             //style
             $st_hover = array();
             $font_color = RevSliderFunctions::getVal($def_val, 'color', '#000');
             if ($font_color !== 'transparent') {
                 $font_trans = RevSliderFunctions::getVal($def_val, 'color-transparency', 1);
                 if ($font_trans > 0) {
                     $font_trans *= 100;
                 }
                 $font_trans = intval($font_trans);
                 $st_hover['c'] = array(RevSliderFunctions::hex2rgba($font_color, $font_trans), 'ALWAYS');
             } else {
                 $st_hover['c'] = array($font_color, 'ALWAYS');
             }
             $font_style = RevSliderFunctions::getVal($def_val, 'font-style', 'off') == 'on' ? 'italic' : 'normal';
             $st_hover['fs'] = array($font_style, 'normal');
             $st_hover['td'] = array(RevSliderFunctions::getVal($def_val, 'text-decoration', 'none'), 'none');
             $bg_color = RevSliderFunctions::getVal($def_val, 'background-color', 'transparent');
             if ($bg_color !== 'transparent') {
                 $bg_trans = RevSliderFunctions::getVal($def_val, 'background-transparency', 1);
                 if ($bg_trans > 0) {
                     $bg_trans *= 100;
                 }
                 $bg_trans = intval($bg_trans);
                 $st_hover['bg'] = array(RevSliderFunctions::hex2rgba($bg_color, $bg_trans), 'ALWAYS');
             }
             $my_padding = RevSliderFunctions::getVal($def_val, 'padding', array('0px', '0px', '0px', '0px'));
             if (!empty($my_padding)) {
                 $my_padding = implode(' ', $my_padding);
                 if (trim($my_padding) != '') {
                     $st_hover['p'] = array($my_padding, '0px 0px 0px 0px');
                 }
             }
             $border_color = RevSliderFunctions::getVal($def_val, 'border-color', 'transparent');
             if ($border_color !== 'transparent') {
                 $border_trans = RevSliderFunctions::getVal($def_val, 'border-transparency', 1);
                 if ($border_trans > 0) {
                     $border_trans *= 100;
                 }
                 $border_trans = intval($border_trans);
                 $st_hover['bc'] = array(RevSliderFunctions::hex2rgba($border_color, $border_trans), 'ALWAYS');
             }
             $st_hover['bs'] = array(RevSliderFunctions::getVal($def_val, 'border-style', 'none'), 'none');
             $st_hover['bw'] = array(RevSliderFunctions::add_missing_val(RevSliderFunctions::getVal($def_val, 'border-width', '0px'), 'px'), '0px');
             if ($st_hover['bw'][0] == '0px') {
                 unset($st_hover['bs']);
             }
             $my_border = RevSliderFunctions::getVal($def_val, 'border-radius', array('0px', '0px', '0px', '0px'));
             if (!empty($my_border)) {
                 $my_border = implode(' ', $my_border);
                 if (trim($my_border) != '') {
                     $st_hover['br'] = array($my_border, '0px 0px 0px 0px');
                 }
             }
             $st_trans = array('c' => 'color', 'fs' => 'font-style', 'td' => 'text-decoration', 'bg' => 'background-color', 'p' => 'padding', 'bc' => 'border-color', 'bs' => 'border-style', 'bw' => 'border-width', 'br' => 'border-radius');
             foreach ($st_hover as $sk => $sv) {
                 //do not write values for hover if idle is the same value
                 if (isset($st_idle[$st_trans[$sk]]) && $st_idle[$st_trans[$sk]][0] == $sv[0]) {
                     unset($st_hover[$sk]);
                 }
             }
             //Advanced Styles here:
             if (isset($adv_style['hover'])) {
                 $adv_style['hover'] = (array) $adv_style['hover'];
                 if (!empty($adv_style['hover'])) {
                     foreach ($adv_style['hover'] as $n => $v) {
                         $st_hover[$n] = array($v, 'ALWAYS');
                     }
                 }
             }
             //Advanced Styles here:
             if (isset($il_style['hover'])) {
                 $il_style['hover'] = (array) $il_style['hover'];
                 if (!empty($il_style['hover'])) {
                     foreach ($il_style['hover'] as $n => $v) {
                         $st_hover[$n] = array($v, 'ALWAYS');
                     }
                 }
             }
             $def_string = '';
             foreach ($def as $key => $value) {
                 if (trim($value[0]) == '' || $value[0] === $value[1]) {
                     continue;
                 }
                 $def_string .= $key . ':' . $value[0] . ';';
             }
             foreach ($st_hover as $key => $value) {
                 if (trim($value[0]) == '' || $value[0] === $value[1]) {
                     continue;
                 }
                 $st_h_string .= $key . ':' . $value[0] . ';';
             }
             $deform_hover = '				data-transform_hover="' . $def_string . '"' . "\n";
         }
         if (trim($css_cursor) !== '' && $css_cursor !== 'auto') {
             $st_h_string .= 'cursor:' . $css_cursor . ';';
         }
         if ($st_h_string !== '') {
             $style_hover = '				data-style_hover="' . $st_h_string . '"' . "\n";
         }
         $static_data .= $deform . $deform_hover . $style_hover;
         //set corners
         $htmlCorners = "";
         //if($type == "no_edit"){}
         if ($type == "text" || $type == "button") {
             $cornerdef = RevSliderFunctions::getVal($layer, "deformation");
             $cornerLeft = RevSliderFunctions::getVal($cornerdef, "corner_left");
             $cornerRight = RevSliderFunctions::getVal($cornerdef, "corner_right");
             switch ($cornerLeft) {
                 case "curved":
                     $htmlCorners .= "<div class='frontcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='frontcornertop'></div>";
                     break;
             }
             switch ($cornerRight) {
                 case "curved":
                     $htmlCorners .= "<div class='backcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='backcornertop'></div>";
                     break;
             }
         }
         //add resizeme class
         $resize_full = RevSliderFunctions::getVal($layer, "resize-full", true);
         if ($resize_full === true || $resize_full == 'true' || $resize_full == '1') {
             $resizeme = RevSliderFunctions::getVal($layer, "resizeme", true);
             if ($resizeme == "true" || $resizeme == "1") {
                 $outputClass .= ' tp-resizeme';
             }
         } else {
             //end text related layer
             $extra_data .= '			data-responsive="off"';
         }
         //make some modifications for the full screen video
         if ($isFullWidthVideo == true) {
             $htmlPosX = ' data-x="0"';
             $htmlPosY = ' data-y="0"';
             $outputClass .= ' fullscreenvideo';
         }
         //parallax part
         $use_parallax = $this->slider->getParam('use_parallax', 'off');
         $parallax_class = '';
         if ($use_parallax == 'on') {
             $ldef = RevSliderFunctions::getVal($layer, 'deformation', array());
             $slide_level = intval(RevSliderFunctions::getVal($ldef, 'parallax', '-'));
             if ($slide_level !== '-') {
                 $parallax_class = ' rs-parallaxlevel-' . $slide_level;
             }
         }
         //check for actions
         $all_actions = RevSliderFunctions::getVal($layer, 'layer_action', array());
         $a_tooltip_event = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'tooltip_event', array()));
         $a_action = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'action', array()));
         $a_image_link = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'image_link', array()));
         $a_link_open_in = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'link_open_in', array()));
         $a_jump_to_slide = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'jump_to_slide', array()));
         $a_scrolloffset = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'scrollunder_offset', array()));
         $a_actioncallback = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'actioncallback', array()));
         $a_target = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'layer_target', array()));
         $a_action_delay = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'action_delay', array()));
         $a_link_type = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'link_type', array()));
         $a_toggle_layer_type = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'toggle_layer_type', array()));
         $a_toggle_class = RevSliderFunctions::cleanStdClassToArray(RevSliderFunctions::getVal($all_actions, 'toggle_class', array()));
         $a_html = '';
         $a_events = array();
         if (!empty($a_action)) {
             $a_html .= "\t\t\tdata-actions='";
             foreach ($a_action as $num => $action) {
                 $layer_attrID = '';
                 switch ($action) {
                     case 'start_in':
                     case 'start_out':
                     case 'start_video':
                     case 'stop_video':
                     case 'toggle_layer':
                     case 'toggle_video':
                     case 'simulate_click':
                     case 'toggle_class':
                         //get the ID of the layer with the unique_id that is $a_target[$num]
                         $layer_attrID = $slide->getLayerID_by_unique_id($a_target[$num]);
                         if (trim($layer_attrID) == '') {
                             $layer_attrID = 'slide-' . preg_replace("/[^\\w]+/", "", $slideID) . '-layer-' . $a_target[$num];
                         }
                         break;
                 }
                 switch ($action) {
                     case 'none':
                         continue;
                         break;
                     case 'link':
                         //if post based, replace {{}} with correct info
                         //a_image_link
                         if (isset($a_link_type[$num]) && $a_link_type[$num] == 'jquery') {
                             /*
                             $setBase = (is_ssl()) ? "https://" : "http://";
                             if(strpos($a_image_link[$num], 'http') === false)
                             	$a_image_link[$num] = $setBase .$a_image_link[$num];
                             */
                             $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                             $a_link_open_in[$num] = isset($a_link_open_in[$num]) ? $a_link_open_in[$num] : '';
                             $a_image_link[$num] = isset($a_image_link[$num]) ? $a_image_link[$num] : '';
                             $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'simplelink', 'target' => $a_link_open_in[$num], 'url' => $a_image_link[$num]);
                         } else {
                             if ($html_simple_link == '') {
                                 //adds the link to the layer
                                 /*
                                 $setBase = (is_ssl()) ? "https://" : "http://";
                                 if(strpos($a_image_link[$num], 'http') === false)
                                 	$a_image_link[$num] = $setBase .$a_image_link[$num];
                                 */
                                 $a_image_link[$num] = isset($a_image_link[$num]) ? $a_image_link[$num] : '';
                                 $a_link_open_in[$num] = isset($a_link_open_in[$num]) ? $a_link_open_in[$num] : '';
                                 $html_simple_link = ' href="' . $a_image_link[$num] . '"';
                                 $html_simple_link .= ' target="' . $a_link_open_in[$num] . '"';
                             }
                         }
                         break;
                     case 'jumpto':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_jump_to_slide[$num] = isset($a_jump_to_slide[$num]) ? $a_jump_to_slide[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'jumptoslide', 'slide' => 'rs-' . $a_jump_to_slide[$num], 'delay' => $a_action_delay[$num]);
                         break;
                     case 'next':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'jumptoslide', 'slide' => 'next', 'delay' => $a_action_delay[$num]);
                         break;
                     case 'prev':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'jumptoslide', 'slide' => 'previous', 'delay' => $a_action_delay[$num]);
                         break;
                     case 'pause':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'pauseslider');
                         break;
                     case 'resume':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'playslider');
                         break;
                     case 'toggle_slider':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'toggleslider');
                         break;
                     case 'callback':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_actioncallback[$num] = isset($a_actioncallback[$num]) ? $a_actioncallback[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'callback', 'callback' => $a_actioncallback[$num]);
                         break;
                     case 'scroll_under':
                         //ok
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_scrolloffset[$num] = isset($a_scrolloffset[$num]) ? $a_scrolloffset[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'scrollbelow', 'offset' => RevSliderFunctions::add_missing_val($a_scrolloffset[$num], 'px'));
                         break;
                     case 'start_in':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'startlayer', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'start_out':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'stoplayer', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'toggle_layer':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_toggle_layer_type[$num] = isset($a_toggle_layer_type[$num]) ? $a_toggle_layer_type[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'togglelayer', 'layerstatus' => $a_toggle_layer_type[$num], 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'start_video':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'playvideo', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'stop_video':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'stopvideo', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'toggle_video':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'togglevideo', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'simulate_click':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'simulateclick', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num]);
                         break;
                     case 'toggle_class':
                         $a_tooltip_event[$num] = isset($a_tooltip_event[$num]) ? $a_tooltip_event[$num] : '';
                         $a_action_delay[$num] = isset($a_action_delay[$num]) ? $a_action_delay[$num] : '';
                         $a_toggle_class[$num] = isset($a_toggle_class[$num]) ? $a_toggle_class[$num] : '';
                         $a_events[] = array('event' => $a_tooltip_event[$num], 'action' => 'toggleclass', 'layer' => $layer_attrID, 'delay' => $a_action_delay[$num], 'classname' => $a_toggle_class[$num]);
                         break;
                 }
             }
             if (!empty($a_events)) {
                 $a_html .= json_encode($a_events);
             }
             $a_html .= "'\n";
         }
         //check for loop animation here
         $do_loop = RevSliderFunctions::getVal($layer, 'loop_animation', 'none');
         $loop_data = '';
         $loop_class = '';
         if ($do_loop !== 'none') {
             $loop_class = ' ' . $do_loop;
             switch ($do_loop) {
                 case 'rs-pendulum':
                     $loop_data .= ' data-easing="' . RevSliderFunctions::getVal($layer, 'loop_easing', 'Power3.easeInOut') . '"';
                     $loop_data .= ' data-startdeg="' . RevSliderFunctions::getVal($layer, 'loop_startdeg', '-20') . '"';
                     $loop_data .= ' data-enddeg="' . RevSliderFunctions::getVal($layer, 'loop_enddeg', '20') . '"';
                     $loop_data .= ' data-speed="' . RevSliderFunctions::getVal($layer, 'loop_speed', '2') . '"';
                     $loop_data .= ' data-origin="' . RevSliderFunctions::getVal($layer, 'loop_xorigin', '50') . '% ' . RevSliderFunctions::getVal($layer, 'loop_yorigin', '50') . '%"';
                     break;
                 case 'rs-rotate':
                     $loop_data .= ' data-easing="' . RevSliderFunctions::getVal($layer, 'loop_easing', 'Power3.easeInOut') . '"';
                     $loop_data .= ' data-startdeg="' . RevSliderFunctions::getVal($layer, 'loop_startdeg', '-20') . '"';
                     $loop_data .= ' data-enddeg="' . RevSliderFunctions::getVal($layer, 'loop_enddeg', '20') . '"';
                     $loop_data .= ' data-speed="' . RevSliderFunctions::getVal($layer, 'loop_speed', '2') . '"';
                     $loop_data .= ' data-origin="' . RevSliderFunctions::getVal($layer, 'loop_xorigin', '50') . '% ' . RevSliderFunctions::getVal($layer, 'loop_yorigin', '50') . '%"';
                     break;
                 case 'rs-slideloop':
                     $loop_data .= ' data-easing="' . RevSliderFunctions::getVal($layer, 'loop_easing', 'Power3.easeInOut') . '"';
                     $loop_data .= ' data-speed="' . RevSliderFunctions::getVal($layer, 'loop_speed', '1') . '"';
                     $loop_data .= ' data-xs="' . RevSliderFunctions::getVal($layer, 'loop_xstart', '0') . '"';
                     $loop_data .= ' data-xe="' . RevSliderFunctions::getVal($layer, 'loop_xend', '0') . '"';
                     $loop_data .= ' data-ys="' . RevSliderFunctions::getVal($layer, 'loop_ystart', '0') . '"';
                     $loop_data .= ' data-ye="' . RevSliderFunctions::getVal($layer, 'loop_yend', '0') . '"';
                     break;
                 case 'rs-pulse':
                     $loop_data .= ' data-easing="' . RevSliderFunctions::getVal($layer, 'loop_easing', 'Power3.easeInOut') . '"';
                     $loop_data .= ' data-speed="' . RevSliderFunctions::getVal($layer, 'loop_speed', '1') . '"';
                     $loop_data .= ' data-zoomstart="' . RevSliderFunctions::getVal($layer, 'loop_zoomstart', '1') . '"';
                     $loop_data .= ' data-zoomend="' . RevSliderFunctions::getVal($layer, 'loop_zoomend', '1') . '"';
                     break;
                 case 'rs-wave':
                     $loop_data .= ' data-speed="' . RevSliderFunctions::getVal($layer, 'loop_speed', '1') . '"';
                     $loop_data .= ' data-angle="' . RevSliderFunctions::getVal($layer, 'loop_angle', '0') . '"';
                     $loop_data .= ' data-radius="' . RevSliderFunctions::getVal($layer, 'loop_radius', '10') . '"';
                     $loop_data .= ' data-origin="' . RevSliderFunctions::getVal($layer, 'loop_xorigin', '50') . '% ' . RevSliderFunctions::getVal($layer, 'loop_yorigin', '50') . '%"';
                     break;
             }
         }
         $layer_id = $zIndex - 4;
         $use_tag = 'div';
         if ($html_simple_link !== '') {
             $use_tag = 'a';
         }
         echo "\n\t\t<!-- LAYER NR. ";
         echo $layer_id;
         echo " -->\n";
         echo '		<' . $use_tag . ' class="' . $outputClass;
         echo $classes != '' ? ' ' . $classes : '';
         echo $parallax_class;
         if ($static_slide) {
             echo ' tp-static-layer';
         }
         echo $videoclass;
         echo "\" \n";
         echo $html_simple_link;
         echo $ids != '' ? '			' . $ids . " \n" : '';
         echo $title != '' ? '			' . $title . " \n" : '';
         echo $rel != '' ? '			' . $rel . " \n" : '';
         if ($htmlPosX != '') {
             echo '			' . $htmlPosX . " \n";
         }
         if ($htmlPosY != '') {
             echo '			' . $htmlPosY . " \n";
         }
         if ($static_data != '') {
             echo '			' . $static_data . " \n";
         }
         if ($customin != '') {
             echo '			' . $customin . " \n";
         }
         if ($customout != '') {
             echo '			' . $customout . " \n";
         }
         if ($maskin != '') {
             echo '			' . $maskin . " \n";
         }
         if ($maskout != '') {
             echo '			' . $maskout . " \n";
         }
         echo '			data-start="' . $time . '"' . " \n";
         //if($type == 'no_edit'){}
         if ($type == 'text' || $type == 'button') {
             //only output if we are a text layer
             echo '			data-splitin="' . $splitin . '"' . " \n";
             echo '			data-splitout="' . $splitout . '"' . " \n";
         }
         echo $a_html;
         if ($basealign !== 'grid') {
             echo '			data-basealign="' . $basealign . '"' . " \n";
         }
         $ro = RevSliderFunctions::getVal($layer, 'responsive_offset', true);
         if ($ro != 1) {
             echo '			data-responsive_offset="off"' . " \n";
         } else {
             echo '			data-responsive_offset="on"' . " \n";
         }
         echo $extra_data . "\n";
         //check if static layer and if yes, set values for it.
         if ($static_slide) {
             if ($isTemplate != "true" && $slider_type !== 'hero') {
                 $start_on_slide = intval(RevSliderFunctions::getVal($layer, "static_start", 1)) - 1;
                 $end_on_slide = RevSliderFunctions::getVal($layer, "static_end", 2);
                 if ($end_on_slide !== 'last') {
                     $end_on_slide = intval($end_on_slide) - 1;
                 } else {
                     //change number to the last slide number
                     $end_on_slide = count($this->slider->getArrSlideNames()) - 1;
                 }
             } else {
                 $start_on_slide = '-1';
                 $end_on_slide = '-1';
             }
             echo '			data-startslide="' . $start_on_slide . '"' . " \n";
             echo '			data-endslide="' . $end_on_slide . '"' . " \n";
         }
         if ($splitin !== 'none') {
             echo '			data-elementdelay="' . $elementdelay . '"' . " \n";
         }
         if ($splitout !== 'none') {
             echo '			data-endelementdelay="' . $endelementdelay . '"' . " \n";
         }
         if ($htmlParams != "") {
             echo "\t\t\t" . $htmlParams;
         }
         echo '			style="z-index: ' . $zIndex . ';' . $inline_styles . $idle_style . '"';
         //
         echo '>';
         if ($do_loop !== 'none') {
             echo "\n" . '				<div class="rs-looped ' . trim($loop_class) . '" ' . $loop_data . '>';
         }
         echo stripslashes($html) . " \n";
         if ($htmlCorners != "") {
             echo $htmlCorners . " \n";
         }
         if ($do_loop !== 'none') {
             echo "\t\t\t\t</div>\n";
         }
         echo '		</' . $use_tag . '>' . "\n";
         $zIndex++;
     }
 }
 /**
  *
  * return parent slide. If the slide is parent, return this slide.
  */
 public function getParentSlide()
 {
     $parentID = $this->getParam("parentid", "");
     if (empty($parentID)) {
         return $this;
     }
     $parentSlide = new RevSlide();
     $parentSlide->initByID($parentID);
     return $parentSlide;
 }
    /**
     * 
     * put creative layer
     */
    public function putCreativeLayer(RevSlide $slide)
    {
        $layers = $slide->getLayers();
        if (empty($layers)) {
            return false;
        }
        ?>
				<?php 
        foreach ($layers as $layer) {
            $type = UniteFunctionsRev::getVal($layer, "type", "text");
            $class = UniteFunctionsRev::getVal($layer, "style");
            $animation = UniteFunctionsRev::getVal($layer, "animation", "fade");
            //set output class:
            $outputClass = "caption " . trim($class);
            $outputClass = trim($outputClass) . " ";
            $outputClass .= trim($animation);
            $left = UniteFunctionsRev::getVal($layer, "left", 0);
            $top = UniteFunctionsRev::getVal($layer, "top", 0);
            $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
            $time = UniteFunctionsRev::getVal($layer, "time", 0);
            $easing = UniteFunctionsRev::getVal($layer, "easing", "easeOutExpo");
            $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation", "false");
            $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
            $text = UniteFunctionsRev::getVal($layer, "text");
            //set html:
            $html = "";
            switch ($type) {
                default:
                case "text":
                    $html = $text;
                    $html = do_shortcode($html);
                    break;
                case "image":
                    $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                    $html = '<img src="' . $urlImage . '" alt="' . $text . '">';
                    $imageLink = UniteFunctionsRev::getVal($layer, "link", "");
                    if (!empty($imageLink)) {
                        $openIn = UniteFunctionsRev::getVal($layer, "link_open_in", "same");
                        $target = "";
                        if ($openIn == "new") {
                            $target = ' target="_blank"';
                        }
                        $html = '<a href="' . $imageLink . '"' . $target . '>' . $html . '</a>';
                    }
                    break;
                case "video":
                    $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
                    $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
                    $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
                    $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
                    switch ($videoType) {
                        case "youtube":
                            $html = "<iframe src='http://www.youtube.com/embed/{$videoID}?hd=1&amp;wmode=opaque&amp;controls=1&amp;showinfo=0' width='{$videoWidth}' height='{$videoHeight}'></iframe>";
                            break;
                        case "vimeo":
                            $html = "<iframe src='http://player.vimeo.com/video/{$videoID}?title=0&amp;byline=0&amp;portrait=0' width='{$videoWidth}' height='{$videoHeight}'></iframe>";
                            break;
                        default:
                            UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                            break;
                    }
                    break;
            }
            ?>
				
				<div class="<?php 
            echo $outputClass;
            ?>
"  
					 data-x="<?php 
            echo $left;
            ?>
" 
					 data-y="<?php 
            echo $top;
            ?>
" 
					 data-speed="<?php 
            echo $speed;
            ?>
" 
					 data-start="<?php 
            echo $time;
            ?>
" 
					 data-easing="<?php 
            echo $easing;
            ?>
"><?php 
            echo $html;
            ?>
</div>
				<?php 
        }
        ?>
			<?php 
    }
Example #15
0
    $sID = intval(RevSliderFunctions::getGetVar("slider"));
    if ($sID > 0) {
        $revs = new RevSlider();
        $revs->initByID($sID);
        //check if we already have slides, if yes, go to first
        $arrS = $revs->getSlides(false);
        if (empty($arrS)) {
            $slideID = $revs->createSlideFromData(array('sliderid' => $sID), true);
        } else {
            $slideID = key($arrS);
        }
    }
}
$patternViewSlide = self::getViewUrl("slide", "id=[slideid]");
//init slide object
$slide = new RevSlide();
$slide->initByID($slideID);
$slideParams = $slide->getParams();
$operations = new RevSliderOperations();
//init slider object
$sliderID = $slide->getSliderID();
$slider = new RevSlider();
$slider->initByID($sliderID);
$sliderParams = $slider->getParams();
$arrSlideNames = $slider->getArrSlideNames();
$arrSlides = $slider->getSlides(false);
$arrSliders = $slider->getArrSlidersShort($sliderID);
$selectSliders = RevSliderFunctions::getHTMLSelect($arrSliders, "", "id='selectSliders'", true);
//check if slider is template
$sliderTemplate = $slider->getParam("template", "false");
//set slide delay
 /**
  *
  * get slides for export
  */
 private function getStaticSlideForExport($useDummy = false)
 {
     $arrSlidesExport = array();
     $slide = new RevSlide();
     $staticID = $slide->getStaticSlideID($this->id);
     if ($staticID !== false) {
         $slideNew = array();
         $slide->initByStaticID($staticID);
         $slideNew["params"] = $slide->getParamsForExport();
         $slideNew["slide_order"] = $slide->getOrder();
         $slideNew["layers"] = $slide->getLayersForExport($useDummy);
         $arrSlidesExport[] = $slideNew;
     }
     return $arrSlidesExport;
 }
Example #17
0
    /**
     * 
     * put creative layer
     */
    private function putCreativeLayer(RevSlide $slide)
    {
        $layers = $slide->getLayers();
        if (empty($layers)) {
            return false;
        }
        ?>
				<?php 
        foreach ($layers as $layer) {
            $type = UniteFunctionsRev::getVal($layer, "type", "text");
            //set if video full screen
            $isFullWidthVideo = false;
            if ($type == "video") {
                $videoData = UniteFunctionsRev::getVal($layer, "video_data");
                if (!empty($videoData)) {
                    $videoData = (array) $videoData;
                    $isFullWidthVideo = UniteFunctionsRev::getVal($videoData, "fullwidth");
                    $isFullWidthVideo = UniteFunctionsRev::strToBool($isFullWidthVideo);
                } else {
                    $videoData = array();
                }
            }
            $class = UniteFunctionsRev::getVal($layer, "style");
            $animation = UniteFunctionsRev::getVal($layer, "animation", "fade");
            //set output class:
            $outputClass = "tp-caption " . trim($class);
            $outputClass = trim($outputClass) . " ";
            $outputClass .= trim($animation);
            $left = UniteFunctionsRev::getVal($layer, "left", 0);
            $top = UniteFunctionsRev::getVal($layer, "top", 0);
            $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
            $time = UniteFunctionsRev::getVal($layer, "time", 0);
            $easing = UniteFunctionsRev::getVal($layer, "easing", "easeOutExpo");
            $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation", "false");
            $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
            $text = UniteFunctionsRev::getVal($layer, "text");
            $htmlVideoAutoplay = "";
            $htmlVideoNextSlide = "";
            //set html:
            $html = "";
            switch ($type) {
                default:
                case "text":
                    $html = $text;
                    $html = do_shortcode($html);
                    break;
                case "image":
                    $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                    $html = '<img src="' . $urlImage . '" alt="' . $text . '">';
                    $imageLink = UniteFunctionsRev::getVal($layer, "link", "");
                    if (!empty($imageLink)) {
                        $openIn = UniteFunctionsRev::getVal($layer, "link_open_in", "same");
                        $target = "";
                        if ($openIn == "new") {
                            $target = ' target="_blank"';
                        }
                        $html = '<a href="' . $imageLink . '"' . $target . '>' . $html . '</a>';
                    }
                    break;
                case "video":
                    $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
                    $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
                    $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
                    $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
                    $videoArgs = trim(UniteFunctionsRev::getVal($layer, "video_args"));
                    if ($isFullWidthVideo == true) {
                        $videoWidth = "100%";
                        $videoHeight = "100%";
                    }
                    switch ($videoType) {
                        case "youtube":
                            if (empty($videoArgs)) {
                                $videoArgs = GlobalsRevSlider::DEFAULT_YOUTUBE_ARGUMENTS;
                            }
                            $html = "<iframe src='http://www.youtube.com/embed/{$videoID}?{$videoArgs}' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        case "vimeo":
                            if (empty($videoArgs)) {
                                $videoArgs = GlobalsRevSlider::DEFAULT_VIMEO_ARGUMENTS;
                            }
                            $html = "<iframe src='http://player.vimeo.com/video/{$videoID}?{$videoArgs}' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        case "html5":
                            $html = $this->getHtml5LayerHtml($videoData);
                            break;
                        default:
                            UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                            break;
                    }
                    //set video autoplay, with backward compatability
                    if (array_key_exists("autoplay", $videoData)) {
                        $videoAutoplay = UniteFunctionsRev::getVal($videoData, "autoplay");
                    } else {
                        //backword compatability
                        $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
                    }
                    $videoAutoplay = UniteFunctionsRev::strToBool($videoAutoplay);
                    if ($videoAutoplay == true) {
                        $htmlVideoAutoplay = ' data-autoplay="true"';
                    }
                    $videoNextSlide = UniteFunctionsRev::getVal($videoData, "nextslide");
                    $videoNextSlide = UniteFunctionsRev::strToBool($videoNextSlide);
                    if ($videoNextSlide == true) {
                        $htmlVideoNextSlide = ' data-nextslideatend="true"';
                    }
                    break;
            }
            //handle end transitions:
            $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
            $htmlEnd = "";
            if (!empty($endTime)) {
                $htmlEnd = "data-end=\"{$endTime}\"";
                $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
                if (!empty($endSpeed)) {
                    $htmlEnd .= " data-endspeed=\"{$endSpeed}\"";
                }
                $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
                if (!empty($endSpeed) && $endEasing != "nothing") {
                    $htmlEnd .= " data-endeasing=\"{$endEasing}\"";
                }
                //add animation to class
                $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
                if (!empty($endAnimation) && $endAnimation != "auto") {
                    $outputClass .= " " . $endAnimation;
                }
            }
            //slide link
            $htmlLink = "";
            $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
            if (!empty($slideLink) && $slideLink != "nothing" && $slideLink != "scroll_under") {
                //get slide index from id
                if (is_numeric($slideLink)) {
                    $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
                }
                if (!empty($slideLink)) {
                    $htmlLink = " data-linktoslide=\"{$slideLink}\"";
                }
            }
            //scroll under the slider
            if ($slideLink == "scroll_under") {
                $outputClass .= " tp-scrollbelowslider";
                $scrollUnderOffset = UniteFunctionsRev::getVal($layer, "scrollunder_offset");
                if (!empty($scrollUnderOffset)) {
                    $htmlLink .= " data-scrolloffset=\"{$scrollUnderOffset}\"";
                }
            }
            //hidden under resolution
            $htmlHidden = "";
            $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
            if ($layerHidden == "true" || $layerHidden == "1") {
                $htmlHidden = ' data-captionhidden="on"';
            }
            $htmlParams = $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlVideoNextSlide . $htmlHidden;
            //set positioning options
            $alignHor = UniteFunctionsRev::getVal($layer, "align_hor", "left");
            $alignVert = UniteFunctionsRev::getVal($layer, "align_vert", "top");
            $htmlPosX = "";
            $htmlPosY = "";
            switch ($alignHor) {
                default:
                case "left":
                    $htmlPosX = "data-x=\"{$left}\" \n";
                    break;
                case "center":
                    $htmlPosX = "data-x=\"center\" data-hoffset=\"{$left}\" \n";
                    break;
                case "right":
                    $left = (int) $left * -1;
                    $htmlPosX = "data-x=\"right\" data-hoffset=\"{$left}\" \n";
                    break;
            }
            switch ($alignVert) {
                default:
                case "top":
                    $htmlPosY = "data-y=\"{$top}\" ";
                    break;
                case "middle":
                    $htmlPosY = "data-y=\"center\" data-voffset=\"{$top}\" ";
                    break;
                case "bottom":
                    $top = (int) $top * -1;
                    $htmlPosY = "data-y=\"bottom\" data-voffset=\"{$top}\" ";
                    break;
            }
            //set corners
            $htmlCorners = "";
            if ($type == "text") {
                $cornerLeft = UniteFunctionsRev::getVal($layer, "corner_left");
                $cornerRight = UniteFunctionsRev::getVal($layer, "corner_right");
                switch ($cornerLeft) {
                    case "curved":
                        $htmlCorners .= "<div class='frontcorner'></div>";
                        break;
                    case "reverced":
                        $htmlCorners .= "<div class='frontcornertop'></div>";
                        break;
                }
                switch ($cornerRight) {
                    case "curved":
                        $htmlCorners .= "<div class='backcorner'></div>";
                        break;
                    case "reverced":
                        $htmlCorners .= "<div class='backcornertop'></div>";
                        break;
                }
                //add resizeme class
                $resizeme = UniteFunctionsRev::getVal($layer, "resizeme");
                if ($resizeme == "true" || $resizeme == "1") {
                    $outputClass .= ' tp-resizeme';
                }
            }
            //end text related layer
            //make some modifications for the full screen video
            if ($isFullWidthVideo == true) {
                $htmlPosX = "data-x=\"0\"" . "\n";
                $htmlPosY = "data-y=\"0\"" . "\n";
                $outputClass .= " fullscreenvideo";
            }
            ?>
				<div class="<?php 
            echo $outputClass;
            ?>
"
					 <?php 
            echo $htmlPosX;
            ?>
					 <?php 
            echo $htmlPosY;
            ?>
					 data-speed="<?php 
            echo $speed;
            ?>
" 
					 data-start="<?php 
            echo $time;
            ?>
" 
					 data-easing="<?php 
            echo $easing;
            ?>
" <?php 
            echo $htmlParams;
            ?>
 ><?php 
            echo $html;
            ?>
					 <?php 
            echo $htmlCorners;
            ?>
					 </div>
				
				<?php 
        }
    }
Example #18
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);
 }
Example #19
0
    $sID = intval(RevSliderFunctions::getGetVar("slider"));
    if ($sID > 0) {
        $revs = new RevSlider();
        $revs->initByID($sID);
        //check if we already have slides, if yes, go to first
        $arrS = $revs->getSlides(false);
        if (empty($arrS)) {
            $slideID = $revs->createSlideFromData(array('sliderid' => $sID), true);
        } else {
            $slideID = key($arrS);
        }
    }
}
$patternViewSlide = self::getViewUrl("slide", "id=[slideid]");
//init slide object
$slide = new RevSlide();
$slide->initByID($slideID);
$slideParams = $slide->getParams();
$operations = new RevSliderOperations();
//init slider object
$sliderID = $slide->getSliderID();
$slider = new RevSlider();
$slider->initByID($sliderID);
$sliderParams = $slider->getParams();
$arrSlideNames = $slider->getArrSlideNames();
$arrSlides = $slider->getSlides(false);
$arrSlidesWPML = $slider->getSlidesWPML(false, $slide);
$arrSliders = $slider->getArrSlidersShort($sliderID);
$selectSliders = RevSliderFunctions::getHTMLSelect($arrSliders, "", "id='selectSliders'", true);
//check if slider is template
$sliderTemplate = $slider->getParam("template", "false");
Example #20
0
    /**
     *
     * put the slider slides
     */
    private function putSlides($gal_ids = array(), $order = array())
    {
        //go to template slider if post template
        $sliderType = $this->slider->getParam('slider_type');
        $slider_type = $this->slider->getParam('slider-type');
        //standard, carousel or hero
        $source_type = $this->slider->getParam('source_type');
        //vimeo, post ect.
        $publishedOnly = true;
        if ($slider_type == 'hero' || !empty($order)) {
            $publishedOnly = false;
            //take all, even unpublished ones
        }
        if ($this->previewMode == true && $this->oneSlideMode == true) {
            $previewSlideID = RevSliderFunctions::getVal($this->oneSlideData, 'slideid');
            $previewSlide = new RevSlide();
            $previewSlide->initByID($previewSlideID);
            $slides = array($previewSlide);
        } else {
            $slides = $this->slider->getSlidesForOutput($publishedOnly, $this->sliderLang, $gal_ids);
            if (!empty($gal_ids) && $gal_ids[0]) {
                //add slides from the images
                if (count($slides) > 0) {
                    //check if we have at least one slide. If not, then it may result in errors here
                    if (count($gal_ids) !== count($slides)) {
                        //set slides to the same amount as
                        if (count($gal_ids) < count($slides)) {
                            $slides = array_slice($slides, 0, count($gal_ids));
                        } else {
                            // >
                            while (count($slides) < count($gal_ids)) {
                                foreach ($slides as $slide) {
                                    $new_slide = clone $slide;
                                    array_push($slides, $new_slide);
                                    if (count($slides) >= count($gal_ids)) {
                                        break;
                                    }
                                }
                            }
                            if (count($gal_ids) < count($slides)) {
                                $slides = array_slice($slides, 0, count($gal_ids));
                            }
                        }
                    }
                    $sliderSize = $this->slider->getParam('def-image_source_type', 'full');
                    $isSlidesFromPosts = $this->slider->isSlidesFromPosts();
                    $gi = 0;
                    foreach ($slides as $skey => $slide) {
                        //add gallery images into slides
                        //set post id to imageid
                        //check if slider is Post Based, if yes use $slide->getID(); else use $gal_ids[$gi]
                        if ($isSlidesFromPosts) {
                            $ret = $slide->setImageByID($slide->getID(), $sliderSize);
                        } else {
                            $ret = $slide->setImageByID($gal_ids[$gi], $sliderSize);
                        }
                        if ($ret === true) {
                            //set slide type to image instead of for example external or transparent
                            $slide->setBackgroundType('image');
                        } else {
                            unset($slides[$skey]);
                        }
                        $gi++;
                    }
                }
            } elseif (!empty($order)) {
                $tempSlides = $slides;
                $slides = array();
                foreach ($order as $order_slideid) {
                    foreach ($tempSlides as $tempSlide) {
                        if ($tempSlide->getID() == $order_slideid) {
                            $tempSlide->setParam('state', 'published');
                            //set to published
                            $slides[] = $tempSlide;
                            break;
                        }
                    }
                }
                if (count($slides) == 1) {
                    //remove navigation
                    $this->slider->setParam('enable_arrows', 'off');
                    $this->slider->setParam('enable_bullets', 'off');
                    $this->slider->setParam('enable_tabs', 'off');
                    $this->slider->setParam('enable_thumbnails', 'off');
                }
            }
        }
        $this->slidesNumIndex = $this->slider->getSlidesNumbersByIDs(true);
        if ($slider_type == 'hero' && empty($order) && empty($gal_ids)) {
            //we are a hero Slider, show only one Slide!
            $hero = $this->getHeroSlide($slides);
            $slides = !empty($hero) ? array($hero) : array();
        }
        //check if mobile, if yes, then remove certain slides
        $mobile = strstr($_SERVER['HTTP_USER_AGENT'], 'Android') || strstr($_SERVER['HTTP_USER_AGENT'], 'webOS') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPad') || strstr($_SERVER['HTTP_USER_AGENT'], 'Windows Phone') || wp_is_mobile() ? true : false;
        if ($mobile && !empty($slides)) {
            foreach ($slides as $ss => $sv) {
                $hsom = $sv->getParam('hideslideonmobile', 'off');
                if ($hsom == 'on') {
                    unset($slides[$ss]);
                }
            }
        }
        if (empty($slides)) {
            ?>
			<div class="no-slides-text">
				<?php 
            if ($this->slider->isSlidesFromPosts()) {
                _e('No slides found, please add at least one Slide Template to the choosen language.', 'revslider');
            } else {
                _e('No slides found, please add some slides', 'revslider');
            }
            ?>
			</div>
			<?php 
        }
        //set that we are originally template slider
        $post_based_slider = false;
        if ($this->slider->isSlidesFromPosts()) {
            $post_based_slider = true;
        }
        $slideWidth = $this->slider->getParam('width', 900);
        $slideHeight = $this->slider->getParam('height', 300);
        $do_bullets = $this->slider->getParam('enable_bullets', 'off');
        $do_thumbnails = $this->slider->getParam('enable_thumbnails', 'off');
        $do_arrows = $this->slider->getParam('enable_arrows', 'off');
        $do_tabs = $this->slider->getParam('enable_tabs', 'off');
        $isThumbsActive = $do_bullets == 'on' || $do_thumbnails == 'on' || $do_arrows == 'on' || $do_tabs == 'on' ? true : false;
        $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';
        }
        //for one slide preview
        //if($this->oneSlideMode == true)
        //	$slides = $this->filterOneSlide($slides);
        echo "<ul>";
        $htmlFirstTransWrap = "";
        $startWithSlide = $this->slider->getStartWithSlideSetting();
        $firstTransActive = $this->slider->getParam('first_transition_active', 'false');
        if ($firstTransActive == 'on' && $slider_type !== 'hero') {
            $firstTransition = $this->slider->getParam('first_transition_type', 'fade');
            $htmlFirstTransWrap .= ' data-fstransition="' . $firstTransition . '"';
            $firstDuration = $this->slider->getParam('first_transition_duration', '300');
            if (!empty($firstDuration) && is_numeric($firstDuration)) {
                $htmlFirstTransWrap .= ' data-fsmasterspeed="' . $firstDuration . '"';
            }
            $firstSlotAmount = $this->slider->getParam('first_transition_slot_amount', '7');
            if (!empty($firstSlotAmount) && is_numeric($firstSlotAmount)) {
                $htmlFirstTransWrap .= ' data-fsslotamount="' . $firstSlotAmount . '"';
            }
        }
        $oneSlideLoop = $this->slider->getParam("loop_slide", "loop");
        if (($oneSlideLoop == 'loop' || $oneSlideLoop == 'on') && $slider_type !== 'hero') {
            if (count($slides) == 1 && $this->oneSlideMode == false) {
                $new_slide = clone reset($slides);
                $new_slide->ignore_alt = true;
                $new_slide->setID($new_slide->getID() . '-1');
                $slides[] = $new_slide;
                $this->hasOnlyOneSlide = true;
            }
        }
        if (count($slides) == 0) {
            return false;
        }
        // No Slides added yet
        $def_transition = $this->slider->getParam('def-slide_transition', 'fade');
        $def_image_source_type = $this->slider->getParam('def-image_source_type', 'full');
        $do_static = apply_filters('revslider_enable_static_layers', true);
        if ($do_static) {
            $sliderID = $this->slider->getID();
            foreach ($slides as $slide) {
                $staticID = $slide->getStaticSlideID($sliderID);
                if ($staticID !== false) {
                    $static_slide = new RevSlide();
                    $static_slide->initByStaticID($staticID);
                    $this->static_slide = $static_slide;
                }
                break;
            }
        }
        $index = 0;
        foreach ($slides as $slide) {
            $params = $slide->getParams();
            $navigation_arrow_stlye = $this->slider->getParam('navigation_arrow_style', 'round');
            $navigation_bullets_style = $this->slider->getParam('navigation_bullets_style', 'round');
            //check if date is set
            $date_from = $slide->getParam('date_from', '');
            $date_to = $slide->getParam('date_to', '');
            if ($this->previewMode === false) {
                // do only if we are not in preview mode
                $ts = current_time('timestamp');
                if ($date_from != '') {
                    $date_from = strtotime($date_from);
                    if ($ts < $date_from) {
                        continue;
                    }
                }
                if ($date_to != '') {
                    $date_to = strtotime($date_to);
                    if ($ts > $date_to) {
                        continue;
                    }
                }
            }
            $transition = $slide->getParam('slide_transition', $def_transition);
            if (!is_array($transition)) {
                $transition_arr = explode(',', $transition);
            } else {
                $transition_arr = $transition;
                $transition = implode(',', $transition);
            }
            $add_rand = '';
            if (is_array($transition_arr) && !empty($transition_arr)) {
                foreach ($transition_arr as $tkey => $trans) {
                    if ($trans == 'random-selected') {
                        $add_rand = ' data-randomtransition="on"';
                        unset($transition_arr[$tkey]);
                        $transition = implode(',', $transition_arr);
                        break;
                    }
                }
            }
            $slotAmount = $slide->getParam('slot_amount', '7');
            if (is_array($slotAmount)) {
                $slotAmount = implode(',', $slotAmount);
            }
            $imageAddParams = '';
            $isExternal = $slide->getParam('background_type', 'image');
            if ($isExternal != 'external') {
                $urlSlideImage = $slide->getImageUrl();
                //get image alt
                $alt_type = $slide->getParam('alt_option', 'media_library');
                $title_type = $slide->getParam('title_option', 'media_library');
                $alt = '';
                $img_title = '';
                $img_id = $slide->getImageID();
                switch ($alt_type) {
                    case 'media_library':
                        $alt = get_post_meta($img_id, '_wp_attachment_image_alt', true);
                        break;
                    case 'file_name':
                        $imageFilename = $slide->getImageFilename();
                        $info = pathinfo($imageFilename);
                        $alt = $info['filename'];
                        break;
                    case 'custom':
                        $alt = esc_attr($slide->getParam('alt_attr', ''));
                        break;
                }
                switch ($title_type) {
                    case 'media_library':
                        $img_title = get_the_title($img_id);
                        break;
                    case 'file_name':
                        $imageFilename = $slide->getImageFilename();
                        $info = pathinfo($imageFilename);
                        $img_title = $info['filename'];
                        break;
                    case 'custom':
                        $img_title = esc_attr($slide->getParam('title_attr', ''));
                        break;
                }
                $img_w = '';
                $img_h = '';
                $img_size = $slide->getParam('image_source_type', $def_image_source_type);
                if ($img_id !== false) {
                    $img_data = wp_get_attachment_metadata($img_id);
                    if ($img_data !== false && !empty($img_data)) {
                        if ($img_size !== 'full') {
                            if (isset($img_data['sizes']) && isset($img_data['sizes'][$img_size])) {
                                $img_w = isset($img_data['sizes'][$img_size]['width']) ? $img_data['sizes'][$img_size]['width'] : '';
                                $img_h = isset($img_data['sizes'][$img_size]['height']) ? $img_data['sizes'][$img_size]['height'] : '';
                            }
                        }
                        if ($img_w == '' || $img_h == '') {
                            $img_w = isset($img_data['width']) ? $img_data['width'] : '';
                            $img_h = isset($img_data['height']) ? $img_data['height'] : '';
                        }
                        $imageAddParams .= ' width="' . $img_w . '" height="' . $img_h . '"';
                    }
                }
            } else {
                $urlSlideImage = $slide->getParam('slide_bg_external', '');
                $alt = esc_attr($slide->getParam('alt_attr', ''));
                $img_title = esc_attr($slide->getParam('title_attr', ''));
                $img_w = $slide->getParam('ext_width', '1920');
                $img_h = $slide->getParam('ext_height', '1080');
                $imageAddParams .= ' width="' . $img_w . '" height="' . $img_h . '"';
            }
            if (isset($slide->ignore_alt)) {
                $alt = '';
            }
            $bgType = $slide->getParam('background_type', 'image');
            //get thumb url
            $is_special_nav = false;
            switch ($navigation_arrow_stlye) {
                //generate also if we have a special navigation selected
                case 'preview1':
                case 'preview2':
                case 'preview3':
                case 'preview4':
                case 'custom':
                    $is_special_nav = true;
            }
            switch ($navigation_bullets_style) {
                //generate also if we have a special navigation selected
                case 'preview1':
                case 'preview2':
                case 'preview3':
                case 'preview4':
                case 'custom':
                    $is_special_nav = true;
            }
            $htmlThumb = "";
            if ($isThumbsActive == true || $is_special_nav == true) {
                $urlThumb = null;
                if (empty($urlThumb)) {
                    $urlThumb = $slide->getParam('slide_thumb', '');
                }
                $thumb_do = $slide->getParam('thumb_dimension', 'slider');
                if ($thumb_do == 'slider') {
                    //use the slider settings for width / height
                    $th_width = intval($this->slider->getParam('previewimage_width', $this->slider->getParam('thumb_width', 100)));
                    $th_height = intval($this->slider->getParam('previewimage_height', $this->slider->getParam('thumb_height', 50)));
                    //$th_width = intval($this->slider->getParam('thumb_width', 100));
                    //$th_height = intval($this->slider->getParam('thumb_height', 50));
                    if ($th_width == 0) {
                        $th_width = 100;
                    }
                    if ($th_height == 0) {
                        $th_height = 50;
                    }
                    if ($source_type == 'youtube' || $source_type == 'vimeo' || $bgType == 'image' || $bgType == 'vimeo' || $bgType == 'youtube' || $bgType == 'html5' || $bgType == 'streamvimeo' || $bgType == 'streamyoutube' || $bgType == 'streaminstagram' || $bgType == 'streamtwitter' || $bgType == 'streamvimeoboth' || $bgType == 'streamyoutubeboth' || $bgType == 'streaminstagramboth' || $bgType == 'streamtwitterboth') {
                        if (empty($urlThumb)) {
                            //try to get resized thumb
                            $url_img_link = $slide->getImageUrl();
                            $urlThumb = rev_aq_resize($url_img_link, $th_width, $th_height, true, true, true);
                        } else {
                            $urlThumb = rev_aq_resize($urlThumb, $th_width, $th_height, true, true, true);
                            if (empty($urlThumb)) {
                                $urlThumb = $slide->getImageUrl();
                                $urlThumb = rev_aq_resize($urlThumb, $th_width, $th_height, true, true, true);
                            }
                        }
                        //if not - put regular image:
                        if (empty($urlThumb)) {
                            $urlThumb = $slide->getImageUrl();
                        }
                    }
                } else {
                    //if not - put regular image:
                    if (empty($urlThumb)) {
                        $urlThumb = $slide->getImageUrl();
                    }
                }
                if (is_ssl()) {
                    $urlThumb = str_replace('http://', 'https://', $urlThumb);
                } else {
                    $urlThumb = str_replace('https://', 'http://', $urlThumb);
                }
                $htmlThumb = ' data-thumb="' . $urlThumb . '" ';
            }
            //get link
            $htmlLink = '';
            $enableLink = $slide->getParam('enable_link', 'false');
            if ($enableLink == 'true') {
                $linkType = $slide->getParam('link_type', 'regular');
                switch ($linkType) {
                    //---- normal link
                    default:
                    case 'regular':
                        $link = do_shortcode($slide->getParam('link', ''));
                        $linkOpenIn = $slide->getParam('link_open_in', 'same');
                        $htmlTarget = '';
                        if ($linkOpenIn == 'new') {
                            $htmlTarget = ' data-target="_blank"';
                        }
                        $htmlLink = ' data-link="' . $link . '" ' . $htmlTarget . ' ';
                        break;
                        //---- link to slide
                    //---- link to slide
                    case 'slide':
                        $slideLink = RevSliderFunctions::getVal($params, 'slide_link');
                        if (!empty($slideLink) && $slideLink != 'nothing') {
                            //get slide index from id
                            if (is_numeric($slideLink)) {
                                $slideLink = RevSliderFunctions::getVal($this->slidesNumIndex, $slideLink);
                            }
                            if (!empty($slideLink)) {
                                $htmlLink = ' data-link="slide" data-linktoslide="' . $slideLink . '" ';
                            }
                        }
                        break;
                }
                //set link position:
                $linkPos = RevSliderFunctions::getVal($params, 'link_pos', 'front');
                if ($linkPos == 'back') {
                    $htmlLink .= ' data-slideindex="back"';
                }
            }
            //set delay
            $htmlDelay = '';
            $delay = $slide->getParam('delay', '');
            if (!empty($delay) && is_numeric($delay)) {
                $htmlDelay = ' data-delay="' . $delay . '" ';
            }
            //set Stop Slide on Purpose
            $htmlStopPurpose = '';
            $stoponpurpose = $slide->getParam('stoponpurpose', '');
            if (!empty($stoponpurpose) && $stoponpurpose == "true") {
                $htmlStopPurpose = ' data-ssop="true" ';
            }
            //set Stop Slide on Purpose
            $htmlInvisibleSlide = '';
            $invisibleslide = $slide->getParam('invisibleslide', '');
            if (!empty($invisibleslide) && $invisibleslide == "true") {
                $htmlInvisibleSlide = ' data-invisible="true" ';
            }
            //get duration
            $htmlDuration = '';
            $duration = $slide->getParam('transition_duration', $this->slider->getParam('def-transition_duration', ''));
            if (is_array($duration)) {
                $duration = implode(',', $duration);
            }
            if (!empty($duration)) {
                $htmlDuration = ' data-masterspeed="' . $duration . '" ';
            }
            //get performance
            $htmlPerformance = '';
            $performance = $slide->getParam('save_performance', 'off');
            if (!empty($performance) && ($performance == 'on' || $performance == 'off')) {
                $htmlPerformance = ' data-saveperformance="' . $performance . '" ';
            }
            //get rotation
            $htmlRotation = '';
            $rotation = (array) $slide->getParam('transition_rotation', '');
            if (!empty($rotation)) {
                $rot_string = '';
                foreach ($rotation as $rkey => $rot) {
                    $rot = (int) $rot;
                    if ($rot != 0) {
                        if ($rot > 720 && $rot != 999) {
                            $rot = 720;
                        }
                        if ($rot < -720) {
                            $rot = -720;
                        }
                    }
                    if ($rkey > 0) {
                        $rot_string .= ',';
                    }
                    $rot_string .= $rot;
                }
                $htmlRotation = ' data-rotate="' . $rot_string . '" ';
            }
            $htmlEaseIn = '';
            $easein = $slide->getParam('transition_ease_in', 'default');
            if (!empty($easein) && is_array($easein)) {
                $easein = implode(',', $easein);
            }
            if ($easein !== '') {
                $htmlEaseIn = ' data-easein="' . $easein . '"';
            }
            $htmlEaseOut = '';
            $easeout = $slide->getParam('transition_ease_out', 'default');
            if (!empty($easeout) && is_array($easeout)) {
                $easeout = implode(',', $easeout);
            }
            if ($easeout !== '') {
                $htmlEaseOut = ' data-easeout="' . $easeout . '"';
            }
            $fullWidthVideoData = $this->getSlideFullWidthVideoData($slide);
            //set first slide transition
            $htmlFirstTrans = '';
            if ($index == $startWithSlide && $slider_type !== 'hero') {
                $htmlFirstTrans = $htmlFirstTransWrap;
            }
            //first trans
            $htmlParams = $htmlEaseIn . $htmlEaseOut . $htmlDuration . $htmlLink . $htmlThumb . $htmlDelay . $htmlRotation . $htmlFirstTrans . $htmlPerformance . $htmlStopPurpose . $htmlInvisibleSlide;
            $styleImage = '';
            $urlImageTransparent = RS_PLUGIN_URL . 'admin/assets/images/transparent.png';
            switch ($bgType) {
                case 'trans':
                    $urlSlideImage = $urlImageTransparent;
                    break;
                case 'solid':
                    $urlSlideImage = $urlImageTransparent;
                    $slideBGColor = $slide->getParam('slide_bg_color', '#d0d0d0');
                    $styleImage = "style='background-color:" . $slideBGColor . "'";
                    break;
                case 'streamvimeo':
                case 'streamyoutube':
                case 'streaminstagram':
                case 'streamtwitter':
                    if ($slide->getParam('stream_do_cover', 'on') == 'off') {
                        $urlSlideImage = $urlImageTransparent;
                    }
                    break;
                case 'streamvimeoboth':
                case 'streamyoutubeboth':
                case 'streaminstagramboth':
                case 'streamtwitterboth':
                    if ($this->checkIfStreamVideoExists($slide)) {
                        if ($slide->getParam('stream_do_cover_both', 'on') == 'off') {
                            $urlSlideImage = $urlImageTransparent;
                        }
                    }
                    break;
            }
            if (trim($urlSlideImage) == '') {
                $urlSlideImage = $urlImageTransparent;
            }
            //go back to transparent if img is empty
            //additional params
            if ($lazyLoad != 'none') {
                $imageAddParams .= ' data-lazyload="' . $urlSlideImage . '"';
                $urlSlideImage = RS_PLUGIN_URL . 'admin/assets/images/dummy.png';
            }
            //additional background params
            $bgFit = $slide->getParam('bg_fit', $this->slider->getParam('def-background_fit', 'cover'));
            $bgFitX = intval($slide->getParam('bg_fit_x', $this->slider->getParam('def-bg_fit_x', '100')));
            $bgFitY = intval($slide->getParam('bg_fit_y', $this->slider->getParam('def-bg_fit_y', '100')));
            $bgPosition = $slide->getParam('bg_position', $this->slider->getParam('def-bg_position', 'center center'));
            if ($bgType == 'streamvimeoboth' || $bgType == 'streamyoutubeboth' || $bgType == 'streaminstagramboth' || $bgType == 'streamtwitterboth') {
                if ($this->checkIfStreamVideoExists($slide)) {
                    $bgPosition = 'center center';
                }
            } else {
                if ($bgType == 'youtube' || $bgType == 'vimeo' || $bgType == 'html5' || $bgType == 'streamvimeo' || $bgType == 'streamyoutube' || $bgType == 'streaminstagram' || $bgType == 'streamtwitter') {
                    $bgPosition = 'center center';
                }
            }
            $bgPositionX = intval($slide->getParam('bg_position_x', $this->slider->getParam('def-bg_position_x', '0')));
            $bgPositionY = intval($slide->getParam('bg_position_y', $this->slider->getParam('def-bg_position_y', '0')));
            $bgRepeat = $slide->getParam('bg_repeat', $this->slider->getParam('def-bg_repeat', 'no-repeat'));
            if ($bgPosition == 'percentage') {
                $imageAddParams .= ' data-bgposition="' . $bgPositionX . '% ' . $bgPositionY . '%"';
            } else {
                $imageAddParams .= ' data-bgposition="' . $bgPosition . '"';
            }
            //check for kenburn & pan zoom
            $kenburn_effect = $slide->getParam('kenburn_effect', $this->slider->getParam('def-kenburn_effect', 'off'));
            $kb_duration = intval($slide->getParam('kb_duration', $this->slider->getParam('def-kb_duration', '10000')));
            $kb_ease = $slide->getParam('kb_easing', $this->slider->getParam('def-kb_easing', 'Linear.easeNone'));
            $kb_start_fit = $slide->getParam('kb_start_fit', $this->slider->getParam('def-kb_start_fit', '100'));
            $kb_end_fit = $slide->getParam('kb_end_fit', $this->slider->getParam('def-kb_end_fit', '100'));
            $kb_start_offset_x = $slide->getParam('kb_start_offset_x', $this->slider->getParam('def-kb_start_offset_x', '0'));
            $kb_start_offset_y = $slide->getParam('kb_start_offset_y', $this->slider->getParam('def-kb_start_offset_y', '0'));
            $kb_end_offset_x = $slide->getParam('kb_end_offset_x', $this->slider->getParam('def-kb_end_offset_x', '0'));
            $kb_end_offset_y = $slide->getParam('kb_end_offset_y', $this->slider->getParam('def-kb_end_offset_y', '0'));
            $kb_start_rotate = $slide->getParam('kb_start_rotate', $this->slider->getParam('def-kb_start_rotate', '0'));
            $kb_end_rotate = $slide->getParam('kb_end_rotate', $this->slider->getParam('def-kb_end_rotate', '0'));
            $kb_pz = '';
            if ($kenburn_effect == "on" && ($bgType == 'image' || $bgType == 'external')) {
                $kb_pz .= ' data-kenburns="on"';
                $kb_pz .= ' data-duration="' . $kb_duration . '"';
                $kb_pz .= ' data-ease="' . $kb_ease . '"';
                $kb_pz .= ' data-scalestart="' . $kb_start_fit . '"';
                $kb_pz .= ' data-scaleend="' . $kb_end_fit . '"';
                $kb_pz .= ' data-rotatestart="' . $kb_start_rotate . '"';
                $kb_pz .= ' data-rotateend="' . $kb_end_rotate . '"';
                $kb_pz .= ' data-offsetstart="' . $kb_start_offset_x . ' ' . $kb_start_offset_y . '"';
                $kb_pz .= ' data-offsetend="' . $kb_end_offset_x . ' ' . $kb_end_offset_y . '"';
            } else {
                //only set if kenburner is off and not a background video
                if ($bgType == 'youtube' || $bgType == 'html5' || $bgType == 'vimeo' || $bgType == 'streamvimeo' || $bgType == 'streamyoutube' || $bgType == 'streaminstagram' || $bgType == 'streamtwitter') {
                    $imageAddParams .= ' data-bgfit="cover"';
                } else {
                    if ($bgFit == 'percentage') {
                        $imageAddParams .= ' data-bgfit="' . $bgFitX . '% ' . $bgFitY . '%"';
                    } else {
                        $imageAddParams .= ' data-bgfit="' . $bgFit . '"';
                    }
                    $imageAddParams .= ' data-bgrepeat="' . $bgRepeat . '"';
                }
            }
            //add Slide Title if we have special navigation type choosen
            $slide_title = '';
            $class_attr = $slide->getParam("class_attr", "");
            if ($class_attr !== '') {
                $htmlParams .= ' class="' . $class_attr . '"';
            }
            $id_attr = $slide->getParam('id_attr', '');
            if ($id_attr !== '') {
                $htmlParams .= ' id="' . $id_attr . '"';
            }
            $data_attr = stripslashes($slide->getParam('data_attr', ''));
            if ($data_attr !== '') {
                $htmlParams .= ' ' . $data_attr;
            }
            if ($post_based_slider) {
                //check if we are post based or normal slider
                $the_post = get_post($slide->getID());
                $new_title = @get_the_title($slide->getID());
                $the_excerpt = strip_tags(strip_shortcodes($the_post->post_excerpt));
                $slide_title = ' data-title="' . stripslashes(esc_attr($new_title)) . '"';
                $slide_description = ' data-description="' . str_replace(array("\\'", '\\"'), array("'", '"'), esc_attr($the_excerpt)) . '"';
            } else {
                $slide_title = ' data-title="' . stripslashes(esc_attr($slide->getParam("title", "Slide"))) . '"';
                $slide_description = ' data-description="' . str_replace(array("\\'", '\\"'), array("'", '"'), esc_attr($slide->getParam('slide_description', ''))) . '"';
            }
            $slide_id = $slide->getID();
            if ($slide->getParam('slide_id', '') !== '') {
                $slide_id = esc_attr($slide_id);
            }
            $add_params = '';
            for ($mi = 1; $mi <= 10; $mi++) {
                $pa = $slide->getParam('params_' . $mi, '');
                //add meta functionality here
                if ($pa !== '') {
                    $pa_limit = $slide->getParam('params_' . $mi . '_chars', 10, RevSlider::FORCE_NUMERIC);
                    $pa = strip_tags($pa);
                    $pa = mb_substr($pa, 0, $pa_limit, 'utf-8');
                }
                $add_params .= ' data-param' . $mi . '="' . stripslashes(esc_attr($pa)) . '"';
            }
            $use_parallax = $this->slider->getParam("use_parallax", $this->slider->getParam('use_parallax', 'off'));
            $parallax_attr = '';
            if ($use_parallax == 'on') {
                $slide_level = $slide->getParam('slide_parallax_level', '-');
                if ($slide_level == '-') {
                    $slide_level = 'off';
                }
                $parallax_attr = ' data-bgparallax="' . $slide_level . '"';
            }
            $hideslideafter = $slide->getParam("hideslideafter", 0);
            $hsom = $slide->getParam('hideslideonmobile', 'off');
            if ($img_title !== '') {
                $img_title = ' title="' . $img_title . '"';
            }
            //Html rev-main-
            echo '	<!-- SLIDE  -->' . "\n";
            echo '	<li data-index="rs-' . $slide_id . '" data-transition="' . $transition . '" data-slotamount="' . $slotAmount . '" data-hideafterloop="' . $hideslideafter . '" data-hideslideonmobile="' . $hsom . '" ' . $add_rand . $htmlParams . $slide_title . $add_params . $slide_description;
            do_action('revslider_add_li_data', $this->slider, $slide);
            echo '>' . "\n";
            echo '		<!-- MAIN IMAGE -->' . "\n";
            echo '		<img src="' . $urlSlideImage . '" ' . $styleImage . ' alt="' . $alt . '"' . $img_title . ' ' . $imageAddParams . $kb_pz . $parallax_attr . ' class="rev-slidebg" data-no-retina>' . "\n";
            echo '		<!-- LAYERS -->' . "\n";
            //check if we are youtube, vimeo or html5
            if ($bgType == 'youtube' || $bgType == 'html5' || $bgType == 'vimeo' || $bgType == 'streamvimeo' || $bgType == 'streamyoutube' || $bgType == 'streaminstagram' || $bgType == 'streamtwitter') {
                $this->putBackgroundVideo($slide);
            }
            if ($bgType == 'streamvimeoboth' || $bgType == 'streamyoutubeboth' || $bgType == 'streaminstagramboth' || $bgType == 'streamtwitterboth') {
                if ($this->checkIfStreamVideoExists($slide)) {
                    $this->putBackgroundVideo($slide);
                }
            }
            $this->putCreativeLayer($slide);
            do_action('revslider_add_layer_html', $this->slider, $slide);
            echo "\t</li>\n";
            $index++;
        }
        //get foreach
        echo "</ul>\n";
        if ($do_static && !empty($this->static_slide)) {
            $layers = $this->static_slide->getLayers();
            if (!empty($layers)) {
                $htmlstaticoverflow = '';
                $staticoverflow = $this->static_slide->getParam('staticoverflow', '');
                if (!empty($staticoverflow) && $staticoverflow == "hidden") {
                    $htmlstaticoverflow = 'overflow:hidden;width:100%;height:100%;top:0px;left:0px;';
                }
                //check for static layers
                echo '<div style="' . $htmlstaticoverflow . '" class="tp-static-layers">' . "\n";
                $this->putCreativeLayer($this->static_slide, true);
                do_action('revslider_add_static_layer_html', $this->slider);
                echo '</div>' . "\n";
            }
        }
        $this->add_custom_navigation_css($slides);
    }
Example #21
0
 /**
  * 
  * put creative layer
  */
 private function putCreativeLayer(RevSlide $slide, $static_slide = false)
 {
     $layers = $slide->getLayers();
     $customAnimations = RevOperations::getCustomAnimations('customin');
     //get all custom animations
     $customEndAnimations = RevOperations::getCustomAnimations('customout');
     //get all custom animations
     $startAnimations = RevOperations::getArrAnimations(false);
     //only get the standard animations
     $endAnimations = RevOperations::getArrEndAnimations(false);
     //only get the standard animations
     $lazyLoad = $this->slider->getParam("lazy_load", "off");
     $isTemplate = $this->slider->getParam("template", "false");
     if (empty($layers)) {
         return false;
     }
     $zIndex = 5;
     foreach ($layers as $layer) {
         $type = UniteFunctionsRev::getVal($layer, "type", "text");
         //set if video full screen
         $videoclass = '';
         $isFullWidthVideo = false;
         if ($type == "video") {
             $videoclass = ' tp-videolayer';
             $videoData = UniteFunctionsRev::getVal($layer, "video_data");
             if (!empty($videoData)) {
                 $videoData = (array) $videoData;
                 $isFullWidthVideo = UniteFunctionsRev::getVal($videoData, "fullwidth");
                 $isFullWidthVideo = UniteFunctionsRev::strToBool($isFullWidthVideo);
             } else {
                 $videoData = array();
             }
         }
         $class = UniteFunctionsRev::getVal($layer, "style");
         if (trim($class) !== '') {
             $this->class_include['.' . trim($class)] = true;
         }
         //add classname for style inclusion
         $animation = UniteFunctionsRev::getVal($layer, "animation", "tp-fade");
         if ($animation == "fade") {
             $animation = "tp-fade";
         }
         $customin = '';
         if (!array_key_exists($animation, $startAnimations) && array_key_exists($animation, $customAnimations)) {
             //if true, add custom animation
             $customin .= 'data-customin="';
             $animArr = RevOperations::getCustomAnimationByHandle($customAnimations[$animation]);
             if ($animArr !== false) {
                 $customin .= RevOperations::parseCustomAnimationByArray($animArr);
             }
             $customin .= '"';
             $animation = 'customin';
         }
         if (strpos($animation, 'customin-') !== false || strpos($animation, 'customout-') !== false) {
             $animation = "tp-fade";
         }
         //set output class:
         $layer_2d_rotation = intval(UniteFunctionsRev::getVal($layer, "2d_rotation", '0'));
         $layer_2d_origin_x = intval(UniteFunctionsRev::getVal($layer, "2d_origin_x", '50'));
         $layer_2d_origin_y = intval(UniteFunctionsRev::getVal($layer, "2d_origin_y", '50'));
         if ($layer_2d_rotation == 0) {
             $outputClass = "tp-caption " . trim($class);
         } else {
             $outputClass = "tp-caption ";
         }
         $outputClass = trim($outputClass) . " ";
         $outputClass .= trim($animation);
         $left = UniteFunctionsRev::getVal($layer, "left", 0);
         $top = UniteFunctionsRev::getVal($layer, "top", 0);
         $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
         $time = UniteFunctionsRev::getVal($layer, "time", 0);
         $easing = UniteFunctionsRev::getVal($layer, "easing", "easeOutExpo");
         $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation", "false");
         $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
         $splitin = UniteFunctionsRev::getVal($layer, "split", "none");
         $splitout = UniteFunctionsRev::getVal($layer, "endsplit", "none");
         $elementdelay = intval(UniteFunctionsRev::getVal($layer, "splitdelay", 0));
         $endelementdelay = intval(UniteFunctionsRev::getVal($layer, "endsplitdelay", 0));
         if ($elementdelay > 0) {
             $elementdelay /= 100;
         }
         if ($endelementdelay > 0) {
             $endelementdelay /= 100;
         }
         $text = UniteFunctionsRev::getVal($layer, "text");
         if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
             //use qTranslate
             $text = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text);
         }
         $htmlVideoAutoplay = "";
         $htmlVideoAutoplayOnlyFirstTime = "";
         $htmlVideoNextSlide = "";
         $htmlVideoThumbnail = "";
         $htmlMute = '';
         $htmlCover = '';
         $htmlDotted = '';
         $htmlRatio = '';
         $htmlRewind = '';
         $htmlDisableOnMobile = '';
         $ids = UniteFunctionsRev::getVal($layer, "attrID");
         $classes = UniteFunctionsRev::getVal($layer, "attrClasses");
         $title = UniteFunctionsRev::getVal($layer, "attrTitle");
         $rel = UniteFunctionsRev::getVal($layer, "attrRel");
         $ids = $ids != '' ? ' id="' . $ids . '"' : '';
         $classes = $classes != '' ? ' ' . $classes : '';
         $title = $title != '' ? ' title="' . $title . '"' : '';
         $rel = $rel != '' ? ' rel="' . $rel . '"' : '';
         $max_width = UniteFunctionsRev::getVal($layer, "max_width", 'auto');
         $max_height = UniteFunctionsRev::getVal($layer, "max_height", 'auto');
         $white_space = UniteFunctionsRev::getVal($layer, "whitespace", 'nowrap');
         $inline_styles = '';
         $layer_rotation = '';
         $do_rotation = false;
         $add_data = '';
         $videoType = '';
         $cover = false;
         //set html:
         $html = "";
         switch ($type) {
             default:
             case "text":
                 $html = $text;
                 $inline_styles .= ' max-width: ' . $max_width . '; max-height: ' . $max_height . '; white-space: ' . $white_space . ';';
                 if ($layer_2d_rotation !== 0) {
                     $do_rotation = true;
                 }
                 break;
             case "image":
                 $alt = UniteFunctionsRev::getVal($layer, "alt");
                 if (isset($slide->ignore_alt)) {
                     $alt = '';
                 }
                 $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                 $additional = "";
                 $scaleX = UniteFunctionsRev::getVal($layer, "scaleX");
                 $scaleY = UniteFunctionsRev::getVal($layer, "scaleY");
                 if ($scaleX != '') {
                     $additional .= ' data-ww="' . $scaleX . '"';
                 }
                 if ($scaleY != '') {
                     $additional .= ' data-hh="' . $scaleY . '"';
                 }
                 if (is_ssl()) {
                     $urlImage = str_replace("http://", "https://", $urlImage);
                 }
                 $imageAddParams = "";
                 if ($lazyLoad == "on") {
                     $imageAddParams .= " data-lazyload=\"{$urlImage}\"";
                     $urlImage = GlobalsRevSlider::$url_media . "assets/images/dummy.png";
                 }
                 $urlImage = UniteFunctionJoomlaRev::urlToFull($urlImage);
                 $html = '<img src="' . $urlImage . '" alt="' . $alt . '"' . $additional . $imageAddParams . '>';
                 $imageLink = UniteFunctionsRev::getVal($layer, "link", "");
                 if (!empty($imageLink)) {
                     $openIn = UniteFunctionsRev::getVal($layer, "link_open_in", "same");
                     $target = "";
                     if ($openIn == "new") {
                         $target = ' target="_blank"';
                     }
                     $linkID = UniteFunctionsRev::getVal($layer, "link_id", "");
                     $linkClass = UniteFunctionsRev::getVal($layer, "link_class", "");
                     $linkTitle = UniteFunctionsRev::getVal($layer, "link_title", "");
                     $linkRel = UniteFunctionsRev::getVal($layer, "link_rel", "");
                     $linkIDHtml = "";
                     $linkClassHtml = "";
                     $linkTitleHtml = "";
                     $linkRelHtml = "";
                     if (!empty($linkID)) {
                         $linkIDHtml = ' id="' . $linkID . '"';
                     }
                     if (!empty($linkClass)) {
                         $linkClassHtml = ' class="' . $linkClass . '"';
                     }
                     if (!empty($linkTitle)) {
                         $linkTitleHtml = ' title="' . $linkTitle . '"';
                     }
                     if (!empty($linkRel)) {
                         $linkRelHtml = ' rel="' . $linkRel . '"';
                     }
                     $html = '<a href="' . $imageLink . '"' . $target . $linkIDHtml . $linkClassHtml . $linkTitleHtml . $linkRelHtml . '>' . $html . '</a>';
                 }
                 if ($layer_2d_rotation !== 0) {
                     $do_rotation = true;
                 }
                 break;
             case "video":
                 $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
                 $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
                 $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
                 $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
                 $videoArgs = trim(UniteFunctionsRev::getVal($layer, "video_args"));
                 $v_controls = UniteFunctionsRev::getVal($videoData, "controls");
                 $v_controls = UniteFunctionsRev::strToBool($v_controls);
                 $rewind = UniteFunctionsRev::getVal($videoData, "forcerewind");
                 $rewind = UniteFunctionsRev::strToBool($rewind);
                 $htmlRewind = $rewind == true ? ' data-forcerewind="on"' : '';
                 $only_poster_on_mobile = UniteFunctionsRev::getVal($layer, "use_poster_on_mobile");
                 $only_poster_on_mobile = UniteFunctionsRev::strToBool($only_poster_on_mobile);
                 if ($isFullWidthVideo == true) {
                     // || $cover == true
                     $videoWidth = "100%";
                     $videoHeight = "100%";
                 }
                 $setBase = is_ssl() ? "https://" : "http://";
                 $cover = UniteFunctionsRev::getVal($videoData, "cover");
                 $cover = UniteFunctionsRev::strToBool($cover);
                 switch ($videoType) {
                     case "youtube":
                         if (empty($videoArgs)) {
                             $videoArgs = GlobalsRevSlider::DEFAULT_YOUTUBE_ARGUMENTS;
                         }
                         //check if full URL
                         if (strpos($videoID, 'http') !== false) {
                             //we have full URL, split it to ID
                             parse_str(parse_url($videoID, PHP_URL_QUERY), $my_v_ret);
                             $videoID = $my_v_ret['v'];
                         }
                         $videospeed = UniteFunctionsRev::getVal($videoData, "videospeed", '1');
                         //$ytBase = 'https://';
                         //if($v_controls) $videoArgs.='controls=0;';
                         $videoArgs .= ';origin=' . $setBase . $_SERVER['SERVER_NAME'] . ';';
                         $add_data = ' data-ytid="' . $videoID . '" data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '" data-videoattributes="version=3&amp;enablejsapi=1&amp;html5=1&amp;' . $videoArgs . '" data-videorate="' . $videospeed . '"';
                         $add_data .= $v_controls ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         //$html = "<iframe src='".$ytBase."www.youtube.com/embed/".$videoID."?enablejsapi=1&amp;html5=1&amp;".$videoArgs."' allowfullscreen='true' width='".$videoWidth."' height='".$videoHeight."' style='width:".$videoWidth."px;height:".$videoHeight."px;'></iframe>";
                         break;
                     case "vimeo":
                         if (empty($videoArgs)) {
                             $videoArgs = GlobalsRevSlider::DEFAULT_VIMEO_ARGUMENTS;
                         }
                         //check if full URL
                         if (strpos($videoID, 'http') !== false) {
                             //we have full URL, split it to ID
                             $videoID = (int) substr(parse_url($videoID, PHP_URL_PATH), 1);
                         }
                         $add_data = ' data-vimeoid="' . $videoID . '" data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '" data-videoattributes="' . $videoArgs . '"';
                         //no controls for vimeo $add_data .= ($v_controls) ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         //$html = "<iframe src='".$setBase."player.vimeo.com/video/".$videoID."?".$videoArgs."' width='".$videoWidth."' height='".$videoHeight."' style='width:".$videoWidth."px;height:".$videoHeight."px;'></iframe>";
                         break;
                     case "html5":
                         $urlPoster = UniteFunctionsRev::getVal($videoData, "urlPoster");
                         $urlMp4 = UniteFunctionsRev::getVal($videoData, "urlMp4");
                         $urlWebm = UniteFunctionsRev::getVal($videoData, "urlWebm");
                         $urlOgv = UniteFunctionsRev::getVal($videoData, "urlOgv");
                         $videopreload = UniteFunctionsRev::getVal($videoData, "preload");
                         $videoloop = UniteFunctionsRev::getVal($videoData, "videoloop");
                         $add_data = ' data-videowidth="' . $videoWidth . '" data-videoheight="' . $videoHeight . '"';
                         $add_data .= $v_controls ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
                         if (!empty($urlPoster)) {
                             $add_data .= ' data-videoposter="' . $urlPoster . '"';
                         }
                         if (!empty($urlOgv)) {
                             $add_data .= ' data-videoogv="' . $urlOgv . '"';
                         }
                         if (!empty($urlWebm)) {
                             $add_data .= ' data-videowebm="' . $urlWebm . '"';
                         }
                         if (!empty($urlMp4)) {
                             $add_data .= ' data-videomp4="' . $urlMp4 . '"';
                         }
                         if (!empty($urlPoster)) {
                             if ($only_poster_on_mobile === true) {
                                 $add_data .= ' data-posterOnMObile="on"';
                             } else {
                                 $add_data .= ' data-posterOnMObile="off"';
                             }
                         }
                         if (!empty($videopreload)) {
                             $add_data .= ' data-videopreload="' . $videopreload . '"';
                         }
                         if (UniteFunctionsRev::strToBool($videoloop) == true) {
                             //fallback
                             $add_data .= ' data-videoloop="loop"';
                         } else {
                             $add_data .= ' data-videoloop="' . $videoloop . '"';
                         }
                         break;
                     default:
                         UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                         break;
                 }
                 if ($cover == true) {
                     $dotted = UniteFunctionsRev::getVal($videoData, "dotted");
                     if ($dotted !== 'none') {
                         $add_data .= ' data-dottedoverlay="' . $dotted . '"';
                     }
                     $add_data .= ' data-forceCover="1"';
                     $ratio = UniteFunctionsRev::getVal($videoData, "ratio");
                     if (!empty($ratio)) {
                         $add_data .= ' data-aspectratio="' . $ratio . '"';
                     }
                 }
                 //set video autoplay, with backward compatability
                 if (array_key_exists("autoplay", $videoData)) {
                     $videoAutoplay = UniteFunctionsRev::getVal($videoData, "autoplay");
                 } else {
                     //backword compatability
                     $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
                 }
                 //set video autoplayonlyfirsttime, with backward compatability
                 if (array_key_exists("autoplayonlyfirsttime", $videoData)) {
                     $videoAutoplayOnlyFirstTime = UniteFunctionsRev::getVal($videoData, "autoplayonlyfirsttime");
                 } else {
                     $videoAutoplayOnlyFirstTime = "";
                 }
                 $videoAutoplay = UniteFunctionsRev::strToBool($videoAutoplay);
                 $videoAutoplayOnlyFirstTime = UniteFunctionsRev::strToBool($videoAutoplayOnlyFirstTime);
                 $mute = UniteFunctionsRev::getVal($videoData, "mute");
                 $mute = UniteFunctionsRev::strToBool($mute);
                 $htmlMute = $mute ? ' data-volume="mute"' : '';
                 if ($videoAutoplay == true) {
                     $htmlVideoAutoplay = '			data-autoplay="true"' . "\n";
                 } else {
                     $htmlVideoAutoplay = '			data-autoplay="false"' . "\n";
                 }
                 if ($videoAutoplayOnlyFirstTime == true && $videoAutoplay == true) {
                     $htmlVideoAutoplayOnlyFirstTime = '			data-autoplayonlyfirsttime="true"' . "\n";
                 } else {
                     $htmlVideoAutoplayOnlyFirstTime = '			data-autoplayonlyfirsttime="false"' . "\n";
                 }
                 $videoNextSlide = UniteFunctionsRev::getVal($videoData, "nextslide");
                 $videoNextSlide = UniteFunctionsRev::strToBool($videoNextSlide);
                 if ($videoNextSlide == true) {
                     $htmlVideoNextSlide = '			data-nextslideatend="true"' . "\n";
                 }
                 $videoThumbnail = @$videoData["previewimage"];
                 if (trim($videoThumbnail) !== '') {
                     $htmlVideoThumbnail = '			data-videoposter="' . $videoThumbnail . '"' . "\n";
                 }
                 if (!empty($videoThumbnail)) {
                     if ($only_poster_on_mobile === true) {
                         $htmlVideoThumbnail .= '			data-posterOnMObile="on"' . " \n";
                     } else {
                         $htmlVideoThumbnail .= '			data-posterOnMObile="off"' . " \n";
                     }
                 }
                 $disable_on_mobile = UniteFunctionsRev::getVal($videoData, "disable_on_mobile");
                 $disable_on_mobile = UniteFunctionsRev::strToBool($disable_on_mobile);
                 $htmlDisableOnMobile = $disable_on_mobile ? '			data-disablevideoonmobile="1"' . "\n" : '';
                 break;
         }
         if ($do_rotation) {
             $layer_rotation = ' -moz-transform: rotate(' . $layer_2d_rotation . 'deg); -ms-transform: rotate(' . $layer_2d_rotation . 'deg); -o-transform: rotate(' . $layer_2d_rotation . 'deg); -webkit-transform: rotate(' . $layer_2d_rotation . 'deg); transform: rotate(' . $layer_2d_rotation . 'deg);';
             $layer_rotation .= ' -moz-transform-origin: ' . $layer_2d_origin_x . '% ' . $layer_2d_origin_y . '%; -ms-transform-origin: ' . $layer_2d_origin_x . '% ' . $layer_2d_origin_y . '%; -o-transform-origin: ' . $layer_2d_origin_x . '% ' . $layer_2d_origin_y . '%; -webkit-transform-origin: ' . $layer_2d_origin_x . '% ' . $layer_2d_origin_y . '%; transform-origin: ' . $layer_2d_origin_x . '% ' . $layer_2d_origin_y . '%;';
         }
         //handle end transitions:
         $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
         $realEndTime = trim(UniteFunctionsRev::getVal($layer, "realEndTime"));
         $endWithSlide = UniteFunctionsRev::getVal($layer, "endWithSlide", false);
         $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
         $calcSpeed = !empty($endSpeed) ? $endSpeed : $speed;
         if (!empty($calcSpeed) && $realEndTime - $calcSpeed !== $endTime) {
             $endTime = $realEndTime - $calcSpeed;
         }
         $htmlEnd = "";
         $customout = '';
         if (!empty($endTime) && $endWithSlide !== true) {
             $htmlEnd = " data-end=\"{$endTime}\"" . "\n";
         }
         if (!empty($endSpeed)) {
             $htmlEnd .= " data-endspeed=\"{$endSpeed}\"" . "\n";
         }
         $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
         if (!empty($endSpeed) && $endEasing != "nothing") {
             $htmlEnd .= "\t\t\tdata-endeasing=\"{$endEasing}\"" . "\n";
         }
         //add animation to class
         $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
         if ($endAnimation == "fade") {
             $endAnimation = "tp-fade";
         }
         if (!array_key_exists($endAnimation, $endAnimations) && array_key_exists($endAnimation, $customEndAnimations)) {
             //if true, add custom animation
             $customout = 'data-customout="';
             $animArr = RevOperations::getCustomAnimationByHandle($customEndAnimations[$endAnimation]);
             if ($animArr !== false) {
                 $customout .= RevOperations::parseCustomAnimationByArray($animArr);
             }
             $customout .= '"';
             $endAnimation = 'customout';
         }
         if (strpos($endAnimation, 'customin-') !== false || strpos($endAnimation, 'customout-') !== false) {
             $endAnimation = "";
         }
         if (!empty($endAnimation) && $endAnimation != "auto") {
             $outputClass .= " " . $endAnimation;
         }
         //slide link
         $htmlLink = "";
         $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
         if (!empty($slideLink) && $slideLink != "nothing" && $slideLink != "scroll_under") {
             //get slide index from id
             if (is_numeric($slideLink)) {
                 $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
             }
             if (!empty($slideLink)) {
                 $htmlLink = "data-linktoslide=\"{$slideLink}\"" . "\n";
             }
         }
         //scroll under the slider
         if ($slideLink == "scroll_under") {
             $outputClass .= " tp-scrollbelowslider";
             $scrollUnderOffset = intval(UniteFunctionsRev::getVal($layer, "scrollunder_offset"));
             $htmlLink .= " data-scrolloffset=\"" . $scrollUnderOffset . "\"" . "\n";
         }
         //hidden under resolution
         $htmlHidden = "";
         $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
         if ($layerHidden == "true" || $layerHidden == "1") {
             $htmlHidden = '			data-captionhidden="on"' . "\n";
         }
         $htmlParams = $add_data . $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlVideoAutoplayOnlyFirstTime . $htmlVideoNextSlide . $htmlVideoThumbnail . $htmlHidden . $htmlMute . $htmlDisableOnMobile . $htmlCover . $htmlDotted . $htmlRatio . $htmlRewind . "\n";
         //set positioning options
         $alignHor = UniteFunctionsRev::getVal($layer, "align_hor", "left");
         $alignVert = UniteFunctionsRev::getVal($layer, "align_vert", "top");
         $htmlPosX = "";
         $htmlPosY = "";
         switch ($alignHor) {
             default:
             case "left":
                 $htmlPosX = "data-x=\"" . $left . "\"";
                 break;
             case "center":
                 $htmlPosX = "data-x=\"center\" data-hoffset=\"" . $left . "\"";
                 break;
             case "right":
                 $left = (int) $left * -1;
                 $htmlPosX = "data-x=\"right\" data-hoffset=\"" . $left . "\"";
                 break;
         }
         switch ($alignVert) {
             default:
             case "top":
                 $htmlPosY = "data-y=\"" . $top . "\" ";
                 break;
             case "middle":
                 $htmlPosY = "data-y=\"center\" data-voffset=\"" . $top . "\"";
                 break;
             case "bottom":
                 $top = (int) $top * -1;
                 $htmlPosY = "data-y=\"bottom\" data-voffset=\"" . $top . "\"";
                 break;
         }
         //set corners
         $htmlCorners = "";
         if ($type == "text") {
             $cornerLeft = UniteFunctionsRev::getVal($layer, "corner_left");
             $cornerRight = UniteFunctionsRev::getVal($layer, "corner_right");
             switch ($cornerLeft) {
                 case "curved":
                     $htmlCorners .= "<div class='frontcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='frontcornertop'></div>";
                     break;
             }
             switch ($cornerRight) {
                 case "curved":
                     $htmlCorners .= "<div class='backcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='backcornertop'></div>";
                     break;
             }
             //add resizeme class
             $resizeme = UniteFunctionsRev::getVal($layer, "resizeme");
             if ($resizeme == "true" || $resizeme == "1") {
                 $outputClass .= ' tp-resizeme';
             }
         }
         //end text related layer
         //make some modifications for the full screen video
         if ($isFullWidthVideo == true) {
             $htmlPosX = "data-x=\"0\"";
             $htmlPosY = "data-y=\"0\"";
             $outputClass .= " fullscreenvideo";
         }
         //parallax part
         $use_parallax = $this->slider->getParam("use_parallax", "off");
         $parallax_class = '';
         if ($use_parallax == 'on') {
             $slide_level = intval(UniteFunctionsRev::getVal($layer, "parallax_level", '-'));
             if ($slide_level !== '-') {
                 $parallax_class = ' rs-parallaxlevel-' . $slide_level;
             }
         }
         //check for loop animation here
         $do_loop = UniteFunctionsRev::getVal($layer, "loop_animation", "none");
         $loop_data = '';
         $loop_class = '';
         if ($do_loop !== 'none') {
             $loop_class = ' ' . $do_loop;
             switch ($do_loop) {
                 case 'rs-pendulum':
                     $loop_data .= ' data-easing="' . UniteFunctionsRev::getVal($layer, "loop_easing", "Power3.easeInOut") . '"';
                     $loop_data .= ' data-startdeg="' . UniteFunctionsRev::getVal($layer, "loop_startdeg", "-20") . '"';
                     $loop_data .= ' data-enddeg="' . UniteFunctionsRev::getVal($layer, "loop_enddeg", "20") . '"';
                     $loop_data .= ' data-speed="' . UniteFunctionsRev::getVal($layer, "loop_speed", "2") . '"';
                     $loop_data .= ' data-origin="' . UniteFunctionsRev::getVal($layer, "loop_xorigin", "50") . '% ' . UniteFunctionsRev::getVal($layer, "loop_yorigin", "50") . '%"';
                     break;
                 case 'rs-rotate':
                     $loop_data .= ' data-easing="' . UniteFunctionsRev::getVal($layer, "loop_easing", "Power3.easeInOut") . '"';
                     $loop_data .= ' data-startdeg="' . UniteFunctionsRev::getVal($layer, "loop_startdeg", "-20") . '"';
                     $loop_data .= ' data-enddeg="' . UniteFunctionsRev::getVal($layer, "loop_enddeg", "20") . '"';
                     $loop_data .= ' data-speed="' . UniteFunctionsRev::getVal($layer, "loop_speed", "2") . '"';
                     $loop_data .= ' data-origin="' . UniteFunctionsRev::getVal($layer, "loop_xorigin", "50") . '% ' . UniteFunctionsRev::getVal($layer, "loop_yorigin", "50") . '%"';
                     break;
                 case 'rs-slideloop':
                     $loop_data .= ' data-easing="' . UniteFunctionsRev::getVal($layer, "loop_easing", "Power3.easeInOut") . '"';
                     $loop_data .= ' data-speed="' . UniteFunctionsRev::getVal($layer, "loop_speed", "1") . '"';
                     $loop_data .= ' data-xs="' . UniteFunctionsRev::getVal($layer, "loop_xstart", "0") . '"';
                     $loop_data .= ' data-xe="' . UniteFunctionsRev::getVal($layer, "loop_xend", "0") . '"';
                     $loop_data .= ' data-ys="' . UniteFunctionsRev::getVal($layer, "loop_ystart", "0") . '"';
                     $loop_data .= ' data-ye="' . UniteFunctionsRev::getVal($layer, "loop_yend", "0") . '"';
                     break;
                 case 'rs-pulse':
                     $loop_data .= ' data-easing="' . UniteFunctionsRev::getVal($layer, "loop_easing", "Power3.easeInOut") . '"';
                     $loop_data .= ' data-speed="' . UniteFunctionsRev::getVal($layer, "loop_speed", "1") . '"';
                     $loop_data .= ' data-zoomstart="' . UniteFunctionsRev::getVal($layer, "loop_zoomstart", "1") . '"';
                     $loop_data .= ' data-zoomend="' . UniteFunctionsRev::getVal($layer, "loop_zoomend", "1") . '"';
                     break;
                 case 'rs-wave':
                     $loop_data .= ' data-speed="' . UniteFunctionsRev::getVal($layer, "loop_speed", "1") . '"';
                     $loop_data .= ' data-angle="' . UniteFunctionsRev::getVal($layer, "loop_angle", "0") . '"';
                     $loop_data .= ' data-radius="' . UniteFunctionsRev::getVal($layer, "loop_radius", "10") . '"';
                     $loop_data .= ' data-origin="' . UniteFunctionsRev::getVal($layer, "loop_xorigin", "50") . '% ' . UniteFunctionsRev::getVal($layer, "loop_yorigin", "50") . '%"';
                     break;
             }
         }
         echo "\n\t\t<!-- LAYER NR. ";
         echo $zIndex - 4;
         echo " -->\n";
         echo "\t\t<div class=\"" . $outputClass;
         echo $classes != '' ? ' ' . $classes : '';
         echo $parallax_class;
         if ($static_slide) {
             echo ' tp-static-layer';
         }
         echo $videoclass;
         echo "\"\n";
         echo $ids != '' ? '			' . $ids . "\n" : '';
         echo $title != '' ? '			' . $title . "\n" : '';
         echo $rel != '' ? '			' . $rel . "\n" : '';
         if ($htmlPosX != "") {
             echo "\t\t\t" . $htmlPosX . "\n";
         }
         if ($htmlPosY != "") {
             echo "\t\t\t" . $htmlPosY . "\n";
         }
         if ($customin != "") {
             echo "\t\t\t" . $customin . "\n";
         }
         if ($customout != "") {
             echo "\t\t\t" . $customout . "\n";
         }
         echo "\t\t\tdata-speed=\"" . $speed . "\"\n";
         echo "\t\t\tdata-start=\"" . $time . "\"\n";
         echo "\t\t\tdata-easing=\"" . $easing . "\"\n";
         if ($type == "text") {
             //only output if we are a text layer
             echo "\t\t\tdata-splitin=\"" . $splitin . "\"\n";
             echo "\t\t\tdata-splitout=\"" . $splitout . "\"\n";
         }
         //check if static layer and if yes, set values for it.
         if ($static_slide) {
             if ($isTemplate != "true") {
                 $start_on_slide = intval(UniteFunctionsRev::getVal($layer, "static_start", 1)) - 1;
                 $end_on_slide = intval(UniteFunctionsRev::getVal($layer, "static_end", 2)) - 1;
             } else {
                 $start_on_slide = '-1';
                 $end_on_slide = '-1';
             }
             echo '			data-startslide="' . $start_on_slide . '"' . "\n";
             echo '			data-endslide="' . $end_on_slide . '"' . "\n";
         }
         echo "\t\t\tdata-elementdelay=\"" . $elementdelay . "\"\n";
         echo "\t\t\tdata-endelementdelay=\"" . $endelementdelay . "\"\n";
         if ($htmlParams != "") {
             echo "\t\t\t" . $htmlParams;
         }
         echo "\t\t\tstyle=\"z-index: " . $zIndex . ";" . $inline_styles . "\"";
         echo ">";
         if ($do_loop !== 'none') {
             echo "\n" . '				<div style="' . $layer_rotation . '" class="tp-layer-inner-rotation ';
             $rotationClass = trim($class);
             $rotationClass = trim($rotationClass) . " ";
             echo $rotationClass;
             echo $loop_class;
             echo '" ';
             echo $loop_data;
             echo '>';
         } elseif ($layer_rotation != '') {
             $rotationClass = trim($class);
             $rotationClass = trim($rotationClass) . " ";
             echo '<div class="tp-layer-inner-rotation ' . $rotationClass . '" style="' . $layer_rotation . '">' . "\n";
         }
         echo stripslashes($html) . "\n";
         if ($htmlCorners != "") {
             echo $htmlCorners . "\n";
         }
         if ($do_loop !== 'none' || $layer_rotation != '') {
             echo "\t\t\t\t</div>\n";
         }
         echo "\t\t</div>\n";
         $zIndex++;
     }
 }
 /**
  * 
  * put creative layer
  */
 private function putCreativeLayer(RevSlide $slide)
 {
     $layers = $slide->getLayers();
     $customAnimations = RevOperations::getCustomAnimations('customin');
     //get all custom animations
     $customEndAnimations = RevOperations::getCustomAnimations('customout');
     //get all custom animations
     $startAnimations = RevOperations::getArrAnimations(false);
     //only get the standard animations
     $endAnimations = RevOperations::getArrEndAnimations(false);
     //only get the standard animations
     $lazyLoad = $this->slider->getParam("lazy_load", "off");
     if (empty($layers)) {
         return false;
     }
     $zIndex = 2;
     foreach ($layers as $layer) {
         $type = UniteFunctionsRev::getVal($layer, "type", "text");
         //set if video full screen
         $isFullWidthVideo = false;
         if ($type == "video") {
             $videoData = UniteFunctionsRev::getVal($layer, "video_data");
             if (!empty($videoData)) {
                 $videoData = (array) $videoData;
                 $isFullWidthVideo = UniteFunctionsRev::getVal($videoData, "fullwidth");
                 $isFullWidthVideo = UniteFunctionsRev::strToBool($isFullWidthVideo);
             } else {
                 $videoData = array();
             }
         }
         $class = UniteFunctionsRev::getVal($layer, "style");
         $animation = UniteFunctionsRev::getVal($layer, "animation", "tp-fade");
         if ($animation == "fade") {
             $animation = "tp-fade";
         }
         $customin = '';
         if (!array_key_exists($animation, $startAnimations) && array_key_exists($animation, $customAnimations)) {
             //if true, add custom animation
             $customin .= 'data-customin="';
             $animArr = RevOperations::getCustomAnimationByHandle($customAnimations[$animation]);
             if ($animArr !== false) {
                 $customin .= RevOperations::parseCustomAnimationByArray($animArr);
             }
             $customin .= '"';
             $animation = 'customin';
         }
         if (strpos($animation, 'customin-') !== false || strpos($animation, 'customout-') !== false) {
             $animation = "tp-fade";
         }
         //set output class:
         $outputClass = "tp-caption " . trim($class);
         $outputClass = trim($outputClass) . " ";
         $outputClass .= trim($animation);
         $left = UniteFunctionsRev::getVal($layer, "left", 0);
         $top = UniteFunctionsRev::getVal($layer, "top", 0);
         $speed = UniteFunctionsRev::getVal($layer, "speed", 300);
         $time = UniteFunctionsRev::getVal($layer, "time", 0);
         $easing = UniteFunctionsRev::getVal($layer, "easing", "easeOutExpo");
         $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation", "false");
         $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
         $splitin = UniteFunctionsRev::getVal($layer, "split", "none");
         $splitout = UniteFunctionsRev::getVal($layer, "endsplit", "none");
         $elementdelay = intval(UniteFunctionsRev::getVal($layer, "splitdelay", 0));
         $endelementdelay = intval(UniteFunctionsRev::getVal($layer, "endsplitdelay", 0));
         if ($elementdelay > 0) {
             $elementdelay /= 100;
         }
         if ($endelementdelay > 0) {
             $endelementdelay /= 100;
         }
         $text = UniteFunctionsRev::getVal($layer, "text");
         $htmlVideoAutoplay = "";
         $htmlVideoAutoplayOnlyFirstTime = "";
         $htmlVideoNextSlide = "";
         $htmlVideoThumbnail = "";
         $htmlMute = '';
         $htmlCover = '';
         $htmlDotted = '';
         $htmlRatio = '';
         $htmlRewind = '';
         $ids = UniteFunctionsRev::getVal($layer, "attrID");
         $classes = UniteFunctionsRev::getVal($layer, "attrClasses");
         $title = UniteFunctionsRev::getVal($layer, "attrTitle");
         $rel = UniteFunctionsRev::getVal($layer, "attrRel");
         $ids = $ids != '' ? ' id="' . $ids . '"' : '';
         $classes = $classes != '' ? ' ' . $classes : '';
         $title = $title != '' ? ' title="' . $title . '"' : '';
         $rel = $rel != '' ? ' rel="' . $rel . '"' : '';
         $max_width = UniteFunctionsRev::getVal($layer, "max_width", 'auto');
         $max_height = UniteFunctionsRev::getVal($layer, "max_height", 'auto');
         $white_space = UniteFunctionsRev::getVal($layer, "whitespace", 'nowrap');
         $inline_styles = '';
         //set html:
         $html = "";
         switch ($type) {
             default:
             case "text":
                 $html = $text;
                 $html = do_shortcode($html);
                 $inline_styles .= ' max-width: ' . $max_width . '; max-height: ' . $max_height . '; white-space: ' . $white_space . ';';
                 break;
             case "image":
                 $alt = UniteFunctionsRev::getVal($layer, "alt");
                 $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                 $additional = "";
                 $scaleX = UniteFunctionsRev::getVal($layer, "scaleX");
                 $scaleY = UniteFunctionsRev::getVal($layer, "scaleY");
                 if ($scaleX != '') {
                     $additional .= ' data-ww="' . $scaleX . '"';
                 }
                 if ($scaleY != '') {
                     $additional .= ' data-hh="' . $scaleY . '"';
                 }
                 if (is_ssl()) {
                     $urlImage = str_replace("http://", "https://", $urlImage);
                 }
                 $imageAddParams = "";
                 if ($lazyLoad == "on") {
                     $imageAddParams .= " data-lazyload=\"{$urlImage}\"";
                     $urlImage = UniteBaseClassRev::$url_plugin . "images/dummy.png";
                 }
                 $html = '<img src="' . $urlImage . '" alt="' . $alt . '"' . $additional . $imageAddParams . '>';
                 $imageLink = UniteFunctionsRev::getVal($layer, "link", "");
                 if (!empty($imageLink)) {
                     $openIn = UniteFunctionsRev::getVal($layer, "link_open_in", "same");
                     $target = "";
                     if ($openIn == "new") {
                         $target = ' target="_blank"';
                     }
                     $linkID = UniteFunctionsRev::getVal($layer, "link_id", "");
                     $linkClass = UniteFunctionsRev::getVal($layer, "link_class", "");
                     $linkTitle = UniteFunctionsRev::getVal($layer, "link_title", "");
                     $linkRel = UniteFunctionsRev::getVal($layer, "link_rel", "");
                     $linkIDHtml = "";
                     $linkClassHtml = "";
                     $linkTitleHtml = "";
                     $linkRelHtml = "";
                     if (!empty($linkID)) {
                         $linkIDHtml = ' id="' . $linkID . '"';
                     }
                     if (!empty($linkClass)) {
                         $linkClassHtml = ' class="' . $linkClass . '"';
                     }
                     if (!empty($linkTitle)) {
                         $linkTitleHtml = ' title="' . $linkTitle . '"';
                     }
                     if (!empty($linkRel)) {
                         $linkRelHtml = ' rel="' . $linkRel . '"';
                     }
                     $html = '<a href="' . $imageLink . '"' . $target . $linkIDHtml . $linkClassHtml . $linkTitleHtml . $linkRelHtml . '>' . $html . '</a>';
                 }
                 break;
             case "video":
                 $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
                 $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
                 $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
                 $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
                 $videoArgs = trim(UniteFunctionsRev::getVal($layer, "video_args"));
                 $rewind = UniteFunctionsRev::getVal($videoData, "forcerewind");
                 $rewind = UniteFunctionsRev::strToBool($rewind);
                 $htmlRewind = $rewind == true ? ' data-forcerewind="on"' : '';
                 if ($isFullWidthVideo == true) {
                     $videoWidth = "100%";
                     $videoHeight = "100%";
                 }
                 $setBase = is_ssl() ? "https://" : "http://";
                 switch ($videoType) {
                     case "youtube":
                         if (empty($videoArgs)) {
                             $videoArgs = GlobalsRevSlider::DEFAULT_YOUTUBE_ARGUMENTS;
                         }
                         $videoArgs = str_replace('rel=0', '', $videoArgs);
                         $ytBase = 'https://';
                         $videoArgs .= ';origin=' . $setBase . $_SERVER['SERVER_NAME'] . ';';
                         $html = "<iframe src='" . $ytBase . "www.youtube.com/embed/" . $videoID . "?enablejsapi=1&amp;html5=1&amp;" . $videoArgs . "' width='" . $videoWidth . "' height='" . $videoHeight . "' style='width:" . $videoWidth . "px;height:" . $videoHeight . "px;'></iframe>";
                         break;
                     case "vimeo":
                         if (empty($videoArgs)) {
                             $videoArgs = GlobalsRevSlider::DEFAULT_VIMEO_ARGUMENTS;
                         }
                         $html = "<iframe src='" . $setBase . "player.vimeo.com/video/" . $videoID . "?" . $videoArgs . "' width='" . $videoWidth . "' height='" . $videoHeight . "' style='width:" . $videoWidth . "px;height:" . $videoHeight . "px;'></iframe>";
                         break;
                     case "html5":
                         $html = $this->getHtml5LayerHtml($videoData);
                         $cover = UniteFunctionsRev::getVal($videoData, "cover");
                         $cover = UniteFunctionsRev::strToBool($cover);
                         if ($cover == true) {
                             $htmlCover = ' data-forceCover="1"';
                             $dotted = UniteFunctionsRev::getVal($videoData, "dotted");
                             if ($dotted !== 'none') {
                                 $htmlDotted = ' data-dottedoverlay="' . $dotted . '"';
                             }
                             $ratio = UniteFunctionsRev::getVal($videoData, "ratio");
                             if (!empty($ratio)) {
                                 $htmlRatio = ' data-aspectratio="' . $ratio . '"';
                             }
                         }
                         break;
                     default:
                         UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                         break;
                 }
                 //set video autoplay, with backward compatability
                 if (array_key_exists("autoplay", $videoData)) {
                     $videoAutoplay = UniteFunctionsRev::getVal($videoData, "autoplay");
                 } else {
                     //backword compatability
                     $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
                 }
                 //set video autoplayonlyfirsttime, with backward compatability
                 if (array_key_exists("autoplayonlyfirsttime", $videoData)) {
                     $videoAutoplayOnlyFirstTime = UniteFunctionsRev::getVal($videoData, "autoplayonlyfirsttime");
                 } else {
                     $videoAutoplayOnlyFirstTime = "";
                 }
                 $videoAutoplay = UniteFunctionsRev::strToBool($videoAutoplay);
                 $videoAutoplayOnlyFirstTime = UniteFunctionsRev::strToBool($videoAutoplayOnlyFirstTime);
                 $mute = UniteFunctionsRev::getVal($videoData, "mute");
                 $mute = UniteFunctionsRev::strToBool($mute);
                 $htmlMute = $mute ? ' data-volume="mute"' : '';
                 if ($videoAutoplay == true) {
                     $htmlVideoAutoplay = '			data-autoplay="true"' . "\n";
                 } else {
                     $htmlVideoAutoplay = '			data-autoplay="false"' . "\n";
                 }
                 if ($videoAutoplayOnlyFirstTime == true && $videoAutoplay == true) {
                     $htmlVideoAutoplayOnlyFirstTime = '			data-autoplayonlyfirsttime="true"' . "\n";
                 } else {
                     $htmlVideoAutoplayOnlyFirstTime = '			data-autoplayonlyfirsttime="false"' . "\n";
                 }
                 $videoNextSlide = UniteFunctionsRev::getVal($videoData, "nextslide");
                 $videoNextSlide = UniteFunctionsRev::strToBool($videoNextSlide);
                 if ($videoNextSlide == true) {
                     $htmlVideoNextSlide = '			data-nextslideatend="true"' . "\n";
                 }
                 $videoThumbnail = @$videoData["previewimage"];
                 if (trim($videoThumbnail) !== '') {
                     $htmlVideoThumbnail = '			data-thumbimage="' . $videoThumbnail . '"' . "\n";
                 }
                 break;
         }
         //handle end transitions:
         $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
         $htmlEnd = "";
         $customout = '';
         if (!empty($endTime)) {
             $htmlEnd = "data-end=\"{$endTime}\"" . "\n";
         }
         $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
         if (!empty($endSpeed)) {
             $htmlEnd .= "data-endspeed=\"{$endSpeed}\"" . "\n";
         }
         $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
         if (!empty($endSpeed) && $endEasing != "nothing") {
             $htmlEnd .= "\t\t\tdata-endeasing=\"{$endEasing}\"" . "\n";
         }
         //add animation to class
         $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
         if ($endAnimation == "fade") {
             $endAnimation = "tp-fade";
         }
         if (!array_key_exists($endAnimation, $endAnimations) && array_key_exists($endAnimation, $customEndAnimations)) {
             //if true, add custom animation
             $customout = 'data-customout="';
             $animArr = RevOperations::getCustomAnimationByHandle($customEndAnimations[$endAnimation]);
             if ($animArr !== false) {
                 $customout .= RevOperations::parseCustomAnimationByArray($animArr);
             }
             $customout .= '"';
             $endAnimation = 'customout';
         }
         if (strpos($endAnimation, 'customin-') !== false || strpos($endAnimation, 'customout-') !== false) {
             $endAnimation = "";
         }
         if (!empty($endAnimation) && $endAnimation != "auto") {
             $outputClass .= " " . $endAnimation;
         }
         //slide link
         $htmlLink = "";
         $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
         if (!empty($slideLink) && $slideLink != "nothing" && $slideLink != "scroll_under") {
             //get slide index from id
             if (is_numeric($slideLink)) {
                 $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
             }
             if (!empty($slideLink)) {
                 $htmlLink = "data-linktoslide=\"{$slideLink}\"" . "\n";
             }
         }
         //scroll under the slider
         if ($slideLink == "scroll_under") {
             $outputClass .= " tp-scrollbelowslider";
             $scrollUnderOffset = UniteFunctionsRev::getVal($layer, "scrollunder_offset");
             if (!empty($scrollUnderOffset)) {
                 $htmlLink .= "data-scrolloffset=\"" . $scrollUnderOffset . "\"" . "\n";
             }
         }
         //hidden under resolution
         $htmlHidden = "";
         $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
         if ($layerHidden == "true" || $layerHidden == "1") {
             $htmlHidden = '			data-captionhidden="on"' . "\n";
         }
         $htmlParams = $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlVideoAutoplayOnlyFirstTime . $htmlVideoNextSlide . $htmlVideoThumbnail . $htmlHidden . $htmlMute . $htmlCover . $htmlDotted . $htmlRatio . $htmlRewind;
         //set positioning options
         $alignHor = UniteFunctionsRev::getVal($layer, "align_hor", "left");
         $alignVert = UniteFunctionsRev::getVal($layer, "align_vert", "top");
         $htmlPosX = "";
         $htmlPosY = "";
         switch ($alignHor) {
             default:
             case "left":
                 $htmlPosX = "data-x=\"" . $left . "\"";
                 break;
             case "center":
                 $htmlPosX = "data-x=\"center\" data-hoffset=\"" . $left . "\"";
                 break;
             case "right":
                 $left = (int) $left * -1;
                 $htmlPosX = "data-x=\"right\" data-hoffset=\"" . $left . "\"";
                 break;
         }
         switch ($alignVert) {
             default:
             case "top":
                 $htmlPosY = "data-y=\"" . $top . "\" ";
                 break;
             case "middle":
                 $htmlPosY = "data-y=\"center\" data-voffset=\"" . $top . "\"";
                 break;
             case "bottom":
                 $top = (int) $top * -1;
                 $htmlPosY = "data-y=\"bottom\" data-voffset=\"" . $top . "\"";
                 break;
         }
         //set corners
         $htmlCorners = "";
         if ($type == "text") {
             $cornerLeft = UniteFunctionsRev::getVal($layer, "corner_left");
             $cornerRight = UniteFunctionsRev::getVal($layer, "corner_right");
             switch ($cornerLeft) {
                 case "curved":
                     $htmlCorners .= "<div class='frontcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='frontcornertop'></div>";
                     break;
             }
             switch ($cornerRight) {
                 case "curved":
                     $htmlCorners .= "<div class='backcorner'></div>";
                     break;
                 case "reverced":
                     $htmlCorners .= "<div class='backcornertop'></div>";
                     break;
             }
             //add resizeme class
             $resizeme = UniteFunctionsRev::getVal($layer, "resizeme");
             if ($resizeme == "true" || $resizeme == "1") {
                 $outputClass .= ' tp-resizeme';
             }
         }
         //end text related layer
         //make some modifications for the full screen video
         if ($isFullWidthVideo == true) {
             $htmlPosX = "data-x=\"0\"";
             $htmlPosY = "data-y=\"0\"";
             $outputClass .= " fullscreenvideo";
         }
         echo "\n\t\t<!-- LAYER NR. ";
         echo $zIndex - 1;
         echo " -->\n";
         echo "\t\t<div class=\"" . $outputClass;
         echo $classes != '' ? ' ' . $classes : '';
         echo "\"\n";
         echo $ids != '' ? '			' . $ids . "\n" : '';
         echo $title != '' ? '			' . $title . "\n" : '';
         echo $rel != '' ? '			' . $rel . "\n" : '';
         if ($htmlPosX != "") {
             echo "\t\t\t" . $htmlPosX . "\n";
         }
         if ($htmlPosY != "") {
             echo "\t\t\t" . $htmlPosY . "\n";
         }
         if ($customin != "") {
             echo "\t\t\t" . $customin . "\n";
         }
         if ($customout != "") {
             echo "\t\t\t" . $customout . "\n";
         }
         echo "\t\t\tdata-speed=\"" . $speed . "\"\n";
         echo "\t\t\tdata-start=\"" . $time . "\"\n";
         echo "\t\t\tdata-easing=\"" . $easing . "\"\n";
         echo "\t\t\tdata-splitin=\"" . $splitin . "\"\n";
         echo "\t\t\tdata-splitout=\"" . $splitout . "\"\n";
         echo "\t\t\tdata-elementdelay=\"" . $elementdelay . "\"\n";
         echo "\t\t\tdata-endelementdelay=\"" . $endelementdelay . "\"\n";
         if ($htmlParams != "") {
             echo "\t\t\t" . $htmlParams;
         }
         echo "\t\t\tstyle=\"z-index: " . $zIndex . ";" . $inline_styles . "\"";
         echo ">";
         echo $html . "\n";
         if ($htmlCorners != "") {
             echo $htmlCorners . "\n";
         }
         echo "\t\t</div>\n";
         $zIndex++;
     }
 }
Example #23
0
 /**
  *
  * 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;
 }
Example #24
0
 /**
  * 
  * onAjax action handler
  */
 public static function onAjaxAction()
 {
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevOperations();
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     $nonce = self::getPostGetVar("nonce");
     try {
         //verify the nonce
         $isVerified = wp_verify_nonce($nonce, "revslider_actions");
         if ($isVerified == false) {
             UniteFunctionsRev::throwError("Wrong request");
         }
         switch ($action) {
             case 'add_google_fonts':
                 $f = new ThemePunch_Fonts();
                 $result = $f->add_new_font($data);
                 if ($result === true) {
                     self::ajaxResponseSuccess(__("Font successfully created!", REVSLIDER_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getFontsUrl()));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 break;
             case 'remove_google_fonts':
                 if (!isset($data['handle'])) {
                     self::ajaxResponseError(__('Font not found', REVSLIDER_TEXTDOMAIN), false);
                 }
                 $f = new ThemePunch_Fonts();
                 $result = $f->remove_font_by_handle($data['handle']);
                 if ($result === true) {
                     self::ajaxResponseSuccess(__("Font successfully removed!", REVSLIDER_TEXTDOMAIN), array('data' => $result));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 break;
             case 'edit_google_fonts':
                 if (!isset($data['handle'])) {
                     self::ajaxResponseError(__('No handle given', REVSLIDER_TEXTDOMAIN), false);
                 }
                 if (!isset($data['url'])) {
                     self::ajaxResponseError(__('No parameters given', REVSLIDER_TEXTDOMAIN), false);
                 }
                 $f = new ThemePunch_Fonts();
                 $result = $f->edit_font_by_handle($data);
                 if ($result === true) {
                     self::ajaxResponseSuccess(__("Font successfully changed!", REVSLIDER_TEXTDOMAIN), array('data' => $result));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 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");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle(null, $updateAnim, $updateStatic);
                 break;
             case "import_slider_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle($viewBack, $updateAnim, $updateStatic);
                 break;
             case "create_slider":
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 $newSliderID = $slider->createSliderFromOptions($data, $settingsMain, $settingsParams);
                 self::ajaxResponseSuccessRedirect(__("The slider successfully created", REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders"));
                 break;
             case "update_slider":
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 $slider->updateSliderFromOptions($data, $settingsMain, $settingsParams);
                 self::ajaxResponseSuccess(__("Slider updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slider":
                 $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: " . $isDeleted);
                 } else {
                     self::ajaxResponseSuccessRedirect(__("The slider deleted", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 }
                 break;
             case "duplicate_slider":
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The duplicate successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
                 $numSlides = $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 if ($numSlides == 1) {
                     $responseText = __("Slide Created", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $responseText = $numSlides . " " . __("Slides Created", REVSLIDER_TEXTDOMAIN);
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDES, "id={$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_TEXTDOMAIN);
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "update_slide":
                 require self::getSettingsFilePath("slide_settings");
                 $slide->updateSlideFromData($data, $slideSettings);
                 self::ajaxResponseSuccess(__("Slide updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_static_slide":
                 $slide->updateStaticSlideFromData($data);
                 self::ajaxResponseSuccess(__("Static Layers updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slide":
                 $isPost = $slide->deleteSlideFromData($data);
                 if ($isPost) {
                     $message = __("Post Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $message = __("Slide Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 }
                 $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
                 self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "duplicate_slide":
                 $sliderID = $slider->duplicateSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("Slide Duplicated Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "copy_move_slide":
                 $sliderID = $slider->copyMoveSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The operation successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 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);
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "delete_captions_css":
                 $arrCaptions = $operations->deleteCaptionsContentData($data);
                 self::ajaxResponseSuccess(__("Style deleted succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_static_css":
                 $staticCss = $operations->updateStaticCss($data);
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("css" => $staticCss));
                 break;
             case "insert_custom_anim":
                 $arrAnims = $operations->insertCustomAnim($data);
                 //$arrCaptions =
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_custom_anim":
                 $arrAnims = $operations->updateCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "delete_custom_anim":
                 $arrAnims = $operations->deleteCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_slides_order":
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess(__("Order updated successfully", REVSLIDER_TEXTDOMAIN));
                 break;
             case "change_slide_image":
                 $slide->updateSlideImageFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect(__("Slide Changed Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
             case "preview_slider":
                 $sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
                 $do_markup = UniteFunctionsRev::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 "slide_lang_operation":
                 $responseData = $slide->doSlideLangOperation($data);
                 self::ajaxResponseData($responseData);
                 break;
             case "update_plugin":
                 self::updatePlugin(self::DEFAULT_VIEW);
                 break;
             case "update_text":
                 self::updateSettingsText();
                 self::ajaxResponseSuccess(__("All files successfully updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_general_settings":
                 $operations->updateGeneralSettings($data);
                 self::ajaxResponseSuccess(__("General settings updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_posts_sortby":
                 $slider->updatePostsSortbyFromData($data);
                 self::ajaxResponseSuccess(__("Sortby updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "replace_image_urls":
                 $slider->replaceImageUrlsFromData($data);
                 self::ajaxResponseSuccess(__("Image urls replaced", REVSLIDER_TEXTDOMAIN));
                 break;
             case "reset_slide_settings":
                 $slider->resetSlideSettings($data);
                 self::ajaxResponseSuccess(__("Settings in all Slides changed", REVSLIDER_TEXTDOMAIN));
                 break;
             case "activate_purchase_code":
                 $result = false;
                 if (!empty($data['username']) && !empty($data['api_key']) && !empty($data['code'])) {
                     $result = $operations->checkPurchaseVerification($data);
                 } else {
                     UniteFunctionsRev::throwError(__('The API key, the Purchase Code and the Username need to be set!', REVSLIDER_TEXTDOMAIN));
                     exit;
                 }
                 if ($result) {
                     self::ajaxResponseSuccessRedirect(__("Purchase Code Successfully Activated", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 } else {
                     UniteFunctionsRev::throwError(__('Purchase Code is invalid', REVSLIDER_TEXTDOMAIN));
                 }
                 break;
             case "deactivate_purchase_code":
                 $result = $operations->doPurchaseDeactivation($data);
                 if ($result) {
                     self::ajaxResponseSuccessRedirect(__("Successfully removed validation", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 } else {
                     UniteFunctionsRev::throwError(__('Could not remove Validation!', REVSLIDER_TEXTDOMAIN));
                 }
                 break;
             case "dismiss_notice":
                 update_option('revslider-valid-notice', 'false');
                 self::ajaxResponseSuccess(__(".", REVSLIDER_TEXTDOMAIN));
                 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 <b> {$action} </b> action. please check with the developer.");
     exit;
 }
 public static function onAjaxAction()
 {
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevOperations();
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     //$nonce = self::getPostGetVar("nonce");
     try {
         //verify the nonce
         //				$isVerified = wp_verify_nonce($nonce, "revslider_actions");
         //
         //				if($isVerified == false)
         //					UniteFunctionsRev::throwError("Wrong request");
         switch ($action) {
             //start font
             case 'add_google_fonts':
                 $f = new ThemePunch_Fonts();
                 $result = $f->add_new_font($data);
                 if ($result === true) {
                     self::ajaxResponseSuccessRedirect(__("Font successfully created!", REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders"));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 break;
             case 'remove_google_fonts':
                 if (!isset($data['handle'])) {
                     self::ajaxResponseError(__('Font not found', REVSLIDER_TEXTDOMAIN), false);
                 }
                 $f = new ThemePunch_Fonts();
                 $result = $f->remove_font_by_handle($data['handle']);
                 if ($result === true) {
                     self::ajaxResponseSuccess(__("Font successfully removed!", REVSLIDER_TEXTDOMAIN), array('data' => $result));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 break;
             case 'edit_google_fonts':
                 if (!isset($data['handle'])) {
                     self::ajaxResponseError(__('No handle given', REVSLIDER_TEXTDOMAIN), false);
                 }
                 if (!isset($data['url'])) {
                     self::ajaxResponseError(__('No parameters given', REVSLIDER_TEXTDOMAIN), false);
                 }
                 $f = new ThemePunch_Fonts();
                 $result = $f->edit_font_by_handle($data);
                 if ($result === true) {
                     self::ajaxResponseSuccess(__("Font successfully changed!", REVSLIDER_TEXTDOMAIN), array('data' => $result));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 break;
                 //end font
             //end font
             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");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle(null, $updateAnim, $updateStatic);
                 break;
             case "import_slider_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle($viewBack, $updateAnim, $updateStatic);
                 break;
             case "create_slider":
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 //var_dump($settingsMain);
                 $newSliderID = $slider->createSliderFromOptions($data, $settingsMain, $settingsParams);
                 if ($newSliderID > 0) {
                     self::ajaxResponseSuccessRedirect(__("The slider successfully created", REVSLIDER_TEXTDOMAIN), self::getViewUrl("sliders"));
                 }
                 break;
             case "update_slider":
                 self::requireSettings("slider_settings");
                 $settingsMain = self::getSettings("slider_main");
                 $settingsParams = self::getSettings("slider_params");
                 $data = $operations->modifyCustomSliderParams($data);
                 $slider->updateSliderFromOptions($data, $settingsMain, $settingsParams);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("Slider updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slider":
                 $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: " . $isDeleted);
                 } else {
                     self::ajaxResponseSuccessRedirect(__("The slider deleted", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 }
                 break;
             case "duplicate_slider":
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The duplicate successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
                 $numSlides = $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 if ($numSlides == 1) {
                     $responseText = __("Slide Created", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $responseText = $numSlides . " " . __("Slides Created", REVSLIDER_TEXTDOMAIN);
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}");
                 sdsconfig::getgeneratecssfile();
                 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_TEXTDOMAIN);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "update_slide":
                 require self::getSettingsFilePath("slide_settings");
                 $slide->updateSlideFromData($data, $slideSettings);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("Slide updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_static_slide":
                 $slide->updateStaticSlideFromData($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("Static Layers updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "delete_slide":
                 $isPost = $slide->deleteSlideFromData($data);
                 if ($isPost) {
                     $message = __("Post Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 } else {
                     $message = __("Slide Deleted Successfully", REVSLIDER_TEXTDOMAIN);
                 }
                 $sliderID = UniteFunctionsRev::getVal($data, "sliderID");
                 self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "duplicate_slide":
                 $sliderID = $slider->duplicateSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("Slide Duplicated Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "copy_move_slide":
                 $sliderID = $slider->copyMoveSlideFromData($data);
                 self::ajaxResponseSuccessRedirect(__("The operation successfully, refreshing page...", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "get_static_css":
                 sdsconfig::getgeneratecssfile();
                 $contentCSS = $operations->getStaticCss();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "get_dynamic_css":
                 sdsconfig::getgeneratecssfile();
                 $contentCSS = $operations->getDynamicCss();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "insert_captions_css":
                 $arrCaptions = $operations->insertCaptionsContentData($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "delete_captions_css":
                 $arrCaptions = $operations->deleteCaptionsContentData($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("Style deleted succesfully!", REVSLIDER_TEXTDOMAIN), array("arrCaptions" => $arrCaptions));
                 break;
             case "update_static_css":
                 $staticCss = $operations->updateStaticCss($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("CSS saved succesfully!", REVSLIDER_TEXTDOMAIN), array("css" => $staticCss));
                 break;
             case "insert_custom_anim":
                 $arrAnims = $operations->insertCustomAnim($data);
                 //$arrCaptions =
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_custom_anim":
                 $arrAnims = $operations->updateCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "delete_custom_anim":
                 $arrAnims = $operations->deleteCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation saved succesfully!", REVSLIDER_TEXTDOMAIN), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_slides_order":
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess(__("Order updated successfully", REVSLIDER_TEXTDOMAIN));
                 break;
             case "change_slide_image":
                 $slide->updateSlideImageFromData($data);
                 $sliderID = UniteFunctionsRev::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect(__("Slide Changed Successfully", REVSLIDER_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
                 // case "preview_slider":
                 // 	$sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
                 // 	$operations->previewOutput($sliderID);
                 // break;
             // case "preview_slider":
             // 	$sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
             // 	$operations->previewOutput($sliderID);
             // break;
             case "preview_slider":
                 $sliderID = UniteFunctionsRev::getPostGetVariable("sliderid");
                 $do_markup = UniteFunctionsRev::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 "slide_lang_operation":
                 $responseData = $slide->doSlideLangOperation($data);
                 self::ajaxResponseData($responseData);
                 break;
             case "update_plugin":
                 self::updatePlugin(self::DEFAULT_VIEW);
                 break;
             case "update_text":
                 self::updateSettingsText();
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("All files successfully updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_general_settings":
                 $new_data = array();
                 // print_r($data);
                 foreach ($data as $key => $value) {
                     $new_data[$key] = $value;
                 }
                 $operations->updateGeneralSettings($new_data);
                 // sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("General settings updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "update_posts_sortby":
                 $slider->updatePostsSortbyFromData($data);
                 self::ajaxResponseSuccess(__("Sortby updated", REVSLIDER_TEXTDOMAIN));
                 break;
             case "replace_image_urls":
                 $slider->replaceImageUrlsFromData($data);
                 self::ajaxResponseSuccess(__("Image urls replaced", REVSLIDER_TEXTDOMAIN));
                 break;
             case "reset_slide_settings":
                 $slider->resetSlideSettings($data);
                 sdsconfig::getgeneratecssfile();
                 self::ajaxResponseSuccess(__("Settings in all Slides changed", REVSLIDER_TEXTDOMAIN));
                 break;
             case 'delete_uploaded_image':
                 self::delete_uploaded_file($data);
                 break;
             case 'get_uploaded_images':
                 self::get_uploaded_files_json();
                 break;
             case 'add_slider_pos_val':
                 $newdata = array();
                 if (!empty($data)) {
                     $k = array_keys($data);
                     $k = preg_replace_callback('/\\[[0-9]+/', create_function('$match', 'return "";'), $k[0]);
                     foreach ($data as $key => $arr) {
                         $newdata[$k][] = $arr;
                     }
                     $data = $newdata;
                 }
                 sdsconfig::editSetting('revslideropencart', $data);
                 self::ajaxResponseSuccess(__("Slider Position Save SuccessFully", REVSLIDER_TEXTDOMAIN));
                 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 <b> $action </b> action. please check with the developer.");
     exit;
 }
Example #26
0
$slideOrder = $slide->getOrder();
//treat multilanguage
$isWpmlExists = RevSliderWpml::isWpmlExists();
$useWpml = $slider->getParam("use_wpml", "off");
$wpmlActive = false;
$jsonStaticLayers = "";
if (!$slide->isStaticSlide()) {
    if ($isWpmlExists && $useWpml == "on") {
        $wpmlActive = true;
        $parentSlide = $slide->getParentSlide();
        $arrChildLangs = $parentSlide->getArrChildrenLangs();
    }
    //get static slide, check all layers and add them to the action list
    $static_slide_id = $slide->getStaticSlideID($sliderID);
    if ($static_slide_id !== false) {
        $static_slide = new RevSlide();
        $static_slide->initByStaticID($static_slide_id);
        $static_layers = $static_slide->getLayers();
        $jsonStaticLayers = RevSliderFunctions::jsonEncodeForClientSide($static_layers);
    }
}
?>
<script type="text/javascript">
	
/*
 * Copyright 2015 Small Batch, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 /**
  *
  * put slide preview by data
  */
 public function putSlidePreviewByData($data)
 {
     if ($data == "empty_output") {
         $this->loadingMessageOutput();
         exit;
     }
     $data = UniteFunctionsRev::jsonDecodeFromClientSide($data);
     $slideID = $data["slideid"];
     $slide = new RevSlide();
     $slide->initByID($slideID);
     $sliderID = $slide->getSliderID();
     $output = new RevSliderOutput();
     $output->setOneSlideMode($data);
     $this->previewOutput($sliderID, $output);
 }
 /**
  * 
  * put slide preview by data
  */
 public function putSlidePreviewByData($data)
 {
     $data = stripslashes($data);
     $data = json_decode($data);
     $data = (array) $data;
     $slideID = $data["slideid"];
     $slide = new RevSlide();
     $slide->initByID($slideID);
     $sliderID = $slide->getSliderID();
     $output = new RevSliderOutput();
     $output->setOneSlideMode($data);
     $this->previewOutput($sliderID, $output);
 }