slide-selector.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. <?php
  2. /**
  3. * @author ThemePunch <info@themepunch.com>
  4. * @link http://www.themepunch.com/
  5. * @copyright 2015 ThemePunch
  6. */
  7. if( !defined( 'ABSPATH') ) exit();
  8. $_width = $slider->getParam('width', 1280);
  9. $_height = $slider->getParam('height', 868);
  10. $the_slidertype = $slider->getParam('slider-type', 'standard');
  11. if($the_slidertype == 'hero'){
  12. $active_slide = $slider->getParam('hero_active', -1);
  13. //check if this id is still existing
  14. $exists = RevSliderSlide::isSlideByID($active_slide);
  15. if($exists == false){
  16. $active_slide = -1;
  17. }
  18. }
  19. ?>
  20. <input type="hidden" value="<?php echo intval($_width); ?>" name="rs-grid-width" />
  21. <input type="hidden" value="<?php echo intval($_height); ?>" name="rs-grid-height" />
  22. <div id="slide_selector" class="slide_selector editor_buttons_wrapper postbox unite-postbox" style="max-width:100% !important; min-width:1200px !important">
  23. <div class="inner_wrapper p10 boxsized">
  24. <ul class="list_slide_links">
  25. <?php
  26. $staticclass = '';
  27. $sID = $slider->getID();
  28. if($slide->isStaticSlide()){
  29. $staticclass = 'statictabselected';
  30. }
  31. ?>
  32. <li class="<?php echo $staticclass; ?> eg-drag-disabled">
  33. <?php
  34. if(!$slide->isStaticSlide()){
  35. ?>
  36. <a href="<?php echo self::getViewUrl(RevSliderAdmin::VIEW_SLIDE,"id=static_$sID"); ?>" class="add_slide">
  37. <?php
  38. }
  39. ?>
  40. <div class="slide-media-container icon-basketball" style="border:1px solid #3498DB; border-bottom:none;"></div>
  41. <div class="slide-link-content alwaysbluebg" style="background:#3498DB !important; color:#fff">
  42. <span class="slide-link" style="width:100%;text-align: center;"><?php _e("Static / Global Layers",'revslider'); ?></span>
  43. </div>
  44. <?php
  45. if(!$slide->isStaticSlide()){
  46. ?>
  47. </a>
  48. <?php
  49. }
  50. ?>
  51. <?php
  52. //show/hide layers of specific slides
  53. if($slide->isStaticSlide()){
  54. $all_slides = $slider->getSlides(true);
  55. ?>
  56. <span style="position:absolute; top:13px;left:0px; text-align: center">
  57. <span class="setting_text_3"><?php _e("Show Layers from Slide:",'revslider'); ?></span>
  58. <select name="rev_show_the_slides">
  59. <option value="none">---</option>
  60. <?php
  61. foreach($all_slides as $c_slide){
  62. $c_params = $c_slide->getParams();
  63. ?>
  64. <option value="<?php echo $c_slide->getID(); ?>"><?php echo stripslashes(RevSliderFunctions::getVal($c_params, 'title', 'Slide')).' (ID: '.$c_slide->getID().')'; ?></option>
  65. <?php
  66. }
  67. ?>
  68. </select>
  69. </span>
  70. <?php
  71. }
  72. ?>
  73. </li>
  74. <?php
  75. $slidecounter = 0;
  76. foreach($arrSlides as $t_slide) {
  77. $slidelistID = $t_slide->getID();
  78. /* BACKGROUND SETTINGS */
  79. $c_bgType = $t_slide->getParam('background_type', 'transparent');
  80. $c_bgColor = $t_slide->getParam('slide_bg_color', 'transparent');
  81. $c_bgFit = $t_slide->getParam('bg_fit', 'cover');
  82. $c_bgFitX = intval($t_slide->getParam('bg_fit_x', '100'));
  83. $c_bgFitY = intval($t_slide->getParam('bg_fit_y', '100'));
  84. $c_bgPosition = $t_slide->getParam('bg_position', 'center center');
  85. $c_bgPositionX = intval($t_slide->getParam('bg_position_x', '0'));
  86. $c_bgPositionY = intval($t_slide->getParam('bg_position_y', '0'));
  87. $c_bgRepeat = $t_slide->getParam('bg_repeat', 'no-repeat');
  88. $c_isvisible = $t_slide->getParam('state', 'published');
  89. $c_thumb_for_admin = $t_slide->getParam('thumb_for_admin', 'off');
  90. $c_real_thumbURL = $t_slide->getParam('slide_thumb','');
  91. $c_bgStyle = ' ';
  92. if($c_bgFit == 'percentage'){
  93. $c_bgStyle .= "background-size: ".$c_bgFitX.'% '.$c_bgFitY.'%;';
  94. }else{
  95. $c_bgStyle .= "background-size: ".$c_bgFit.";";
  96. }
  97. if($c_bgPosition == 'percentage'){
  98. $c_bgStyle .= "background-position: ".$c_bgPositionX.'% '.$c_bgPositionY.'%;';
  99. }else{
  100. $c_bgStyle .= "background-position: ".$c_bgPosition.";";
  101. }
  102. $c_bgStyle .= "background-repeat: ".$c_bgRepeat.";";
  103. $c_urlImageForView = $t_slide->getThumbUrl();
  104. $c_bg_fullstyle ='';
  105. $c_bg_extraClass='';
  106. if($c_bgType == 'image' || $c_bgType == 'streamvimeo' || $c_bgType == 'streamyoutube' || $c_bgType == 'streaminstagram'){
  107. switch($slider_type){
  108. case 'posts':
  109. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/post.png';
  110. break;
  111. case 'woocommerce':
  112. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/wc.png';
  113. break;
  114. case 'facebook':
  115. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/fb.png';
  116. break;
  117. case 'twitter':
  118. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/tw.png';
  119. break;
  120. case 'instagram':
  121. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/ig.png';
  122. break;
  123. case 'flickr':
  124. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/fr.png';
  125. break;
  126. case 'youtube':
  127. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/yt.png';
  128. break;
  129. case 'vimeo':
  130. $c_urlImageForView = RS_PLUGIN_URL.'public/assets/assets/sources/vm.png';
  131. break;
  132. }
  133. }
  134. if ($c_bgType == 'image' || $c_bgType == 'vimeo' || $c_bgType == 'youtube' || $c_bgType == 'html5' || $c_bgType == 'streamvimeo' || $c_bgType == 'streamyoutube' || $c_bgType == 'streaminstagram')
  135. $c_bg_fullstyle =' style="background-image:url('.$c_urlImageForView.');'.$c_bgStyle.'" ';
  136. if ($c_bgType == 'solid')
  137. $c_bg_fullstyle =' style="background:'.TPColorpicker::get($c_bgColor).';" ';
  138. if ($c_bgType == 'trans')
  139. $c_bg_extraClass = 'mini-transparent';
  140. if ($c_thumb_for_admin=="on")
  141. $c_bg_fullstyle =' style="background-image:url('.$c_real_thumbURL.');background-size:cover;background-position:center center" ';
  142. /* END OF BG SETTINGS */
  143. $slidecounter++;
  144. $title = $t_slide->getParam('title', 'Slide');
  145. $slideName = $title;
  146. $arrChildrenIDs = $t_slide->getArrChildrenIDs();
  147. $class = 'tipsy_enabled_top';
  148. $titleclass = '';
  149. $c_topclass = '';
  150. $urlEditSlide = self::getViewUrl(RevSliderAdmin::VIEW_SLIDE,"id=$slidelistID");
  151. if($slideID == $slidelistID || in_array($slideID, $arrChildrenIDs)){
  152. $class .= ' selected';
  153. $c_topclass = ' selected';
  154. $titleclass = ' ';
  155. $urlEditSlide = 'javascript:void(0)';
  156. }
  157. $addParams = "class='".$class."'";
  158. $slideName = str_replace("'", "", $slideName);
  159. ?>
  160. <li id="slidelist_item_<?php echo $slidelistID; ?>" class="<?php echo $c_topclass; ?>">
  161. <a href="<?php echo $urlEditSlide; ?>" <?php echo $addParams; ?>>
  162. <span class="mini-transparent mini-as-bg"></span>
  163. <span class="slide-media-container <?php echo $c_bg_extraClass; ?>" <?php echo $c_bg_fullstyle; ?>></span>
  164. <i class="slide-link-forward eg-icon-forward"></i>
  165. </a>
  166. <span class="slide-link-published-wrapper">
  167. <?php
  168. if($the_slidertype !== 'hero'){
  169. if($c_isvisible == 'published'){
  170. ?>
  171. <span class="slide-published"></span>
  172. <span class="slide-unpublished pubclickable"></span>
  173. <?php
  174. }else{
  175. ?>
  176. <span class="slide-unpublished"></span>
  177. <span class="slide-published pubclickable"></span>
  178. <?php
  179. }
  180. }else{ //we are a hero blog, Slides are not published/unpublished here, but rather the active Slide can be choosen
  181. if($active_slide == $slidelistID || $active_slide == -1){
  182. ?>
  183. <span class="slide-hero-published"></span>
  184. <?php
  185. $active_slide = -99; //so that if it was -1, it will not be done again. First slide is just active
  186. }else{
  187. ?>
  188. <span class="slide-hero-unpublished pubclickable"></span>
  189. <?php
  190. }
  191. }
  192. ?>
  193. </span>
  194. <div class="slide-link-content">
  195. <span class="slide-link">
  196. <span class="slide-link-nr">#<?php echo $slidecounter; ?></span>
  197. <input class="slidetitleinput" name="slidetitle" value="<?php echo esc_attr(stripslashes($title)); ?>" />
  198. <span class="slidelint-edit-button"></span>
  199. </span>
  200. <div class="slide-link-toolbar">
  201. <?php
  202. if($slidelistID != $slideID && !in_array($slideID, $arrChildrenIDs)){
  203. ?>
  204. <a class="slide-link-toolbar-button slide-moveto" href="#"><span class=""><i class="eg-icon-forward"></i><span><?php _e("Copy / Move",'revslider'); ?></span></span></a>
  205. <?php
  206. }
  207. ?>
  208. <a class="slide-link-toolbar-button slide-duplicate" href="#"><span class=""><i class="eg-icon-picture"></i><span><?php _e("Duplicate",'revslider'); ?></span></span></a>
  209. <a class="slide-link-toolbar-button slide-add-as-template" href="#"><span class=""><i class="eg-icon-menu"></i><span><?php _e("Add to Templates",'revslider'); ?></span></span></a>
  210. <a class="slide-link-toolbar-button slide-remove" href="#"><span class=""><i class="eg-icon-trash"></i><span><?php _e("Delete",'revslider'); ?></span></span></a>
  211. </div>
  212. </div>
  213. </li>
  214. <?php
  215. }
  216. ?>
  217. <li class="eg-drag-disabled">
  218. <a href="javascript:void(0);" class="add_slide">
  219. <div class="slide-media-container" style="border:1px dashed #ddd; border-bottom:none;">
  220. <i style="position:absolute; top:50%;left:50%; font-size:25px; color:#ddd;margin-left:-17px;margin-top:-7px;" class="eg-icon-plus"></i>
  221. </div>
  222. <div class="slide-link-content">
  223. <span class="slide-link" style="width:100%;text-align: center;font-weight:600;"><?php _e("Add Slide",'revslider'); ?></span>
  224. </div>
  225. </a>
  226. <div class="slide-link-content">
  227. <div class="slide-link-toolbar">
  228. <a id="link_add_slide" href="javascript:void(0);" class="slide-link-toolbar-button"><span class="slide-add"><i class="eg-icon-picture-1" style="margin-right:5px"></i><span><?php _e("Add Blank Slide", 'revslider'); ?></span></span></a>
  229. <a id="link_add_bulk_slide" href="javascript:void(0);" class="slide-link-toolbar-button"><span class="slide-add"><i class="eg-icon-picture" style="margin-right:5px"></i><span><?php _e("Add Bulk Slides", 'revslider'); ?></span></span></a>
  230. <a id="rs_copy_slide_from_slider" href="javascript:void(0);" class="slide-link-toolbar-button">
  231. <span class="slide-copy-from-slider"><i class="eg-icon-menu" style="margin-right:5px"></i><span><?php _e("Add from Template", 'revslider'); ?></span></span>
  232. </a>
  233. </div>
  234. <span class="slide-link" style="text-align:center">
  235. <?php _e("Add Slide", 'revslider'); ?>
  236. </span>
  237. </div>
  238. <div class="small-triangle-bar"></div>
  239. </li>
  240. <li>
  241. <div id="loader_add_slide" class="loader_round" style="display:none"></div>
  242. </li>
  243. </ul>
  244. <div class="clear"></div>
  245. </div>
  246. </div>
  247. <script>
  248. jQuery("document").ready(function() {
  249. jQuery('.list_slide_links li').each(function() {
  250. var li=jQuery(this);
  251. li.hover(function() {
  252. var li = jQuery(this),
  253. tb = li.find('.slide-link-toolbar');
  254. li.removeClass("nothovered");
  255. tb.show();
  256. }, function() {
  257. var li = jQuery(this),
  258. tb = li.find('.slide-link-toolbar');
  259. li.addClass("nothovered");
  260. if (!li.hasClass("infocus"))
  261. tb.hide();
  262. })
  263. });
  264. var oldslidetitle = "";
  265. jQuery('.slidetitleinput').focus(function() {
  266. oldslidetitle=jQuery(this).val();
  267. jQuery(this).closest("li").addClass("infocus");
  268. }).blur(function() {
  269. jQuery(this).val(oldslidetitle);
  270. var li = jQuery(this).closest("li")
  271. li.removeClass("infocus");
  272. if (li.hasClass("nothovered")) {
  273. tb = li.find('.slide-link-toolbar');
  274. tb.hide();
  275. }
  276. });
  277. jQuery('.slidetitleinput').on("change",function() {
  278. var titleinp = jQuery(this),
  279. slide_title = titleinp.val(),
  280. slide_id = jQuery(this).closest('li').attr('id').replace('slidelist_item_', '');
  281. oldslidetitle = slide_title;
  282. titleinp.blur();
  283. if(UniteAdminRev.sanitize_input(slide_title) == ''){
  284. alert('<?php _e('Slide name should not be empty', 'revslider'); ?>');
  285. return false;
  286. }
  287. var data = {slideID:slide_id,slideTitle:slide_title};
  288. UniteAdminRev.ajaxRequest('change_slide_title', data, function(response){});
  289. if(jQuery(this).closest('li').hasClass('selected')){ //set input field to new value
  290. jQuery('input[name="title"]').val(slide_title);
  291. }
  292. })
  293. jQuery('.slidelint-edit-button').click(function() {
  294. var titleinp = jQuery(this).siblings('.slidetitleinput'),
  295. slide_title = titleinp.val(),
  296. slide_id = jQuery(this).closest('li').attr('id').replace('slidelist_item_', '');
  297. oldslidetitle = slide_title;
  298. titleinp.blur();
  299. if(UniteAdminRev.sanitize_input(slide_title) == ''){
  300. alert('<?php _e('Slide name should not be empty', 'revslider'); ?>');
  301. return false;
  302. }
  303. var data = {slideID:slide_id,slideTitle:slide_title};
  304. UniteAdminRev.ajaxRequest('change_slide_title', data, function(response){});
  305. if(jQuery(this).closest('li').hasClass('selected')){ //set input field to new value
  306. jQuery('input[name="title"]').val(slide_title);
  307. }
  308. });
  309. // OPEN THE TEMPLATE LIST ON CLICK OF ADD SLIDE TEMPLATE
  310. jQuery('#rs_copy_slide_from_slider').click(function() {
  311. RevSliderAdmin.load_slide_template_html();
  312. });
  313. });
  314. </script>