revslider.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?php
  2. /*
  3. Plugin Name: Slider Revolution
  4. Plugin URI: http://revolution.themepunch.com/
  5. Description: Slider Revolution - Premium responsive slider
  6. Author: ThemePunch
  7. Version: 5.4.7.3
  8. Author URI: http://themepunch.com
  9. */
  10. // If this file is called directly, abort.
  11. if ( ! defined( 'WPINC' ) ) {
  12. die;
  13. }
  14. if(class_exists('RevSliderFront')) {
  15. die('ERROR: It looks like you have more than one instance of Slider Revolution installed. Please remove additional instances for this plugin to work again.');
  16. }
  17. if ( ! class_exists( 'Vamtam_Updates_2' ) ) {
  18. require 'vamtam-updates/class-vamtam-updates.php';
  19. }
  20. new Vamtam_Updates_2( __FILE__ );
  21. $revSliderVersion = '5.4.7.3';
  22. $revSliderAsTheme = false;
  23. $revslider_screens = array();
  24. $revslider_fonts = array();
  25. $rs_plugin_url = str_replace('index.php','',plugins_url( 'index.php', __FILE__ ));
  26. if(strpos($rs_plugin_url, 'http') === false) {
  27. $site_url = get_site_url();
  28. $rs_plugin_url = (substr($site_url, -1) === '/') ? substr($site_url, 0, -1). $rs_plugin_url : $site_url. $rs_plugin_url;
  29. }
  30. $rs_plugin_url = str_replace(array(chr(10), chr(13)), '', $rs_plugin_url);
  31. define('RS_PLUGIN_PATH', plugin_dir_path(__FILE__));
  32. define('RS_PLUGIN_FILE_PATH', __FILE__);
  33. define('RS_PLUGIN_URL', $rs_plugin_url);
  34. define('RS_PLUGIN_SLUG', apply_filters('set_revslider_slug', 'revslider'));
  35. define('RS_DEMO', false);
  36. if(isset($_GET['revSliderAsTheme'])){
  37. if($_GET['revSliderAsTheme'] == 'true'){
  38. update_option('revSliderAsTheme', 'true');
  39. }else{
  40. update_option('revSliderAsTheme', 'false');
  41. }
  42. }
  43. //set the RevSlider Plugin as a Theme. This hides the activation notice and the activation area in the Slider Overview
  44. function set_revslider_as_theme(){
  45. global $revSliderAsTheme;
  46. if(defined('REV_SLIDER_AS_THEME')){
  47. if(REV_SLIDER_AS_THEME == true)
  48. $revSliderAsTheme = true;
  49. }else{
  50. if(get_option('revSliderAsTheme', 'true') == 'true')
  51. $revSliderAsTheme = true;
  52. }
  53. }
  54. //include frameword files
  55. require_once(RS_PLUGIN_PATH . 'includes/framework/include-framework.php');
  56. //include bases
  57. require_once($folderIncludes . 'base.class.php');
  58. require_once($folderIncludes . 'elements-base.class.php');
  59. require_once($folderIncludes . 'base-admin.class.php');
  60. require_once($folderIncludes . 'base-front.class.php');
  61. //include product files
  62. require_once(RS_PLUGIN_PATH . 'includes/globals.class.php');
  63. require_once(RS_PLUGIN_PATH . 'includes/operations.class.php');
  64. require_once(RS_PLUGIN_PATH . 'includes/slider.class.php');
  65. require_once(RS_PLUGIN_PATH . 'includes/output.class.php');
  66. require_once(RS_PLUGIN_PATH . 'includes/slide.class.php');
  67. require_once(RS_PLUGIN_PATH . 'includes/widget.class.php');
  68. require_once(RS_PLUGIN_PATH . 'includes/navigation.class.php');
  69. require_once(RS_PLUGIN_PATH . 'includes/object-library.class.php');
  70. require_once(RS_PLUGIN_PATH . 'includes/template.class.php');
  71. require_once(RS_PLUGIN_PATH . 'includes/external-sources.class.php');
  72. require_once(RS_PLUGIN_PATH . 'includes/page-template.class.php');
  73. require_once(RS_PLUGIN_PATH . 'includes/tinybox.class.php');
  74. require_once(RS_PLUGIN_PATH . 'includes/extension.class.php');
  75. require_once(RS_PLUGIN_PATH . 'public/revslider-front.class.php');
  76. try{
  77. $rs_rsl = (isset($_GET['rs_refresh_server'])) ? true : false;
  78. $rslb = new RevSliderLoadBalancer();
  79. $GLOBALS['rslb'] = $rslb;
  80. $rslb->refresh_server_list($rs_rsl);
  81. //register the revolution slider widget
  82. RevSliderFunctionsWP::registerWidget('RevSliderWidget');
  83. //add shortcode
  84. function rev_slider_shortcode($args, $mid_content = null){
  85. extract(shortcode_atts(array('alias' => ''), $args, 'rev_slider'));
  86. extract(shortcode_atts(array('settings' => ''), $args, 'rev_slider'));
  87. extract(shortcode_atts(array('order' => ''), $args, 'rev_slider'));
  88. if($settings !== '') $settings = json_decode(str_replace(array('({', '})', "'"), array('[', ']', '"'), $settings) ,true);
  89. if($order !== '') $order = explode(',', $order);
  90. $sliderAlias = ($alias != '') ? $alias : RevSliderFunctions::getVal($args,0);
  91. $gal_ids = RevSliderFunctionsWP::check_for_shortcodes($mid_content); //check for example on gallery shortcode and do stuff
  92. ob_start();
  93. if(!empty($gal_ids)){ //add a gallery based slider
  94. $slider = RevSliderOutput::putSlider($sliderAlias, '', $gal_ids);
  95. }else{
  96. $slider = RevSliderOutput::putSlider($sliderAlias, '', array(), $settings, $order);
  97. }
  98. $content = ob_get_contents();
  99. ob_clean();
  100. ob_end_clean();
  101. if(!empty($slider)){
  102. // Do not output Slider if we are on mobile
  103. $disable_on_mobile = $slider->getParam("disable_on_mobile","off");
  104. if($disable_on_mobile == 'on'){
  105. $mobile = (strstr($_SERVER['HTTP_USER_AGENT'],'Android') || strstr($_SERVER['HTTP_USER_AGENT'],'webOS') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone') || wp_is_mobile()) ? true : false;
  106. if($mobile) return false;
  107. }
  108. $show_alternate = $slider->getParam("show_alternative_type","off");
  109. if($show_alternate == 'mobile' || $show_alternate == 'mobile-ie8'){
  110. if(strstr($_SERVER['HTTP_USER_AGENT'],'Android') || strstr($_SERVER['HTTP_USER_AGENT'],'webOS') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone') || wp_is_mobile()){
  111. $show_alternate_image = $slider->getParam("show_alternate_image","");
  112. return '<img class="tp-slider-alternative-image" src="'.$show_alternate_image.'" data-no-retina>';
  113. }
  114. }
  115. //handle slider output types
  116. $outputType = $slider->getParam("output_type","");
  117. switch($outputType){
  118. case "compress":
  119. $content = str_replace("\n", "", $content);
  120. $content = str_replace("\r", "", $content);
  121. return($content);
  122. break;
  123. case "echo":
  124. echo $content; //bypass the filters
  125. break;
  126. default:
  127. return($content);
  128. break;
  129. }
  130. }else
  131. return($content); //normal output
  132. }
  133. add_shortcode( 'rev_slider', 'rev_slider_shortcode' );
  134. /**
  135. * Call Extensions
  136. */
  137. $revext = new RevSliderExtension();
  138. add_action('plugins_loaded', array( 'RevSliderTinyBox', 'visual_composer_include' )); //VC functionality
  139. add_action('plugins_loaded', array( 'RevSliderPageTemplate', 'get_instance' ));
  140. if(is_admin()){ //load admin part
  141. require_once(RS_PLUGIN_PATH . 'includes/framework/update.class.php');
  142. require_once(RS_PLUGIN_PATH . 'includes/framework/newsletter.class.php');
  143. require_once(RS_PLUGIN_PATH . 'admin/revslider-admin.class.php');
  144. $productAdmin = new RevSliderAdmin(RS_PLUGIN_FILE_PATH);
  145. //add tiny box dropdown menu
  146. add_action('admin_head', array('RevSliderTinyBox', 'add_tinymce_editor'));
  147. }else{ //load front part
  148. /**
  149. *
  150. * put rev slider on the page.
  151. * the data can be slider ID or slider alias.
  152. */
  153. function putRevSlider($data,$putIn = ""){
  154. $operations = new RevSliderOperations();
  155. $arrValues = $operations->getGeneralSettingsValues();
  156. $includesGlobally = RevSliderFunctions::getVal($arrValues, "includes_globally","on");
  157. $strPutIn = RevSliderFunctions::getVal($arrValues, "pages_for_includes");
  158. $isPutIn = RevSliderOutput::isPutIn($strPutIn,true);
  159. if($isPutIn == false && $includesGlobally == "off"){
  160. $output = new RevSliderOutput();
  161. $option1Name = __("Include RevSlider libraries globally (all pages/posts)", 'revslider');
  162. $option2Name = __("Pages to include RevSlider libraries", 'revslider');
  163. $output->putErrorMessage(__("If you want to use the PHP function \"putRevSlider\" in your code please make sure to check \" ",'revslider').$option1Name.__(" \" in the backend's \"General Settings\" (top right panel). <br> <br> Or add the current page to the \"",'revslider').$option2Name.__("\" option box.", 'revslider'));
  164. return(false);
  165. }
  166. ob_start();
  167. $slider = RevSliderOutput::putSlider($data,$putIn);
  168. $content = ob_get_contents();
  169. ob_clean();
  170. ob_end_clean();
  171. if(is_object($slider)){
  172. $disable_on_mobile = @$slider->getParam("disable_on_mobile","off"); // Do not output Slider if we are on mobile
  173. if($disable_on_mobile == 'on'){
  174. $mobile = (strstr($_SERVER['HTTP_USER_AGENT'],'Android') || strstr($_SERVER['HTTP_USER_AGENT'],'webOS') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'Windows Phone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || wp_is_mobile()) ? true : false;
  175. if($mobile) return false;
  176. }
  177. }
  178. echo $content;
  179. }
  180. /**
  181. *
  182. * put rev slider on the page.
  183. * the data can be slider ID or slider alias.
  184. */
  185. function checkRevSliderExists($alias){
  186. $rev = new RevSlider();
  187. return $rev->isAliasExists($alias);
  188. }
  189. $productFront = new RevSliderFront(RS_PLUGIN_FILE_PATH);
  190. }
  191. add_action('plugins_loaded', array( 'RevSliderFront', 'createDBTables' )); //add update checks
  192. add_action('plugins_loaded', array( 'RevSliderPluginUpdate', 'do_update_checks' )); //add update checks
  193. }catch(Exception $e){
  194. $message = $e->getMessage();
  195. $trace = $e->getTraceAsString();
  196. echo _e("Revolution Slider Error:",'revslider')." <b>".$message."</b>";
  197. }
  198. ?>