| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172 |
- <?php
- /**
- * @author ThemePunch <info@themepunch.com>
- * @link http://www.themepunch.com/
- * @copyright 2015 ThemePunch
- */
- if( !defined( 'ABSPATH') ) exit();
- class RevSliderAdmin extends RevSliderBaseAdmin{
- const VIEW_SLIDER = "slider";
- const VIEW_SLIDER_TEMPLATE = "slider_template"; //obsolete
- const VIEW_SLIDERS = "sliders";
- const VIEW_SLIDES = "slides";
- const VIEW_SLIDE = "slide";
-
- /**
- * 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;
- RevSliderGlobals::$filepath_backup = RS_PLUGIN_PATH.'backup/';
- RevSliderGlobals::$filepath_captions = RS_PLUGIN_PATH.'public/assets/css/captions.css';
- RevSliderGlobals::$urlCaptionsCSS = RS_PLUGIN_URL.'public/assets/css/captions.php';
- RevSliderGlobals::$filepath_dynamic_captions = RS_PLUGIN_PATH.'public/assets/css/dynamic-captions.css';
- RevSliderGlobals::$filepath_captions_original = RS_PLUGIN_PATH.'public/assets/css/captions-original.css';
-
- $wp_upload_dir = wp_upload_dir();
- $wp_upload_dir = $wp_upload_dir['basedir'].'/';
- RevSliderGlobals::$uploadsUrlExportZip = $wp_upload_dir.'export.zip';
- $this->init();
- }
- /**
- * init all actions
- */
- private function init(){
- global $revSliderAsTheme;
- global $pagenow;
-
- $template = new RevSliderTemplate();
- $operations = new RevSliderOperations();
- $obj_library = new RevSliderObjectLibrary();
- $general_settings = $operations->getGeneralSettingsValues();
-
- $role = RevSliderBase::getVar($general_settings, 'role', 'admin');
- $force_activation_box = RevSliderBase::getVar($general_settings, 'force_activation_box', 'off');
-
- if($force_activation_box == 'on'){ //force the notifications and more
- $revSliderAsTheme = false;
- }
-
- self::setMenuRole($role);
- self::addMenuPage('Slider Revolution', "adminPages");
-
- self::addSubMenuPage(__('Navigation Editor', 'revslider'), 'display_plugin_submenu_page_navigation', 'revslider_navigation');
- self::addSubMenuPage(__('Global Settings', 'revslider'), 'display_plugin_submenu_page_global_settings', 'revslider_global_settings');
-
- $this->addSliderMetaBox();
- //ajax response to save slider options.
- self::addActionAjax("ajax_action", "onAjaxAction");
-
- $upgrade = new RevSliderUpdate( GlobalsRevSlider::SLIDER_REVISION );
-
- $temp_active = get_option('revslider-temp-active', 'false');
-
- if($temp_active == 'true'){ //check once an hour
- $temp_force = (isset($_GET['checktempactivate'])) ? true : false;
- $upgrade->add_temp_active_check($temp_force);
- }
-
- //add common scripts there
- $validated = get_option('revslider-valid', 'false');
- $notice = get_option('revslider-valid-notice', 'true');
- $latestv = RevSliderGlobals::SLIDER_REVISION;
- $stablev = get_option('revslider-stable-version', '0');
-
- if(!$revSliderAsTheme || version_compare($latestv, $stablev, '<')){
- if($validated === 'false' && $notice === 'true'){
- add_action('admin_notices', array($this, 'addActivateNotification'));
- }
- if(isset($_GET['checkforupdates']) && $_GET['checkforupdates'] == 'true')
- $upgrade->_retrieve_version_info(true);
-
- if($validated === 'true' || version_compare($latestv, $stablev, '<')) {
- $upgrade->add_update_checks();
- }
- }
-
-
- if(isset($_REQUEST['update_shop'])){
- $template->_get_template_list(true);
- }else{
- $template->_get_template_list();
- }
-
- if(isset($_REQUEST['update_object_library'])){
- $obj_library->_get_list(true);
- }else{
- $obj_library->_get_list();
- }
-
- $upgrade->_retrieve_version_info();
- add_action('admin_notices', array($this, 'add_notices'));
-
- add_action('admin_enqueue_scripts', array('RevSliderAdmin', 'enqueue_styles'));
-
- add_action('admin_enqueue_scripts', array('RevSliderAdmin', 'enqueue_all_admin_scripts'));
-
- add_action('wp_ajax_revslider_ajax_call_front', array('RevSliderAdmin', 'onFrontAjaxAction'));
- add_action('wp_ajax_nopriv_revslider_ajax_call_front', array('RevSliderAdmin', 'onFrontAjaxAction')); //for not logged in users
-
- add_action( 'admin_head', array('RevSliderAdmin', 'include_custom_css' ));
-
- if(isset($pagenow) && $pagenow == 'plugins.php'){
- add_action('admin_notices', array('RevSliderAdmin', 'add_plugins_page_notices'));
- }
-
- // Add-on Admin
- $addon_admin = new Rev_addon_Admin( 'rev_addon', RevSliderGlobals::SLIDER_REVISION );
- add_action( 'admin_enqueue_scripts', array( $addon_admin, 'enqueue_styles') );
- add_action( 'admin_enqueue_scripts', array( $addon_admin, 'enqueue_scripts') );
- add_action( 'admin_menu', array( $addon_admin, 'add_plugin_admin_menu'), 11 );
- // Add-on Admin Button Ajax Actions
- add_action( 'wp_ajax_activate_plugin', array( $addon_admin, 'activate_plugin') );
- //add_action( 'wp_ajax_nopriv_activate_plugin', array( $addon_admin, 'activate_plugin') );
- add_action( 'wp_ajax_deactivate_plugin', array( $addon_admin, 'deactivate_plugin'));
- //add_action( 'wp_ajax_nopriv_deactivate_plugin', array( $addon_admin, 'deactivate_plugin') );
- add_action( 'wp_ajax_install_plugin', array( $addon_admin, 'install_plugin'));
- //add_action( 'wp_ajax_nopriv_install_plugin', array( $addon_admin, 'install_plugin') );
-
- //add_filter('plugin_action_links', array('RevSliderAdmin', 'plugin_action_links' ), 10, 2);
- }
-
-
- public static function add_plugins_page_notices(){
- $plugins = get_plugins();
-
- foreach($plugins as $plugin_id => $plugin){
-
- $slug = dirname($plugin_id);
- if(empty($slug)) continue;
- if($slug !== 'revslider') continue;
-
- //check version, latest updates and if registered or not
- $validated = get_option('revslider-valid', 'false');
- $latestv = get_option('revslider-latest-version', RevSliderGlobals::SLIDER_REVISION);
-
- if($validated == 'false'){ //activate for updates and support
- add_action( "after_plugin_row_" . $plugin_id, array('RevSliderAdmin', 'show_purchase_notice'), 10, 3);
- }
-
- if(version_compare($latestv, $plugin['Version'], '>')){
- add_action( "after_plugin_row_" . $plugin_id, array('RevSliderAdmin', 'show_update_notice'), 10, 3);
- }
- }
- }
-
-
- public static function show_purchase_notice(){
- $wp_list_table = _get_list_table('WP_Plugins_List_Table');
- ?>
- <tr class="plugin-update-tr"><td colspan="<?php echo $wp_list_table->get_column_count(); ?>" class="plugin-update colspanchange">
- <div class="update-message installer-q-icon">
- <?php _e('Activate Slider Revolution for <a href="http://revolution.themepunch.com/direct-customer-benefits/" target="_blank">Premium Benefits (e.g. Live Updates)</a>.', 'revslider'); ?>
- </div>
- </tr>
- <?php
- }
-
-
- public static function show_update_notice(){
- $wp_list_table = _get_list_table('WP_Plugins_List_Table');
- ?>
- <tr class="plugin-update-tr"><td colspan="<?php echo $wp_list_table->get_column_count(); ?>" class="plugin-update colspanchange">
- <div class="update-message">
- <?php _e('A new version of Slider Revolution is available.', 'revslider'); ?>
- </div>
- </tr>
- <?php
- }
-
-
- public static function plugin_action_links($links, $file){
- if ($file == plugin_basename(RS_PLUGIN_FILE_PATH)){
- $rs_enabled = get_option('revslider-valid', 'false');
-
- if($rs_enabled == 'true'){
- krsort($links);
- end($links);
- $key = key($links);
- $links[$key] .= '';
- }
- }
-
- return $links;
- }
-
-
- public static function enqueue_styles(){
- wp_enqueue_style('rs-open-sans', '//fonts.googleapis.com/css?family=Open+Sans:400,300,700,600,800');
- wp_enqueue_style('revslider-global-styles', RS_PLUGIN_URL . 'admin/assets/css/global.css', array(), GlobalsRevSlider::SLIDER_REVISION );
- }
-
- public static function include_custom_css(){
-
- $type = (isset($_GET['view'])) ? $_GET['view'] : '';
- $page = (isset($_GET['page'])) ? $_GET['page'] : '';
-
- if($page !== 'slider' && $page !== 'revslider_navigation') return false; //showbiz fix
-
- $sliderID = '';
-
- switch($type){
- case 'slider':
-
- $sliderID = (isset($_GET['id'])) ? $_GET['id'] : '';
- break;
- case 'slide':
- $slideID = (isset($_GET['id'])) ? $_GET['id'] : '';
- if($slideID == 'new') break;
-
- $slide = new RevSlide();
- $slide->initByID($slideID);
- $sliderID = $slide->getSliderID();
- break;
- default:
- if(isset($_GET['slider'])){
- $sliderID = $_GET['slider'];
- }
- break;
- }
- $arrFieldsParams = array();
- if(!empty($sliderID)){
- $slider = new RevSlider();
- $slider->initByID($sliderID);
- $settingsFields = $slider->getSettingsFields();
- $arrFieldsMain = $settingsFields['main'];
- $arrFieldsParams = $settingsFields['params'];
- $custom_css = @stripslashes($arrFieldsParams['custom_css']);
- $custom_css = RevSliderCssParser::compress_css($custom_css);
- echo '<style>'.$custom_css.'</style>';
- }
- }
-
-
- public static function enqueue_all_admin_scripts() {
- wp_localize_script('unite_admin', 'rev_lang', self::get_javascript_multilanguage()); //Load multilanguage for JavaScript
-
- wp_enqueue_style(array('wp-color-picker'));
- wp_enqueue_script(array('wp-color-picker'));
- //enqueue TP-COLOR
- wp_enqueue_style('tp-color-picker-css', plugins_url('../public/assets/css/tp-color-picker.css', __FILE__ ), array(), RevSliderGlobals::SLIDER_REVISION);
- wp_enqueue_script('tp-color-picker-js', plugins_url('../public/assets/js/tp-color-picker.min.js', __FILE__ ), array('jquery'), RevSliderGlobals::SLIDER_REVISION);
-
-
- //enqueue in all pages / posts in backend
- $screen = get_current_screen();
-
- $post_types = get_post_types( '', 'names' );
- foreach($post_types as $post_type) {
- if($post_type == $screen->id){
- wp_enqueue_script('revslider-tinymce-shortcode-script', RS_PLUGIN_URL . 'admin/assets/js/tinymce-shortcode-script.js', array('jquery'), RevSliderGlobals::SLIDER_REVISION );
- }
- }
- }
-
- /**
- * Include wanted submenu page
- */
- public function display_plugin_submenu_page_navigation() {
- self::display_plugin_submenu('navigation-editor');
- }
-
- /**
- * Include wanted submenu page
- */
- public function display_plugin_submenu_page_global_settings() {
- self::display_plugin_submenu('global-settings');
- }
-
- /**
- * Include wanted submenu page
- */
- public function display_plugin_submenu_page_google_fonts() {
- self::display_plugin_submenu('themepunch-google-fonts');
- }
-
- public static function display_plugin_submenu($subMenu){
- parent::adminPages();
- self::setMasterView('master-view');
- self::requireView($subMenu);
- }
-
-
- /**
- * Create Multilanguage for JavaScript
- */
- protected static function get_javascript_multilanguage(){
- $lang = array(
- 'wrong_alias' => __('-- wrong alias -- ', 'revslider'),
- 'nav_bullet_arrows_to_none' => __('Navigation Bullets and Arrows are now set to none.', 'revslider'),
- 'create_template' => __('Create Template', 'revslider'),
- 'really_want_to_delete' => __('Do you really want to delete', 'revslider'),
- 'sure_to_replace_urls' => __('Are you sure to replace the urls?', 'revslider'),
- 'set_settings_on_all_slider' => __('Set selected settings on all Slides of this Slider? (This will be saved immediately)', 'revslider'),
- 'select_slide_img' => __('Select Slide Image', 'revslider'),
- 'select_layer_img' => __('Select Layer Image', 'revslider'),
- 'select_slide_video' => __('Select Slide Video', 'revslider'),
- 'show_slide_opt' => __('Show Slide Options', 'revslider'),
- 'hide_slide_opt' => __('Hide Slide Options', 'revslider'),
- 'close' => __('Close', 'revslider'),
- 'really_update_global_styles' => __('Really update global styles?', 'revslider'),
- 'really_clear_global_styles' => __('This will remove all Global Styles, continue?', 'revslider'),
- 'global_styles_editor' => __('Global Styles Editor', 'revslider'),
- 'select_image' => __('Select Image', 'revslider'),
- 'video_not_found' => __('No Thumbnail Image Set on Video / Video Not Found / No Valid Video ID', 'revslider'),
- 'handle_at_least_three_chars' => __('Handle has to be at least three character long', 'revslider'),
- 'really_change_font_sett' => __('Really change font settings?', 'revslider'),
- 'really_delete_font' => __('Really delete font?', 'revslider'),
- 'class_exist_overwrite' => __('Class already exists, overwrite?', 'revslider'),
- 'class_must_be_valid' => __('Class must be a valid CSS class name', 'revslider'),
- 'really_overwrite_class' => __('Really overwrite Class?', 'revslider'),
- 'relly_delete_class' => __('Really delete Class', 'revslider'),
- 'class_this_cant_be_undone' => __('? This can\'t be undone!', 'revslider'),
- 'this_class_does_not_exist' => __('This class does not exist.', 'revslider'),
- 'making_changes_will_probably_overwrite_advanced' => __('Making changes to these settings will probably overwrite advanced settings. Continue?', 'revslider'),
- 'select_static_layer_image' => __('Select Static Layer Image', 'revslider'),
- 'select_layer_image' => __('Select Layer Image', 'revslider'),
- 'really_want_to_delete_all_layer' => __('Do you really want to delete all the layers?', 'revslider'),
- 'layer_animation_editor' => __('Layer Animation Editor', 'revslider'),
- 'animation_exists_overwrite' => __('Animation already exists, overwrite?', 'revslider'),
- 'really_overwrite_animation' => __('Really overwrite animation?', 'revslider'),
- 'default_animations_cant_delete' => __('Default animations can\'t be deleted', 'revslider'),
- 'must_be_greater_than_start_time' => __('Must be greater than start time', 'revslider'),
- 'sel_layer_not_set' => __('Selected layer not set', 'revslider'),
- 'edit_layer_start' => __('Edit Layer Start', 'revslider'),
- 'edit_layer_end' => __('Edit Layer End', 'revslider'),
- 'default_animations_cant_rename' => __('Default Animations can\'t be renamed', 'revslider'),
- 'anim_name_already_exists' => __('Animationname already existing', 'revslider'),
- 'css_name_already_exists' => __('CSS classname already existing', 'revslider'),
- 'css_orig_name_does_not_exists' => __('Original CSS classname not found', 'revslider'),
- 'enter_correct_class_name' => __('Enter a correct class name', 'revslider'),
- 'class_not_found' => __('Class not found in database', 'revslider'),
- 'css_name_does_not_exists' => __('CSS classname not found', 'revslider'),
- 'delete_this_caption' => __('Delete this caption? This may affect other Slider', 'revslider'),
- 'this_will_change_the_class' => __('This will update the Class with the current set Style settings, this may affect other Sliders. Proceed?', 'revslider'),
- 'unsaved_changes_will_not_be_added' => __('Template will have the state of the last save, proceed?', 'revslider'),
- 'please_enter_a_slide_title' => __('Please enter a Slide title', 'revslider'),
- 'please_wait_a_moment' => __('Please Wait a Moment', 'revslider'),
- 'copy_move' => __('Copy / Move', 'revslider'),
- 'preset_loaded' => __('Preset Loaded', 'revslider'),
- 'add_bulk_slides' => __('Add Bulk Slides', 'revslider'),
- 'select_image' => __('Select Image', 'revslider'),
- 'arrows' => __('Arrows', 'revslider'),
- 'bullets' => __('Bullets', 'revslider'),
- 'thumbnails' => __('Thumbnails', 'revslider'),
- 'tabs' => __('Tabs', 'revslider'),
- 'delete_navigation' => __('Delete this Navigation?', 'revslider'),
- 'could_not_update_nav_name' => __('Navigation name could not be updated', 'revslider'),
- 'name_too_short_sanitize_3' => __('Name too short, at least 3 letters between a-zA-z needed', 'revslider'),
- 'nav_name_already_exists' => __('Navigation name already exists, please choose a different name', 'revslider'),
- 'remove_nav_element' => __('Remove current element from Navigation?', 'revslider'),
- 'create_this_nav_element' => __('This navigation element does not exist, create one?', 'revslider'),
- 'overwrite_animation' => __('Overwrite current animation?', 'revslider'),
- 'cant_modify_default_anims' => __('Default animations can\'t be changed', 'revslider'),
- 'anim_with_handle_exists' => __('Animation already existing with given handle, please choose a different name.', 'revslider'),
- 'really_delete_anim' => __('Really delete animation:', 'revslider'),
- 'this_will_reset_navigation' => __('This will reset the navigation, continue?', 'revslider'),
- 'preset_name_already_exists' => __('Preset name already exists, please choose a different name', 'revslider'),
- 'delete_preset' => __('Really delete this preset?', 'revslider'),
- 'update_preset' => __('This will update the preset with the current settings. Proceed?', 'revslider'),
- 'maybe_wrong_yt_id' => __('No Thumbnail Image Set on Video / Video Not Found / No Valid Video ID', 'revslider'),
- 'preset_not_found' => __('Preset not found', 'revslider'),
- 'cover_image_needs_to_be_set' => __('Cover Image need to be set for videos', 'revslider'),
- 'remove_this_action' => __('Really remove this action?', 'revslider'),
- 'layer_action_by' => __('Layer is triggered by ', 'revslider'),
- 'due_to_action' => __(' due to action: ', 'revslider'),
- 'layer' => __('layer:', 'revslider'),
- 'start_layer_in' => __('Start Layer "in" animation', 'revslider'),
- 'start_layer_out' => __('Start Layer "out" animation', 'revslider'),
- 'start_video' => __('Start Media', 'revslider'),
- 'stop_video' => __('Stop Media', 'revslider'),
- 'mute_video' => __('Mute Media', 'revslider'),
- 'unmute_video' => __('Unmute Media', 'revslider'),
- 'toggle_layer_anim' => __('Toggle Layer Animation', 'revslider'),
- 'toggle_video' => __('Toggle Media', 'revslider'),
- 'toggle_mute_video' => __('Toggle Mute Media', 'revslider'),
- 'toggle_global_mute_video' => __('Toggle Mute All Media', 'revslider'),
- 'last_slide' => __('Last Slide', 'revslider'),
- 'simulate_click' => __('Simulate Click', 'revslider'),
- 'togglefullscreen' => __('Toggle FullScreen', 'revslider'),
- 'gofullscreen' => __('Go FullScreen', 'revslider'),
- 'exitfullscreen' => __('Exit FullScreen', 'revslider'),
- 'toggle_class' => __('Toogle Class', 'revslider'),
- 'copy_styles_to_hover_from_idle' => __('Copy hover styles to idle?', 'revslider'),
- 'copy_styles_to_idle_from_hover' => __('Copy idle styles to hover?', 'revslider'),
- 'select_at_least_one_device_type' => __('Please select at least one device type', 'revslider'),
- 'please_select_first_an_existing_style' => __('Please select an existing Style Template', 'revslider'),
- 'cant_remove_last_transition' => __('Can not remove last transition!', 'revslider'),
- 'name_is_default_animations_cant_be_changed' => __('Given animation name is a default animation. These can not be changed.', 'revslider'),
- 'override_animation' => __('Animation exists, override existing animation?', 'revslider'),
- 'this_feature_only_if_activated' => __('This feature is only available if you activate Slider Revolution for this installation', 'revslider'),
- 'unsaved_data_will_be_lost_proceed' => __('Unsaved data will be lost, proceed?', 'revslider'),
- 'delete_user_slide' => __('This will delete this Slide Template, proceed?', 'revslider'),
- 'is_loading' => __('is Loading...', 'revslider'),
- 'google_fonts_loaded' => __('Google Fonts Loaded', 'revslider'),
- 'delete_layer' => __('Delete Layer?', 'revslider'),
- 'this_template_requires_version' => __('This template requires at least version', 'revslider'),
- 'of_slider_revolution' => __('of Slider Revolution to work.', 'revslider'),
- 'slider_revolution_shortcode_creator' => __('Slider Revolution Shortcode Creator', 'revslider'),
- 'slider_informations_are_missing' => __('Slider informations are missing!', 'revslider'),
- 'shortcode_generator' => __('Shortcode Generator', 'revslider'),
- 'please_add_at_least_one_layer' => __('Please add at least one Layer.', 'revslider'),
- 'choose_image' => __('Choose Image', 'revslider'),
- 'shortcode_parsing_successfull' => __('Shortcode parsing successfull. Items can be found in step 3', 'revslider'),
- 'shortcode_could_not_be_correctly_parsed' => __('Shortcode could not be parsed.', 'revslider'),
- 'background_video' => __('Background Video', 'revslider'),
- 'active_video' => __('Video in Active Slide', 'revslider'),
- 'empty_data_retrieved_for_slider' => __('Data could not be fetched for selected Slider', 'revslider'),
- 'import_selected_layer' => __('Import Selected Layer?', 'revslider'),
- 'import_all_layer_from_actions' => __('Layer Imported! The Layer has actions which include other Layers. Import all connected layers?', 'revslider'),
- 'not_available_in_demo' => __('Not available in Demo Mode', 'revslider'),
- 'leave_not_saved' => __('By leaving now, all changes since the last saving will be lost. Really leave now?', 'revslider'),
- 'static_layers' => __('--- Static Layers ---', 'revslider'),
- 'objects_only_available_if_activated' => __('Only available if plugin is activated', 'revslider'),
- 'download_install_takes_longer' => __('Download/Install takes longer than usual, please wait', 'revslider'),
- 'download_failed_check_server' => __('<div class="import_failure">Download/Install seems to have failed.</div><br>Please check your server <span class="import_failure">download speed</span> and if the server can programatically connect to <span class="import_failure">http://templates.themepunch.com</span><br><br>', 'revslider'),
- 'aborting_import' => __('<b>Aborting Import...</b>', 'revslider'),
- 'create_draft' => __('Creating Draft Page...', 'revslider'),
- 'draft_created' => __('Draft Page created. Popup will open', 'revslider'),
- 'draft_not_created' => __('Draft Page could not be created.', 'revslider'),
- 'slider_import_success_reload' => __('Slider import successful', 'revslider'),
- 'save_changes' => __('Save Changes?', 'revslider')
- );
- return $lang;
- }
-
- public function addActivateNotification(){
- $nonce = wp_create_nonce("revslider_actions");
- ?>
- <div class="updated below-h2 rs-update-notice-wrap" id="message"><a href="javascript:void(0);" style="float: right;padding-top: 9px;" id="rs-dismiss-notice"><?php _e('(never show this message again) <b>X</b>','revslider'); ?></a><p><?php _e('Hi! Would you like to activate your version of Revolution Slider to receive live updates & get premium support? This is optional and not needed if the slider came bundled with a theme. ','revslider'); ?></p></div>
- <script type="text/javascript">
- jQuery('#rs-dismiss-notice').click(function(){
- var objData = {
- action:"revslider_ajax_action",
- client_action: 'dismiss_notice',
- nonce:'<?php echo $nonce; ?>',
- data:''
- };
- jQuery.ajax({
- type:"post",
- url:ajaxurl,
- dataType: 'json',
- data:objData
- });
- jQuery('.rs-update-notice-wrap').hide();
- });
- </script>
- <?php
- }
-
-
- /**
- * add notices from ThemePunch
- * @since: 4.6.8
- */
- public function add_notices(){
- $operations = new RevSliderOperations();
- $general_settings = $operations->getGeneralSettingsValues();
-
- //check permissions here
- if(!current_user_can('administrator')) return true;
- $enable_newschannel = RevSliderBase::getVar($general_settings, 'enable_newschannel', 'on');
-
- $enable_newschannel = apply_filters('revslider_set_notifications', $enable_newschannel);
-
- if($enable_newschannel == 'on'){
-
- $nonce = wp_create_nonce("revslider_actions");
-
- $notices = get_option('revslider-notices', false);
-
- $vn = get_option('revslider-deact-notice', false);
-
- if($vn == true){
- $notices[99999] = new stdClass();
- $notices[99999]->code = 'DISCARD';
- $notices[99999]->version = '99.99';
- $notices[99999]->is_global = false;
- $notices[99999]->color = 'error';
- $notices[99999]->text = '<p>'.__('Hi, your Purchase Code for Slider Revolution has been deregistered manually through <a href="https://www.themepunch.com/purchase-code-deactivation" target="_blank">https://www.themepunch.com/purchase-code-deactivation</a> and is no longer active for this installation.', 'revslider').'</p>';
- $notices[99999]->disable = false;
- $notices[99999]->additional = array();
- }
-
- $tmp = get_option('revslider-temp-active-notice', 'false');
-
- if($tmp == 'true'){
- $notices[99998] = new stdClass();
- $notices[99998]->code = 'DISCARDTEMPACT';
- $notices[99998]->version = '99.99';
- $notices[99998]->is_global = false;
- $notices[99998]->color = 'error';
- $notices[99998]->text = '<p>'.__('Hi, your Purchase Code for Slider Revolution has been deregistered as it was not a valid Slider Revolution Purchase Code', 'revslider').'</p>';
- $notices[99998]->disable = false;
- $notices[99998]->additional = array();
- }
-
- if(!empty($notices) && is_array($notices)){
- global $revslider_screens;
-
- $notices_discarded = get_option('revslider-notices-dc', array());
-
- $screen = get_current_screen();
- foreach($notices as $notice){
- if($notice->is_global !== true && !in_array($screen->id, $revslider_screens)) continue; //check if global or just on plugin related pages
-
- if(!in_array($notice->code, $notices_discarded) && version_compare($notice->version, GlobalsRevSlider::SLIDER_REVISION, '>=')){
- $text = '<div style="text-align:right;vertical-align:middle;display:table-cell; min-width:225px;border-left:1px solid #ddd; padding-left:15px;"><a href="javascript:void(0);" class="rs-notices-button rs-notice-'. esc_attr($notice->code) .'">'. __('Close & don\'t show again<b>X</b>','revslider') .'</a></div>';
- if($notice->disable == true) $text = '';
- ?>
- <style>
- .rs-notices-button { color:#999; text-decoration: none !important; font-size:14px;font-weight: 400;}
- .rs-notices-button:hover { color:#3498DB !important;}
- .rs-notices-button b { font-weight:800; vertical-align:bottom;line-height:15px;font-size:10px;margin-left:10px;margin-right:10px;border:2px solid #999; display:inline-block; width:15px;height:15px; text-align: center; border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%;}
- .rs-notices-button:hover b { border-color:#3498DB;}
- </style>
- <div class="<?php echo $notice->color; ?> below-h2 rs-update-notice-wrap" id="message" style="clear:both;display: block;position:relative;margin:35px 20px 25px 0px"><div style="display:table;width:100%;"><div style="vertical-align:middle;display:table-cell;min-width:100%;padding-right:15px;"><?php echo $notice->text; ?></div><?php echo $text; ?></div></div>
- <?php
- }
- }
- ?>
- <script type="text/javascript">
- jQuery('.rs-notices-button').click(function(){
-
- var notice_id = jQuery(this).attr('class').replace('rs-notices-button', '').replace('rs-notice-', '');
-
- var objData = {
- action:"revslider_ajax_action",
- client_action: 'dismiss_dynamic_notice',
- nonce:'<?php echo $nonce; ?>',
- data:{'id':notice_id}
- };
- jQuery.ajax({
- type:"post",
- url:ajaxurl,
- dataType: 'json',
- data:objData
- });
- jQuery(this).closest('.rs-update-notice-wrap').slideUp(200);
- });
- </script>
- <?php
- }
- }
- }
-
-
- /**
- *
- * add wildcards metabox variables to posts
- */
- private function addSliderMetaBox($postTypes = null){ //null = all, post = only posts
- try{
- self::addMetaBox("Revolution Slider Options",'',array("RevSliderAdmin","customPostFieldsOutput"),$postTypes);
- }catch(Exception $e){}
- }
- /**
- * custom output function
- */
- public static function customPostFieldsOutput(){
-
- $meta = get_post_meta(get_the_ID(), 'slide_template', true);
- if($meta == '') $meta = 'default';
-
- $slider = new RevSlider();
- $arrOutput = array();
- $arrOutput["default"] = "default";
- $arrSlides = $slider->getArrSlidersWithSlidesShort(RevSlider::SLIDER_TYPE_TEMPLATE);
- $arrOutput = $arrOutput + $arrSlides; //union arrays
-
- ?>
- <ul class="revslider_settings">
- <li id="slide_template_row">
- <div title="" class="setting_text" id="slide_template_text"><?php _e('Choose Slide Template', 'revslider'); ?></div>
- <div class="setting_input">
- <select name="slide_template" id="slide_template">
- <?php
- foreach($arrOutput as $handle => $name){
- echo '<option '.selected($handle, $meta).' value="'.$handle.'">'.$name.'</option>';
- }
- ?>
- </select>
- </div>
- <div class="clear"></div>
- </li>
- </ul>
- <?php
- }
- /**
- * a must function. please don't remove it.
- * process activate event - install the db (with delta).
- */
- public static function onActivate(){
- RevSliderFront::createDBTables();
- }
- /**
- * a must function. adds scripts on the page
- * add all page scripts and styles here.
- * pelase don't remove this function
- * common scripts even if the plugin not load, use this function only if no choise.
- */
- public static function onAddScripts(){
- global $wp_version;
-
- $style_pre = '';
- $style_post = '';
- if($wp_version < 3.7){
- $style_pre = '<style type="text/css">';
- $style_post = '</style>';
- }
-
- wp_enqueue_style('edit_layers', RS_PLUGIN_URL .'admin/assets/css/edit_layers.css', array(), RevSliderGlobals::SLIDER_REVISION);
-
- wp_enqueue_script('unite_layers_timeline', RS_PLUGIN_URL .'admin/assets/js/edit_layers_timeline.js', array(), RevSliderGlobals::SLIDER_REVISION );
- wp_enqueue_script('unite_context_menu', RS_PLUGIN_URL .'admin/assets/js/context_menu.js', array(), RevSliderGlobals::SLIDER_REVISION );
- wp_enqueue_script('unite_layers', RS_PLUGIN_URL .'admin/assets/js/edit_layers.js', array('jquery-ui-mouse'), RevSliderGlobals::SLIDER_REVISION );
- wp_enqueue_script('unite_css_editor', RS_PLUGIN_URL .'admin/assets/js/css_editor.js', array(), RevSliderGlobals::SLIDER_REVISION );
- wp_enqueue_script('rev_admin', RS_PLUGIN_URL .'admin/assets/js/rev_admin.js', array(), RevSliderGlobals::SLIDER_REVISION );
-
- wp_enqueue_script('tp-tools', RS_PLUGIN_URL .'public/assets/js/jquery.themepunch.tools.min.js', array(), RevSliderGlobals::SLIDER_REVISION );
- //include all media upload scripts
- self::addMediaUploadIncludes();
- //add rs css:
- wp_enqueue_style('rs-plugin-settings', RS_PLUGIN_URL .'public/assets/css/settings.css', array(), RevSliderGlobals::SLIDER_REVISION);
-
- //add icon sets
- wp_enqueue_style('rs-icon-set-fa-icon-', RS_PLUGIN_URL .'public/assets/fonts/font-awesome/css/font-awesome.css', array(), RevSliderGlobals::SLIDER_REVISION);
- wp_enqueue_style('rs-icon-set-pe-7s-', RS_PLUGIN_URL .'public/assets/fonts/pe-icon-7-stroke/css/pe-icon-7-stroke.css', array(), RevSliderGlobals::SLIDER_REVISION);
-
- add_filter('revslider_mod_icon_sets', array('RevSliderBase', 'set_icon_sets'));
-
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- wp_add_inline_style( 'rs-plugin-settings', $style_pre.$styles.$style_post );
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
- wp_add_inline_style( 'rs-plugin-settings', $style_pre.$custom_css.$style_post );
-
- }
- /**
- *
- * admin main page function.
- */
- public static function adminPages(){
- parent::adminPages();
- self::setMasterView('master-view');
- self::requireView(self::$view);
-
- }
-
- /**
- *
- * import slideer handle (not ajax response)
- */
- private static function importSliderHandle($viewBack = null, $updateAnim = true, $updateStatic = true, $updateNavigation = true){
- $slider = new RevSlider();
- $response = $slider->importSliderFromPost($updateAnim, $updateStatic, false, false, false, $updateNavigation);
-
- $sliderID = intval($response["sliderID"]);
- if(empty($viewBack)){
- $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID);
- if(empty($sliderID))
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- }
-
- //handle error this
- if($response["success"] == false){
- $message = $response["error"];
- RevSliderOperations::import_failed_message($message, $viewBack);
-
- }else{ //handle success, js redirect.
- //check here to create a page or not
- if(!empty($sliderID)){
- $page_id = 0;
- $page_creation = esc_attr(RevSliderFunctions::getPostVariable('page-creation'));
- if($page_creation === 'true'){
- $operations = new RevSliderOperations();
- $page_id = $operations->create_slider_page((array)$sliderID);
- }
- if($page_id > 0){
- echo '<script>window.open("'.get_permalink($page_id).'", "_blank");</script>';
- }
- }
-
- echo "<script>
- location.href='".$viewBack."';
- </script>";
- }
- exit();
- }
-
-
- /**
- * import slider from TP servers
- * @since: 5.0.5
- */
- private static function importSliderOnlineTemplateHandleNew($data, $viewBack = null, $updateAnim = true, $updateStatic = true, $single_slide = false){
-
- $return = array('error' => array(), 'success' => array(), 'open' => false, 'view' => $viewBack);
-
- $uid = esc_attr($data['uid']);
-
- $added = array();
-
- if($uid == ''){
- $return['error'][] = __("ID missing, something went wrong. Please try again!", 'revslider');
- }else{
- $tmp = new RevSliderTemplate();
-
- $package = esc_attr($data['package']);
- $package = ($package == 'true') ? true : false;
-
- //get all in the same package as the uid
- if($package === true){
- $uids = $tmp->get_package_uids($uid);
- }else{
- $uids = (array)$uid;
- }
-
- if(!empty($uids)){
- foreach($uids as $uid){
- set_time_limit(60); //reset the time limit
-
- $filepath = $tmp->_download_template($uid); //can be single or multiple, depending on $package beeing false or true
-
- //send request to TP server and download file
- if(is_array($filepath) && isset($filepath['error'])){
- $return['error'][] = $filepath['error'];
- break;
- }
-
- if($filepath !== false){
- //check if Slider Template was already imported. If yes, remove the old Slider Template as we now do an "update" (in reality we delete and insert again)
- //get all template sliders
- $tmp_slider = $tmp->getThemePunchTemplateSliders();
- foreach($tmp_slider as $tslider){
- if(isset($tslider['uid']) && $uid == $tslider['uid']){
- if(!isset($tslider['installed'])){ //slider is installed
- //delete template Slider!
- $mSlider = new RevSlider();
- $mSlider->initByID($tslider['id']);
-
- $mSlider->deleteSlider();
- //remove the update flag from the slider
-
- $tmp->remove_is_new($uid);
- }
- break;
- }
- }
-
- $slider = new RevSlider();
- $response = $slider->importSliderFromPost($updateAnim, $updateStatic, $filepath, $uid, $single_slide);
-
- $tmp->_delete_template($uid);
-
- if($single_slide === false){
- if(empty($viewBack)){
- $sliderID = $response["sliderID"];
- $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID);
- $return['view'] = $viewBack;
- if(empty($sliderID)){
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- $return['view'] = $viewBack;
- }
- }
- }
-
- if(isset($response["sliderID"])){
- $return['slider_id'] = $response["sliderID"];
- $added[] = $response["sliderID"];
- }
- //handle error
- if($response["success"] == false){
- $return['error'][] = $response["error"];
- break;
- }else{ //handle success, js redirect.
- $return['success'][] = __("Slider Import Success", 'revslider');
- }
-
- }else{
- if(is_array($filepath)){
- $return['error'][] = $filepath['error'];
- }else{
- $return['error'][] = __("Could not download from server. Please try again later!", 'revslider');
- }
- break;
- }
- }
-
- //check here to create a page or not
- if(!empty($added)){
- $page_creation = esc_attr($data['page-creation']);
- if($page_creation === 'true'){
- $operations = new RevSliderOperations();
- $page_id = $operations->create_slider_page($added);
- }
- if($page_id > 0){
- $return['open'] = get_permalink($page_id);
- }
- }
- }else{
- $return['error'][] = __("Could not download package. Please try again later!", 'revslider');
- }
- }
-
- return $return;
- }
-
-
- /**
- * import slider from TP servers
- * @since: 5.0.5
- */
- private static function importSliderOnlineTemplateHandle($data, $viewBack = null, $updateAnim = true, $updateStatic = true, $single_slide = false){
-
- $uid = esc_attr($data['uid']);
-
- $added = array();
-
- if($uid == ''){
- $message = __("ID missing, something went wrong. Please try again!", 'revslider');
- RevSliderOperations::import_failed_message($message, $viewBack);
- exit;
- }else{
- $tmp = new RevSliderTemplate();
-
- $package = esc_attr($data['package']);
- $package = ($package == 'true') ? true : false;
-
- //get all in the same package as the uid
- if($package === true){
- $uids = $tmp->get_package_uids($uid);
- }else{
- $uids = (array)$uid;
- }
-
- if(!empty($uids)){
- foreach($uids as $uid){
- set_time_limit(60); //reset the time limit
-
- $filepath = $tmp->_download_template($uid); //can be single or multiple, depending on $package beeing false or true
- //var_dump($filepath);
- //exit;
- //send request to TP server and download file
- if(is_array($filepath) && isset($filepath['error'])){
- $message = $filepath['error'];
- RevSliderOperations::import_failed_message($message, $viewBack);
- exit;
- }
-
- if($filepath !== false){
- //check if Slider Template was already imported. If yes, remove the old Slider Template as we now do an "update" (in reality we delete and insert again)
- //get all template sliders
- $tmp_slider = $tmp->getThemePunchTemplateSliders();
-
- foreach($tmp_slider as $tslider){
- if(isset($tslider['uid']) && $uid == $tslider['uid']){
- if(!isset($tslider['installed'])){ //slider is installed
- //delete template Slider!
- $mSlider = new RevSlider();
- $mSlider->initByID($tslider['id']);
-
- $mSlider->deleteSlider();
- //remove the update flag from the slider
-
- $tmp->remove_is_new($uid);
- }
- break;
- }
- }
-
-
- $slider = new RevSlider();
- $response = $slider->importSliderFromPost($updateAnim, $updateStatic, $filepath, $uid, $single_slide);
-
- $tmp->_delete_template($uid);
-
- if($single_slide === false){
- if(empty($viewBack)){
- $sliderID = $response["sliderID"];
- $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID);
- if(empty($sliderID))
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- }
- }
-
- if(isset($response["sliderID"])){
- $added[] = $response["sliderID"];
- }
- //handle error
- if($response["success"] == false){
- $message = $response["error"];
- RevSliderOperations::import_failed_message($message, $viewBack);
- }else{ //handle success, js redirect.
-
- }
-
- }else{
- if(is_array($filepath)){
- $message = $filepath['error'];
- }else{
- $message = __("Could not download from server. Please try again later!", 'revslider');
- }
- RevSliderOperations::import_failed_message($message, $viewBack);
- exit;
- }
- }
-
- //check here to create a page or not
- if(!empty($added)){
- $page_creation = esc_attr($data['page-creation']);
- if($page_creation === 'true'){
- $operations = new RevSliderOperations();
- $page_id = $operations->create_slider_page($added);
- }
- if($page_id > 0){
- echo '<script>window.open("'.get_permalink($page_id).'", "_blank");</script>';
- }
- }
-
- echo "<script>location.href='".$viewBack."';</script>";
- }else{
- $message = __("Could not download package. Please try again later!", 'revslider');
- RevSliderOperations::import_failed_message($message, $viewBack);
- exit;
- }
- }
-
- exit;
- }
-
-
- /**
- *
- * import slider handle (not ajax response)
- */
- private static function importSliderTemplateHandle($viewBack = null, $updateAnim = true, $updateStatic = true, $single_slide = false){
-
- $uid = esc_attr(RevSliderFunctions::getPostVariable('uid'));
- if($uid == ''){
- $message = __("ID missing, something went wrong. Please try again!", 'revslider');
- RevSliderOperations::import_failed_message($message, $viewBack);
- exit;
- }
-
- //check if the filename is correct
- //import to templates, then duplicate Slider
-
- $slider = new RevSlider();
- $response = $slider->importSliderFromPost($updateAnim, $updateStatic, false, $uid, $single_slide);
-
- if($single_slide === false){
- $sliderID = $response["sliderID"];
- if(empty($viewBack)){
- $viewBack = self::getViewUrl(self::VIEW_SLIDER,"id=".$sliderID);
- if(empty($sliderID))
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- }
- }
- //handle error
- if($response["success"] == false){
- $message = $response["error"];
- RevSliderOperations::import_failed_message($message, $viewBack);
- }else{ //handle success, js redirect.
- //check here to create a page or not
- if(isset($sliderID) && !empty($sliderID)){
- $page_creation = esc_attr(RevSliderFunctions::getPostVariable('page-creation'));
- if($page_creation === 'true'){
- $operations = new RevSliderOperations();
- $page_id = $operations->create_slider_page((array)$sliderID);
- }
- if($page_id > 0){
- echo '<script>window.open("'.get_permalink($page_id).'", "_blank");</script>';
- }
- }
-
- echo "<script>location.href='".$viewBack."';</script>";
- }
-
- exit();
- }
- /**
- * Get url to secific view.
- */
- public static function getFontsUrl(){
- $link = admin_url('admin.php?page=themepunch-google-fonts');
- return($link);
- }
-
-
- /**
- * Toggle Favorite State of Slider
- * @since: 5.0
- */
- public static function toggle_favorite_by_id($id){
- $id = intval($id);
- if($id === 0) return false;
-
- global $wpdb;
-
- $table_name = $wpdb->prefix . RevSliderGlobals::TABLE_SLIDERS_NAME;
-
- //check if ID exists
- $slider = $wpdb->get_row($wpdb->prepare("SELECT settings FROM $table_name WHERE id = %s", $id), ARRAY_A);
-
- if(empty($slider))
- return __('Slider not found', 'revslider');
-
- $settings = json_decode($slider['settings'], true);
-
- if(!isset($settings['favorite']) || $settings['favorite'] == 'false' || $settings['favorite'] == false){
- $settings['favorite'] = 'true';
- }else{
- $settings['favorite'] = 'false';
- }
-
- $response = $wpdb->update($table_name, array('settings' => json_encode($settings)), array('id' => $id));
-
- if($response === false) return __('Slider setting could not be changed', 'revslider');
-
- return true;
- }
- /**
- *
- * onAjax action handler
- */
- public static function onAjaxAction(){
-
- $role = self::getMenuRole(); //add additional security check and allow for example import only for admin
-
- $slider = new RevSlider();
- $slide = new RevSlide();
- $operations = new RevSliderOperations();
- $action = self::getPostGetVar("client_action");
- $data = self::getPostGetVar("data");
- if($data == '') $data = array();
- $nonce = self::getPostGetVar("nonce");
- if(empty($nonce))
- $nonce = self::getPostGetVar("rs-nonce");
-
- try{
-
- if(RS_DEMO){
- switch($action){
- case 'import_slider_online_template_slidersview':
- case 'duplicate_slider':
- case 'preview_slider':
- case 'get_static_css':
- case 'get_dynamic_css':
- case 'preview_slide':
- //these are all okay in demo mode
- break;
- default:
- RevSliderFunctions::throwError(__('Function Not Available in Demo Mode', 'revslider'));
- exit;
- break;
- }
- }
-
- if(!RevSliderFunctionsWP::isAdminUser() && apply_filters('revslider_restrict_role', true)){
- switch($action){
- case 'change_specific_navigation':
- case 'change_navigations':
- case 'update_static_css':
- case 'add_new_preset':
- case 'update_preset':
- case 'import_slider':
- case 'import_slider_slidersview':
- case 'import_slider_template_slidersview':
- case 'import_slide_template_slidersview':
- case 'import_slider_online_template_slidersview_new':
- case 'fix_database_issues':
- RevSliderFunctions::throwError(__('Function Only Available for Adminstrators', 'revslider'));
- exit;
- break;
- default:
- $return = apply_filters('revslider_admin_onAjaxAction_user_restriction', true, $action, $data, $slider, $slide, $operations);
- if($return !== true){
- RevSliderFunctions::throwError(__('Function Only Available for Adminstrators', 'revslider'));
- exit;
- }
- break;
- }
- }
-
- //verify the nonce
- $isVerified = wp_verify_nonce($nonce, "revslider_actions");
- if($isVerified == false){
- RevSliderFunctions::throwError("Wrong request");
- exit;
- }
- switch($action){
- case 'add_new_preset':
-
- if(!isset($data['settings']) || !isset($data['values'])) self::ajaxResponseError(__('Missing values to add preset', 'revslider'), false);
-
- $result = $operations->add_preset_setting($data);
-
- if($result === true){
-
- $presets = $operations->get_preset_settings();
-
- self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets));
- }else{
- self::ajaxResponseError($result, false);
- }
-
- exit;
- break;
- case 'update_preset':
- if(!isset($data['name']) || !isset($data['values'])) self::ajaxResponseError(__('Missing values to update preset', 'revslider'), false);
-
- $result = $operations->update_preset_setting($data);
-
- if($result === true){
-
- $presets = $operations->get_preset_settings();
-
- self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets));
- }else{
- self::ajaxResponseError($result, false);
- }
-
- exit;
- break;
- case 'remove_preset':
- if(!isset($data['name'])) self::ajaxResponseError(__('Missing values to remove preset', 'revslider'), false);
-
- $result = $operations->remove_preset_setting($data);
-
- if($result === true){
-
- $presets = $operations->get_preset_settings();
-
- self::ajaxResponseSuccess(__('Preset deleted', 'revslider'), array('data' => $presets));
- }else{
- self::ajaxResponseError($result, false);
- }
-
- exit;
- break;
- case "export_slider":
- $sliderID = self::getGetVar("sliderid");
- $dummy = self::getGetVar("dummy");
- $slider->initByID($sliderID);
- $slider->exportSlider($dummy);
- break;
- case "import_slider":
- $updateAnim = self::getPostGetVar("update_animations");
- $updateNav = self::getPostGetVar("update_navigations");
- //$updateStatic = self::getPostGetVar("update_static_captions");
- $updateStatic = 'none';
- self::importSliderHandle(null, $updateAnim, $updateStatic, $updateNav);
- break;
- case "import_slider_slidersview":
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- $updateAnim = self::getPostGetVar("update_animations");
- $updateNav = self::getPostGetVar("update_navigations");
- //$updateStatic = self::getPostGetVar("update_static_captions");
- $updateStatic = 'none';
- self::importSliderHandle($viewBack, $updateAnim, $updateStatic, $updateNav);
- break;
- case "import_slider_online_template_slidersview":
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- //ob_start();
- $data['uid'] = esc_attr(RevSliderFunctions::getPostVariable('uid'));
- $data['page-creation'] = esc_attr(RevSliderFunctions::getPostVariable('page-creation'));
- $data['package'] = esc_attr(RevSliderFunctions::getPostVariable('package'));
-
- self::importSliderOnlineTemplateHandle($data, $viewBack, 'true', 'none');
- /*$html = ob_get_contents();
- ob_clean();
- ob_end_clean();
-
- self::ajaxResponseData($html);*/
- break;
- case "import_slider_template_slidersview":
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- $updateAnim = self::getPostGetVar("update_animations");
- //$updateStatic = self::getPostGetVar("update_static_captions");
- $updateStatic = 'none';
- self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic);
- break;
- case "import_slider_online_template_slidersview_new":
- $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
- $response = self::importSliderOnlineTemplateHandleNew($data, $viewBack, 'true', 'none');
- self::ajaxResponseData($response);
- break;
- case 'create_draft_page':
- $response = array('open' => false);
-
- $page_id = $operations->create_slider_page($data['slider_ids']);
- if($page_id > 0){
- $response['open'] = get_permalink($page_id);
- }
- self::ajaxResponseData($response);
- break;
- case "import_slide_online_template_slidersview":
- $redirect_id = esc_attr(self::getPostGetVar("redirect_id"));
- $viewBack = self::getViewUrl(self::VIEW_SLIDE,"id=$redirect_id");
- $slidenum = intval(self::getPostGetVar("slidenum"));
- $sliderid = intval(self::getPostGetVar("slider_id"));
-
- $data['uid'] = esc_attr(RevSliderFunctions::getPostVariable('uid'));
- $data['page-creation'] = esc_attr(RevSliderFunctions::getPostVariable('page-creation'));
- $data['package'] = esc_attr(RevSliderFunctions::getPostVariable('package'));
-
- self::importSliderOnlineTemplateHandle($data, $viewBack, 'true', 'none', array('slider_id' => $sliderid, 'slide_id' => $slidenum));
- break;
- case "import_slide_template_slidersview":
- $redirect_id = esc_attr(self::getPostGetVar("redirect_id"));
- $viewBack = self::getViewUrl(self::VIEW_SLIDE,"id=$redirect_id");
- $updateAnim = self::getPostGetVar("update_animations");
- //$updateStatic = self::getPostGetVar("update_static_captions");
- $updateStatic = 'none';
- $slidenum = intval(self::getPostGetVar("slidenum"));
- $sliderid = intval(self::getPostGetVar("slider_id"));
-
- self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic, array('slider_id' => $sliderid, 'slide_id' => $slidenum));
- break;
- case "create_slider":
- $data = $operations->modifyCustomSliderParams($data);
- $newSliderID = $slider->createSliderFromOptions($data);
- self::ajaxResponseSuccessRedirect(__("Slider created",'revslider'), self::getViewUrl(self::VIEW_SLIDE, 'id=new&slider='.esc_attr($newSliderID))); //redirect to slide now
- break;
- case "update_slider":
- $data = $operations->modifyCustomSliderParams($data);
- $slider->updateSliderFromOptions($data);
- self::ajaxResponseSuccess(__("Slider updated",'revslider'));
- break;
- case "delete_slider":
- case "delete_slider_stay":
- $isDeleted = $slider->deleteSliderFromData($data);
- if(is_array($isDeleted)){
- $isDeleted = implode(', ', $isDeleted);
- self::ajaxResponseError(__("Template can't be deleted, it is still being used by the following Sliders: ", 'revslider').$isDeleted);
- }else{
- if($action == 'delete_slider_stay'){
- self::ajaxResponseSuccess(__("Slider deleted",'revslider'));
- }else{
- self::ajaxResponseSuccessRedirect(__("Slider deleted",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- }
- }
- break;
- case "duplicate_slider":
- $slider->duplicateSliderFromData($data);
- self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- break;
- case "duplicate_slider_package":
- $ret = $slider->duplicateSliderPackageFromData($data);
-
- if($ret !== true){
- RevSliderFunctions::throwError($ret);
- }else{
- self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- }
- break;
- case "add_slide":
- case "add_bulk_slide":
- $numSlides = $slider->createSlideFromData($data);
- $sliderID = $data["sliderid"];
- if($numSlides == 1){
- $responseText = __("Slide Created",'revslider');
- }else{
- $responseText = $numSlides . " ".__("Slides Created",'revslider');
- }
- $urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=new&slider=$sliderID");
- self::ajaxResponseSuccessRedirect($responseText,$urlRedirect);
- break;
- case "add_slide_fromslideview":
- $slideID = $slider->createSlideFromData($data,true);
- $urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=$slideID");
- $responseText = __("Slide Created, redirecting...",'revslider');
- self::ajaxResponseSuccessRedirect($responseText,$urlRedirect);
- break;
- case 'copy_slide_to_slider':
- $slideID = (isset($data['redirect_id'])) ? $data['redirect_id'] : -1;
-
- if($slideID === -1) RevSliderFunctions::throwError(__('Missing redirect ID!', 'revslider'));
-
- $return = $slider->copySlideToSlider($data);
-
- if($return !== true) RevSliderFunctions::throwError($return);
-
- $urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=$slideID");
- $responseText = __("Slide copied to current Slider, redirecting...",'revslider');
- self::ajaxResponseSuccessRedirect($responseText,$urlRedirect);
- break;
- case 'update_slide':
- if(isset($data['obj_favorites'])){
- $obj_favorites = $data['obj_favorites'];
- unset($data['obj_favorites']);
- //save object favourites
- $objlib = new RevSliderObjectLibrary();
- $objlib->save_favorites($obj_favorites);
- }
- $slide->updateSlideFromData($data);
- self::ajaxResponseSuccess(__("Slide updated",'revslider'));
- break;
- case "update_static_slide":
- if(isset($data['obj_favorites'])){
- $obj_favorites = $data['obj_favorites'];
- unset($data['obj_favorites']);
- //save object favourites
- $objlib = new RevSliderObjectLibrary();
- $objlib->save_favorites($obj_favorites);
- }
- $slide->updateStaticSlideFromData($data);
- self::ajaxResponseSuccess(__("Static Global Layers updated",'revslider'));
- break;
- case "delete_slide":
- case "delete_slide_stay":
- $isPost = $slide->deleteSlideFromData($data);
- if($isPost)
- $message = __("Post deleted",'revslider');
- else
- $message = __("Slide deleted",'revslider');
- $sliderID = RevSliderFunctions::getVal($data, "sliderID");
- if($action == 'delete_slide_stay'){
- self::ajaxResponseSuccess($message);
- }else{
- self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDE,"id=new&slider=$sliderID"));
- }
- break;
- case "duplicate_slide":
- case "duplicate_slide_stay":
- $return = $slider->duplicateSlideFromData($data);
- if($action == 'duplicate_slide_stay'){
- self::ajaxResponseSuccess(__("Slide duplicated",'revslider'), array('id' => $return[1]));
- }else{
- self::ajaxResponseSuccessRedirect(__("Slide duplicated",'revslider'), self::getViewUrl(self::VIEW_SLIDE,"id=new&slider=".$return[0]));
- }
- break;
- case "copy_move_slide":
- case "copy_move_slide_stay":
- $sliderID = $slider->copyMoveSlideFromData($data);
- if($action == 'copy_move_slide_stay'){
- self::ajaxResponseSuccess(__("Success!",'revslider'));
- }else{
- self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...",'revslider'), self::getViewUrl(self::VIEW_SLIDE,"id=new&slider=$sliderID"));
- }
- break;
- case "add_slide_to_template":
- $template = new RevSliderTemplate();
- if(!isset($data['slideID']) || intval($data['slideID']) == 0){
- RevSliderFunctions::throwError(__('No valid Slide ID given', 'revslider'));
- exit;
- }
- if(!isset($data['title']) || strlen(trim($data['title'])) < 3){
- RevSliderFunctions::throwError(__('No valid title given', 'revslider'));
- exit;
- }
- if(!isset($data['settings']) || !isset($data['settings']['width']) || !isset($data['settings']['height'])){
- RevSliderFunctions::throwError(__('No valid title given', 'revslider'));
- exit;
- }
-
- $return = $template->copySlideToTemplates($data['slideID'], $data['title'], $data['settings']);
-
- if($return == false){
- RevSliderFunctions::throwError(__('Could not save Slide as Template', 'revslider'));
- exit;
- }
-
- //get HTML for template section
- ob_start();
-
- $rs_disable_template_script = true; //disable the script output of template selector file
-
- include(RS_PLUGIN_PATH.'admin/views/templates/template-selector.php');
-
- $html = ob_get_contents();
-
- ob_clean();
- ob_end_clean();
-
- self::ajaxResponseSuccess(__('Slide added to Templates', 'revslider'),array('HTML' => $html));
- exit;
- break;
- case "get_slider_custom_css_js":
- $slider_css = '';
- $slider_js = '';
- if(isset($data['slider_id']) && intval($data['slider_id']) > 0){
- $slider->initByID(intval($data['slider_id']));
- $slider_css = stripslashes($slider->getParam('custom_css', ''));
- $slider_js = stripslashes($slider->getParam('custom_javascript', ''));
- }
- self::ajaxResponseData(array('css' => $slider_css, 'js' => $slider_js));
- break;
- case "update_slider_custom_css_js":
- if(isset($data['slider_id']) && intval($data['slider_id']) > 0){
- $slider->initByID(intval($data['slider_id']));
- $slider->updateParam(array('custom_css' => $data['css']));
- $slider->updateParam(array('custom_javascript' => $data['js']));
- }
- self::ajaxResponseSuccess(__('Slider CSS saved', 'revslider'));
- exit;
- break;
- case "get_static_css":
- $contentCSS = $operations->getStaticCss();
- self::ajaxResponseData($contentCSS);
- break;
- case "get_dynamic_css":
- $contentCSS = $operations->getDynamicCss();
- self::ajaxResponseData($contentCSS);
- break;
- case "insert_captions_css":
-
- $arrCaptions = $operations->insertCaptionsContentData($data);
-
- if($arrCaptions !== false){
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- $arrCSS = $operations->getCaptionsContentArray();
- $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
- $arrCssStyles = $arrCSS;
-
- self::ajaxResponseSuccess(__("CSS saved",'revslider'),array("arrCaptions"=>$arrCaptions,'compressed_css'=>$styles.$custom_css,'initstyles'=>$arrCssStyles));
- }
-
- RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
- exit();
- break;
- case "update_captions_css":
- $arrCaptions = $operations->updateCaptionsContentData($data);
-
- //now check all layers of all sliders and check if you need to change them (only if all values are default)
-
-
- if($arrCaptions !== false){
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- $arrCSS = $operations->getCaptionsContentArray();
- $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
- $arrCssStyles = $arrCSS;
-
- self::ajaxResponseSuccess(__("CSS saved",'revslider'),array("arrCaptions"=>$arrCaptions,'compressed_css'=>$styles.$custom_css,'initstyles'=>$arrCssStyles));
- }
-
- RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
- exit();
- break;
- case "update_captions_advanced_css":
-
- $arrCaptions = $operations->updateAdvancedCssData($data);
- if($arrCaptions !== false){
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- $arrCSS = $operations->getCaptionsContentArray();
- $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
- $arrCssStyles = $arrCSS;
-
- self::ajaxResponseSuccess(__("CSS saved",'revslider'),array("arrCaptions"=>$arrCaptions,'compressed_css'=>$styles.$custom_css,'initstyles'=>$arrCssStyles));
- }
-
- RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
- exit();
- break;
- case "rename_captions_css":
- //rename all captions in all sliders with new handle if success
- $arrCaptions = $operations->renameCaption($data);
-
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- $arrCSS = $operations->getCaptionsContentArray();
- $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
- $arrCssStyles = $arrCSS;
-
- self::ajaxResponseSuccess(__("Class name renamed",'revslider'),array("arrCaptions"=>$arrCaptions,'compressed_css'=>$styles.$custom_css,'initstyles'=>$arrCssStyles));
- break;
- case "delete_captions_css":
- $arrCaptions = $operations->deleteCaptionsContentData($data);
-
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- $arrCSS = $operations->getCaptionsContentArray();
- $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
- $arrCssStyles = $arrCSS;
-
- self::ajaxResponseSuccess(__("Style deleted!",'revslider'),array("arrCaptions"=>$arrCaptions,'compressed_css'=>$styles.$custom_css,'initstyles'=>$arrCssStyles));
- break;
- case "update_static_css":
- $data = ''; //do not allow to add new global CSS anymore, instead, remove all!
- $staticCss = $operations->updateStaticCss($data);
-
- $db = new RevSliderDB();
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
-
- self::ajaxResponseSuccess(__("CSS saved",'revslider'),array("css"=>$staticCss,'compressed_css'=>$styles.$custom_css));
- break;
- case "insert_custom_anim":
- $arrAnims = $operations->insertCustomAnim($data); //$arrCaptions =
- self::ajaxResponseSuccess(__("Animation saved",'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
- break;
- case "update_custom_anim":
- $arrAnims = $operations->updateCustomAnim($data);
- self::ajaxResponseSuccess(__("Animation saved",'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
- break;
- case "update_custom_anim_name":
- $arrAnims = $operations->updateCustomAnimName($data);
- self::ajaxResponseSuccess(__("Animation saved",'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
- break;
- case "delete_custom_anim":
- $arrAnims = $operations->deleteCustomAnim($data);
- self::ajaxResponseSuccess(__("Animation deleted",'revslider'), $arrAnims); //,array("arrCaptions"=>$arrCaptions)
- break;
- case "update_slides_order":
- $slider->updateSlidesOrderFromData($data);
- self::ajaxResponseSuccess(__("Order updated",'revslider'));
- break;
- case "change_slide_title":
- $slide->updateTitleByID($data);
- self::ajaxResponseSuccess(__('Title updated','revslider'));
- break;
- case "change_slide_image":
- $slide->updateSlideImageFromData($data);
- $sliderID = RevSliderFunctions::getVal($data, "slider_id");
- self::ajaxResponseSuccessRedirect(__("Slide changed",'revslider'), self::getViewUrl(self::VIEW_SLIDE,"id=new&slider=$sliderID"));
- break;
- case "preview_slide":
- $operations->putSlidePreviewByData($data);
- exit;
- break;
- case "preview_slider":
- $sliderID = RevSliderFunctions::getPostGetVariable("sliderid");
- $do_markup = RevSliderFunctions::getPostGetVariable("only_markup");
- if($do_markup == 'true')
- $operations->previewOutputMarkup($sliderID);
- else
- $operations->previewOutput($sliderID);
-
- exit;
- break;
- case "get_import_slides_data":
- $slides = array();
- if(!is_array($data)){
- $slider->initByID(intval($data));
-
- $full_slides = $slider->getSlides(); //static slide is missing
-
- if(!empty($full_slides)){
- foreach($full_slides as $slide_id => $mslide){
- $slides[$slide_id]['layers'] = $mslide->getLayers();
- foreach($slides[$slide_id]['layers'] as $k => $l){ //remove columns as they can not be imported
- if(isset($l['type']) && ($l['type'] == 'column' || $l['type'] == 'row' || $l['type'] == 'group')) unset($slides[$slide_id]['layers'][$k]);
- }
- $slides[$slide_id]['params'] = $mslide->getParams();
- }
- }
-
- $staticID = $slide->getStaticSlideID($slider->getID());
- if($staticID !== false){
- $msl = new RevSliderSlide();
- if(strpos($staticID, 'static_') === false){
- $staticID = 'static_'.$slider->getID();
- }
- $msl->initByID($staticID);
- if($msl->getID() !== ''){
- $slides[$msl->getID()]['layers'] = $msl->getLayers();
- foreach($slides[$msl->getID()]['layers'] as $k => $l){ //remove columns as they can not be imported
- if(isset($l['type']) && ($l['type'] == 'column' || $l['type'] == 'row' || $l['type'] == 'group')) unset($slides[$msl->getID()]['layers'][$k]);
- }
- $slides[$msl->getID()]['params'] = $msl->getParams();
- $slides[$msl->getID()]['params']['title'] = __('Static Slide', 'revslider');
- }
- }
- }
- if(!empty($slides)){
- self::ajaxResponseData(array('slides' => $slides));
- }else{
- self::ajaxResponseData('');
- }
- break;
- case "create_navigation_preset":
- $nav = new RevSliderNavigation();
-
- $return = $nav->add_preset($data);
-
- if($return === true){
- self::ajaxResponseSuccess(__('Navigation preset saved/updated', 'revslider'), array('navs' => $nav->get_all_navigations()));
- }else{
- if($return === false) $return = __('Preset could not be saved/values are the same', 'revslider');
- self::ajaxResponseError($return);
- }
- break;
- case "delete_navigation_preset":
- $nav = new RevSliderNavigation();
-
- $return = $nav->delete_preset($data);
-
- if($return){
- self::ajaxResponseSuccess(__('Navigation preset deleted', 'revslider'), array('navs' => $nav->get_all_navigations()));
- }else{
- if($return === false) $return = __('Preset not found', 'revslider');
- self::ajaxResponseError($return);
- }
- break;
- case "toggle_slide_state":
- $currentState = $slide->toggleSlideStatFromData($data);
- self::ajaxResponseData(array("state"=>$currentState));
- break;
- case "toggle_hero_slide":
- $currentHero = $slider->setHeroSlide($data);
- self::ajaxResponseSuccess(__('Slide is now the new active Hero Slide', 'revslider'));
- break;
- case "slide_lang_operation":
- $responseData = $slide->doSlideLangOperation($data);
- self::ajaxResponseData($responseData);
- break;
- case "update_general_settings":
- $operations->updateGeneralSettings($data);
- self::ajaxResponseSuccess(__("General settings updated",'revslider'));
- break;
- case "fix_database_issues":
- update_option('revslider_change_database', true);
- RevSliderFront::createDBTables();
-
- self::ajaxResponseSuccess(__('Database structure creation/update done','revslider'));
- break;
- case "update_posts_sortby":
- $slider->updatePostsSortbyFromData($data);
- self::ajaxResponseSuccess(__("Sortby updated",'revslider'));
- break;
- case "replace_image_urls":
- $slider->replaceImageUrlsFromData($data);
- self::ajaxResponseSuccess(__("All Urls replaced",'revslider'));
- break;
- case "reset_slide_settings":
- $slider->resetSlideSettings($data);
- self::ajaxResponseSuccess(__("Settings in all Slides changed",'revslider'));
- break;
- case "delete_template_slide":
-
- $slideID = (isset($data['slide_id'])) ? $data['slide_id'] : -1;
-
- if($slideID === -1) RevSliderFunctions::throwError(__('Missing Slide ID!', 'revslider'));
-
- $slide->initByID($slideID);
- $slide->deleteSlide();
-
- $responseText = __("Slide deleted",'revslider');
- self::ajaxResponseSuccess($responseText);
- break;
- case "activate_purchase_code":
- $result = false;
- if(!empty($data['code'])){ // && !empty($data['email'])
- $result = $operations->checkPurchaseVerification($data);
- }else{
- RevSliderFunctions::throwError(__('The Purchase Code and the E-Mail address need to be set!', 'revslider'));
- exit();
- }
- if($result === true){
- self::ajaxResponseSuccessRedirect(__("Purchase Code Successfully Activated",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- }elseif($result === false){
- RevSliderFunctions::throwError(__('Purchase Code is invalid', 'revslider'));
- }else{
- if($result == 'temp'){
- self::ajaxResponseSuccessRedirect(__("Purchase Code Temporary Activated",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- }
- if($result == 'exist'){
- self::ajaxResponseData(array('error'=>$result,'msg'=> __('Purchase Code already registered!', 'revslider')));
- }
- /*elseif($result == 'bad_email'){
- RevSliderFunctions::throwError(__('Please add an valid E-Mail Address', 'revslider'));
- }elseif($result == 'email_used'){
- RevSliderFunctions::throwError(__('E-Mail already in use, please choose a different E-Mail', 'revslider'));
- }*/
- RevSliderFunctions::throwError(__('Purchase Code could not be validated', 'revslider'));
- }
- break;
- case "deactivate_purchase_code":
- $result = $operations->doPurchaseDeactivation($data);
- if($result){
- self::ajaxResponseSuccessRedirect(__("Successfully removed validation",'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
- }else{
- RevSliderFunctions::throwError(__('Could not remove Validation!', 'revslider'));
- }
- break;
- case 'dismiss_notice':
- update_option('revslider-valid-notice', 'false');
- self::ajaxResponseSuccess(__(".",'revslider'));
- break;
- case 'dismiss_dynamic_notice':
- if(trim($data['id']) == 'DISCARD'){
- update_option('revslider-deact-notice', false);
- }elseif(trim($data['id']) == 'DISCARDTEMPACT'){
- update_option('revslider-temp-active-notice', 'false');
- }else{
- $notices_discarded = get_option('revslider-notices-dc', array());
- $notices_discarded[] = esc_attr(trim($data['id']));
- update_option('revslider-notices-dc', $notices_discarded);
- }
-
- self::ajaxResponseSuccess(__(".",'revslider'));
- break;
- case 'toggle_favorite':
- if(isset($data['id']) && intval($data['id']) > 0){
- $return = self::toggle_favorite_by_id($data['id']);
- if($return === true){
- self::ajaxResponseSuccess(__('Setting Changed!', 'revslider'));
- }else{
- $error = $return;
- }
- }else{
- $error = __('No ID given', 'revslider');
- }
- self::ajaxResponseError($error);
- break;
- case "subscribe_to_newsletter":
- if(isset($data['email']) && !empty($data['email'])){
- $return = ThemePunch_Newsletter::subscribe($data['email']);
-
- if($return !== false){
- if(!isset($return['status']) || $return['status'] === 'error'){
- $error = (isset($return['message']) && !empty($return['message'])) ? $return['message'] : __('Invalid Email', 'revslider');
- self::ajaxResponseError($error);
- }else{
- self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the subscription", 'revslider'), $return);
- }
- }else{
- self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider'));
- }
- }else{
- self::ajaxResponseError(__('No Email given', 'revslider'));
- }
- break;
- case "unsubscribe_to_newsletter":
- if(isset($data['email']) && !empty($data['email'])){
- $return = ThemePunch_Newsletter::unsubscribe($data['email']);
-
- if($return !== false){
- if(!isset($return['status']) || $return['status'] === 'error'){
- $error = (isset($return['message']) && !empty($return['message'])) ? $return['message'] : __('Invalid Email', 'revslider');
- self::ajaxResponseError($error);
- }else{
- self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the process", 'revslider'), $return);
- }
- }else{
- self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider'));
- }
- }else{
- self::ajaxResponseError(__('No Email given', 'revslider'));
- }
- break;
- case 'change_specific_navigation':
- $nav = new RevSliderNavigation();
-
- $found = false;
- $navigations = $nav->get_all_navigations();
- foreach($navigations as $navig){
- if($data['id'] == $navig['id']){
- $found = true;
- break;
- }
- }
- if($found){
- $nav->create_update_navigation($data, $data['id']);
- }else{
- $nav->create_update_navigation($data);
- }
-
- self::ajaxResponseSuccess(__('Navigation saved/updated', 'revslider'), array('navs' => $nav->get_all_navigations()));
-
- break;
- case 'change_navigations':
- $nav = new RevSliderNavigation();
-
- $nav->create_update_full_navigation($data);
-
- self::ajaxResponseSuccess(__('Navigations updated', 'revslider'), array('navs' => $nav->get_all_navigations()));
- break;
- case 'delete_navigation':
- $nav = new RevSliderNavigation();
-
- if(isset($data) && intval($data) > 0){
- $return = $nav->delete_navigation($data);
-
- if($return !== true){
- self::ajaxResponseError($return);
- }else{
- self::ajaxResponseSuccess(__('Navigation deleted', 'revslider'), array('navs' => $nav->get_all_navigations()));
- }
- }
-
- self::ajaxResponseError(__('Wrong ID given', 'revslider'));
- break;
- case "get_facebook_photosets":
- if(!empty($data['url'])){
- $facebook = new RevSliderFacebook();
- $return = $facebook->get_photo_set_photos_options($data['url'],$data['album'],$data['app_id'],$data['app_secret']);
- if(!empty($return)){
- self::ajaxResponseSuccess(__('Successfully fetched Facebook albums', 'revslider'), array('html'=>implode(' ', $return)));
- }
- else{
- $error = __('Could not fetch Facebook albums', 'revslider');
- self::ajaxResponseError($error);
- }
- }
- else {
- self::ajaxResponseSuccess(__('Cleared Albums', 'revslider'), array('html'=>implode(' ', $return)));
- }
- break;
- case "get_flickr_photosets":
- if(!empty($data['url']) && !empty($data['key'])){
- $flickr = new RevSliderFlickr($data['key']);
- $user_id = $flickr->get_user_from_url($data['url']);
- $return = $flickr->get_photo_sets($user_id,$data['count'],$data['set']);
- if(!empty($return)){
- self::ajaxResponseSuccess(__('Successfully fetched flickr photosets', 'revslider'), array("data"=>array('html'=>implode(' ', $return))));
- }
- else{
- $error = __('Could not fetch flickr photosets', 'revslider');
- self::ajaxResponseError($error);
- }
- }
- else {
- if(empty($data['url']) && empty($data['key'])){
- self::ajaxResponseSuccess(__('Cleared Photosets', 'revslider'), array('html'=>implode(' ', $return)));
- }
- elseif(empty($data['url'])){
- $error = __('No User URL - Could not fetch flickr photosets', 'revslider');
- self::ajaxResponseError($error);
- }
- else{
- $error = __('No API KEY - Could not fetch flickr photosets', 'revslider');
- self::ajaxResponseError($error);
- }
- }
- break;
- case "get_youtube_playlists":
- if(!empty($data['id'])){
- $youtube = new RevSliderYoutube(trim($data['api']),trim($data['id']));
- $return = $youtube->get_playlist_options($data['playlist']);
- self::ajaxResponseSuccess(__('Successfully fetched YouTube playlists', 'revslider'), array("data"=>array('html'=>implode(' ', $return))));
- }
- else {
- $error = __('Could not fetch YouTube playlists', 'revslider');
- self::ajaxResponseError($error);
- }
- break;
- case 'rs_get_store_information':
- global $wp_version, $rslb;
-
- $code = get_option('revslider-code', '');
- $shop_version = RevSliderTemplate::SHOP_VERSION;
-
- $validated = get_option('revslider-valid', 'false');
- if($validated == 'false'){
- $api_key = '';
- $username = '';
- $code = '';
- }
-
- $rattr = array(
- 'code' => urlencode($code),
- 'product' => urlencode('revslider'),
- 'shop_version' => urlencode($shop_version),
- 'version' => urlencode(RevSliderGlobals::SLIDER_REVISION)
- );
-
- $done = false;
- $count = 0;
- do {
- $url = $rslb->get_url('templates');
- $request = wp_remote_post($url.'/revslider/store.php', array(
- 'user-agent' => 'WordPress/'.$wp_version.'; '.get_bloginfo('url'),
- 'body' => $rattr
- ));
-
- $response = '';
-
- if(!is_wp_error($request)) {
- $response = json_decode(@$request['body'], true);
- $done = true;
- }else{
- $rslb->move_server_list();
- }
-
- $count++;
- }while($done == false && $count < 5);
-
- self::ajaxResponseData(array("data"=>$response));
- break;
- case 'load_library_object':
- $obj_library = new RevSliderObjectLibrary();
-
- $thumbhandle = $data['handle'];
- $type = $data['type'];
- if($type == 'thumb'){
- $thumb = $obj_library->_get_object_thumb($thumbhandle, 'thumb');
- }elseif($type == 'orig'){
- $thumb = $obj_library->_get_object_thumb($thumbhandle, 'original');
- }
- if($thumb['error']){
- self::ajaxResponseError(__('Object could not be loaded', 'revslider'));
- }else{
- self::ajaxResponseData(array('url'=> $thumb['url'], 'width' => $thumb['width'], 'height' => $thumb['height']));
- }
- break;
- case 'load_template_store_sliders':
- $tmpl = new RevSliderTemplate();
- $tp_template_slider = $tmpl->getThemePunchTemplateSliders();
-
- ob_start();
- $tmpl->create_html_sliders($tp_template_slider);
- $html = ob_get_contents();
- ob_clean();
- ob_end_clean();
-
- self::ajaxResponseData(array('html'=> $html));
-
- break;
- case 'load_template_store_slides':
- $tmpl = new RevSliderTemplate();
- $templates = $tmpl->getTemplateSlides();
- $tp_template_slider = $tmpl->getThemePunchTemplateSliders();
- $tmp_slider = new RevSlider();
- $all_slider = apply_filters('revslider_slide_templates', $tmp_slider->getArrSliders());
-
- ob_start();
- $tmpl->create_html_slides($tp_template_slider, $all_slider, $templates);
- $html = ob_get_contents();
- ob_clean();
- ob_end_clean();
-
- self::ajaxResponseData(array('html'=> $html));
-
- break;
- case 'load_object_library':
- $html = '';
- $obj = new RevSliderObjectLibrary();
- $mdata = $obj->retrieve_all_object_data();
-
- self::ajaxResponseData(array('data'=> $mdata));
- break;
- case 'slide_editor_sticky_menu':
- if(isset($data['set_sticky']) && $data['set_sticky'] == 'true'){
- update_option('revslider_slide_editor_sticky', 'true');
- }else{
- update_option('revslider_slide_editor_sticky', 'false');
- }
- self::ajaxResponseData(array());
- break;
- case 'save_color_preset':
-
- $presets = TPColorpicker::save_color_presets($data['presets']);
- self::ajaxResponseData(array('presets' => $presets));
-
- break;
- default:
- $return = apply_filters('revslider_admin_onAjaxAction_switch', false, $action, $data, $slider, $slide, $operations);
- if($return === false)
- self::ajaxResponseError("wrong ajax action: ".esc_attr($action));
-
- exit;
- break;
- }
-
-
- $role = self::getMenuRole(); //add additional security check and allow for example import only for admin
- }
- catch(Exception $e){
- $message = $e->getMessage();
- if($action == "preview_slide" || $action == "preview_slider"){
- echo $message;
- exit();
- }
- self::ajaxResponseError($message);
- }
- //it's an ajax action, so exit
- self::ajaxResponseError("No response output on $action action. please check with the developer.");
- exit();
- }
-
-
- /**
- * onAjax action handler
- */
- public static function onFrontAjaxAction(){
- $db = new RevSliderDB();
- $slider = new RevSlider();
- $slide = new RevSlide();
- $operations = new RevSliderOperations();
-
- $token = self::getPostVar("token", false);
-
- //verify the token
- $isVerified = wp_verify_nonce($token, 'RevSlider_Front');
-
- $error = false;
- if($isVerified){
- $data = self::getPostVar('data', false);
- switch(self::getPostVar('client_action', false)){
- case 'get_slider_html':
- $id = intval(self::getPostVar('id', 0));
- if($id > 0){
- $html = '';
- ob_start();
- $slider_class = RevSliderOutput::putSlider($id);
- $html = ob_get_contents();
-
- //add styling
- $custom_css = RevSliderOperations::getStaticCss();
- $custom_css = RevSliderCssParser::compress_css($custom_css);
- $styles = $db->fetch(RevSliderGlobals::$table_css);
- $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
- $styles = RevSliderCssParser::compress_css($styles);
-
- $html .= '<style type="text/css">'.$custom_css.'</style>';
- $html .= '<style type="text/css">'.$styles.'</style>';
-
- ob_clean();
- ob_end_clean();
-
- $result = (!empty($slider_class) && $html !== '') ? true : false;
-
- if(!$result){
- $error = __('Slider not found', 'revslider');
- }else{
-
- if($html !== false){
- self::ajaxResponseData($html);
- }else{
- $error = __('Slider not found', 'revslider');
- }
- }
- }else{
- $error = __('No Data Received', 'revslider');
- }
- break;
- }
-
- }else{
- $error = true;
- }
-
- if($error !== false){
- $showError = __('Loading Error', 'revslider');
- if($error !== true)
- $showError = __('Loading Error: ', 'revslider').$error;
-
- self::ajaxResponseError($showError, false);
- }
- exit();
- }
-
- }
- ?>
|