<?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();
/** * * 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; }
<?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();
/** * * 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; }
/** * * 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&wmode=opaque&controls=1&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&byline=0&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 }
/** * 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&enablejsapi=1&html5=1&' . $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&wmode=opaque&controls=1&showinfo=0' width='{$videoWidth}' height='{$videoHeight}'></iframe>"; break; case "vimeo": $html = "<iframe src='http://player.vimeo.com/video/{$videoID}?title=0&byline=0&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 }
$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; }
/** * * 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 } }
/** * 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); }
$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");
/** * * 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); }
/** * * 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&enablejsapi=1&html5=1&' . $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&html5=1&".$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&html5=1&" . $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++; } }
/** * * 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; }
/** * * 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; }
$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); }