PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://github.com/alniko009/magic
PHP | 259 lines | 182 code | 43 blank | 34 comment | 85 complexity | 06b3679cd0b605f3c697308d7be20262 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  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 $sublayerkey => $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. // HTML
  166. $sublayer['html'] = do_shortcode(__(stripslashes($sublayer['html'])));
  167. // WPML
  168. if(function_exists('icl_t')) {
  169. // HTML
  170. $sublayer['html'] = icl_t('LayerSlider WP', '<'.$sublayer['type'].':'.substr(sha1($sublayer['html']), 0, 10).'> layer on slide #'.($layerkey+1).' in slider #'.$id.'', $sublayer['html']);
  171. // Links
  172. if($sublayer['url'] != '') {
  173. if(strstr($sublayer['url'], $_SERVER['SERVER_NAME']) !== false) {
  174. if(strstr($sublayer['url'], '?') !== false) {
  175. $sublayer['url'] .= '&lang=' . ICL_LANGUAGE_CODE;
  176. } else {
  177. $sublayer['url'] .= '?lang=' . ICL_LANGUAGE_CODE;
  178. }
  179. }
  180. }
  181. }
  182. if(!empty($sublayer['url']) && preg_match('/^\#[0-9]/', $sublayer['url']) == 0) {
  183. $data .= '<a href="'.$sublayer['url'].'" target="'.$sublayer['target'].'" '.$sublayerID.' '.$sublayerRel.' class="ls-s'.$sublayer['level'].''.$sublayerClass.'" '.$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'].'">';
  184. if(empty($sublayer['type']) || $sublayer['type'] == 'img') {
  185. if(!empty($sublayer['image'])) {
  186. $data .= '<img src="'.$sublayer['image'].'" '.$sublayerAlt.' style="'.$sublayerStyle.''.$customStyles.'">';
  187. }
  188. } else {
  189. $data .= '<'.$sublayer['type'].' class="'.$sublayerClass.'" style="'.$sublayerStyle.' '.$customStyles.''.$sublayerWordWrap.'"> '.$sublayer['html'].' </'.$sublayer['type'].'>';
  190. }
  191. $data .= '</a>';
  192. } else {
  193. if(empty($sublayer['type']) || $sublayer['type'] == 'img') {
  194. if(!empty($sublayer['image'])) {
  195. $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.'">';
  196. }
  197. } else {
  198. $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.'"> '.$sublayer['html'].' </'.$sublayer['type'].'>';
  199. }
  200. }
  201. }
  202. }
  203. // Link this slide
  204. if(!empty($layer['properties']['layer_link'])) {
  205. $data .= '<a href="'.$layer['properties']['layer_link'].'" target="'.$layer['properties']['layer_link_target'].'" class="ls-link"></a>';
  206. }
  207. $data .= '</div>';
  208. }
  209. }
  210. $data .= '</div>';
  211. if(isset($slides['properties']['forceresponsive']) && $slides['properties']['forceresponsive'] != 'false') {
  212. $data .= '</div>';
  213. $data .= '</div>';
  214. }
  215. }
  216. ?>