Initial Commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
/********************************************************
|
||||
|
||||
SLIDER REVOLUTION BACKUP
|
||||
|
||||
* REVOLUTION 5.2.0 EXTENSION - BACKUP ADMIN CSSrs-frame-
|
||||
* @version: 1.0 (16.02.2016)
|
||||
* @author ThemePunch
|
||||
*********************************************************/
|
||||
|
||||
|
||||
#rs-addon-settings-trigger-backup { border-radius:0px; padding:0px; color:transparent; background:url(../images/addon_logo.png); background-size:127px 54px; background-position:top center; width:127px;height:27px;}
|
||||
#rs-addon-settings-trigger-backup.selected,
|
||||
#rs-addon-settings-trigger-backup:hover { background-position: bottom center}
|
||||
|
||||
#rs-addon-settings-trigger-backup-settings { padding:15px 20px;}
|
||||
|
||||
|
||||
.rs-addon-backup-trigger-button { line-height:28px; color:#fff; padding:0px 20px; background: #3498db; cursor: pointer; display:inline-block;}
|
||||
.rs-addon-backup-trigger-button:hover { background: #2980b9}
|
||||
|
||||
#dialog_select_slide_backup { padding:0px;}
|
||||
|
||||
.rs-backup-data-holder { line-height:45px; vertical-align: middle; border-bottom:1px solid #ddd; padding:0px 20px;}
|
||||
.rs-backup-id { display: inline-block;width: 20px;text-align: right;}
|
||||
|
||||
.eg-icon-calendar { margin-left:25px; color:#aaa; margin-right:5px;}
|
||||
.eg-icon-calendar:before { color:#aaa; font-size:16px;}
|
||||
|
||||
.rs-preview-backup { border:1px solid #3498db; font-size:12px; color:#3498db; line-height: 24px; padding:0px 10px; font-weight: 400; cursor: pointer; display: inline-block;margin-top:10px; border-radius: 4px;}
|
||||
|
||||
.rs-load-backup { background:#3498db; font-size:12px; color:#fff; line-height: 26px; padding:0px 10px; font-weight: 400; cursor: pointer; display: inline-block;margin-top:10px;border-radius: 4px; margin-left:5px;}
|
||||
|
||||
.rs-preview-backup:hover { color:#fff;background:#3498db;}
|
||||
.rs-load-backup:hover { background: #2980b9}
|
||||
|
||||
|
||||
.rs-backup-data-holder.rs-temp-backup-holder { background:rgba(255,255,255,0.45); border-radius: 4px; position: absolute; top: 50px; left: 50%; border-bottom:none !important; width:320px; margin-left:-160px; height:40px;line-height: 40px;}
|
||||
|
||||
.rs-temp-backup-holder .rs-load-backup { float:right;margin-top:8px;}
|
||||
|
||||
.nobackups { padding:25px 20px; color:#999; font-size: 14px;}
|
||||
@@ -0,0 +1,31 @@
|
||||
.tp-steps span {
|
||||
-webkit-border-radius: 50%;
|
||||
-moz-border-radius: 50%;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #d50000;
|
||||
color: #d50000;
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 37px;
|
||||
text-align: center;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.tp-steps.wb span {
|
||||
border: 2px solid #22a2ad;
|
||||
color: #fff;
|
||||
background: #22a2ad;
|
||||
}
|
||||
|
||||
h3.tp-steps {
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.wb-featuretext {
|
||||
margin-top: 10px;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,24 @@
|
||||
///////////////////////////////
|
||||
// INIT BACKUP SCRIPTS //
|
||||
///////////////////////////////
|
||||
jQuery("document").ready(function() {
|
||||
|
||||
// CHECK EDITOR MODE
|
||||
var editor_view = jQuery('#form_slider_params').length>0 ? "slider_settings" : "slide_settings";
|
||||
|
||||
if (editor_view==="slide_settings"){
|
||||
rs_backup_slide_init();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
/********************************************************************
|
||||
|
||||
LAYER / SLIDE SETTINGS BACKEND jQUERY EXTENSION
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
var rs_backup_slide_init = function() {
|
||||
if(typeof(rs_backup_loaded) === 'undefined') return false; //WILL BE WRITTEN BY admin/includes/slide.class.php DEPENDING IF BACKUP IS ENABLED/DISABLED
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
(function( $ ) {
|
||||
|
||||
$(function() {
|
||||
|
||||
/*! Main Functionality for Settings SlideOut */
|
||||
jQuery('document').ready(function() {
|
||||
var a = jQuery('#rev_addon_gal_settings_slideout');
|
||||
punchgs.TweenLite.set(a,{xPercent:"+100%", autoAlpha:0, display:"none"});
|
||||
|
||||
jQuery('body').on('click', '#rs-dash-addons-slide-out-trigger_revslider-backup-addon', function() {
|
||||
console.log("clicked");
|
||||
//hide all wrappers
|
||||
jQuery('.rs-sbs-slideout-wrapper').each(function(){
|
||||
punchgs.TweenLite.to(jQuery(this),0.4,{xPercent:"+100%", autoAlpha:0, display:"none",overwrite:"auto",ease:punchgs.Power3.easeInOut});
|
||||
});
|
||||
|
||||
//display slideout
|
||||
var a = jQuery('#rev_addon_backup_settings_slideout'),
|
||||
b = jQuery('.rs-dash-addons');
|
||||
punchgs.TweenLite.to(a,0.4,{xPercent:"0%", autoAlpha:1, display:"block",overwrite:"auto",ease:punchgs.Power3.easeOut});
|
||||
|
||||
//enable Scrollbars
|
||||
jQuery('#rev_addon_backup_settings_slideout .rs-sbs-slideout-inner').css("max-height",$( window ).height()-300);
|
||||
setTimeout(function() {
|
||||
jQuery('#rev_addon_backup_settings_slideout .rs-sbs-slideout-inner').perfectScrollbar("update");
|
||||
},400);
|
||||
});
|
||||
jQuery('body').on('click','#rev_addon_backup_settings_slideout .rs-sbs-close', function() {
|
||||
var a = jQuery('#rev_addon_backup_settings_slideout');
|
||||
punchgs.TweenLite.to(a,0.4,{xPercent:"+100%", autoAlpha:0, display:"none",overwrite:"auto",ease:punchgs.Power3.easeInOut});
|
||||
});
|
||||
|
||||
//call scrollbars
|
||||
jQuery('#rev_addon_backup_settings_slideout .rs-sbs-slideout-inner').perfectScrollbar({wheelPropagation:true, suppressScrollX:true});
|
||||
|
||||
$(window).resize(function(){
|
||||
jQuery('#rev_addon_backup_settings_slideout .rs-sbs-slideout-inner').css("max-height",$( window ).height()-300);
|
||||
jQuery('#rev_addon_backup_settings_slideout .rs-sbs-slideout-inner').perfectScrollbar("update");
|
||||
});
|
||||
|
||||
}); //end document ready
|
||||
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
@@ -0,0 +1,594 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link http://www.themepunch.com/
|
||||
* @copyright 2016 ThemePunch
|
||||
*/
|
||||
|
||||
if( !defined( 'ABSPATH') ) exit();
|
||||
|
||||
class rs_backup_slide extends RevSliderAdmin {
|
||||
|
||||
public static function init_backup(){
|
||||
|
||||
add_filter('revslider_slide_settings_addons', array('rs_backup_slide', 'add_backup_settings'), 10, 3); //adds interface / menu to the Slide General Settings
|
||||
add_filter('revslider_admin_onAjaxAction_switch', array('rs_backup_slide', 'add_backup_ajax_functions'), 10, 6); //adds new ajax calls to the Slider
|
||||
|
||||
add_action('revslider_slide_updateSlideFromData_post', array('rs_backup_slide', 'check_add_new_backup'), 10, 3); //hooks into the saving process of a Slide
|
||||
add_action('revslider_slide_updateStaticSlideFromData_post', array('rs_backup_slide', 'check_add_new_backup_static'), 10, 3); //hooks into the saving process of a Static Slide
|
||||
|
||||
add_action('revslider_slide_deleteSlide', array('rs_backup_slide', 'delete_backup_full')); //hooks into the deletion process of a Slide
|
||||
add_action('revslider_slider_deleteAllSlides', array('rs_backup_slide', 'delete_backup_full_slider')); //hooks into the deletion process of a Slide
|
||||
|
||||
self::create_tables(); //creates tables needed for this plugin to work
|
||||
|
||||
if(isset($_GET["page"]) && $_GET["page"]=="revslider"){
|
||||
add_action('admin_enqueue_scripts', array('rs_backup_slide', 'wb_enqueue_styles'));
|
||||
add_action('admin_enqueue_scripts', array('rs_backup_slide', 'wb_enqueue_scripts'));
|
||||
}
|
||||
}
|
||||
|
||||
public static function wb_enqueue_styles(){
|
||||
wp_register_style('revslider-backup-plugin-settings', RS_BACKUP_PLUGIN_URL . 'admin/assets/css/backup-admin.css', array(), RS_BACKUP_VERSION);
|
||||
wp_enqueue_style('revslider-backup-plugin-settings');
|
||||
}
|
||||
|
||||
|
||||
public static function wb_enqueue_scripts(){
|
||||
wp_register_script('revslider-backup-plugin-js', RS_BACKUP_PLUGIN_URL . 'admin/assets/js/backup-admin.js', array(), RS_BACKUP_VERSION);
|
||||
wp_enqueue_script('revslider-backup-plugin-js');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* adds interface / menu to the Slide General Settings
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function add_backup_settings($settings, $slide, $slider){
|
||||
|
||||
$slide_id = ($slide->isStaticSlide()) ? 'static_'.$slider->getID() : $slide->getID();
|
||||
|
||||
$markup = '<input type="hidden" id="rs-session-id" value="'. substr(md5(rand()), 0, 7) .'" />';
|
||||
$markup .=
|
||||
'<div class="slide-show-backups-wrapper"><div class="slide-show-backups rs-addon-backup-trigger-button" data-slideid="'.$slide_id.'">'.__("Show available Backups for this Slide",'rs_backup').'</div></div>
|
||||
|
||||
<div id="dialog_select_slide_backup" class="dialog_select_slide_backup" title="'.__('Select Backup', 'rs_backup').'" style="display:none;">
|
||||
<div id="rs-backup-wrapper">
|
||||
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
$settings['backup'] = array(
|
||||
'title' => __('Backup', 'rs_backup'),
|
||||
'markup' => $markup,
|
||||
'javascript'=> "var rs_backup_loaded = true;
|
||||
|
||||
jQuery('body').append('<form id=\"rs-backup-preview-form\" name=\"rs-backup-preview-form\" action=\"".RevSliderBase::$url_ajax_actions."\" target=\"rs-frame-preview\" method=\"post\"><input type=\"hidden\" id=\"rs-backup-client-action\" name=\"client_action\" value=\"\"><input type=\"hidden\" id=\"rs-nonce\" name=\"rs-nonce\" value=\"".wp_create_nonce("revslider_actions")."\"><!-- SPECIFIC FOR SLIDE PREVIEW --><input type=\"hidden\" name=\"data[id]\" value=\"\" id=\"preview-slide-backup-data\"><input type=\"hidden\" name=\"data[slide_id]\" value=\"\" id=\"preview-slide-backup-data-slide_id\"><!-- SPECIFIC FOR SLIDER PREVIEW --></form>');
|
||||
|
||||
jQuery('body').on('click', '.slide-show-backups', function(){
|
||||
var slideID = jQuery(this).data('slideid');
|
||||
|
||||
var data = {'slideID':slideID};
|
||||
UniteAdminRev.ajaxRequest('fetch_slide_backups', data, function(response){
|
||||
jQuery('#rs-backup-wrapper').html('');
|
||||
|
||||
if(response.slides !== undefined && response.slides.length > 0){
|
||||
for(var key in response.slides){
|
||||
jQuery('#rs-backup-wrapper').append('<div class=\"rs-backup-data-holder\" data-backup=\"'+response.slides[key]['id']+'\" data-slide_id=\"'+slideID+'\"><span class=\"rs-backup-time\"><span class=\"rs-backup-id\">'+response.slides[key]['id']+'.</span><i class=\"eg-icon-calendar\"></i>'+response.slides[key]['created']+'</span><span class=\"rs-load-backup\" style=\"float: right;\">".__('Load Backup', 'rs_backup')."</span><span class=\"rs-preview-backup\" style=\"float: right;\">".__('Preview Backup', 'rs_backup')."</span></div>');
|
||||
}
|
||||
}else{
|
||||
jQuery('#rs-backup-wrapper').append('<div class=\"nobackups\">".__('No backups found for the selected Slide', 'rs_backup')."</div>');
|
||||
}
|
||||
|
||||
jQuery('#dialog_select_slide_backup').dialog({
|
||||
modal:true,
|
||||
width: 580,
|
||||
height:480,
|
||||
resizable:false,
|
||||
closeOnEscape:true,
|
||||
create:function(ui) {
|
||||
jQuery(ui.target).parent().find('.ui-dialog-titlebar').addClass('tp-slider-new-dialog-title');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
jQuery('body').on('click', '.rs-close-preview', function(){
|
||||
jQuery('#dialog_preview_slide_backup').hide();
|
||||
var rs_form = jQuery('#rs-backup-preview-form');
|
||||
|
||||
jQuery('#rs-backup-client-action').val('preview_slide_backup');
|
||||
jQuery(\"#preview-slide-backup-data\").val(\"empty_output\");
|
||||
jQuery(\"#preview-slide-backup-data-slide_id\").val(\"empty_output\");
|
||||
|
||||
jQuery('#rs-preview-wrapper').hide();
|
||||
|
||||
jQuery('.rs-temp-backup-holder').remove();
|
||||
|
||||
rs_form.submit();
|
||||
});
|
||||
|
||||
jQuery(document).keyup(function(e){
|
||||
if (e.keyCode == 27) jQuery('.rs-close-backup-preview').click(); // 27 == esc
|
||||
});
|
||||
|
||||
jQuery(window).resize(function() {
|
||||
jQuery('.rs-preview-width').text(jQuery('.rs-frame-preview-wrapper').width());
|
||||
jQuery('.rs-preview-height').text(jQuery('.rs-frame-preview-wrapper').height());
|
||||
});
|
||||
|
||||
|
||||
jQuery('body').on('click', '.rs-load-backup', function(){
|
||||
var dh = jQuery(this).closest('.rs-backup-data-holder');
|
||||
if(confirm('".__('Restore Slide Backup from', 'rs_backup')." '+dh.find('.rs-backup-time').text()+'?')){
|
||||
|
||||
jQuery('.rs-close-preview').click(); //to hide the overlay if it is open
|
||||
|
||||
var backup_id = dh.data('backup');
|
||||
var slide_id = dh.data('slide_id');
|
||||
var session_id = jQuery('#rs-session-id').val();
|
||||
|
||||
|
||||
var data = {'id': backup_id, 'slide_id': slide_id, 'session_id': session_id};
|
||||
|
||||
jQuery('#dialog_select_slide_backup').dialog('close');
|
||||
|
||||
UniteAdminRev.ajaxRequest('restore_slide_backup', data, function(response){
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
jQuery('body').on('click', '.rs-preview-backup', function(){
|
||||
var dh = jQuery(this).closest('.rs-backup-data-holder');
|
||||
var backup_id = dh.data('backup');
|
||||
var slide_id = dh.data('slide_id');
|
||||
var backup_time = dh.find('.rs-backup-time').html();
|
||||
|
||||
jQuery('#dialog_select_slide_backup').dialog('close');
|
||||
|
||||
var rs_form = jQuery('#rs-backup-preview-form');
|
||||
|
||||
//set action and data
|
||||
jQuery('#rs-backup-client-action').val('preview_slide_backup');
|
||||
jQuery('#preview-slide-backup-data').val(backup_id);
|
||||
jQuery('#preview-slide-backup-data-slide_id').val(slide_id);
|
||||
|
||||
jQuery('#rs-preview-wrapper').show();
|
||||
|
||||
//add apply button under the form
|
||||
jQuery('#rs-preview-wrapper').append('<div class=\"rs-backup-data-holder rs-temp-backup-holder\" data-backup=\"'+backup_id+'\" data-slide_id=\"'+slide_id+'\"><span class=\"rs-backup-time\">'+backup_time+'</span><span class=\"rs-load-backup\">".__('Load Backup', 'rs_backup')."</span></div>');
|
||||
|
||||
rs_form.submit();
|
||||
|
||||
jQuery(window).trigger('resize');
|
||||
});
|
||||
|
||||
|
||||
var call_wb_saveEditSlide = {
|
||||
callback : function(data) {
|
||||
data.session_id = jQuery('#rs-session-id').val();
|
||||
return data;
|
||||
},
|
||||
environment : 'saveEditSlide',
|
||||
function_position : 'data'
|
||||
|
||||
};
|
||||
|
||||
|
||||
// ADD CALLBACKS
|
||||
UniteLayersRev.addon_callbacks.push(call_wb_saveEditSlide);"
|
||||
);
|
||||
|
||||
return $settings;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* adds ajax functions
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function add_backup_ajax_functions($remove_error, $action, $data, $slider, $slide, $operations){
|
||||
|
||||
switch($action){
|
||||
case 'fetch_slide_backups':
|
||||
$slide_id = $data['slideID'];
|
||||
$slide_data = self::fetch_slide_backups($slide_id, true);
|
||||
|
||||
self::ajaxResponseData(array('slides' => $slide_data));
|
||||
break;
|
||||
case 'restore_slide_backup':
|
||||
$backup_id = intval($data['id']);
|
||||
$slide_id = $data['slide_id'];
|
||||
$session_id = esc_attr($data['session_id']);
|
||||
$response = self::restore_slide_backup($backup_id, $slide_id, $session_id, $slide);
|
||||
|
||||
if($response !== true) RevSliderFunctions::throwError(__("Backup restoration failed...",'rs_backup'));
|
||||
|
||||
$urlRedirect = self::getViewUrl(self::VIEW_SLIDE,"id=$slide_id");
|
||||
$responseText = __("Backup restored, redirecting...",'rs_backup');
|
||||
self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
|
||||
break;
|
||||
case 'preview_slide_backup':
|
||||
//check if we are static or not
|
||||
|
||||
$operations = new RevSliderOperations();
|
||||
|
||||
ob_start();
|
||||
//first get data
|
||||
$backup_id = intval($data['id']);
|
||||
$slide_id = $data['slide_id'];
|
||||
|
||||
if($backup_id == "empty_output"){
|
||||
echo '<div class="message_loading_preview">'.__("Loading Preview...",'rs_backup').'</div>';
|
||||
exit();
|
||||
}
|
||||
|
||||
$my_data = self::fetch_backup($backup_id);
|
||||
|
||||
$sliderID = $my_data['slider_id'];
|
||||
|
||||
if(strpos($slide_id, 'static_') !== false){
|
||||
$my_data['slideid'] = $slide_id;
|
||||
|
||||
add_filter('revslider_enable_static_layers', array('rs_backup_slide', 'disable_static_slide_for_preview'));
|
||||
|
||||
}else{
|
||||
$my_data['slideid'] = $my_data['slide_id'];
|
||||
}
|
||||
|
||||
$my_data['params'] = (array)json_decode($my_data['params']);
|
||||
$my_data['layers'] = (array)json_decode($my_data['layers']);
|
||||
$my_data['layers'] = RevSliderFunctions::convertStdClassToArray($my_data['layers']);
|
||||
$my_data['settings'] = (array)json_decode($my_data['settings']);
|
||||
|
||||
|
||||
//asort($my_data['layers']);
|
||||
|
||||
$output = new RevSliderOutput();
|
||||
$output->setOneSlideMode($my_data);
|
||||
|
||||
$operations->previewOutput($sliderID,$output);
|
||||
$html = ob_get_contents();
|
||||
|
||||
ob_clean();
|
||||
ob_end_clean();
|
||||
|
||||
//add button to apply the Backup
|
||||
//$html .= '<div >'.__('', 'rs_backup').'</div>';
|
||||
echo $html;
|
||||
exit;
|
||||
//self::ajaxResponseData(array('markup' => $html));
|
||||
break;
|
||||
}
|
||||
|
||||
return $remove_error; // if true, then the script will just exit instead of printing an error
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* disable static layer in preview for static slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function disable_static_slide_for_preview($do_static){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* fetch backup by backup_id
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function fetch_backup($backup_id){
|
||||
global $wpdb;
|
||||
|
||||
$record = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix . 'revslider_backup_slides'." WHERE id = %s", array($backup_id)), ARRAY_A);
|
||||
|
||||
if(!empty($record)) $record = $record[0];
|
||||
|
||||
return $record;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* restore slide backup
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function restore_slide_backup($backup_id, $slide_id, $session_id, $slide = false){
|
||||
global $wpdb;
|
||||
|
||||
$backup = self::fetch_backup($backup_id);
|
||||
|
||||
if($slide == false){
|
||||
$slide = new RevSliderSlide();
|
||||
}
|
||||
|
||||
$current = $slide->getDataByID($slide_id);
|
||||
|
||||
//update the current
|
||||
if(!empty($backup) && !empty($current)){
|
||||
|
||||
//self::add_new_backup($current, $session_id);
|
||||
|
||||
$current['params'] = $backup['params'];
|
||||
$current['layers'] = $backup['layers'];
|
||||
$current['settings'] = $backup['settings'];
|
||||
$update_id = $current['id'];
|
||||
unset($current['id']);
|
||||
|
||||
if(strpos($slide_id, 'static_') !== false){
|
||||
$return = $wpdb->update(RevSliderGlobals::$table_static_slides, $current, array('id' => $update_id));
|
||||
}else{
|
||||
$return = $wpdb->update(RevSliderGlobals::$table_slides, $current, array('id' => $update_id));
|
||||
}
|
||||
//now change the backup date to current date, to set it to the last version
|
||||
$backup['created'] = date('Y-m-d H:i:s');
|
||||
$update_id = $backup['id'];
|
||||
unset($backup['id']);
|
||||
|
||||
$return1 = $wpdb->update($wpdb->prefix . 'revslider_backup_slides', $backup, array('id' => $update_id));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* fetch all slide revisions by slide_id
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function fetch_slide_backups($slide_id, $basic = false){
|
||||
global $wpdb;
|
||||
|
||||
if(strpos($slide_id, 'static_') !== false){
|
||||
$slide = new RevSliderSlide();
|
||||
$slide_id = $slide->getStaticSlideID(str_replace('static_', '', $slide_id));
|
||||
$where = array($slide_id);
|
||||
$where[] = 'true';
|
||||
}else{
|
||||
$where = array($slide_id);
|
||||
$where[] = 'false';
|
||||
}
|
||||
|
||||
if($basic){
|
||||
$record = $wpdb->get_results($wpdb->prepare("SELECT `id`, `slide_id`, `slider_id`, `created` FROM ".$wpdb->prefix . 'revslider_backup_slides'." WHERE slide_id = %s AND static = %s ORDER BY `created` ASC", $where),ARRAY_A);
|
||||
if(!empty($record)){
|
||||
foreach($record as $k => $rec){
|
||||
$record[$k]['created'] = RevSliderFunctionsWP::convertPostDate($rec['created'], true);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$record = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->prefix . "revslider_backup_slides WHERE slide_id = %s AND static = %s", $where), ARRAY_A);
|
||||
}
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if a new backup should be created
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function check_add_new_backup($slide_data, $ajax_data, $slide_class){
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$record = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".RevSliderGlobals::$table_slides." WHERE id = %s", array($slide_class->getID())), ARRAY_A);
|
||||
|
||||
if(!empty($record)){
|
||||
self::add_new_backup($record[0], esc_attr($ajax_data['session_id']));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if a new backup should be created
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function check_add_new_backup_static($slide_data, $ajax_data, $slide_class){
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$record = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".RevSliderGlobals::$table_static_slides." WHERE id = %s", array($slide_class->getID())), ARRAY_A);
|
||||
|
||||
if(!empty($record)){
|
||||
self::add_new_backup($record[0], esc_attr($ajax_data['session_id']), 'true');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add new slide backup
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function add_new_backup($slide, $session_id, $static = 'false'){
|
||||
global $wpdb;
|
||||
|
||||
$slide['slide_id'] = $slide['id'];
|
||||
unset($slide['id']);
|
||||
|
||||
$slide['created'] = date('Y-m-d H:i:s');
|
||||
$slide['session'] = $session_id;
|
||||
$slide['static'] = $static;
|
||||
|
||||
//check if session_id exists, if yes then update
|
||||
$row = $wpdb->get_results($wpdb->prepare("SELECT id FROM ".$wpdb->prefix . "revslider_backup_slides WHERE session = %s AND slide_id = %s", array($session_id, $slide['slide_id'])), ARRAY_A);
|
||||
if(!empty($row) && isset($row[0]) && !empty($row[0])){
|
||||
$wpdb->update($wpdb->prefix . "revslider_backup_slides", $slide, array('id' => $row[0]['id']));
|
||||
}else{
|
||||
$wpdb->insert($wpdb->prefix . "revslider_backup_slides", $slide);
|
||||
}
|
||||
|
||||
$cur = self::check_backup_num($slide['slide_id']);
|
||||
|
||||
if($cur > 11){
|
||||
$early = self::get_oldest_backup($slide['slide_id']);
|
||||
|
||||
if($early !== false){
|
||||
self::delete_backup($early['id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* delete a backup of a slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function delete_backup($id){
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->query($wpdb->prepare("DELETE FROM ".$wpdb->prefix . "revslider_backup_slides WHERE id = %s", array($id)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* delete all backup of a slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function delete_backup_full($id){
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->query($wpdb->prepare("DELETE FROM ".$wpdb->prefix . "revslider_backup_slides WHERE slide_id = %s", array($id)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* delete all backup of a slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function delete_backup_full_slider($id){
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->query($wpdb->prepare("DELETE FROM ".$wpdb->prefix . "revslider_backup_slides WHERE slider_id = %s", array($id)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get all slide backups by slide ID
|
||||
* @since: 1.0.0
|
||||
**/
|
||||
public static function get_slide_backup($slide_id, $static = 'false'){
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$slides = $wpdb->get_results($wpdb->prepare("SELECT `id`, `slide_id`, `slide_order`, `params`, `layers`, `settings`, `created` FROM ".$wpdb->prefix."revslider_backup_slides WHERE slide_id = %s AND static = %s ORDER BY id ASC", array($slide_id, $static)), ARRAY_A);
|
||||
if(!empty($slides)){
|
||||
return $slides[0];
|
||||
}else{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get oldest backup of a slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function get_oldest_backup($slide_id){
|
||||
global $wpdb;
|
||||
|
||||
$early = $wpdb->get_results($wpdb->prepare("SELECT id FROM ".$wpdb->prefix . "revslider_backup_slides WHERE slide_id = %s ORDER BY `created` ASC LIMIT 0,1", array($slide_id)), ARRAY_A);
|
||||
if(!empty($early)){
|
||||
return $early[0];
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check for the number of backups for a slide
|
||||
* @since: 1.0.0
|
||||
*/
|
||||
public static function check_backup_num($slide_id){
|
||||
global $wpdb;
|
||||
|
||||
$cur = $wpdb->get_results($wpdb->prepare("SELECT COUNT(*) AS `row` FROM ".$wpdb->prefix . "revslider_backup_slides WHERE slide_id = %s GROUP BY `slide_id`", array($slide_id)), ARRAY_A);
|
||||
|
||||
if(!empty($cur)){
|
||||
return $cur[0]['row'];
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create/Update Database Tables
|
||||
*/
|
||||
public static function create_tables($networkwide = false){
|
||||
global $wpdb;
|
||||
|
||||
if(function_exists('is_multisite') && is_multisite() && $networkwide){ //do for each existing site
|
||||
|
||||
$old_blog = $wpdb->blogid;
|
||||
|
||||
// Get all blog ids and create tables
|
||||
$blogids = $wpdb->get_col("SELECT blog_id FROM ".$wpdb->blogs);
|
||||
|
||||
foreach($blogids as $blog_id){
|
||||
switch_to_blog($blog_id);
|
||||
self::_create_tables();
|
||||
}
|
||||
|
||||
switch_to_blog($old_blog); //go back to correct blog
|
||||
|
||||
}else{ //no multisite, do normal installation
|
||||
|
||||
self::_create_tables();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create Tables, edited for multisite
|
||||
* @since 1.5.0
|
||||
*/
|
||||
public static function _create_tables(){
|
||||
|
||||
global $wpdb;
|
||||
|
||||
//Create/Update Grids Database
|
||||
$grid_ver = get_option("revslider_backup_table_version", '0.99');
|
||||
|
||||
if(version_compare($grid_ver, '1', '<')){
|
||||
|
||||
//require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
||||
|
||||
$table_name = $wpdb->prefix . 'revslider_backup_slides';
|
||||
$sql = "CREATE TABLE " .$table_name ." (
|
||||
id int(9) NOT NULL AUTO_INCREMENT,
|
||||
slide_id int(9) NOT NULL,
|
||||
slider_id int(9) NOT NULL,
|
||||
slide_order int not NULL,
|
||||
params LONGTEXT NOT NULL,
|
||||
layers LONGTEXT NOT NULL,
|
||||
settings TEXT NOT NULL,
|
||||
created DATETIME NOT NULL,
|
||||
session VARCHAR(100) NOT NULL,
|
||||
static VARCHAR(20) NOT NULL,
|
||||
UNIQUE KEY id (id)
|
||||
);";
|
||||
|
||||
dbDelta($sql);
|
||||
|
||||
update_option('revslider_backup_table_version', '1');
|
||||
|
||||
$grid_ver = '1';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link http://www.themepunch.com/
|
||||
* @copyright 2016 ThemePunch
|
||||
*/
|
||||
|
||||
if( !defined( 'ABSPATH') ) exit();
|
||||
|
||||
class rs_backup_update {
|
||||
private $plugin_url = 'http://codecanyon.net/item/slider-revolution-responsive-wordpress-plugin/2751380';
|
||||
private $remote_url = 'http://updates.themepunch.tools/check_for_updates.php';
|
||||
private $remote_url_info = 'http://updates.themepunch.tools/addons/revslider-backup-addon/revslider-backup-addon.php';
|
||||
private $plugin_slug = 'revslider-backup-addon';
|
||||
private $plugin_path = 'revslider-backup-addon/revslider-backup-addon.php';
|
||||
private $version;
|
||||
private $plugins;
|
||||
private $option;
|
||||
|
||||
|
||||
public function __construct($version) {
|
||||
$this->option = $this->plugin_slug . '_update_info';
|
||||
$this->_retrieve_version_info();
|
||||
$this->version = $version;
|
||||
}
|
||||
|
||||
public function delete_update_transients() {
|
||||
delete_transient( 'update_themes' );
|
||||
delete_transient( 'update_plugins' );
|
||||
delete_site_transient( 'update_plugins' );
|
||||
delete_site_transient( 'update_themes' );
|
||||
}
|
||||
|
||||
|
||||
public function add_update_checks(){
|
||||
|
||||
add_filter('pre_set_site_transient_update_plugins', array(&$this, 'set_update_transient'));
|
||||
add_filter('plugins_api', array(&$this, 'set_updates_api_results'), 10, 3);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function set_update_transient($transient) {
|
||||
|
||||
$this->_check_updates();
|
||||
|
||||
if(isset($transient) && !isset($transient->response)) {
|
||||
$transient->response = array();
|
||||
}
|
||||
|
||||
if(!empty($this->data->basic) && is_object($this->data->basic)) {
|
||||
if(version_compare($this->version, $this->data->basic->version, '<')) {
|
||||
|
||||
$this->data->basic->new_version = $this->data->basic->version;
|
||||
$transient->response[$this->plugin_path] = $this->data->basic;
|
||||
}
|
||||
}
|
||||
|
||||
return $transient;
|
||||
}
|
||||
|
||||
|
||||
public function set_updates_api_results($result, $action, $args) {
|
||||
|
||||
$this->_check_updates();
|
||||
|
||||
if(isset($args->slug) && $args->slug == $this->plugin_slug && $action == 'plugin_information') {
|
||||
if(is_object($this->data->full) && !empty($this->data->full)) {
|
||||
$result = $this->data->full;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
protected function _check_updates() {
|
||||
|
||||
$force_check = false;
|
||||
|
||||
if( (isset($_GET['checkforupdates']) && $_GET['checkforupdates'] == 'true') || isset($_GET["force-check"])) $force_check = true;
|
||||
|
||||
|
||||
// Get data
|
||||
if(empty($this->data)) {
|
||||
$data = get_option($this->option, false);
|
||||
$data = $data ? $data : new stdClass;
|
||||
|
||||
$this->data = is_object($data) ? $data : maybe_unserialize($data);
|
||||
}
|
||||
|
||||
$last_check = get_option('rs_backup-update-check');
|
||||
|
||||
|
||||
if($last_check == false){ //first time called
|
||||
$last_check = time();
|
||||
update_option('rs_backup-update-check', $last_check);
|
||||
}
|
||||
|
||||
// Check for updates
|
||||
if(time() - $last_check > 172800 || $force_check == true){
|
||||
|
||||
$data = $this->_retrieve_update_info();
|
||||
|
||||
if(isset($data->basic)) {
|
||||
update_option('rs_backup-update-check', time());
|
||||
|
||||
$this->data->checked = time();
|
||||
$this->data->basic = $data->basic;
|
||||
$this->data->full = $data->full;
|
||||
|
||||
//update_option('rs_backup-stable-version', $data->full->stable);
|
||||
update_option('rs_backup-latest-version', $data->full->version);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Save results
|
||||
update_option($this->option, $this->data);
|
||||
}
|
||||
|
||||
|
||||
public function _retrieve_update_info() {
|
||||
|
||||
global $wp_version;
|
||||
$data = new stdClass;
|
||||
|
||||
// Build request
|
||||
|
||||
$validated = get_option('rs_backup-valid', 'false');
|
||||
$purchase = (get_option('revslider-valid', 'false') == 'true') ? get_option('revslider-code', '') : '';
|
||||
$rattr = array(
|
||||
'code' => urlencode($purchase),
|
||||
'version' => urlencode(RS_BACKUP_VERSION)
|
||||
);
|
||||
|
||||
$request = wp_remote_post($this->remote_url_info, array(
|
||||
'user-agent' => 'WordPress/'.$wp_version.'; '.get_bloginfo('url'),
|
||||
'body' => $rattr
|
||||
));
|
||||
|
||||
if(!is_wp_error($request)) {
|
||||
if($response = maybe_unserialize($request['body'])) {
|
||||
if(is_object($response)) {
|
||||
$data = $response;
|
||||
|
||||
$data->basic->url = $this->plugin_url;
|
||||
$data->full->url = $this->plugin_url;
|
||||
$data->full->external = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
public function _retrieve_version_info($force_check = false) {
|
||||
global $wp_version;
|
||||
|
||||
$last_check = get_option('rs_backup-update-check-short');
|
||||
if($last_check == false){ //first time called
|
||||
$last_check = time();
|
||||
update_option('rs_backup-update-check-short', $last_check);
|
||||
}
|
||||
|
||||
// Check for updates
|
||||
if(time() - $last_check > 172800 || $force_check == true){
|
||||
|
||||
|
||||
update_option('rs_backup-update-check-short', time());
|
||||
|
||||
$purchase = (get_option('revslider-valid', 'false') == 'true') ? get_option('revslider-code', '') : '';
|
||||
|
||||
|
||||
$response = wp_remote_post($this->remote_url, array(
|
||||
'user-agent' => 'WordPress/'.$wp_version.'; '.get_bloginfo('url'),
|
||||
'body' => array(
|
||||
'item' => urlencode('revslider-backup-addon'),
|
||||
'version' => urlencode(RS_BACKUP_VERSION),
|
||||
'code' => urlencode($purchase)
|
||||
)
|
||||
));
|
||||
|
||||
$response_code = wp_remote_retrieve_response_code( $response );
|
||||
$version_info = wp_remote_retrieve_body( $response );
|
||||
|
||||
if ( $response_code != 200 || is_wp_error( $version_info ) ) {
|
||||
update_option('rs_backup-connection', false);
|
||||
return false;
|
||||
}else{
|
||||
update_option('rs_backup-connection', true);
|
||||
}
|
||||
|
||||
/*
|
||||
$version_info = json_decode($version_info);
|
||||
if(isset($version_info->version)){
|
||||
update_option('rs_backup-latest-version', $version_info->version);
|
||||
}
|
||||
|
||||
if(isset($version_info->notices)){
|
||||
update_option('rs_backup-notices', $version_info->notices);
|
||||
}
|
||||
|
||||
if(isset($version_info->dashboard)){
|
||||
update_option('rs_backup-dashboard', $version_info->dashboard);
|
||||
}
|
||||
|
||||
if(isset($version_info->deactivated) && $version_info->deactivated === true){
|
||||
if(get_option('rs_backup-valid', 'false') == 'true'){
|
||||
//remove validation, add notice
|
||||
update_option('rs_backup-valid', 'false');
|
||||
update_option('rs_backup-deact-notice', true);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
if($force_check == true){ //force that the update will be directly searched
|
||||
update_option('rs_backup-update-check', '');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/**
|
||||
* Provide a admin area view for the plugin
|
||||
*
|
||||
* This file is used to markup the admin-facing aspects of the plugin.
|
||||
*
|
||||
* @link http://www.themepunch.com
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @package Slider Revolution Backup Add-on
|
||||
*/
|
||||
|
||||
if( !defined( 'ABSPATH') ) exit();
|
||||
?>
|
||||
<div id="rev_addon_backup_settings_slideout" class="rs-sbs-slideout-wrapper" style="display:none">
|
||||
<div class="rs-sbs-header">
|
||||
<div class="rs-sbs-step"><i class="eg-icon-cog"></i></div>
|
||||
<div class="rs-sbs-title"><?php _e('How to use Backups', 'rs_backup'); ?></div>
|
||||
<div class="rs-sbs-close"><i class="eg-icon-cancel"></i></div>
|
||||
</div>
|
||||
<div class="tp-clearfix"></div>
|
||||
<div class="rs-sbs-slideout-inner">
|
||||
|
||||
<!-- Start Settings -->
|
||||
<h3 class="tp-steps wb"><span>1</span> <?php _e('"Add-ons" Tab','rs_backup'); ?></h3>
|
||||
<img src="<?php echo RS_BACKUP_PLUGIN_URL . "admin/assets/images/tutorial1.png"; ?>">
|
||||
<div class="wb-featuretext"><?php _e('Right after installing the Backup add-on, you are ready for action!','rs_backup'); ?></div>
|
||||
|
||||
<h3 class="tp-steps wb"><span>2</span> <?php _e('Select "Backups"','rs_backup'); ?></h3>
|
||||
<img src="<?php echo RS_BACKUP_PLUGIN_URL . "admin/assets/images/tutorial2.png"; ?>">
|
||||
<div class="wb-featuretext"><?php _e('Click on the Backups button to reveal the "Show available Backups for this Slide" button.','rs_backup'); ?></div>
|
||||
|
||||
<h3 class="tp-steps wb"><span>3</span> <?php _e('Backups List','rs_backup'); ?></h3>
|
||||
<img src="<?php echo RS_BACKUP_PLUGIN_URL . "admin/assets/images/tutorial3.png"; ?>">
|
||||
<div class="wb-featuretext"><?php _e('Preview or load directly the desired backup from a rotating list of 11 backups.','rs_backup'); ?></div>
|
||||
|
||||
<h3 class="tp-steps wb"><span>4</span> <?php _e('Preview Backup','rs_backup'); ?></h3>
|
||||
<img src="<?php echo RS_BACKUP_PLUGIN_URL . "admin/assets/images/tutorial4.png"; ?>">
|
||||
<div class="wb-featuretext"><?php _e('Preview the slide backup with the possibility to load it.','rs_backup'); ?></div>
|
||||
|
||||
<!-- End Settings -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link http://www.themepunch.com/
|
||||
* @copyright 2016 ThemePunch
|
||||
*/
|
||||
|
||||
if( !defined( 'ABSPATH') ) exit();
|
||||
|
||||
class rs_backup_base {
|
||||
|
||||
public function __construct(){
|
||||
try{
|
||||
if(class_exists('RevSliderFront')){ //check if Slider Revolution is installed
|
||||
if(version_compare(RevSliderGlobals::SLIDER_REVISION, '5.2.0', '>=')){
|
||||
if(get_option('revslider-valid', 'false') == 'true'){
|
||||
|
||||
self::load_plugin_textdomain();
|
||||
|
||||
if(is_admin()){
|
||||
|
||||
require_once(RS_BACKUP_PLUGIN_PATH.'admin/includes/slide.class.php');
|
||||
|
||||
rs_backup_slide::init_backup();
|
||||
|
||||
//Updates
|
||||
require_once(RS_BACKUP_PLUGIN_PATH.'admin/includes/update.class.php');
|
||||
$update_admin = new rs_backup_update(RS_BACKUP_VERSION);
|
||||
add_filter( 'pre_set_site_transient_update_plugins', array($update_admin ,'set_update_transient') );
|
||||
add_filter( 'plugins_api', array($update_admin ,'set_updates_api_results'),10,3 );
|
||||
|
||||
//Dashboard Slideout
|
||||
add_filter('rev_addon_dash_slideouts',array('rs_backup_base','display_plugin_admin_page'));
|
||||
add_action('admin_enqueue_scripts', array('rs_backup_base', 'enqueue_dash_scripts'));
|
||||
add_action('admin_enqueue_scripts', array('rs_backup_base', 'enqueue_dash_style'));
|
||||
}
|
||||
}else{
|
||||
add_action('admin_notices', array('rs_backup_base', 'add_notice_activation'));
|
||||
//add notification that slider revolution needs to be activated
|
||||
}
|
||||
}else{
|
||||
add_action('admin_notices', array('rs_backup_base', 'add_notice_version'));
|
||||
//add notification that plugin version of Slider Revolution has to be at least version 5.2.0
|
||||
}
|
||||
}else{
|
||||
add_action('admin_notices', array('rs_backup_base', 'add_notice_plugin'));
|
||||
//add notification that plugin Slider Revolution has to be installed
|
||||
}
|
||||
}catch(Exception $e){
|
||||
$message = $e->getMessage();
|
||||
$trace = $e->getTraceAsString();
|
||||
echo _e("Slider Revolution Backup Add-On:",'rs_backup')." <b>".$message."</b>";
|
||||
}
|
||||
}
|
||||
|
||||
public static function add_notice_plugin(){
|
||||
?>
|
||||
<div class="error below-h2 wb-notice-wrap" id="message"><p><?php _e('To use Slider Revolution Backup Add-on, please install Slider Revolution for WordPress', 'rs_backup'); ?></p></div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
public static function add_notice_version(){
|
||||
?>
|
||||
<div class="error below-h2 wb-notice-wrap" id="message"><p><?php _e('To use Slider Revolution Backup Add-on, please update Slider Revolution for WordPress to version 5.2.0 or later', 'rs_backup'); ?></p></div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
public static function add_notice_activation(){
|
||||
?>
|
||||
<div class="error below-h2 wb-notice-wrap" id="message"><p><?php _e('To use Slider Revolution Backup Add-on, please activate Slider Revolution for WordPress', 'rs_backup'); ?></p></div>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function load_plugin_textdomain(){
|
||||
load_plugin_textdomain('rs_backup', false, RS_BACKUP_PLUGIN_PATH . 'languages/');
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the settings page for this plugin.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function display_plugin_admin_page() {
|
||||
include_once( RS_BACKUP_PLUGIN_PATH . 'admin/views/admin-display.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the JavaScript for the admin area.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function enqueue_dash_scripts() {
|
||||
if(isset($_GET["page"]) && $_GET["page"]=="rev_addon"){
|
||||
wp_enqueue_script( "rs_backup_dash", RS_BACKUP_PLUGIN_URL . 'admin/assets/js/backup_dash-admin.js', array( 'jquery' ), RS_BACKUP_VERSION, false );
|
||||
wp_localize_script( 'rs_backup', 'rs_backup', array(
|
||||
'ajax_url' => admin_url( 'admin-ajax.php' )
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the CSS for the admin area.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function enqueue_dash_style() {
|
||||
if(isset($_GET["page"]) && $_GET["page"]=="rev_addon"){
|
||||
wp_enqueue_style( "rs_backup_dash", RS_BACKUP_PLUGIN_URL . 'admin/assets/css/backup-dash-admin.css', array() , RS_BACKUP_VERSION );
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,20 @@
|
||||
<div class="slider-revolution-update-list">
|
||||
<h3 class="version-number">Version 1.0.1 (18th March 2016)</h3>
|
||||
<div class="change"><strong style="font-weight:700">CHANGES</strong></div>
|
||||
<ul>
|
||||
<li>Added transient to the update checks for less server calls</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="version-number">Version 1.0.0 (19th January 2016)</h3>
|
||||
<div class="newfeature"><strong style="font-weight:700">NEW FEATURES</strong></div>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
<div class="change"><strong style="font-weight:700">CHANGES</strong></div>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
<div class="bugfix"><strong style="font-weight:700">BUGFIXES</strong></div>
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: Slider Revolution Backup Add-on
|
||||
Plugin URI: http://www.themepunch.com/
|
||||
Description: Make Backups Revisions for your safety
|
||||
Author: ThemePunch
|
||||
Version: 1.0.1
|
||||
Author URI: http://themepunch.com
|
||||
*/
|
||||
|
||||
// If this file is called directly, abort.
|
||||
if ( ! defined( 'WPINC' ) ) {
|
||||
die;
|
||||
}
|
||||
|
||||
define( 'RS_BACKUP_PLUGIN_URL', str_replace('index.php','',plugins_url( 'index.php', __FILE__ )));
|
||||
define( 'RS_BACKUP_PLUGIN_PATH', plugin_dir_path(__FILE__) );
|
||||
define( 'RS_BACKUP_FILE_PATH', __FILE__ );
|
||||
define( 'RS_BACKUP_VERSION', '1.0.1');
|
||||
|
||||
|
||||
require_once(RS_BACKUP_PLUGIN_PATH.'includes/base.class.php');
|
||||
|
||||
add_action('plugins_loaded', 'rs_backup_init');
|
||||
|
||||
function rs_backup_init(){
|
||||
$wb_base = new rs_backup_base();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Register hooks that are fired when the plugin is activated or deactivated.
|
||||
* When the plugin is deleted, the uninstall.php file is loaded.
|
||||
*/
|
||||
register_activation_hook( __FILE__, array('rs_backup_slide', 'create_tables' ));
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
if( !defined( 'ABSPATH') && !defined('WP_UNINSTALL_PLUGIN') )
|
||||
exit();
|
||||
|
||||
delete_option('revslider_backup_table_version');
|
||||
?>
|
||||
Reference in New Issue
Block a user