/wp-content/plugins/LayerSlider/slider.php

https://bitbucket.org/lessquared/saddleback-eye · PHP · 238 lines · 169 code · 39 blank · 30 comment · 79 complexity · 24a8aa5bc71fc33f7ae6ec3c266b50b8 MD5 · raw file

  1. <?php
  2. if(is_array($slides)) {
  3. if(isset($slides['properties']['forceresponsive']) && $slides['properties']['forceresponsive'] != 'false') {
  4. $data .= '<div class="ls-wp-fullwidth-container">';
  5. $data .= '<div class="ls-wp-fullwidth-helper">';
  6. }
  7. // Layer props
  8. $sliderStyle = isset($slides['properties']['sliderstyle']) ? $slides['properties']['sliderstyle'] : '';
  9. $data .= '<div id="layerslider_'.$id.'" class="ls-wp-container" style="width: '.layerslider_check_unit($slides['properties']['width']).'; height: '.layerslider_check_unit($slides['properties']['height']).'; margin: 0px auto; '.$sliderStyle.'">';
  10. if(is_array($slides['layers'])) {
  11. foreach($slides['layers'] as $layerkey => $layer) {
  12. //print_r($layer);
  13. // Skip layer?
  14. if(isset($layer['properties']['skip'])) {
  15. continue;
  16. }
  17. // ID
  18. if(!empty($layer['properties']['id'])) {
  19. $layerID = 'id="'.$layer['properties']['id'].'"';
  20. } else {
  21. $layerID = '';
  22. }
  23. // Deeplink
  24. if(!empty($layer['properties']['deeplink'])) {
  25. $deeplink = 'deeplink: '.$layer['properties']['deeplink'].'; ';
  26. } else {
  27. $deeplink = '';
  28. }
  29. // Time shift
  30. if(isset($layer['properties']['new_transitions'])) {
  31. $ts = !empty($layer['properties']['timeshift']) ? $layer['properties']['timeshift'] : '0';
  32. $timeshift = 'timeshift: '.$ts.'; ';
  33. } else {
  34. $timeshift = '';
  35. }
  36. // Default values for transitions
  37. $transition2d = '';
  38. $transition3d = '';
  39. $customtransition2d = '';
  40. $customtransition3d = '';
  41. // Transitions
  42. if(isset($layer['properties']['new_transitions'])) {
  43. // Built-in transitions
  44. if(
  45. empty($layer['properties']['2d_transitions']) &&
  46. empty($layer['properties']['3d_transitions']) &&
  47. empty($layer['properties']['custom_2d_transitions']) &&
  48. empty($layer['properties']['custom_3d_transitions'])
  49. ) {
  50. $transition2d = 'transition2d: all; ';
  51. } else {
  52. if(!empty($layer['properties']['2d_transitions'])) $transition2d = 'transition2d: '.$layer['properties']['2d_transitions'].'; ';
  53. if(!empty($layer['properties']['3d_transitions'])) $transition3d = 'transition3d: '.$layer['properties']['3d_transitions'].'; ';
  54. if(!empty($layer['properties']['custom_2d_transitions'])) $customtransition2d = 'customtransition2d: '.$layer['properties']['custom_2d_transitions'].'; ';
  55. if(!empty($layer['properties']['custom_3d_transitions'])) $customtransition3d = 'customtransition3d: '.$layer['properties']['custom_3d_transitions'].'; ';
  56. }
  57. }
  58. $data .= '<div class="ls-layer" '.$layerID.' style="'.$deeplink.'slidedirection: '.$layer['properties']['slidedirection'].'; slidedelay: '.$layer['properties']['slidedelay'].'; durationin: '.$layer['properties']['durationin'].'; durationout: '.$layer['properties']['durationout'].'; easingin: '.$layer['properties']['easingin'].'; easingout: '.$layer['properties']['easingout'].'; delayin: '.$layer['properties']['delayin'].'; delayout: '.$layer['properties']['delayout'].'; '.$timeshift.''.$transition2d.''.$transition3d.''.$customtransition2d.''.$customtransition3d.'">';
  59. // Layer background
  60. if(!empty($layer['properties']['background'])) {
  61. $data .= '<img src="'.$layer['properties']['background'].'" class="ls-bg" alt="Slide background">';
  62. }
  63. // Layer thumbnail
  64. if(!empty($slides['properties']['thumb_nav']) && $slides['properties']['thumb_nav'] != 'disabled') {
  65. if(!empty($layer['properties']['thumbnail'])) {
  66. $data .= '<img src="'.$layer['properties']['thumbnail'].'" class="ls-tn" alt="Slide thumbnail">';
  67. }
  68. }
  69. if(isset($layer['sublayers']) && is_array($layer['sublayers'])) {
  70. foreach($layer['sublayers'] as $sublayer) {
  71. // Skip sublayer?
  72. if(isset($sublayer['skip'])) {
  73. continue;
  74. }
  75. // SlideDirection
  76. if(!empty($sublayer['slidedirection']) && $sublayer['slidedirection'] != 'auto') {
  77. $slidedirection = 'slidedirection : '.$sublayer['slidedirection'].';';
  78. } else {
  79. $slidedirection = '';
  80. }
  81. // SlideOutDirection
  82. if(!empty($sublayer['slideoutdirection']) && $sublayer['slideoutdirection'] != 'auto') {
  83. $slideoutdirection = 'slideoutdirection : '.$sublayer['slideoutdirection'].';';
  84. } else {
  85. $slideoutdirection = '';
  86. }
  87. // ID
  88. if(!empty($sublayer['id'])) {
  89. $sublayerID = 'id="'.$sublayer['id'].'"';
  90. } else {
  91. $sublayerID = '';
  92. }
  93. // LinkTo
  94. $linkTo = '';
  95. if(!empty($sublayer['url'])) {
  96. if(preg_match('/^\#[0-9]/', $sublayer['url']) > 0 ) {
  97. $linkTo = ' ls-linkto-'.substr($sublayer['url'], 1).'';
  98. } else {
  99. $linkTo = '';
  100. }
  101. }
  102. // Title
  103. if(!empty($sublayer['title'])) {
  104. $sublayerTitle = 'title="'.$sublayer['title'].'"';
  105. } else {
  106. $sublayerTitle = '';
  107. }
  108. // Alt
  109. if(!empty($sublayer['alt'])) {
  110. $sublayerAlt = 'alt="'.$sublayer['alt'].'"';
  111. } else {
  112. $sublayerAlt = '';
  113. }
  114. // Rel
  115. if(!empty($sublayer['rel'])) {
  116. $sublayerRel = 'rel="'.$sublayer['rel'].'"';
  117. } else {
  118. $sublayerRel = '';
  119. }
  120. // WordWrap
  121. if(!isset($sublayer['wordwrap'])) {
  122. $sublayerWordWrap = ' white-space: nowrap;';
  123. } else {
  124. $sublayerWordWrap = '';
  125. }
  126. // Custom style
  127. if(!empty($sublayer['style'])) {
  128. $sublayerStyle = preg_replace('/\s\s+/', ' ', stripslashes($sublayer['style']));
  129. } else {
  130. $sublayerStyle = '';
  131. }
  132. // Custom classes
  133. if(!empty($sublayer['class'])) {
  134. $sublayerClass = ' '.$sublayer['class'].'';
  135. } else {
  136. $sublayerClass = '';
  137. }
  138. // Show until
  139. if(empty($sublayer['showuntil'])) {
  140. $sublayer['showuntil'] = '0';
  141. }
  142. // Build style settings if any
  143. if(!empty($sublayer['styles'])) {
  144. // String to hold custom style settings
  145. $customStyles = '';
  146. // Get custom style settings
  147. $styles = json_decode(stripslashes($sublayer['styles']), true);
  148. // Build custom style string
  149. foreach($styles as $key => $val) {
  150. if(is_numeric($val)) {
  151. $customStyles .= ''.$key.': '.layerslider_check_unit($val).'; ';
  152. } else {
  153. $customStyles .= ''.$key.': '.$val.'; ';
  154. }
  155. }
  156. } else {
  157. $customStyles = '';
  158. }
  159. // Rotate
  160. $sublayer['rotatein'] = empty($sublayer['rotatein']) ? '' : 'rotatein : '.$sublayer['rotatein'].'; ';
  161. $sublayer['rotateout'] = empty($sublayer['rotateout']) ? '' : 'rotateout : '.$sublayer['rotateout'].'; ';
  162. // Scale
  163. $sublayer['scalein'] = (!isset($sublayer['scalein']) || $sublayer['scalein'] == '1.0') ? '' : 'scalein : '.$sublayer['scalein'].'; ';
  164. $sublayer['scaleout'] = (!isset($sublayer['scaleout']) || $sublayer['scaleout'] == '1.0') ? '' : 'scaleout : '.$sublayer['scaleout'].'; ';
  165. if(!empty($sublayer['url']) && preg_match('/^\#[0-9]/', $sublayer['url']) == 0) {
  166. $data .= '<a href="'.$sublayer['url'].'" target="'.$sublayer['target'].'" '.$sublayerID.' '.$sublayerRel.' class="ls-s'.$sublayer['level'].'" '.$sublayerTitle.' style="position: absolute; top: '.layerslider_check_unit($sublayer['top']).'; left:'.layerslider_check_unit($sublayer['left']).'; display: block; '.$slidedirection.' '.$slideoutdirection.' durationin : '.$sublayer['durationin'].'; durationout : '.$sublayer['durationout'].'; easingin : '.$sublayer['easingin'].'; easingout : '.$sublayer['easingout'].'; delayin : '.$sublayer['delayin'].'; delayout : '.$sublayer['delayout'].'; '.$sublayer['rotatein'].''.$sublayer['rotateout'].''.$sublayer['scalein'].''.$sublayer['scaleout'].'showuntil : '.$sublayer['showuntil'].'">';
  167. if(empty($sublayer['type']) || $sublayer['type'] == 'img') {
  168. if(!empty($sublayer['image'])) {
  169. $data .= '<img src="'.$sublayer['image'].'" '.$sublayerAlt.' style="'.$sublayerStyle.''.$customStyles.'">';
  170. }
  171. } else {
  172. $data .= '<'.$sublayer['type'].' class="'.$sublayerClass.'" style="'.$sublayerStyle.' '.$customStyles.''.$sublayerWordWrap.'"> '.do_shortcode(__(stripslashes($sublayer['html']))).' </'.$sublayer['type'].'>';
  173. }
  174. $data .= '</a>';
  175. } else {
  176. if(empty($sublayer['type']) || $sublayer['type'] == 'img') {
  177. if(!empty($sublayer['image'])) {
  178. $data .= '<img class="ls-s'.$sublayer['level'].''.$linkTo.''.$sublayerClass.'" '.$sublayerID.' src="'.$sublayer['image'].'" '.$sublayerAlt.' style="position: absolute; top: '.layerslider_check_unit($sublayer['top']).'; left: '.layerslider_check_unit($sublayer['left']).'; '.$slidedirection.' '.$slideoutdirection.' durationin : '.$sublayer['durationin'].'; durationout : '.$sublayer['durationout'].'; easingin : '.$sublayer['easingin'].'; easingout : '.$sublayer['easingout'].'; delayin : '.$sublayer['delayin'].'; delayout : '.$sublayer['delayout'].'; '.$sublayer['rotatein'].''.$sublayer['rotateout'].''.$sublayer['scalein'].''.$sublayer['scaleout'].'showuntil : '.$sublayer['showuntil'].'; '.$sublayerStyle.''.$customStyles.'">';
  179. }
  180. } else {
  181. $data .= '<'.$sublayer['type'].' '.$sublayerID.' class="ls-s'.$sublayer['level'].''.$linkTo.''.$sublayerClass.'" style="position: absolute; top:'.layerslider_check_unit($sublayer['top']).'; left: '.layerslider_check_unit($sublayer['left']).'; '.$slidedirection.' '.$slideoutdirection.' durationin : '.$sublayer['durationin'].'; durationout : '.$sublayer['durationout'].'; easingin : '.$sublayer['easingin'].'; easingout : '.$sublayer['easingout'].'; delayin : '.$sublayer['delayin'].'; delayout : '.$sublayer['delayout'].'; '.$sublayer['rotatein'].''.$sublayer['rotateout'].''.$sublayer['scalein'].''.$sublayer['scaleout'].'showuntil : '.$sublayer['showuntil'].'; '.$sublayerStyle.' '.$customStyles.''.$sublayerWordWrap.'"> '.do_shortcode(__(stripslashes($sublayer['html']))).' </'.$sublayer['type'].'>';
  182. }
  183. }
  184. }
  185. }
  186. // Link this slide
  187. if(!empty($layer['properties']['layer_link'])) {
  188. $data .= '<a href="'.$layer['properties']['layer_link'].'" target="'.$layer['properties']['layer_link_target'].'" class="ls-link"></a>';
  189. }
  190. $data .= '</div>';
  191. }
  192. }
  193. $data .= '</div>';
  194. if(isset($slides['properties']['forceresponsive']) && $slides['properties']['forceresponsive'] != 'false') {
  195. $data .= '</div>';
  196. $data .= '</div>';
  197. }
  198. }
  199. ?>