* @link http://www.themepunch.com/ * @copyright 2015 ThemePunch */ if( !defined( 'ABSPATH') ) exit(); class RevSliderFront extends RevSliderBaseFront{ /** * * the constructor */ public function __construct(){ parent::__construct($this); //set table names RevSliderGlobals::$table_sliders = self::$table_prefix.RevSliderGlobals::TABLE_SLIDERS_NAME; RevSliderGlobals::$table_slides = self::$table_prefix.RevSliderGlobals::TABLE_SLIDES_NAME; RevSliderGlobals::$table_static_slides = self::$table_prefix.RevSliderGlobals::TABLE_STATIC_SLIDES_NAME; RevSliderGlobals::$table_settings = self::$table_prefix.RevSliderGlobals::TABLE_SETTINGS_NAME; RevSliderGlobals::$table_css = self::$table_prefix.RevSliderGlobals::TABLE_CSS_NAME; RevSliderGlobals::$table_layer_anims = self::$table_prefix.RevSliderGlobals::TABLE_LAYER_ANIMS_NAME; RevSliderGlobals::$table_navigation = self::$table_prefix.RevSliderGlobals::TABLE_NAVIGATION_NAME; add_filter('punchfonts_modify_url', array('RevSliderFront', 'modify_punch_url')); add_action('wp_enqueue_scripts', array($this, 'enqueue_styles')); } /** * * a must function. you can not use it, but the function must stay there! */ public static function onAddScripts(){ global $wp_version; $slver = apply_filters('revslider_remove_version', RevSliderGlobals::SLIDER_REVISION); $style_pre = ''; $style_post = ''; if($wp_version < 3.7){ $style_pre = ''; } $operations = new RevSliderOperations(); $arrValues = $operations->getGeneralSettingsValues(); $includesGlobally = RevSliderFunctions::getVal($arrValues, "includes_globally","on"); $includesFooter = RevSliderFunctions::getVal($arrValues, "js_to_footer","off"); $strPutIn = RevSliderFunctions::getVal($arrValues, "pages_for_includes"); $isPutIn = RevSliderOutput::isPutIn($strPutIn,true); $do_inclusion = apply_filters('revslider_include_libraries', false); //put the includes only on pages with active widget or shortcode // if the put in match, then include them always (ignore this if) if($isPutIn == false && $includesGlobally == "off" && $do_inclusion == false){ $isWidgetActive = is_active_widget( false, false, "rev-slider-widget", true ); $hasShortcode = RevSliderFunctionsWP::hasShortcode("rev_slider"); if($isWidgetActive == false && $hasShortcode == false) return(false); } wp_enqueue_style('rs-plugin-settings', RS_PLUGIN_URL .'public/assets/css/settings.css', array(), $slver); $custom_css = RevSliderOperations::getStaticCss(); $custom_css = RevSliderCssParser::compress_css($custom_css); if(trim($custom_css) == '') $custom_css = '#rs-demo-id {}'; wp_add_inline_style( 'rs-plugin-settings', $style_pre.$custom_css.$style_post ); $setBase = (is_ssl()) ? "https://" : "http://"; wp_enqueue_script(array('jquery')); $waitfor = array('jquery'); $enable_logs = RevSliderFunctions::getVal($arrValues, "enable_logs",'off'); if($enable_logs == 'on'){ wp_enqueue_script('enable-logs', RS_PLUGIN_URL .'public/assets/js/jquery.themepunch.enablelog.js', $waitfor, $slver); $waitfor[] = 'enable-logs'; } $ft = ($includesFooter == "off") ? false : true; wp_enqueue_script('tp-tools', RS_PLUGIN_URL .'public/assets/js/jquery.themepunch.tools.min.js', $waitfor, $slver, $ft); wp_enqueue_script('revmin', RS_PLUGIN_URL .'public/assets/js/jquery.themepunch.revolution.min.js', 'tp-tools', $slver, $ft); add_action('wp_head', array('RevSliderFront', 'add_meta_generator')); add_action("wp_footer", array('RevSliderFront',"load_icon_fonts") ); // Async JS Loading $js_defer = RevSliderBase::getVar($arrValues, 'js_defer', 'off'); if($js_defer!='off') add_filter('clean_url', array('RevSliderFront', 'add_defer_forscript'), 11, 1); add_action('wp_before_admin_bar_render', array('RevSliderFront', 'add_admin_menu_nodes')); add_action('wp_footer', array('RevSliderFront', 'putAdminBarMenus')); } /** * add admin menu points in ToolBar Top * @since: 5.0.5 */ public static function putAdminBarMenus () { if(!is_super_admin() || !is_admin_bar_showing()) return; ?> Slider Revolution', false, admin_url('admin.php?page=revslider'), array('class' => 'revslider-menu' ), 'revslider'); // //add all nodes of all Slider $sl = new RevSliderSlider(); $sliders = $sl->getAllSliderForAdminMenu(); if(!empty($sliders)){ foreach($sliders as $id => $slider){ self::_add_node(''.esc_attr($slider['title']).'', 'revslider', admin_url('admin.php?page=revslider&view=slide&id=new&slider='.intval($id)), array('class' => 'revslider-sub-menu' ), esc_attr($slider['alias'])); // } } } /** * add admin node * @since: 5.0.5 */ public static function _add_node($title, $parent = false, $href = '', $custom_meta = array(), $id = ''){ global $wp_admin_bar; if(!is_super_admin() || !is_admin_bar_showing()) return; if($id == '') $id = strtolower(str_replace(' ', '-', $title)); // links from the current host will open in the current window $meta = strpos( $href, site_url() ) !== false ? array() : array( 'target' => '_blank' ); // external links open in new tab/window $meta = array_merge( $meta, $custom_meta ); $wp_admin_bar->add_node(array( 'parent' => $parent, 'id' => $id, 'title' => $title, 'href' => $href, 'meta' => $meta, )); } /** * * create db tables */ public static function createDBTables(){ self::createTable(RevSliderGlobals::TABLE_SLIDERS_NAME); self::createTable(RevSliderGlobals::TABLE_SLIDES_NAME); self::createTable(RevSliderGlobals::TABLE_STATIC_SLIDES_NAME); self::createTable(RevSliderGlobals::TABLE_CSS_NAME); self::createTable(RevSliderGlobals::TABLE_LAYER_ANIMS_NAME); self::createTable(RevSliderGlobals::TABLE_NAVIGATION_NAME); self::updateTables(); update_option('revslider_change_database', false); } public static function load_icon_fonts(){ global $fa_icon_var,$pe_7s_var; if($fa_icon_var) echo ""; if($pe_7s_var) echo ""; } public static function updateTables(){ $cur_ver = get_option('revslider_table_version', '1.0.0'); if(get_option('revslider_change_database', false)){ $cur_ver = '1.0.0'; } if(version_compare($cur_ver, '1.0.1', '<')){ //add missing settings field, for new creates lines in slide editor for example require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $tableName = RevSliderGlobals::TABLE_SLIDES_NAME; $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, slider_id int(9) NOT NULL, slide_order int not NULL, params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL, settings text NOT NULL, UNIQUE KEY id (id) );"; dbDelta($sql); $tableName = RevSliderGlobals::TABLE_STATIC_SLIDES_NAME; $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, slider_id int(9) NOT NULL, params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL, settings text NOT NULL, UNIQUE KEY id (id) );"; dbDelta($sql); update_option('revslider_table_version', '1.0.1'); $cur_ver = '1.0.1'; } if(version_compare($cur_ver, '1.0.2', '<')){ require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $tableName = RevSliderGlobals::TABLE_SLIDERS_NAME; $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, title tinytext NOT NULL, alias tinytext, params LONGTEXT NOT NULL, settings text NULL, UNIQUE KEY id (id) );"; dbDelta($sql); update_option('revslider_table_version', '1.0.2'); $cur_ver = '1.0.2'; } if(version_compare($cur_ver, '1.0.3', '<')){ require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $tableName = RevSliderGlobals::TABLE_CSS_NAME; $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, handle TEXT NOT NULL, settings LONGTEXT, hover LONGTEXT, advanced MEDIUMTEXT, params TEXT NOT NULL, UNIQUE KEY id (id) );"; dbDelta($sql); update_option('revslider_table_version', '1.0.3'); $cur_ver = '1.0.3'; } if(version_compare($cur_ver, '1.0.4', '<')){ require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_SLIDERS_NAME ." ( UNIQUE KEY id (id) );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_SLIDES_NAME ." ( UNIQUE KEY id (id) );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_STATIC_SLIDES_NAME ." ( UNIQUE KEY id (id) );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_CSS_NAME ." ( UNIQUE KEY id (id) );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_LAYER_ANIMS_NAME ." ( UNIQUE KEY id (id) );"; dbDelta($sql); update_option('revslider_table_version', '1.0.4'); $cur_ver = '1.0.4'; } if(version_compare($cur_ver, '1.0.5', '<')){ require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_LAYER_ANIMS_NAME ." ( settings text NULL );"; dbDelta($sql); update_option('revslider_table_version', '1.0.5'); $cur_ver = '1.0.5'; } if(version_compare($cur_ver, '1.0.6', '<')){ require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_SLIDERS_NAME ." ( type VARCHAR(191) NOT NULL DEFAULT '', params LONGTEXT NOT NULL );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_SLIDES_NAME ." ( settings text NOT NULL DEFAULT '', params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_STATIC_SLIDES_NAME ." ( params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL );"; dbDelta($sql); $sql = "CREATE TABLE " .self::$table_prefix.RevSliderGlobals::TABLE_CSS_NAME ." ( advanced LONGTEXT );"; dbDelta($sql); update_option('revslider_table_version', '1.0.6'); $cur_ver = '1.0.6'; } } /** * create tables */ public static function createTable($tableName){ global $wpdb; $parseCssToDb = false; $checkForTablesOneTime = get_option('revslider_checktables', '0'); if($checkForTablesOneTime == '0'){ update_option('revslider_checktables', '1'); if(RevSliderFunctionsWP::isDBTableExists(self::$table_prefix.RevSliderGlobals::TABLE_CSS_NAME)){ //$wpdb->tables( 'global' ) //check if database is empty $result = $wpdb->get_row("SELECT COUNT( DISTINCT id ) AS NumberOfEntrys FROM ".self::$table_prefix.RevSliderGlobals::TABLE_CSS_NAME); if($result->NumberOfEntrys == 0) $parseCssToDb = true; } } if($parseCssToDb){ $RevSliderOperations = new RevSliderOperations(); $RevSliderOperations->importCaptionsCssContentArray(); $RevSliderOperations->moveOldCaptionsCss(); } if(!get_option('revslider_change_database', false)){ //if table exists - don't create it. $tableRealName = self::$table_prefix.$tableName; if(RevSliderFunctionsWP::isDBTableExists($tableRealName)) return(false); } switch($tableName){ case RevSliderGlobals::TABLE_SLIDERS_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, title tinytext NOT NULL, alias tinytext, params LONGTEXT NOT NULL, UNIQUE KEY id (id) );"; break; case RevSliderGlobals::TABLE_SLIDES_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, slider_id int(9) NOT NULL, slide_order int not NULL, params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL, UNIQUE KEY id (id) );"; break; case RevSliderGlobals::TABLE_STATIC_SLIDES_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, slider_id int(9) NOT NULL, params LONGTEXT NOT NULL, layers LONGTEXT NOT NULL, UNIQUE KEY id (id) );"; break; case RevSliderGlobals::TABLE_CSS_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, handle TEXT NOT NULL, settings LONGTEXT, hover LONGTEXT, params LONGTEXT NOT NULL, UNIQUE KEY id (id) );"; $parseCssToDb = true; break; case RevSliderGlobals::TABLE_LAYER_ANIMS_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, handle TEXT NOT NULL, params TEXT NOT NULL, UNIQUE KEY id (id) );"; break; case RevSliderGlobals::TABLE_NAVIGATION_NAME: $sql = "CREATE TABLE " .self::$table_prefix.$tableName ." ( id int(9) NOT NULL AUTO_INCREMENT, name VARCHAR(191) NOT NULL, handle VARCHAR(191) NOT NULL, css LONGTEXT NOT NULL, markup LONGTEXT NOT NULL, settings LONGTEXT NULL, UNIQUE KEY id (id) );"; break; default: RevSliderFunctions::throwError("table: $tableName not found"); break; } require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); if(!get_option('revslider_change_database', false)){ if($parseCssToDb){ $RevSliderOperations = new RevSliderOperations(); $RevSliderOperations->importCaptionsCssContentArray(); $RevSliderOperations->moveOldCaptionsCss(); } } } public function enqueue_styles(){ } /** * Change FontURL to new URL (added for chinese support since google is blocked there) * @since: 5.0 */ public static function modify_punch_url($url){ $operations = new RevSliderOperations(); $arrValues = $operations->getGeneralSettingsValues(); $set_diff_font = RevSliderFunctions::getVal($arrValues, "change_font_loading",''); if($set_diff_font !== ''){ return $set_diff_font; }else{ return $url; } } /** * Add Meta Generator Tag in FrontEnd * @since: 5.0 */ public static function add_meta_generator(){ global $revSliderVersion; echo apply_filters('revslider_meta_generator', ''."\n"); } /** * * adds async loading * @since: 5.0 */ public static function add_defer_forscript($url) { if ( strpos($url, 'themepunch.enablelog.js' )===false && strpos($url, 'themepunch.revolution.min.js' )===false && strpos($url, 'themepunch.tools.min.js' )===false ) return $url; else if (is_admin()) return $url; else return $url."' defer='defer"; } } ?>