示例#1
0
 /**
  * 
  * set image style and preview url
  */
 private function setEditLayersSettings()
 {
     //get slider id
     if (!empty($this->item->id)) {
         $sliderID = $this->item->sliderid;
     } else {
         $sliderID = JRequest::getCmd("sliderid");
     }
     $this->urlViewItems = HelperUniteRev::getViewUrl_Items($sliderID);
     $this->urlViewItemPattern = HelperUniteRev::getViewUrl_Item($sliderID, "");
     $this->urlViewItemNew = HelperUniteRev::getViewUrl_Item($sliderID);
     $this->slideID = $this->item->id;
     $this->sliderID = $sliderID;
     $slider = HelperUniteRev::getSlider($sliderID);
     $this->slider = $slider;
     $params = $slider["params"];
     $sliderHeight = $params->get("slider_height", 960);
     $sliderWidth = $params->get("slider_width", 350);
     //get image url
     $urlImage = $this->params->get("image");
     if (empty($urlImage)) {
         $urlImage = GlobalsUniteRev::$urlDefaultSlideImage;
     } else {
         $urlImage = UniteFunctionJoomlaRev::getImageUrl($urlImage);
     }
     //create the style:
     $this->styleLayers = "width:{$sliderWidth}px;height:{$sliderHeight}px;";
     if (!empty($urlImage)) {
         $this->styleLayers .= "background-image:url({$urlImage});";
     }
     //create iframe style:
     //set iframe parameters
     $iframeWidth = $sliderWidth + 60;
     $iframeHeight = $sliderHeight + 50;
     $this->styleIframe = "width:{$iframeWidth}px;height:{$iframeHeight}px;";
     //load edit layers
     $this->formLayer = new JForm("layer");
     $this->formLayer->loadFile("layers");
     //set captions list
     //prepare
     $contentCSS = $this->operations->getCaptionsContent();
     $arrCaptionClasses = $this->operations->getArrCaptionClasses($contentCSS);
     $firstCaption = !empty($arrCaptionClasses) ? $arrCaptionClasses[0] : "";
     //set caption field value of the first caption
     $this->formLayer->setValue("layer_caption", "", $firstCaption);
     $jsonLayers = $this->prepareLayersForOutput($this->item->layers);
     $this->jsonCaptions = UniteFunctionsRev::jsonEncodeForClientSide($arrCaptionClasses);
     $this->jsonLayers = UniteFunctionsRev::jsonEncodeForClientSide($jsonLayers);
     $this->arrButtonClasses = $this->operations->getButtonClasses();
     //set slide delay
     $this->slideDelay = $this->params->get("delay");
     if (empty($slideDelay)) {
         $this->slideDelay = $params->get("delay", "9000");
     }
 }
示例#2
0
    /**
     * 
     * output the slides
     */
    private function putSlides()
    {
        $sliderParams = $this->params;
        if (empty($this->arrSlides)) {
            ?>
				<div class="no-slides-text">
					No slides found, please add some slides
				</div>
				<?php 
        }
        $thumbWidth = $sliderParams->get("thumb_width", 100);
        $thumbHeight = $sliderParams->get("thumb_height", 50);
        $slideWidth = $sliderParams->get("slider_width", 900);
        $slideHeight = $sliderParams->get("slider_height", 350);
        $navigationType = $sliderParams->get("navigaion_type", "none");
        $isThumbsActive = $navigationType == "thumb" ? true : false;
        $flagReize = $sliderParams->get("php_resize", "none");
        $flagReize = $flagReize == "on" ? true : false;
        //for one slide preview
        if ($this->oneSlideMode == true) {
            $this->filterOneSlide();
        }
        ?>
				<ul>
			<?php 
        foreach ($this->arrSlides as $slide) {
            $slideParams = $slide["params"];
            $transition = $slideParams->get("slide_transition", "random");
            $slotAmount = $slideParams->get("slot_amount", "7");
            //get slide image url
            $urlSlideImage = UniteFunctionsRev::getVal($slide, "image");
            if (empty($urlSlideImage)) {
                $urlSlideImage = GlobalsUniteRev::$urlDefaultSlideImage;
            }
            $urlSlideImage = UniteFunctionJoomlaRev::getImageUrl($urlSlideImage);
            $filenameSlideImage = UniteFunctionJoomlaRev::getImageFilename($urlSlideImage);
            $filepathSlideImage = UniteFunctionJoomlaRev::getImageFilepath($filenameSlideImage);
            //resize the image file with php resize if needed.
            if ($flagReize == true) {
                if (!empty($filenameSlideImage) && file_exists($filepathSlideImage)) {
                    $urlSlideImage = UniteFunctionJoomlaRev::getImageOutputUrl($filenameSlideImage, $slideWidth, $slideHeight, true);
                }
            }
            //get thumb url
            $htmlThumb = "";
            if ($isThumbsActive == true) {
                $urlThumb = $slideParams->get("slide_thumb", "");
                if (empty($urlThumb)) {
                    //try to get resized thumb
                    if (!empty($filenameSlideImage) && file_exists($filepathSlideImage)) {
                        $urlThumb = UniteFunctionJoomlaRev::getImageOutputUrl($filenameSlideImage, $thumbWidth, $thumbHeight, true);
                    }
                }
                //if not - put regular image:
                if (empty($urlThumb)) {
                    $urlThumb = $urlSlideImage;
                }
                $urlThumb = UniteFunctionJoomlaRev::getImageUrl($urlThumb);
                $htmlThumb = 'data-thumb="' . $urlThumb . '" ';
            }
            //get link
            //get link
            $htmlLink = "";
            $enableLink = $slideParams->get("enable_link", "false");
            if ($enableLink == "true") {
                $linkType = $slideParams->get("link_type", "regular");
                switch ($linkType) {
                    //---- normal link
                    default:
                    case "regular":
                        $link = $slideParams->get("link", "");
                        if (!empty($link)) {
                            $linkOpenIn = $slideParams->get("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 = $slideParams->get("slide_link");
                        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-link=\"slide\" data-linktoslide=\"{$slideLink}\" ";
                            }
                        }
                        break;
                }
            }
            //set link position:
            $linkPos = $slideParams->get("link_pos", "front");
            if ($linkPos == "back") {
                $htmlLink .= ' data-slideindex="back"';
            }
            //set delay
            $htmlDelay = "";
            $delay = $slideParams->get("delay", "");
            if (!empty($delay) && is_numeric($delay)) {
                $htmlDelay = "data-delay=\"{$delay}\" ";
            }
            //get duration
            $htmlDuration = "";
            $duration = $slideParams->get("transition_duration", "");
            if (!empty($duration) && is_numeric($duration)) {
                $htmlDuration = "data-masterspeed=\"{$duration}\" ";
            }
            //get rotation
            $htmlRotation = "";
            $rotation = $slideParams->get("transition_rotation", "");
            if (!empty($rotation)) {
                $rotation = (int) $rotation;
                if ($rotation != 0) {
                    if ($rotation > 720 && $rotation != 999) {
                        $rotation = 720;
                    }
                    if ($rotation < -720) {
                        $rotation = -720;
                    }
                }
                $htmlRotation = "data-rotate=\"{$rotation}\" ";
            }
            $videoData = $this->getSlideFullWidthVideoData($slideParams);
            $htmlParams = $htmlDuration . $htmlLink . $htmlThumb . $htmlDelay . $htmlRotation;
            //get the alt text
            $altText = $slideParams->get("alt_text");
            if (!empty($altText)) {
                $altText = stripslashes($altText);
                $altText = htmlspecialchars($altText);
            }
            //Html
            ?>
					
					<li data-transition="<?php 
            echo $transition;
            ?>
" data-slotamount="<?php 
            echo $slotAmount;
            ?>
" <?php 
            echo $htmlParams;
            ?>
> 
					    
						<img src="<?php 
            echo $urlSlideImage;
            ?>
" alt="<?php 
            echo $altText;
            ?>
" />
						
						<?php 
            //put video:
            if ($videoData["found"] == true) {
                $this->putFullWidthVideoLayer($videoData);
            }
            $this->putCreativeLayer($slide);
            ?>
					</li>
				<?php 
        }
        //get foreach
        ?>
				</ul>
			<?php 
    }
    /**
     * 
     * put creative layer
     */
    private function putCreativeLayer($slide)
    {
        $layers = $slide["layers"];
        $layers = UniteFunctionsRev::convertStdClassToArray($layers);
        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:
            //set html:
            $html = "";
            switch ($type) {
                default:
                case "text":
                    $html = $text;
                    break;
                case "image":
                    $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
                    $urlImage = UniteFunctionJoomlaRev::getImageUrl($urlImage);
                    $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"));
                    $linkYoutube = "http://www.youtube.com";
                    $linkVimeo = "http://player.vimeo.com";
                    if (JURI::getInstance()->isSSL() == true) {
                        $linkYoutube = "https://www.youtube.com";
                        $linkVimeo = "https://player.vimeo.com";
                    }
                    switch ($videoType) {
                        case "youtube":
                            $html = "<iframe frameBorder='0' src='{$linkYoutube}/embed/{$videoID}?hd=1&amp;wmode=opaque&amp;controls=1&amp;showinfo=0;rel=0' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        case "vimeo":
                            $html = "<iframe frameBorder='0' src='{$linkVimeo}/video/{$videoID}?title=0&amp;byline=0&amp;portrait=0' width='{$videoWidth}' height='{$videoHeight}' style='width:{$videoWidth}px;height:{$videoHeight}px;'></iframe>";
                            break;
                        default:
                            UniteFunctionsRev::throwError("wrong video type: {$videoType}");
                            break;
                    }
                    $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
                    if ($videoAutoplay == "true") {
                        $htmlVideoAutoplay = ' data-autoplay="true"';
                    }
                    break;
            }
            //handle end transitions:
            $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
            $htmlEnd = "";
            if (!empty($endTime)) {
                $htmlEnd = "data-end=\"{$endTime}\"";
                $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
                if (!empty($endSpeed)) {
                    $htmlEnd .= " data-endspeed=\"{$endSpeed}\"";
                }
                $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
                if (!empty($endSpeed) && $endEasing != "nothing") {
                    $htmlEnd .= " data-endeasing=\"{$endEasing}\"";
                }
                //add animation to class
                $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
                if (!empty($endAnimation) && $endAnimation != "auto") {
                    $outputClass .= " " . $endAnimation;
                }
            }
            //slide link
            $htmlLink = "";
            $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
            if (!empty($slideLink) && $slideLink != "nothing") {
                //get slide index from id
                if (is_numeric($slideLink)) {
                    $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
                }
                if (!empty($slideLink)) {
                    $htmlLink = " data-linktoslide=\"{$slideLink}\"";
                }
            }
            //hidden under resolution
            $htmlHidden = "";
            $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
            if ($layerHidden == "true") {
                $htmlHidden = ' data-captionhidden="on"';
            }
            $htmlParams = $htmlEnd . $htmlLink . $htmlVideoAutoplay . $htmlHidden;
            ?>
				
				<div class="<?php 
            echo $outputClass;
            ?>
"  
					 data-x="<?php 
            echo $left;
            ?>
" 
					 data-y="<?php 
            echo $top;
            ?>
" 
					 data-speed="<?php 
            echo $speed;
            ?>
" 
					 data-start="<?php 
            echo $time;
            ?>
" 
					 data-easing="<?php 
            echo $easing;
            ?>
" <?php 
            echo $htmlParams;
            ?>
 ><?php 
            echo $html;
            ?>
</div>
				
				<?php 
        }
        ?>
			<?php 
    }