PageRenderTime 55ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/wp-content/plugins/revslider/inc_php/revslider_output.class.php

https://bitbucket.org/acipriani/madeinapulia.com
PHP | 2210 lines | 1455 code | 448 blank | 307 comment | 378 complexity | e026674e032b9f223173731c4a8e311c MD5 | raw file
Possible License(s): GPL-3.0, MIT, BSD-3-Clause, LGPL-2.1, GPL-2.0, Apache-2.0

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. class RevSliderOutput{
  3. private static $sliderSerial = 0;
  4. private $sliderHtmlID;
  5. private $sliderHtmlID_wrapper;
  6. private $slider;
  7. private $oneSlideMode = false;
  8. private $oneSlideData;
  9. private $previewMode = false; //admin preview mode
  10. private $slidesNumIndex;
  11. private $sliderLang = null;
  12. private $hasOnlyOneSlide = false;
  13. private $rev_inline_js = '';
  14. private $class_include = array();
  15. /**
  16. *
  17. * check the put in string
  18. * return true / false if the put in string match the current page.
  19. */
  20. public static function isPutIn($putIn,$emptyIsFalse = false){
  21. $putIn = strtolower($putIn);
  22. $putIn = trim($putIn);
  23. if($emptyIsFalse && empty($putIn))
  24. return(false);
  25. if($putIn == "homepage"){ //filter by homepage
  26. if(is_front_page() == false)
  27. return(false);
  28. }
  29. else //case filter by pages
  30. if(!empty($putIn)){
  31. $arrPutInPages = array();
  32. $arrPagesTemp = explode(",", $putIn);
  33. foreach($arrPagesTemp as $page){
  34. $page = trim($page);
  35. if(is_numeric($page) || $page == "homepage")
  36. $arrPutInPages[] = $page;
  37. }
  38. if(!empty($arrPutInPages)){
  39. //get current page id
  40. $currentPageID = "";
  41. if(is_front_page() == true)
  42. $currentPageID = "homepage";
  43. else{
  44. global $post;
  45. if(isset($post->ID))
  46. $currentPageID = $post->ID;
  47. }
  48. //do the filter by pages
  49. if(array_search($currentPageID, $arrPutInPages) === false)
  50. return(false);
  51. }
  52. }
  53. return(true);
  54. }
  55. /**
  56. *
  57. * put the rev slider slider on the html page.
  58. * @param $data - mixed, can be ID ot Alias.
  59. */
  60. public static function putSlider($sliderID,$putIn=""){
  61. $isPutIn = self::isPutIn($putIn);
  62. if($isPutIn == false)
  63. return(false);
  64. //check if on mobile and if option hide on mobile is set
  65. $output = new RevSliderOutput();
  66. $output->putSliderBase($sliderID);
  67. $slider = $output->getSlider();
  68. return($slider);
  69. }
  70. /**
  71. *
  72. * set language
  73. */
  74. public function setLang($lang){
  75. $this->sliderLang = $lang;
  76. }
  77. /**
  78. *
  79. * set one slide mode for preview
  80. */
  81. public function setOneSlideMode($data){
  82. $this->oneSlideMode = true;
  83. $this->oneSlideData = $data;
  84. }
  85. /**
  86. *
  87. * set preview mode
  88. */
  89. public function setPreviewMode(){
  90. $this->previewMode = true;
  91. }
  92. /**
  93. *
  94. * get the last slider after the output
  95. */
  96. public function getSlider(){
  97. return($this->slider);
  98. }
  99. /**
  100. *
  101. * get slide full width video data
  102. */
  103. private function getSlideFullWidthVideoData(RevSlide $slide){
  104. $response = array("found"=>false);
  105. //deal full width video:
  106. $enableVideo = $slide->getParam("enable_video","false");
  107. if($enableVideo != "true")
  108. return($response);
  109. $videoID = $slide->getParam("video_id","");
  110. $videoID = trim($videoID);
  111. if(empty($videoID))
  112. return($response);
  113. $response["found"] = true;
  114. $videoType = is_numeric($videoID)?"vimeo":"youtube";
  115. $videoAutoplay = $slide->getParam("video_autoplay");
  116. $videoCover = $slide->getParam("cover");
  117. $videoAutoplayOnlyFirstTime = $slide->getParam("autoplayonlyfirsttime");
  118. $previewimage = $slide->getParam("previewimage", "");
  119. $videoNextslide = $slide->getParam("video_nextslide");
  120. $mute = $slide->getParam("mute");
  121. $response["type"] = $videoType;
  122. $response["videoID"] = $videoID;
  123. $response["autoplay"] = UniteFunctionsRev::strToBool($videoAutoplay);
  124. $response["cover"] = UniteFunctionsRev::strToBool($videoCover);
  125. $response["autoplayonlyfirsttime"] = UniteFunctionsRev::strToBool($videoAutoplayOnlyFirstTime);
  126. $response["previewimage"] = UniteFunctionsRev::strToBool($previewimage);
  127. $response["nextslide"] = UniteFunctionsRev::strToBool($videoNextslide);
  128. $response["mute"] = UniteFunctionsRev::strToBool($mute);
  129. return($response);
  130. }
  131. /**
  132. *
  133. * put full width video layer
  134. */
  135. private function putFullWidthVideoLayer($videoData){
  136. /*if($videoData["found"] == false)
  137. return(false);
  138. $autoplayonlyfirsttime = "";
  139. $autoplay = UniteFunctionsRev::boolToStr($videoData["autoplay"]);
  140. if($autoplay == "true"){
  141. $autoplayonlyfirsttime = UniteFunctionsRev::boolToStr($videoData["autoplayonlyfirsttime"]);
  142. $autoplayonlyfirsttime = ' data-autoplayonlyfirsttime="'. $autoplayonlyfirsttime.'"';
  143. }
  144. $nextslide = UniteFunctionsRev::boolToStr($videoData["nextslide"]);
  145. $htmlParams = 'data-x="0" data-y="0" data-speed="500" data-start="10" data-easing="easeOutBack"';
  146. if($videoData["previewimage"] != '') $htmlParams.= ' data-videoposter="'.$videoData["previewimage"].'"';
  147. $videoID = $videoData["videoID"];
  148. $setBase = (is_ssl()) ? "https://" : "http://";
  149. $mute = (UniteFunctionsRev::strToBool($videoData['mute'])) ? ' data-volume="mute"' : '';
  150. if($videoData["type"] == "youtube"): //youtube
  151. ?> <div class="tp-caption fade fullscreenvideo " data-nextslideatend="<?php echo $nextslide?>" data-autoplay="<?php echo $autoplay?>"<?php echo $autoplayonlyfirsttime; ?> <?php echo $htmlParams?><?php echo $mute; ?>><iframe src="<?php echo $setBase; ?>www.youtube.com/embed/<?php echo $videoID?>?enablejsapi=1&amp;version=3&amp;html5=1&amp;hd=1&amp;controls=1&amp;showinfo=0;" allowfullscreen="true" width="100%" height="100%"></iframe></div><?php
  152. else: //vimeo
  153. ?> <div class="tp-caption fade fullscreenvideo" data-nextslideatend="<?php echo $nextslide?>" data-autoplay="<?php echo $autoplay?>"<?php echo $autoplayonlyfirsttime; ?> <?php echo $htmlParams?><?php echo $mute; ?>><iframe src="<?php echo $setBase; ?>player.vimeo.com/video/<?php echo $videoID?>?title=0&amp;byline=0&amp;portrait=0;api=1" width="100%" height="100%"></iframe></div><?php
  154. endif;*/
  155. }
  156. /**
  157. *
  158. * filter the slides for one slide preview
  159. */
  160. private function filterOneSlide($slides){
  161. $oneSlideID = $this->oneSlideData["slideid"];
  162. $oneSlideParams = UniteFunctionsRev::getVal($this->oneSlideData, "params");
  163. $oneSlideLayers = UniteFunctionsRev::getVal($this->oneSlideData, "layers");
  164. if(gettype($oneSlideParams) == "object")
  165. $oneSlideParams = (array)$oneSlideParams;
  166. if(gettype($oneSlideLayers) == "object")
  167. $oneSlideLayers = (array)$oneSlideLayers;
  168. if(!empty($oneSlideLayers))
  169. $oneSlideLayers = UniteFunctionsRev::convertStdClassToArray($oneSlideLayers);
  170. $newSlides = array();
  171. foreach($slides as $slide){
  172. $slideID = $slide->getID();
  173. if($slideID == $oneSlideID){
  174. if(!empty($oneSlideParams))
  175. $slide->setParams($oneSlideParams);
  176. if(!empty($oneSlideLayers))
  177. $slide->setLayers($oneSlideLayers);
  178. $newSlides[] = $slide; //add 2 slides
  179. $newSlides[] = $slide;
  180. }
  181. }
  182. return($newSlides);
  183. }
  184. /**
  185. *
  186. * put the slider slides
  187. */
  188. private function putSlides($doWrapFromTemplate){
  189. //go to template slider if post template
  190. if($doWrapFromTemplate !== false) $this->slider->initByMixed($doWrapFromTemplate); //back to original Slider
  191. $sliderType = $this->slider->getParam("slider_type");
  192. $publishedOnly = true;
  193. if($this->previewMode == true && $this->oneSlideMode == true){
  194. $previewSlideID = UniteFunctionsRev::getVal($this->oneSlideData, "slideid");
  195. $previewSlide = new RevSlide();
  196. $previewSlide->initByID($previewSlideID);
  197. $slides = array($previewSlide);
  198. }else{
  199. $slides = $this->slider->getSlidesForOutput($publishedOnly,$this->sliderLang);
  200. }
  201. $this->slidesNumIndex = $this->slider->getSlidesNumbersByIDs(true);
  202. if(empty($slides)){
  203. ?>
  204. <div class="no-slides-text">
  205. <?php
  206. if($this->slider->isSlidesFromPosts()){
  207. _e('No slides found, please add at least one Slide Template to the choosen Template Slider.', REVSLIDER_TEXTDOMAIN);
  208. }else{
  209. _e('No slides found, please add some slides', REVSLIDER_TEXTDOMAIN);
  210. }
  211. ?>
  212. </div>
  213. <?php
  214. }
  215. //set that we are originally template slider
  216. $templateSlider = false;
  217. $postData = array();
  218. if($this->slider->isSlidesFromPosts() && $this->slider->getParam("slider_template_id",false) !== false){
  219. $templateSlider = true;
  220. }
  221. //go back to normal slider if post template
  222. if($doWrapFromTemplate) $this->slider->initByMixed($this->slider->getParam("slider_template_id",false)); //back to template for JS
  223. $thumbWidth = $this->slider->getParam("thumb_width",100);
  224. $thumbHeight = $this->slider->getParam("thumb_height",50);
  225. $slideWidth = $this->slider->getParam("width",900);
  226. $slideHeight = $this->slider->getParam("height",300);
  227. $navigationType = $this->slider->getParam("navigaion_type","none");
  228. $isThumbsActive = ($navigationType == "thumb")?true:false;
  229. $lazyLoad = $this->slider->getParam("lazy_load","off");
  230. //for one slide preview
  231. if($this->oneSlideMode == true)
  232. $slides = $this->filterOneSlide($slides);
  233. echo "<ul>";
  234. $htmlFirstTransWrap = "";
  235. $startWithSlide = $this->slider->getStartWithSlideSetting();
  236. $firstTransActive = $this->slider->getParam("first_transition_active","false");
  237. if($firstTransActive == "true"){
  238. $firstTransition = $this->slider->getParam("first_transition_type","fade");
  239. $htmlFirstTransWrap .= " data-fstransition=\"$firstTransition\"";
  240. $firstDuration = $this->slider->getParam("first_transition_duration","300");
  241. if(!empty($firstDuration) && is_numeric($firstDuration))
  242. $htmlFirstTransWrap .= " data-fsmasterspeed=\"$firstDuration\"";
  243. $firstSlotAmount = $this->slider->getParam("first_transition_slot_amount","7");
  244. if(!empty($firstSlotAmount) && is_numeric($firstSlotAmount))
  245. $htmlFirstTransWrap .= " data-fsslotamount=\"$firstSlotAmount\"";
  246. }
  247. if(count($slides) == 1 && $this->oneSlideMode == false){
  248. $slides[] = $slides[0];
  249. $slides[1]->ignore_alt = true;
  250. $this->hasOnlyOneSlide = true;
  251. }
  252. foreach($slides as $index => $slide){
  253. $params = $slide->getParams();
  254. $cur_slide_title = $this->slider->getParam("navigation_style","round");
  255. if($templateSlider)
  256. $postData = $slide->getPostData();
  257. //check if date is set
  258. $date_from = $slide->getParam("date_from","");
  259. $date_to = $slide->getParam("date_to","");
  260. if($date_from != ""){
  261. $date_from = strtotime($date_from);
  262. if(time() < $date_from) continue;
  263. }
  264. if($date_to != ""){
  265. $date_to = strtotime($date_to);
  266. if(time() > $date_to) continue;
  267. }
  268. $transition = $slide->getParam("slide_transition","random");
  269. $transition_arr = explode(',', $transition);
  270. $add_rand = '';
  271. if(is_array($transition_arr) && !empty($transition_arr)){
  272. foreach($transition_arr as $tkey => $trans){
  273. if($trans == 'random-selected'){
  274. $add_rand = ' data-randomtransition="on"';
  275. unset($transition_arr[$tkey]);
  276. $transition = implode(',', $transition_arr);
  277. break;
  278. }
  279. }
  280. }
  281. //if($transition == "fade") $transition = "tp-fade";
  282. //$transitionPremium = $slide->getParam("slide_transition_premium","random");
  283. //if(trim($transition) == '')
  284. // $transition = $transitionPremium;
  285. //else
  286. // if(trim($transitionPremium) != '') $transition .= ','.$transitionPremium;
  287. $slotAmount = $slide->getParam("slot_amount","7");
  288. $isExternal = $slide->getParam("background_type","image");
  289. if($isExternal != "external"){
  290. $urlSlideImage = $slide->getImageUrl();
  291. //get image alt
  292. $imageFilename = $slide->getImageFilename();
  293. $info = pathinfo($imageFilename);
  294. $alt = $info["filename"];
  295. }else{
  296. $urlSlideImage = $slide->getParam("slide_bg_external","");
  297. $info = '';
  298. $alt = '';
  299. }
  300. if(isset($slide->ignore_alt)) $alt = '';
  301. $bgType = $slide->getParam("background_type","image");
  302. //get thumb url
  303. $is_special_nav = false;
  304. switch($cur_slide_title){ //generate also if we have a special navigation selected
  305. case 'preview1':
  306. case 'preview2':
  307. case 'preview3':
  308. case 'preview4':
  309. case 'custom':
  310. $is_special_nav = true;
  311. }
  312. $htmlThumb = "";
  313. if($isThumbsActive == true || $is_special_nav == true){
  314. $urlThumb = null;
  315. //check if post slider, if yes, get thumb from featured image
  316. //if($this->slider->isSlidesFromPosts())
  317. // $urlThumb = '';
  318. if(empty($urlThumb)){
  319. $urlThumb = $slide->getParam("slide_thumb","");
  320. }
  321. if($bgType == 'image'){
  322. if(empty($urlThumb)){ //try to get resized thumb
  323. $url_img_link = $slide->getImageUrl();
  324. $urlThumb = rev_aq_resize($url_img_link, 320, 200, true, true, true);
  325. /*$pathThumb = $slide->getImageFilepath();
  326. if(!empty($pathThumb))
  327. $urlThumb = UniteBaseClassRev::getImageUrl($pathThumb,$thumbWidth,$thumbHeight,true);*/
  328. }
  329. //if not - put regular image:
  330. if(empty($urlThumb))
  331. $urlThumb = $slide->getImageUrl();
  332. }
  333. $htmlThumb = 'data-thumb="'.$urlThumb.'" ';
  334. }
  335. //get link
  336. $htmlLink = "";
  337. $enableLink = $slide->getParam("enable_link","false");
  338. if($enableLink == "true"){
  339. $linkType = $slide->getParam("link_type","regular");
  340. switch($linkType){
  341. //---- normal link
  342. default:
  343. case "regular":
  344. $link = $slide->getParam("link","");
  345. $linkOpenIn = $slide->getParam("link_open_in","same");
  346. $htmlTarget = "";
  347. if($linkOpenIn == "new")
  348. $htmlTarget = ' data-target="_blank"';
  349. $htmlLink = "data-link=\"$link\" $htmlTarget ";
  350. break;
  351. //---- link to slide
  352. case "slide":
  353. $slideLink = UniteFunctionsRev::getVal($params, "slide_link");
  354. if(!empty($slideLink) && $slideLink != "nothing"){
  355. //get slide index from id
  356. if(is_numeric($slideLink))
  357. $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
  358. if(!empty($slideLink)){
  359. $htmlLink = "data-link=\"slide\" data-linktoslide=\"$slideLink\" ";
  360. }
  361. }
  362. break;
  363. }
  364. //set link position:
  365. $linkPos = UniteFunctionsRev::getVal($params, "link_pos","front");
  366. if($linkPos == "back")
  367. $htmlLink .= ' data-slideindex="back"';
  368. }
  369. //set delay
  370. $htmlDelay = "";
  371. $delay = $slide->getParam("delay","");
  372. if(!empty($delay) && is_numeric($delay))
  373. $htmlDelay = "data-delay=\"$delay\" ";
  374. //get duration
  375. $htmlDuration = "";
  376. $duration = $slide->getParam("transition_duration","");
  377. if(!empty($duration) && is_numeric($duration))
  378. $htmlDuration = "data-masterspeed=\"$duration\" ";
  379. //get performance
  380. $htmlPerformance = "";
  381. $performance = $slide->getParam("save_performance","off");
  382. if(!empty($performance) && ($performance == 'on' || $performance == 'off'))
  383. $htmlPerformance = " data-saveperformance=\"$performance\" ";
  384. //get rotation
  385. $htmlRotation = "";
  386. $rotation = $slide->getParam("transition_rotation","");
  387. if(!empty($rotation)){
  388. $rotation = (int)$rotation;
  389. if($rotation != 0){
  390. if($rotation > 720 && $rotation != 999)
  391. $rotation = 720;
  392. if($rotation < -720)
  393. $rotation = -720;
  394. }
  395. $htmlRotation = "data-rotate=\"$rotation\" ";
  396. }
  397. $fullWidthVideoData = $this->getSlideFullWidthVideoData($slide);
  398. //set full width centering.
  399. /*$htmlImageCentering = "";
  400. $fullWidthCentering = $slide->getParam("fullwidth_centering","false");
  401. if($sliderType == "fullwidth" && $fullWidthCentering == "true")
  402. $htmlImageCentering = ' data-fullwidthcentering="on"';
  403. */
  404. //set first slide transition
  405. $htmlFirstTrans = "";
  406. if($index == $startWithSlide){
  407. $htmlFirstTrans = $htmlFirstTransWrap;
  408. }//first trans
  409. $htmlParams = $htmlDuration.$htmlLink.$htmlThumb.$htmlDelay.$htmlRotation.$htmlFirstTrans.$htmlPerformance;
  410. $styleImage = "";
  411. $urlImageTransparent = UniteBaseClassRev::$url_plugin."images/transparent.png";
  412. switch($bgType){
  413. case "trans":
  414. $urlSlideImage = $urlImageTransparent;
  415. break;
  416. case "solid":
  417. $urlSlideImage = $urlImageTransparent;
  418. $slideBGColor = $slide->getParam("slide_bg_color","#d0d0d0");
  419. $styleImage = "style='background-color:".$slideBGColor."'";
  420. break;
  421. }
  422. //additional params
  423. $imageAddParams = "";
  424. if($lazyLoad == "on"){
  425. $imageAddParams .= "data-lazyload=\"$urlSlideImage\"";
  426. $urlSlideImage = UniteBaseClassRev::$url_plugin."images/dummy.png";
  427. }
  428. //$imageAddParams .= $htmlImageCentering;
  429. //additional background params
  430. $bgFit = $slide->getParam("bg_fit","cover");
  431. $bgFitX = intval($slide->getParam("bg_fit_x","100"));
  432. $bgFitY = intval($slide->getParam("bg_fit_y","100"));
  433. $bgPosition = $slide->getParam("bg_position","center top");
  434. $bgPositionX = intval($slide->getParam("bg_position_x","0"));
  435. $bgPositionY = intval($slide->getParam("bg_position_y","0"));
  436. $bgRepeat = $slide->getParam("bg_repeat","no-repeat");
  437. if($bgPosition == 'percentage'){
  438. $imageAddParams .= ' data-bgposition="'.$bgPositionX.'% '.$bgPositionY.'%"';
  439. }else{
  440. $imageAddParams .= ' data-bgposition="'.$bgPosition.'"';
  441. }
  442. //check for kenburn & pan zoom
  443. $kenburn_effect = $slide->getParam("kenburn_effect","off");
  444. //$kb_rotation_start = intval($slide->getParam("kb_rotation_start","0"));
  445. //$kb_rotation_end = intval($slide->getParam("kb_rotation_end","0"));
  446. $kb_duration = intval($slide->getParam("kb_duration",$this->slider->getParam("delay",9000)));
  447. $kb_ease = $slide->getParam("kb_easing","Linear.easeNone");
  448. $kb_start_fit = $slide->getParam("kb_start_fit","100");
  449. $kb_end_fit =$slide->getParam("kb_end_fit","100");
  450. $kb_pz = '';
  451. if($kenburn_effect == "on" && ($bgType == 'image' || $bgType == 'external')){
  452. $kb_pz.= ' data-kenburns="on"';
  453. //$kb_pz.= ' data-rotationstart="'.$kb_rotation_start.'"';
  454. //$kb_pz.= ' data-rotationend="'.$kb_rotation_end.'"';
  455. $kb_pz.= ' data-duration="'.$kb_duration.'"';
  456. $kb_pz.= ' data-ease="'.$kb_ease.'"';
  457. $kb_pz.= ' data-bgfit="'.$kb_start_fit.'"';
  458. $kb_pz.= ' data-bgfitend="'.$kb_end_fit.'"';
  459. $bgEndPosition = $slide->getParam("bg_end_position","center top");
  460. $bgEndPositionX = intval($slide->getParam("bg_end_position_x","0"));
  461. $bgEndPositionY = intval($slide->getParam("bg_end_position_y","0"));
  462. if($bgEndPosition == 'percentage'){
  463. $kb_pz.= ' data-bgpositionend="'.$bgEndPositionX.'% '.$bgEndPositionY.'%"';
  464. }else{
  465. $kb_pz.= ' data-bgpositionend="'.$bgEndPosition.'"';
  466. }
  467. //set image original width and height
  468. //$imgSize = @getimagesize($urlSlideImage);
  469. //if(is_array($imgSize) && !empty($imgSize)){
  470. // $kb_pz.= ' data-owidth="'.$imgSize[0].'"';
  471. // $kb_pz.= ' data-oheight="'.$imgSize[1].'"';
  472. //}
  473. }else{ //only set if kenburner is off
  474. if($bgFit == 'percentage'){
  475. $imageAddParams .= ' data-bgfit="'.$bgFitX.'% '.$bgFitY.'%"';
  476. }else{
  477. $imageAddParams .= ' data-bgfit="'.$bgFit.'"';
  478. }
  479. $imageAddParams .= ' data-bgrepeat="'.$bgRepeat.'"';
  480. }
  481. $thumbWidth = $this->slider->getParam("thumb_width",100);
  482. //add Slide Title if we have special navigation type choosen
  483. $slide_title = '';
  484. $class_attr = $slide->getParam("class_attr","");
  485. if($class_attr !== '')
  486. $htmlParams.= ' class="'.$class_attr.'"';
  487. $id_attr = $slide->getParam("id_attr","");
  488. if($id_attr !== '')
  489. $htmlParams.= ' id="'.$id_attr.'"';
  490. $attr_attr = $slide->getParam("attr_attr","");
  491. if($attr_attr !== '')
  492. $htmlParams.= ' id="'.$attr_attr.'"';
  493. $data_attr = stripslashes($slide->getParam("data_attr",""));
  494. if($data_attr !== '')
  495. $htmlParams.= ' '.$data_attr;
  496. switch($cur_slide_title){
  497. case 'preview1':
  498. case 'preview2':
  499. case 'preview3':
  500. case 'preview4':
  501. case 'custom':
  502. //check if we are post based or normal slider
  503. if($templateSlider){
  504. $new_title = @get_the_title($slide->getID());
  505. $slide_title = ' data-title="'.str_replace("\'", "'", $new_title).'"';
  506. }else{
  507. $slide_title = ' data-title="'.str_replace("\'", "'", $slide->getParam("title","Slide")).'"';
  508. }
  509. break;
  510. }
  511. //Html
  512. echo " <!-- SLIDE -->\n";
  513. echo " <li data-transition=\"".$transition."\" data-slotamount=\"". $slotAmount."\" ".$add_rand.$htmlParams.$slide_title .">\n";
  514. echo " <!-- MAIN IMAGE -->\n";
  515. echo " <img src=\"". $urlSlideImage ."\" ". $styleImage." alt=\"". $alt . "\" ". $imageAddParams. $kb_pz .">\n";
  516. echo " <!-- LAYERS -->\n";
  517. //put video:
  518. if($fullWidthVideoData["found"] == true) //backward compatability
  519. $this->putFullWidthVideoLayer($fullWidthVideoData);
  520. $this->putCreativeLayer($slide);
  521. echo " </li>\n";
  522. } //get foreach
  523. echo "</ul>\n";
  524. //check for static layers
  525. $useStaticLayers = $this->slider->getParam("enable_static_layers","off");
  526. if($useStaticLayers == 'on'){
  527. $sliderID = $this->slider->getID();
  528. $staticID = $slide->getStaticSlideID($sliderID);
  529. if($staticID !== false){
  530. $static_slide = new RevSlide();
  531. $static_slide->initByStaticID($staticID);
  532. echo '<div class="tp-static-layers">'."\n";
  533. $this->putCreativeLayer($static_slide, true);
  534. echo '</div>'."\n";
  535. }
  536. }
  537. //add styles to the footer
  538. //add_action('wp_footer', array($this, 'add_inline_styles'));
  539. }
  540. /**
  541. *
  542. * put creative layer
  543. */
  544. private function putCreativeLayer(RevSlide $slide, $static_slide = false){
  545. $layers = $slide->getLayers();
  546. $customAnimations = RevOperations::getCustomAnimations('customin'); //get all custom animations
  547. $customEndAnimations = RevOperations::getCustomAnimations('customout'); //get all custom animations
  548. $startAnimations = RevOperations::getArrAnimations(false); //only get the standard animations
  549. $endAnimations = RevOperations::getArrEndAnimations(false); //only get the standard animations
  550. $lazyLoad = $this->slider->getParam("lazy_load","off");
  551. $isTemplate = $this->slider->getParam("template","false");
  552. if(empty($layers))
  553. return(false);
  554. $zIndex = 5;
  555. foreach($layers as $layer):
  556. $type = UniteFunctionsRev::getVal($layer, "type","text");
  557. //set if video full screen
  558. $videoclass = '';
  559. $isFullWidthVideo = false;
  560. if($type == "video"){
  561. $videoclass = ' tp-videolayer';
  562. $videoData = UniteFunctionsRev::getVal($layer, "video_data");
  563. if(!empty($videoData)){
  564. $videoData = (array)$videoData;
  565. $isFullWidthVideo = UniteFunctionsRev::getVal($videoData, "fullwidth");
  566. $isFullWidthVideo = UniteFunctionsRev::strToBool($isFullWidthVideo);
  567. }else
  568. $videoData = array();
  569. }
  570. $class = UniteFunctionsRev::getVal($layer, "style");
  571. if(trim($class) !== '')
  572. $this->class_include['.'.trim($class)] = true; //add classname for style inclusion
  573. $animation = UniteFunctionsRev::getVal($layer, "animation","tp-fade");
  574. if($animation == "fade") $animation = "tp-fade";
  575. $customin = '';
  576. if(!array_key_exists($animation, $startAnimations) && array_key_exists($animation, $customAnimations)){ //if true, add custom animation
  577. $customin.= 'data-customin="';
  578. $animArr = RevOperations::getCustomAnimationByHandle($customAnimations[$animation]);
  579. if($animArr !== false) $customin.= RevOperations::parseCustomAnimationByArray($animArr);
  580. $customin.= '"';
  581. $animation = 'customin';
  582. }
  583. if(strpos($animation, 'customin-') !== false || strpos($animation, 'customout-') !== false) $animation = "tp-fade";
  584. //set output class:
  585. $layer_2d_rotation = intval(UniteFunctionsRev::getVal($layer, "2d_rotation",'0'));
  586. $layer_2d_origin_x = intval(UniteFunctionsRev::getVal($layer, "2d_origin_x",'50'));
  587. $layer_2d_origin_y = intval(UniteFunctionsRev::getVal($layer, "2d_origin_y",'50'));
  588. if($layer_2d_rotation == 0)
  589. $outputClass = "tp-caption ". trim($class);
  590. else
  591. $outputClass = "tp-caption ";
  592. $outputClass = trim($outputClass) . " ";
  593. $outputClass .= trim($animation);
  594. $left = UniteFunctionsRev::getVal($layer, "left",0);
  595. $top = UniteFunctionsRev::getVal($layer, "top",0);
  596. $speed = UniteFunctionsRev::getVal($layer, "speed",300);
  597. $time = UniteFunctionsRev::getVal($layer, "time",0);
  598. $easing = UniteFunctionsRev::getVal($layer, "easing","easeOutExpo");
  599. $randomRotate = UniteFunctionsRev::getVal($layer, "random_rotation","false");
  600. $randomRotate = UniteFunctionsRev::boolToStr($randomRotate);
  601. $splitin = UniteFunctionsRev::getVal($layer, "split","none");
  602. $splitout = UniteFunctionsRev::getVal($layer, "endsplit","none");
  603. $elementdelay = intval(UniteFunctionsRev::getVal($layer, "splitdelay",0));
  604. $endelementdelay = intval(UniteFunctionsRev::getVal($layer, "endsplitdelay",0));
  605. if($elementdelay > 0) $elementdelay /= 100;
  606. if($endelementdelay > 0) $endelementdelay /= 100;
  607. $text = UniteFunctionsRev::getVal($layer, "text");
  608. if(function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) //use qTranslate
  609. $text = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($text);
  610. $htmlVideoAutoplay = "";
  611. $htmlVideoAutoplayOnlyFirstTime = "";
  612. $htmlVideoNextSlide = "";
  613. $htmlVideoThumbnail = "";
  614. $htmlMute = '';
  615. $htmlCover = '';
  616. $htmlDotted = '';
  617. $htmlRatio = '';
  618. $htmlRewind = '';
  619. $htmlDisableOnMobile = '';
  620. $ids = UniteFunctionsRev::getVal($layer, "attrID");
  621. $classes = UniteFunctionsRev::getVal($layer, "attrClasses");
  622. $title = UniteFunctionsRev::getVal($layer, "attrTitle");
  623. $rel = UniteFunctionsRev::getVal($layer, "attrRel");
  624. $ids = ($ids != '') ? ' id="'.$ids.'"' : '';
  625. $classes = ($classes != '') ? ' '.$classes : '';
  626. $title = ($title != '') ? ' title="'.$title.'"' : '';
  627. $rel = ($rel != '') ? ' rel="'.$rel.'"' : '';
  628. $max_width = UniteFunctionsRev::getVal($layer, "max_width",'auto');
  629. $max_height = UniteFunctionsRev::getVal($layer, "max_height",'auto');
  630. $white_space = UniteFunctionsRev::getVal($layer, "whitespace",'nowrap');
  631. $inline_styles = '';
  632. $layer_rotation = '';
  633. $do_rotation = false;
  634. $add_data = '';
  635. //set html:
  636. $html = "";
  637. switch($type){
  638. default:
  639. case "text":
  640. $html = $text;
  641. $html = do_shortcode($html);
  642. $inline_styles .= ' max-width: '.$max_width.'; max-height: '.$max_height.'; white-space: '.$white_space.';';
  643. if($layer_2d_rotation !== 0)
  644. $do_rotation = true;
  645. break;
  646. case "image":
  647. $alt = UniteFunctionsRev::getVal($layer, "alt");
  648. if(isset($slide->ignore_alt)) $alt = '';
  649. $urlImage = UniteFunctionsRev::getVal($layer, "image_url");
  650. $additional = "";
  651. $scaleX = UniteFunctionsRev::getVal($layer, "scaleX");
  652. $scaleY = UniteFunctionsRev::getVal($layer, "scaleY");
  653. if($scaleX != '') $additional .= ' data-ww="'.$scaleX.'"';
  654. if($scaleY != '') $additional .= ' data-hh="'.$scaleY.'"';
  655. if(is_ssl()){
  656. $urlImage = str_replace("http://", "https://", $urlImage);
  657. }
  658. $imageAddParams = "";
  659. if($lazyLoad == "on"){
  660. $imageAddParams .= " data-lazyload=\"$urlImage\"";
  661. $urlImage = UniteBaseClassRev::$url_plugin."images/dummy.png";
  662. }
  663. $html = '<img src="'.$urlImage.'" alt="'.$alt.'"'.$additional.$imageAddParams.'>';
  664. $imageLink = UniteFunctionsRev::getVal($layer, "link","");
  665. if(!empty($imageLink)){
  666. $openIn = UniteFunctionsRev::getVal($layer, "link_open_in","same");
  667. $target = "";
  668. if($openIn == "new")
  669. $target = ' target="_blank"';
  670. $linkID = UniteFunctionsRev::getVal($layer, "link_id","");
  671. $linkClass = UniteFunctionsRev::getVal($layer, "link_class","");
  672. $linkTitle = UniteFunctionsRev::getVal($layer, "link_title","");
  673. $linkRel = UniteFunctionsRev::getVal($layer, "link_rel","");
  674. $linkIDHtml = "";
  675. $linkClassHtml = "";
  676. $linkTitleHtml = "";
  677. $linkRelHtml = "";
  678. if(!empty($linkID))
  679. $linkIDHtml = ' id="'.$linkID.'"';
  680. if(!empty($linkClass))
  681. $linkClassHtml = ' class="'.$linkClass.'"';
  682. if(!empty($linkTitle))
  683. $linkTitleHtml = ' title="'.$linkTitle.'"';
  684. if(!empty($linkRel))
  685. $linkRelHtml = ' rel="'.$linkRel.'"';
  686. $html = '<a href="'.$imageLink.'"'.$target.$linkIDHtml.$linkClassHtml.$linkTitleHtml.$linkRelHtml.'>'.$html.'</a>';
  687. }
  688. if($layer_2d_rotation !== 0)
  689. $do_rotation = true;
  690. break;
  691. case "video":
  692. $videoType = trim(UniteFunctionsRev::getVal($layer, "video_type"));
  693. $videoID = trim(UniteFunctionsRev::getVal($layer, "video_id"));
  694. $videoWidth = trim(UniteFunctionsRev::getVal($layer, "video_width"));
  695. $videoHeight = trim(UniteFunctionsRev::getVal($layer, "video_height"));
  696. $videoArgs = trim(UniteFunctionsRev::getVal($layer, "video_args"));
  697. $v_controls = UniteFunctionsRev::getVal($videoData, "controls");
  698. $v_controls = UniteFunctionsRev::strToBool($v_controls);
  699. $rewind = UniteFunctionsRev::getVal($videoData, "forcerewind");
  700. $rewind = UniteFunctionsRev::strToBool($rewind);
  701. $htmlRewind = ($rewind == true) ? ' data-forcerewind="on"' : '';
  702. /*
  703. $cover = UniteFunctionsRev::getVal($videoData, "cover");
  704. $cover = UniteFunctionsRev::strToBool($cover);
  705. if($cover == true){
  706. $dotted = UniteFunctionsRev::getVal($videoData, "dotted");
  707. if($dotted !== 'none')
  708. $htmlDotted = ' data-dottedoverlay="'.$dotted.'"';
  709. $ratio = UniteFunctionsRev::getVal($videoData, "ratio");
  710. if(!empty($ratio))
  711. $htmlRatio = ' data-aspectratio="'.$ratio.'"';
  712. }
  713. */
  714. if($isFullWidthVideo == true){ // || $cover == true
  715. $videoWidth = "100%";
  716. $videoHeight = "100%";
  717. }
  718. $setBase = (is_ssl()) ? "https://" : "http://";
  719. switch($videoType){
  720. case "youtube":
  721. if(empty($videoArgs))
  722. $videoArgs = GlobalsRevSlider::DEFAULT_YOUTUBE_ARGUMENTS;
  723. //check if full URL
  724. if(strpos($videoID, 'http') !== false){
  725. //we have full URL, split it to ID
  726. parse_str( parse_url( $videoID, PHP_URL_QUERY ), $my_v_ret );
  727. $videoID = $my_v_ret['v'];
  728. }
  729. $videospeed = UniteFunctionsRev::getVal($videoData, "videospeed", '1');
  730. //$ytBase = 'https://';
  731. //if($v_controls) $videoArgs.='controls=0;';
  732. $videoArgs.=';origin='.$setBase.$_SERVER['SERVER_NAME'].';';
  733. $add_data = ' data-ytid="'.$videoID.'" data-videowidth="'.$videoWidth.'" data-videoheight="'.$videoHeight.'" data-videoattributes="version=3&amp;enablejsapi=1&amp;html5=1&amp;'.$videoArgs.'" data-videorate="'.$videospeed.'"';
  734. $add_data .= ($v_controls) ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
  735. //$html = "<iframe src='".$ytBase."www.youtube.com/embed/".$videoID."?enablejsapi=1&amp;html5=1&amp;".$videoArgs."' allowfullscreen='true' width='".$videoWidth."' height='".$videoHeight."' style='width:".$videoWidth."px;height:".$videoHeight."px;'></iframe>";
  736. break;
  737. case "vimeo":
  738. if(empty($videoArgs))
  739. $videoArgs = GlobalsRevSlider::DEFAULT_VIMEO_ARGUMENTS;
  740. //check if full URL
  741. if(strpos($videoID, 'http') !== false){
  742. //we have full URL, split it to ID
  743. $videoID = (int) substr(parse_url($videoID, PHP_URL_PATH), 1);
  744. }
  745. $add_data = ' data-vimeoid="'.$videoID.'" data-videowidth="'.$videoWidth.'" data-videoheight="'.$videoHeight.'" data-videoattributes="'.$videoArgs.'"';
  746. //no controls for vimeo $add_data .= ($v_controls) ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
  747. //$html = "<iframe src='".$setBase."player.vimeo.com/video/".$videoID."?".$videoArgs."' width='".$videoWidth."' height='".$videoHeight."' style='width:".$videoWidth."px;height:".$videoHeight."px;'></iframe>";
  748. break;
  749. case "html5":
  750. $urlPoster = UniteFunctionsRev::getVal($videoData, "urlPoster");
  751. $urlMp4 = UniteFunctionsRev::getVal($videoData, "urlMp4");
  752. $urlWebm = UniteFunctionsRev::getVal($videoData, "urlWebm");
  753. $urlOgv = UniteFunctionsRev::getVal($videoData, "urlOgv");
  754. $videopreload = UniteFunctionsRev::getVal($videoData, "preload");
  755. $videoloop = UniteFunctionsRev::getVal($videoData, "videoloop");
  756. $add_data = ' data-videowidth="'.$videoWidth.'" data-videoheight="'.$videoHeight.'"';
  757. $cover = UniteFunctionsRev::getVal($videoData, "cover");
  758. $cover = UniteFunctionsRev::strToBool($cover);
  759. if($cover == true){
  760. $add_data .= ' data-forceCover="1"';
  761. $dotted = UniteFunctionsRev::getVal($videoData, "dotted");
  762. if($dotted !== 'none')
  763. $add_data .= ' data-dottedoverlay="'.$dotted.'"';
  764. $ratio = UniteFunctionsRev::getVal($videoData, "ratio");
  765. if(!empty($ratio))
  766. $add_data .= ' data-aspectratio="'.$ratio.'"';
  767. }
  768. $add_data .= ($v_controls) ? ' data-videocontrols="none"' : ' data-videocontrols="controls"';
  769. if(!empty($urlPoster)) $add_data .= ' data-videoposter="'.$urlPoster.'"';
  770. if(!empty($urlOgv)) $add_data .= ' data-videoogv="'.$urlOgv.'"';
  771. if(!empty($urlWebm)) $add_data .= ' data-videowebm="'.$urlWebm.'"';
  772. if(!empty($urlMp4)) $add_data .= ' data-videomp4="'.$urlMp4.'"';
  773. if(!empty($videopreload)) $add_data .= ' data-videopreload="'.$videopreload.'"';
  774. if(UniteFunctionsRev::strToBool($videoloop) == true){ //fallback
  775. $add_data .= ' data-videoloop="loop"';
  776. }else{
  777. $add_data .= ' data-videoloop="'.$videoloop.'"';
  778. }
  779. break;
  780. default:
  781. UniteFunctionsRev::throwError("wrong video type: $videoType");
  782. break;
  783. }
  784. //set video autoplay, with backward compatability
  785. if(array_key_exists("autoplay", $videoData))
  786. $videoAutoplay = UniteFunctionsRev::getVal($videoData, "autoplay");
  787. else //backword compatability
  788. $videoAutoplay = UniteFunctionsRev::getVal($layer, "video_autoplay");
  789. //set video autoplayonlyfirsttime, with backward compatability
  790. if(array_key_exists("autoplayonlyfirsttime", $videoData))
  791. $videoAutoplayOnlyFirstTime = UniteFunctionsRev::getVal($videoData, "autoplayonlyfirsttime");
  792. else
  793. $videoAutoplayOnlyFirstTime = "";
  794. $videoAutoplay = UniteFunctionsRev::strToBool($videoAutoplay);
  795. $videoAutoplayOnlyFirstTime = UniteFunctionsRev::strToBool($videoAutoplayOnlyFirstTime);
  796. $mute = UniteFunctionsRev::getVal($videoData, "mute");
  797. $mute = UniteFunctionsRev::strToBool($mute);
  798. $htmlMute = ($mute) ? ' data-volume="mute"' : '';
  799. if($videoAutoplay == true)
  800. $htmlVideoAutoplay = ' data-autoplay="true"'." \n";
  801. else
  802. $htmlVideoAutoplay = ' data-autoplay="false"'." \n";
  803. if($videoAutoplayOnlyFirstTime == true && $videoAutoplay == true)
  804. $htmlVideoAutoplayOnlyFirstTime = ' data-autoplayonlyfirsttime="true"'." \n";
  805. else
  806. $htmlVideoAutoplayOnlyFirstTime = ' data-autoplayonlyfirsttime="false"'." \n";
  807. $videoNextSlide = UniteFunctionsRev::getVal($videoData, "nextslide");
  808. $videoNextSlide = UniteFunctionsRev::strToBool($videoNextSlide);
  809. if($videoNextSlide == true)
  810. $htmlVideoNextSlide = ' data-nextslideatend="true"'." \n";
  811. $videoThumbnail = @$videoData["previewimage"];
  812. if(trim($videoThumbnail) !== '') $htmlVideoThumbnail = ' data-videoposter="'.$videoThumbnail.'"'." \n";
  813. $disable_on_mobile = UniteFunctionsRev::getVal($videoData, "disable_on_mobile");
  814. $disable_on_mobile = UniteFunctionsRev::strToBool($disable_on_mobile);
  815. $htmlDisableOnMobile = ($disable_on_mobile) ? ' data-disablevideoonmobile="1"'." \n" : '';
  816. break;
  817. }
  818. if($do_rotation){
  819. $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);';
  820. $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.'%;';
  821. }
  822. //handle end transitions:
  823. $endTime = trim(UniteFunctionsRev::getVal($layer, "endtime"));
  824. $realEndTime = trim(UniteFunctionsRev::getVal($layer, "realEndTime"));
  825. $endWithSlide = UniteFunctionsRev::getVal($layer, "endWithSlide",false);
  826. $endSpeed = trim(UniteFunctionsRev::getVal($layer, "endspeed"));
  827. $calcSpeed = (!empty($endSpeed)) ? $endSpeed : $speed;
  828. if(!empty($calcSpeed) && $realEndTime - $calcSpeed !== $endTime){
  829. $endTime = $realEndTime - $calcSpeed;
  830. }
  831. $htmlEnd = "";
  832. $customout = '';
  833. if(!empty($endTime) && $endWithSlide !== true){
  834. $htmlEnd = " data-end=\"$endTime\""." \n";
  835. }
  836. if(!empty($endSpeed))
  837. $htmlEnd .= " data-endspeed=\"$endSpeed\""." \n";
  838. $endEasing = trim(UniteFunctionsRev::getVal($layer, "endeasing"));
  839. if(!empty($endSpeed) && $endEasing != "nothing")
  840. $htmlEnd .= " data-endeasing=\"$endEasing\""." \n";
  841. //add animation to class
  842. $endAnimation = trim(UniteFunctionsRev::getVal($layer, "endanimation"));
  843. if($endAnimation == "fade") $endAnimation = "tp-fade";
  844. if(!array_key_exists($endAnimation, $endAnimations) && array_key_exists($endAnimation, $customEndAnimations)){ //if true, add custom animation
  845. $customout = ' data-customout="';
  846. $animArr = RevOperations::getCustomAnimationByHandle($customEndAnimations[$endAnimation]);
  847. if($animArr !== false) $customout.= RevOperations::parseCustomAnimationByArray($animArr);
  848. $customout.= '"';
  849. $endAnimation = 'customout';
  850. }
  851. if(strpos($endAnimation, 'customin-') !== false || strpos($endAnimation, 'customout-') !== false) $endAnimation = "";
  852. if(!empty($endAnimation) && $endAnimation != "auto")
  853. $outputClass .= " ".$endAnimation;
  854. //slide link
  855. $htmlLink = "";
  856. $slideLink = UniteFunctionsRev::getVal($layer, "link_slide");
  857. if(!empty($slideLink) && $slideLink != "nothing" && $slideLink != "scroll_under"){
  858. //get slide index from id
  859. if(is_numeric($slideLink))
  860. $slideLink = UniteFunctionsRev::getVal($this->slidesNumIndex, $slideLink);
  861. if(!empty($slideLink))
  862. $htmlLink = " data-linktoslide=\"$slideLink\""." \n";
  863. }
  864. //scroll under the slider
  865. if($slideLink == "scroll_under"){
  866. $outputClass .= " tp-scrollbelowslider";
  867. $scrollUnderOffset = intval(UniteFunctionsRev::getVal($layer, "scrollunder_offset"));
  868. $htmlLink .= " data-scrolloffset=\"".$scrollUnderOffset."\""." \n";
  869. }
  870. //hidden under resolution
  871. $htmlHidden = "";
  872. $layerHidden = UniteFunctionsRev::getVal($layer, "hiddenunder");
  873. if($layerHidden == "true" || $layerHidden == "1")
  874. $htmlHidden = ' data-captionhidden="on"'." \n";
  875. $htmlParams = $add_data.$htmlEnd.$htmlLink.$htmlVideoAutoplay.$htmlVideoAutoplayOnlyFirstTime.$htmlVideoNextSlide.$htmlVideoThumbnail.$htmlHidden.$htmlMute.$htmlDisableOnMobile.$htmlCover.$htmlDotted.$htmlRatio.$htmlRewind."\n";
  876. //set positioning options
  877. $alignHor = UniteFunctionsRev::getVal($layer,"align_hor","left");
  878. $alignVert = UniteFunctionsRev::getVal($layer, "align_vert","top");
  879. $htmlPosX = "";
  880. $htmlPosY = "";
  881. switch($alignHor){
  882. default:
  883. case "left":
  884. $htmlPosX = " data-x=\"".$left."\"";
  885. break;
  886. case "center":
  887. $htmlPosX = " data-x=\"center\" data-hoffset=\"".$left."\"";
  888. break;
  889. case "right":
  890. $left = (int)$left*-1;
  891. $htmlPosX = " data-x=\"right\" data-hoffset=\"".$left."\"";
  892. break;
  893. }
  894. switch($alignVert){
  895. default:
  896. case "top":
  897. $htmlPosY = " data-y=\"".$top."\" ";
  898. break;
  899. case "middle":
  900. $htmlPosY = " data-y=\"center\" data-voffset=\"".$top."\"";
  901. break;
  902. case "bottom":
  903. $top = (int)$top*-1;
  904. $htmlPosY = " data-y=\"bottom\" data-voffset=\"".$top."\"";
  905. break;
  906. }
  907. //set corners
  908. $htmlCorners = "";
  909. if($type == "text"){
  910. $cornerLeft = UniteFunctionsRev::getVal($layer, "corner_left");
  911. $cornerRight = UniteFunctionsRev::getVal($layer, "corner_right");
  912. switch($cornerLeft){
  913. case "curved":
  914. $htmlCorners .= "<div class='frontcorner'></div>";
  915. break;
  916. case "reverced":
  917. $htmlCorners .= "<div class='frontcornertop'></div>";
  918. break;
  919. }
  920. switch($cornerRight){
  921. case "curved":
  922. $htmlCorners .= "<div class='backcorner'></div>";
  923. break;
  924. case "reverced":
  925. $htmlCorners .= "<div class='backcornertop'></div>";
  926. break;
  927. }
  928. //add resizeme class
  929. $resizeme = UniteFunctionsRev::getVal($layer, "resizeme");
  930. if($resizeme == "true" || $resizeme == "1")
  931. $outputClass .= ' tp-resizeme';
  932. }//end text related layer
  933. //make some modifications for the full screen video
  934. if($isFullWidthVideo == true){
  935. $htmlPosX = " data-x=\"0\"";
  936. $htmlPosY = " data-y=\"0\"";
  937. $outputClass .= " fullscreenvideo";
  938. }
  939. //parallax part
  940. $use_parallax = $this->slider->getParam("use_parallax","off");
  941. $parallax_class = '';
  942. if($use_parallax == 'on'){
  943. $slide_level = intval(UniteFunctionsRev::getVal($layer, "parallax_level", '-'));
  944. if($slide_level !== '-')
  945. $parallax_class = ' rs-parallaxlevel-'.$slide_level;
  946. }
  947. //check for loop animation here
  948. $do_loop = UniteFunctionsRev::getVal($layer,"loop_animation","none");
  949. $loop_data = '';
  950. $loop_class = '';
  951. if($do_loop !== 'none'){
  952. $loop_class = ' '.$do_loop;
  953. switch($do_loop){
  954. case 'rs-pendulum':
  955. $loop_data.= ' data-easing="'.UniteFunctionsRev::getVal($layer,"loop_easing","Power3.easeInOut").'"';
  956. $loop_data.= ' data-startdeg="'.UniteFunctionsRev::getVal($layer,"loop_startdeg","-20").'"';
  957. $loop_data.= ' data-enddeg="'.UniteFunctionsRev::getVal($layer,"loop_enddeg","20").'"';
  958. $loop_data.= ' data-speed="'.UniteFunctionsRev::getVal($layer,"loop_speed","2").'"';
  959. $loop_data.= ' data-origin="'.UniteFunctionsRev::getVal($layer,"loop_xorigin","50").'% '.UniteFunctionsRev::getVal($layer,"loop_yorigin","50").'%"';
  960. break;
  961. case 'rs-rotate':
  962. $loop_data.= ' data-easing="'.UniteFunctionsRev::getVal($layer,"loop_easing","Power3.easeInOut").'"';
  963. $loop_data.= ' data-startdeg="'.UniteFunctionsRev::getVal($layer,"loop_startdeg","-20").'"';
  964. $loop_data.= ' data-enddeg="'.UniteFunctionsRev::getVal($layer,"loop_enddeg","20").'"';
  965. $loop_data.= ' data-speed="'.UniteFunctionsRev::getVal($layer,"loop_speed","2").'"';
  966. $loop_data.= ' data-origin="'.UniteFunctionsRev::getVal($layer,"loop_xorigin","50").'% '.UniteFunctionsRev::getVal($layer,"loop_yorigin","50").'%"';
  967. break;
  968. case 'rs-slideloop':
  969. $loop_data.= ' data-easing="'.UniteFunctionsRev::getVal($layer,"loop_easing","Power3.easeInOut").'"';
  970. $loop_data.= ' data-speed="'.UniteFunctionsRev::getVal($layer,"loop_speed","1").'"';
  971. $loop_data.= ' data-xs="'.UniteFunctionsRev::getVal($layer,"loop_xstart","0").'"';
  972. $loop_data.= ' data-xe="'.UniteFunctionsRev::getVal($layer,"loop_xend","0").'"';
  973. $loop_data.= ' data-ys="'.UniteFunctionsRev::getVal($layer,"loop_ystart","0").'"';
  974. $loop_data.= ' data-ye="'.UniteFunctionsRev::getVal($layer,"loop_yend","0").'"';
  975. break;
  976. case 'rs-pulse':
  977. $loop_data.= ' data-easing="'.UniteFunctionsRev::getVal($layer,"loop_easing","Power3.easeInOut").'"';
  978. $loop_data.= ' data-speed="'.UniteFunctionsRev::getVal($layer,"loop_speed","1").'"';
  979. $loop_data.= ' data-zoomstart="'.UniteFunctionsRev::getVal($layer,"loop_zoomstart","1").'"';
  980. $loop_data.= ' data-zoomend="'.UniteFunctionsRev::getVal($layer,"loop_zoomend","1").'"';
  981. break;
  982. case 'rs-wave':
  983. $loop_data.= ' data-speed="'.UniteFunctionsRev::getVal($layer,"loop_speed","1").'"';
  984. $loop_data.= ' data-angle="'.UniteFunctionsRev::getVal($layer,"loop_angle","0").'"';
  985. $loop_data.= ' data-radius="'.UniteFunctionsRev::getVal($layer,"loop_radius","10").'"';
  986. $loop_data.= ' data-origin="'.UniteFunctionsRev::getVal($layer,"loop_xorigin","50").'% '.UniteFunctionsRev::getVal($layer,"loop_yorigin","50").'%"';
  987. break;
  988. }
  989. }
  990. echo "\n <!-- LAYER NR. ";
  991. echo $zIndex - 4;
  992. echo " -->\n";
  993. echo " <div class=\"".$outputClass;
  994. echo ($classes != '') ? ' '.$classes : '';
  995. echo $parallax_class;
  996. if($static_slide) echo ' tp-static-layer';
  997. echo $videoclass;
  998. echo "\" \n";
  999. echo ($ids != '') ? ' '.$ids." \n" : '';
  1000. echo ($title != '') ? ' '.$title." \n" : '';
  1001. echo ($rel != '') ? ' '.$rel." \n" : '';
  1002. if($htmlPosX != "") echo " ".$htmlPosX." \n";
  1003. if($htmlPosY != "") echo " ".$htmlPosY." \n";
  1004. if($customin != "") echo " ".$customin." \n";
  1005. if($customout != "") echo " ".$customout." \n";
  1006. echo " data-speed=\"".$speed."\" \n";
  1007. echo " data-start=\"".$time."\" \n";
  1008. echo " data-easing=\"".$easing."\" \n";
  1009. if($type == "text"){ //only output if we are a text layer
  1010. echo " data-splitin=\"".$splitin."\" \n";
  1011. echo " data-splitout=\"".$splitout."\" \n";
  1012. }
  1013. //check if static layer and if yes, set values for it.
  1014. if($static_slide){
  1015. if($isTemplate != "true"){
  1016. $start_on_slide = intval(UniteFunctionsRev::getVal($layer,"static_start",1)) - 1;
  1017. $end_on_slide = intval(UniteFunctionsRev::getVal($layer,"static_end",2)) - 1;
  1018. }else{
  1019. $start_on_slide = '-1';
  1020. $end_on_slide = '-1';
  1021. }
  1022. echo ' data-startslide="'.$start_on_slide.'"'." \n";
  1023. echo ' data-endslide="'.$end_on_slide.'"'." \n";
  1024. }
  1025. echo " data-elementdelay=\"".$elementdelay."\" \n";
  1026. echo " data-endelementdelay=\"".$endelementdelay."\" \n";
  1027. if($htmlParams != "") echo " ".$htmlParams;
  1028. echo " style=\"z-index: ".$zIndex.";".$inline_styles. "\"";
  1029. echo ">";
  1030. if($do_loop !== 'none'){
  1031. echo "\n".' <div style="'.$layer_rotation.'" class="tp-layer-inner-rotation ';
  1032. $rotationClass = trim($class);
  1033. $rotationClass = trim($rotationClass) . " ";
  1034. echo $rotationClass;
  1035. echo $loop_class;
  1036. echo '" ';
  1037. echo $loop_data;
  1038. echo '>';
  1039. }elseif($layer_rotation != ''){
  1040. $rotationClass = trim($class);
  1041. $rotationClass = trim($rotationClass) . " ";
  1042. echo '<div class="tp-layer-inner-rotation '.$rotationClass.'" style="'.$layer_rotation.'">'." \n";
  1043. }
  1044. echo stripslashes($html)." \n";
  1045. if($htmlCorners != ""){
  1046. echo $htmlCorners." \n";
  1047. }
  1048. if($do_loop !== 'none' || $layer_rotation != ''){
  1049. echo " </div>\n";
  1050. }
  1051. echo " </div>\n";
  1052. $zIndex++;
  1053. endforeach;
  1054. }
  1055. /**
  1056. *
  1057. * put slider javascript
  1058. */
  1059. private function putJS(){
  1060. $params = $this->slider->getParams();
  1061. $sliderType = $this->slider->getParam("slider_type");
  1062. $optFullWidth = ($sliderType == "fullwidth")?"on":"off";
  1063. $optFullScreen = "off";
  1064. if($sliderType == "fullscreen"){
  1065. $optFullWidth = "off";
  1066. $optFullScreen = "on";
  1067. }
  1068. $use_spinner = $this->slider->getParam("use_spinner","0");
  1069. $spinner_color = $this->slider->getParam("spinner_color","#FFFFFF");
  1070. $noConflict = $this->slider->getParam("jquery_noconflict","on");
  1071. //set thumb amount
  1072. $numSlides = $this->slider->getNumSlides(true);
  1073. $thumbAmount = (int)$this->slider->getParam("thumb_amount","5");
  1074. if($thumbAmount > $numSlides)
  1075. $thumbAmount = $numSlides;
  1076. //get stop slider options
  1077. $stopSlider = $this->slider->getParam("stop_slider","off");
  1078. $stopAfterLoops = $this->slider->getParam("stop_after_loops","0");
  1079. $stopAtSlide = $this->slider->getParam("stop_at_slide","2");
  1080. if($stopSlider == "off"){
  1081. $stopAfterLoops = "-1";
  1082. $stopAtSlide = "-1";
  1083. }
  1084. $oneSlideLoop = $this->slider->getParam("loop_slide","loop");
  1085. if($oneSlideLoop == 'noloop' && $this->hasOnlyOneSlide == true){
  1086. $stopAfterLoops = '0';
  1087. $stopAtSlide = '1';
  1088. }
  1089. // set hide navigation after
  1090. $hideThumbs = $this->slider->getParam("hide_thumbs","200");
  1091. if(is_numeric($hideThumbs) == false)
  1092. $hideThumbs = "0";
  1093. else{
  1094. $hideThumbs = (int)$hideThumbs;
  1095. if($hideThumbs < 10)
  1096. $hideThumbs = 10;
  1097. }
  1098. $alwaysOn = $this->slider->getParam("navigaion_always_on","false");
  1099. if($alwaysOn == "true")
  1100. $hideThumbs = "0";
  1101. $sliderID = $this->slider->getID();
  1102. //treat hide slider at limit
  1103. $hideSliderAtLimit = $this->slider->getParam("hide_slider_under","0",RevSlider::VALIDATE_NUMERIC);
  1104. if(!empty($hideSliderAtLimit))
  1105. $hideSliderAtLimit++;
  1106. $hideCaptionAtLimit = $this->slider->getParam("hide_defined_layers_under","0",RevSlider::VALIDATE_NUMERIC);;
  1107. if(!empty($hideCaptionAtLimit))
  1108. $hideCaptionAtLimit++;
  1109. $hideAllCaptionAtLimit = $this->slider->getParam("hide_all_layers_under","0",RevSlider::VALIDATE_NUMERIC);;
  1110. if(!empty($hideAllCaptionAtLimit))
  1111. $hideAllCaptionAtLimit++;
  1112. //start_with_slide
  1113. $startWithSlide = $this->slider->getStartWithSlideSetting();
  1114. //modify navigation type (backward compatability)
  1115. $arrowsType = $this->slider->getParam("navigation_arrows","nexttobullets");
  1116. switch($arrowsType){
  1117. case "verticalcentered":
  1118. $arrowsType = "solo";
  1119. break;
  1120. }
  1121. //More Mobile Options
  1122. $hideThumbsOnMobile = $this->slider->getParam("hide_…

Large files files are truncated, but you can click here to view the full file