public function getSlides($publishedOnly = false) { $this->validateInited(); $arrSlides = array(); $arrSlideRecords = $this->db->fetch(GlobalsBannerRotator::$table_slides, "slider_id=" . $this->id, "slide_order"); $arrChildren = array(); foreach ($arrSlideRecords as $record) { $slide = new BannerSlide(); $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; }
public static function onAjaxAction() { $slider = new BannerRotator(); $slide = new BannerSlide(); $operations = new BannerOperations(); $action = self::getPostGetVar("client_action"); $data = self::getPostGetVar("data"); $nonce = self::getPostGetVar("nonce"); try { //Verify the nonce $isVerified = wp_verify_nonce($nonce, "bannerrotator_actions"); if ($isVerified == false) { UniteFunctionsBanner::throwError("Wrong request"); } switch ($action) { case "export_slider": $sliderID = self::getGetVar("sliderid"); $dummy = self::getGetVar("dummy"); $slider->initByID($sliderID); $slider->exportSlider($dummy); 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", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl("sliders")); break; case "update_slider": $slider->updateSliderFromOptions($data); self::ajaxResponseSuccess(__("Slider updated", BANNERROTATOR_TEXTDOMAIN)); break; case "delete_slider": $slider->deleteSliderFromData($data); self::ajaxResponseSuccessRedirect(__("The slider deleted", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS)); break; case "duplicate_slider": $slider->duplicateSliderFromData($data); self::ajaxResponseSuccessRedirect(__("The duplicate successfully, refreshing page...", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDERS)); break; case "add_slide": $numSlides = $slider->createSlideFromData($data); $sliderID = $data["sliderid"]; if ($numSlides == 1) { $responseText = __("Slide Created", BANNERROTATOR_TEXTDOMAIN); } else { $responseText = $numSlides . " " . __("Slides Created", BANNERROTATOR_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...", BANNERROTATOR_TEXTDOMAIN); self::ajaxResponseSuccessRedirect($responseText, $urlRedirect); break; case "update_slide": $slide->updateSlideFromData($data); self::ajaxResponseSuccess(__("Slide updated", BANNERROTATOR_TEXTDOMAIN)); break; case "delete_slide": $slide->deleteSlideFromData($data); $sliderID = UniteFunctionsBanner::getVal($data, "sliderID"); self::ajaxResponseSuccessRedirect(__("Slide Deleted Successfully", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}")); break; case "duplicate_slide": $sliderID = $slider->duplicateSlideFromData($data); self::ajaxResponseSuccessRedirect(__("Slide Duplicated Successfully", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}")); break; case "copy_move_slide": $sliderID = $slider->copyMoveSlideFromData($data); self::ajaxResponseSuccessRedirect(__("The operation successfully, refreshing page...", BANNERROTATOR_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!", BANNERROTATOR_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", BANNERROTATOR_TEXTDOMAIN)); break; case "change_slide_image": $slide->updateSlideImageFromData($data); $sliderID = UniteFunctionsBanner::getVal($data, "slider_id"); self::ajaxResponseSuccessRedirect(__("Slide Changed Successfully", BANNERROTATOR_TEXTDOMAIN), self::getViewUrl(self::VIEW_SLIDES, "id={$sliderID}")); break; case "preview_slide": $operations->putSlidePreviewByData($data); break; case "preview_slider": $sliderID = UniteFunctionsBanner::getPostVariable("sliderid"); $operations->previewOutput($sliderID); break; case "toggle_slide_state": $currentState = $slide->toggleSlideStateFromData($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; }
private function putCreativeLayer(BannerSlide $slide) { $layers = $slide->getLayers(); if (empty($layers)) { return false; } ?> <?php foreach ($layers as $layer) { $type = UniteFunctionsBanner::getVal($layer, "type", "text"); //Set if video full screen $isFullWidthVideo = false; if ($type == "video") { $videoData = UniteFunctionsBanner::getVal($layer, "video_data"); if (!empty($videoData)) { $videoData = (array) $videoData; $isFullWidthVideo = UniteFunctionsBanner::getVal($videoData, "fullwidth"); $isFullWidthVideo = UniteFunctionsBanner::strToBool($isFullWidthVideo); } else { $videoData = array(); } } $class = UniteFunctionsBanner::getVal($layer, "style"); $animation = UniteFunctionsBanner::getVal($layer, "animation", "fade"); //Set output class $outputClass = "caption " . trim($class); $outputClass = trim($outputClass) . " "; $outputClass .= trim($animation); $left = UniteFunctionsBanner::getVal($layer, "left", 0); $top = UniteFunctionsBanner::getVal($layer, "top", 0); $speed = UniteFunctionsBanner::getVal($layer, "speed", 300); $time = UniteFunctionsBanner::getVal($layer, "time", 0); $easing = UniteFunctionsBanner::getVal($layer, "easing", "easeOutExpo"); $randomRotate = UniteFunctionsBanner::getVal($layer, "random_rotation", "false"); $randomRotate = UniteFunctionsBanner::boolToStr($randomRotate); $text = UniteFunctionsBanner::getVal($layer, "text"); $htmlVideoAutoplay = ""; $htmlVideoNextSlide = ""; //Set html $html = ""; switch ($type) { default: case "text": $html = $text; $html = do_shortcode($html); break; case "image": $urlImage = UniteFunctionsBanner::getVal($layer, "image_url"); $html = '<img src="' . $urlImage . '" alt="' . $text . '">'; $imageLink = UniteFunctionsBanner::getVal($layer, "link", ""); if (!empty($imageLink)) { $openIn = UniteFunctionsBanner::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(UniteFunctionsBanner::getVal($layer, "video_type")); $videoID = trim(UniteFunctionsBanner::getVal($layer, "video_id")); $videoWidth = trim(UniteFunctionsBanner::getVal($layer, "video_width")); $videoHeight = trim(UniteFunctionsBanner::getVal($layer, "video_height")); $videoArgs = trim(UniteFunctionsBanner::getVal($layer, "video_args")); if ($isFullWidthVideo == true) { $videoWidth = "100%"; $videoHeight = "100%"; } $setBase = is_ssl() ? "https://" : "http://"; switch ($videoType) { case "youtube": if (empty($videoArgs)) { $videoArgs = GlobalsBannerRotator::DEFAULT_YOUTUBE_ARGUMENTS; } $videoArgs .= ';origin=' . $setBase . $_SERVER['SERVER_NAME'] . ';'; $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 = GlobalsBannerRotator::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: UniteFunctionsBanner::throwError("wrong video type: {$videoType}"); break; } //Set video autoplay, with backward compatability if (array_key_exists("autoplay", $videoData)) { $videoAutoplay = UniteFunctionsBanner::getVal($videoData, "autoplay"); } else { //Backward compatability $videoAutoplay = UniteFunctionsBanner::getVal($layer, "video_autoplay"); } $videoAutoplay = UniteFunctionsBanner::strToBool($videoAutoplay); if ($videoAutoplay == true) { $htmlVideoAutoplay = ' data-autoplay="true"'; } $videoNextSlide = UniteFunctionsBanner::getVal($videoData, "nextslide"); $videoNextSlide = UniteFunctionsBanner::strToBool($videoNextSlide); if ($videoNextSlide == true) { $htmlVideoNextSlide = ' data-nextslideatend="true"'; } break; } //Handle end transitions $endTime = trim(UniteFunctionsBanner::getVal($layer, "endtime")); $htmlEnd = ""; if (!empty($endTime)) { $htmlEnd = "data-end=\"{$endTime}\""; $endSpeed = trim(UniteFunctionsBanner::getVal($layer, "endspeed")); if (!empty($endSpeed)) { $htmlEnd .= " data-endspeed=\"{$endSpeed}\""; } $endEasing = trim(UniteFunctionsBanner::getVal($layer, "endeasing")); if (!empty($endSpeed) && $endEasing != "nothing") { $htmlEnd .= " data-endeasing=\"{$endEasing}\""; } //Add animation to class $endAnimation = trim(UniteFunctionsBanner::getVal($layer, "endanimation")); if (!empty($endAnimation) && $endAnimation != "auto") { $outputClass .= " " . $endAnimation; } } //Slide link $htmlLink = ""; $slideLink = UniteFunctionsBanner::getVal($layer, "link_slide"); if (!empty($slideLink) && $slideLink != "nothing" && $slideLink != "scroll_under") { //Get slide index from id if (is_numeric($slideLink)) { $slideLink = UniteFunctionsBanner::getVal($this->slidesNumIndex, $slideLink); } if (!empty($slideLink)) { $htmlLink = " data-linktoslide=\"{$slideLink}\""; } } //Scroll under the slider if ($slideLink == "scroll_under") { $outputClass .= " fb-scrollbelowslider"; $scrollUnderOffset = UniteFunctionsBanner::getVal($layer, "scrollunder_offset"); if (!empty($scrollUnderOffset)) { $htmlLink .= " data-scrolloffset=\"{$scrollUnderOffset}\""; } } //Hidden under resolution $htmlHidden = ""; $layerHidden = UniteFunctionsBanner::getVal($layer, "hiddenunder"); if ($layerHidden == "true" || $layerHidden == "1") { $htmlHidden = ' data-captionhidden="on"'; } $htmlParams = $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlVideoNextSlide . $htmlHidden; //Set positioning options $alignHor = UniteFunctionsBanner::getVal($layer, "align_hor", "left"); $alignVert = UniteFunctionsBanner::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 = UniteFunctionsBanner::getVal($layer, "corner_left"); $cornerRight = UniteFunctionsBanner::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 = UniteFunctionsBanner::getVal($layer, "resizeme"); if ($resizeme == "true" || $resizeme == "1") { $outputClass .= ' fb-resizeme'; } } //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 } }
public function putSlidePreviewByData($data) { if ($data == "empty_output") { $this->loadingMessageOutput(); exit; } $data = UniteFunctionsBanner::jsonDecodeFromClientSide($data); $slideID = $data["slideid"]; $slide = new BannerSlide(); $slide->initByID($slideID); $sliderID = $slide->getSliderID(); $output = new BannerRotatorOutput(); $output->setOneSlideMode($data); $this->previewOutput($sliderID, $output); }
<?php //Get input $slideID = UniteFunctionsBanner::getGetVar("id"); //Init slide object $slide = new BannerSlide(); $slide->initByID($slideID); $slideParams = $slide->getParams(); $operations = new BannerOperations(); //Init slider object $sliderID = $slide->getSliderID(); $slider = new BannerRotator(); $slider->initByID($sliderID); $sliderParams = $slider->getParams(); $arrSlideNames = $slider->getArrSlideNames(); //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 UniteSettingsProductSidebarBanner(); $settingsSlideOutput = new UniteSettingsBannerProductBanner(); $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);
private function addLangFromData($data) { $sliderID = UniteFunctionsBanner::getVal($data, "sliderid"); $slideID = UniteFunctionsBanner::getVal($data, "slideid"); $lang = UniteFunctionsBanner::getVal($data, "lang"); //duplicate slide $slider = new BannerRotator(); $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 = UniteWpmlBanner::getFlagUrl($lang); $title = UniteWpmlBanner::getLangTitle($lang); $newSlide = new BannerSlide(); $newSlide->initByID($slideID); $arrLangCodes = $newSlide->getArrChildLangCodes(); $isAll = UniteWpmlBanner::isAllLangsInArray($arrLangCodes); $html = "<li>\n\t\t\t\t\t\t<img id=\"icon_lang_{$newSlideID}\" class=\"icon_slide_lang\" src=\"{$urlIcon}\" title=\"{$title}\" data-slideid=\"{$newSlideID}\" data-lang=\"{$lang}\">\n\t\t\t\t\t\t<div class=\"icon_lang_loader loader_round\" style=\"display:none\"></div>\t\t\t\t\t\t\t\t\n\t\t\t\t\t</li>"; $response = array(); $response["operation"] = "add"; $response["isAll"] = $isAll; $response["html"] = $html; return $response; }