update
This commit is contained in:
@@ -0,0 +1,417 @@
|
||||
<?php
|
||||
|
||||
if (!defined('WPVIVID_PLUGIN_DIR')){
|
||||
die;
|
||||
}
|
||||
class WPvivid_Backuplist
|
||||
{
|
||||
public static function get_backup_by_id($id)
|
||||
{
|
||||
$lists[]='wpvivid_backup_list';
|
||||
$lists=apply_filters('wpvivid_get_backuplist_name',$lists);
|
||||
foreach ($lists as $list_name)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option($list_name);
|
||||
if(!empty($list))
|
||||
{
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if ($id == $k)
|
||||
{
|
||||
return $backup;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function update_backup_option($backup_id,$backup_new)
|
||||
{
|
||||
$lists[]='wpvivid_backup_list';
|
||||
$lists=apply_filters('wpvivid_get_backuplist_name',$lists);
|
||||
foreach ($lists as $list_name)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option($list_name);
|
||||
if(!empty($list))
|
||||
{
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if ($backup_id == $k)
|
||||
{
|
||||
$list[$backup_id]=$backup_new;
|
||||
WPvivid_Setting::update_option($list_name,$list);
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function get_backuplist($list_name='')
|
||||
{
|
||||
$list=array();
|
||||
add_filter('wpvivid_get_backuplist',array('WPvivid_Backuplist','get_backup_list'),10,2);
|
||||
$list=apply_filters('wpvivid_get_backuplist',$list,$list_name);
|
||||
return $list;
|
||||
}
|
||||
|
||||
public static function get_backup_list($list,$list_name)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
$list =self::sort_list($list);
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
public static function get_backuplist_by_id($id){
|
||||
$list = array();
|
||||
add_filter('wpvivid_get_backuplist_by_id',array('WPvivid_Backuplist','get_backup_list_by_id'), 10 , 2);
|
||||
$ret=apply_filters('wpvivid_get_backuplist_by_id',$list,$id);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public static function get_backup_list_by_id($list, $id)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if ($id == $k)
|
||||
{
|
||||
$ret['list_name'] = 'wpvivid_backup_list';
|
||||
$ret['list_data'] = $list;
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function get_backuplist_by_key($key)
|
||||
{
|
||||
add_filter('wpvivid_get_backuplist_item',array('WPvivid_Backuplist','get_backuplist_item'),10,2);
|
||||
$backup=false;
|
||||
$backup=apply_filters('wpvivid_get_backuplist_item',$backup,$key);
|
||||
return $backup;
|
||||
}
|
||||
|
||||
public static function get_backuplist_item($backup,$key)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if ($key == $k)
|
||||
{
|
||||
return $backup;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function update_backup($id,$key,$data)
|
||||
{
|
||||
add_action('wpvivid_update_backup',array('WPvivid_Backuplist', 'update_backup_item'),10,3);
|
||||
do_action('wpvivid_update_backup',$id,$key,$data);
|
||||
}
|
||||
|
||||
public static function update_backup_item($id,$key,$data)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
if(array_key_exists($id,$list))
|
||||
{
|
||||
$list[$id][$key]=$data;
|
||||
WPvivid_Setting::update_option('wpvivid_backup_list',$list);
|
||||
}
|
||||
}
|
||||
|
||||
public static function add_new_upload_backup($task_id,$backup,$time,$log='')
|
||||
{
|
||||
$backup_data=array();
|
||||
$backup_data['type']='Upload';
|
||||
$backup_data['create_time']=$time;
|
||||
$backup_data['manual_delete']=0;
|
||||
$backup_data['local']['path']=WPvivid_Setting::get_backupdir();
|
||||
$backup_data['compress']['compress_type']='zip';
|
||||
$backup_data['save_local']=1;
|
||||
$backup_data['log']=$log;
|
||||
|
||||
$backup_data['backup']=$backup;
|
||||
$backup_data['remote']=array();
|
||||
$backup_data['lock']=0;
|
||||
$backup_list='wpvivid_backup_list';
|
||||
|
||||
$backup_list=apply_filters('get_wpvivid_backup_list_name',$backup_list,$task_id,$backup_data);
|
||||
|
||||
$list = WPvivid_Setting::get_option($backup_list);
|
||||
$list[$task_id]=$backup_data;
|
||||
WPvivid_Setting::update_option($backup_list,$list);
|
||||
}
|
||||
|
||||
public static function delete_backup($key)
|
||||
{
|
||||
$lists[]='wpvivid_backup_list';
|
||||
$lists=apply_filters('wpvivid_get_backuplist_name',$lists);
|
||||
foreach ($lists as $list_name)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option($list_name);
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if ($key == $k)
|
||||
{
|
||||
unset($list[$key]);
|
||||
WPvivid_Setting::update_option($list_name, $list);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function sort_list($list)
|
||||
{
|
||||
if($list !== false)
|
||||
{
|
||||
uasort ($list,function($a, $b)
|
||||
{
|
||||
if($a['create_time']>$b['create_time'])
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else if($a['create_time']===$b['create_time'])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
public static function get_oldest_backup_id($list)
|
||||
{
|
||||
$oldest_id='';
|
||||
$oldest=0;
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if(!array_key_exists('lock',$backup) || (isset($backup['lock']) && $backup['lock'] == '0'))
|
||||
{
|
||||
if ($oldest == 0)
|
||||
{
|
||||
$oldest = $backup['create_time'];
|
||||
$oldest_id = $k;
|
||||
} else {
|
||||
if ($oldest > $backup['create_time'])
|
||||
{
|
||||
$oldest_id = $k;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $oldest_id;
|
||||
}
|
||||
|
||||
public static function check_backuplist_limit($max_count)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
foreach ($list as $key=>$value)
|
||||
{
|
||||
if(isset($value['lock']) && $value['lock'] == 1)
|
||||
{
|
||||
unset($list[$key]);
|
||||
}
|
||||
}
|
||||
if($list !== false)
|
||||
{
|
||||
$size=sizeof($list);
|
||||
}
|
||||
else
|
||||
{
|
||||
$size = 0;
|
||||
}
|
||||
if($size>=$max_count)
|
||||
{
|
||||
$oldest_id=self::get_oldest_backup_id($list);
|
||||
if(empty($oldest_id))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $oldest_id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function get_out_of_date_backuplist($max_count)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
foreach ($list as $key=>$value)
|
||||
{
|
||||
if(isset($value['lock']) && $value['lock'] == 1)
|
||||
{
|
||||
unset($list[$key]);
|
||||
}
|
||||
}
|
||||
if($list !== false)
|
||||
{
|
||||
$size=sizeof($list);
|
||||
}
|
||||
else
|
||||
{
|
||||
$size = 0;
|
||||
}
|
||||
$out_of_date_list=array();
|
||||
|
||||
if($max_count==0)
|
||||
return $out_of_date_list;
|
||||
|
||||
while($size>$max_count)
|
||||
{
|
||||
$oldest_id=self::get_oldest_backup_id($list);
|
||||
|
||||
if(!empty($oldest_id))
|
||||
{
|
||||
$out_of_date_list[]=$oldest_id;
|
||||
unset($list[$oldest_id]);
|
||||
}
|
||||
$new_size=sizeof($list);
|
||||
if($new_size==$size)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$size=$new_size;
|
||||
}
|
||||
}
|
||||
|
||||
return $out_of_date_list;
|
||||
}
|
||||
|
||||
public static function get_out_of_date_backuplist_info($max_count)
|
||||
{
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
if($list !== false)
|
||||
{
|
||||
$size=sizeof($list);
|
||||
}
|
||||
else
|
||||
{
|
||||
$size = 0;
|
||||
}
|
||||
$out_of_date_list['size']=0;
|
||||
$out_of_date_list['count']=0;
|
||||
|
||||
if($max_count==0)
|
||||
return $out_of_date_list;
|
||||
|
||||
while($size>$max_count)
|
||||
{
|
||||
$oldest_id=self::get_oldest_backup_id($list);
|
||||
|
||||
if(!empty($oldest_id))
|
||||
{
|
||||
$out_of_date_list['size']+=self::get_size($oldest_id);
|
||||
$out_of_date_list['count']++;
|
||||
unset($list[$oldest_id]);
|
||||
}
|
||||
$new_size=sizeof($list);
|
||||
if($new_size==$size)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$size=$new_size;
|
||||
}
|
||||
}
|
||||
|
||||
return $out_of_date_list;
|
||||
}
|
||||
|
||||
public static function get_size($backup_id)
|
||||
{
|
||||
$size=0;
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
$backup=$list[$backup_id];
|
||||
if(isset($backup['backup']['files'])){
|
||||
foreach ($backup['backup']['files'] as $file) {
|
||||
$size+=$file['size'];
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(isset($backup['backup']['data']['type'])){
|
||||
foreach ($backup['backup']['data']['type'] as $type) {
|
||||
foreach ($type['files'] as $file) {
|
||||
$size+=$file['size'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
public static function set_security_lock($backup_id,$lock)
|
||||
{
|
||||
//$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
$ret = self::get_backuplist_by_id($backup_id);
|
||||
if($ret !== false) {
|
||||
$list = $ret['list_data'];
|
||||
if (array_key_exists($backup_id, $list)) {
|
||||
if ($lock == 1) {
|
||||
$list[$backup_id]['lock'] = 1;
|
||||
}
|
||||
else {
|
||||
if (array_key_exists('lock', $list[$backup_id])) {
|
||||
unset($list[$backup_id]['lock']);
|
||||
}
|
||||
}
|
||||
}
|
||||
WPvivid_Setting::update_option($ret['list_name'], $list);
|
||||
}
|
||||
|
||||
$ret['result'] = 'success';
|
||||
$list = WPvivid_Setting::get_option($ret['list_name']);
|
||||
if (array_key_exists($backup_id, $list)) {
|
||||
if (isset($list[$backup_id]['lock'])) {
|
||||
if ($list[$backup_id]['lock'] == 1) {
|
||||
$backup_lock = '/admin/partials/images/locked.png';
|
||||
$lock_status = 'lock';
|
||||
$ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
|
||||
} else {
|
||||
$backup_lock = '/admin/partials/images/unlocked.png';
|
||||
$lock_status = 'unlock';
|
||||
$ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
|
||||
}
|
||||
} else {
|
||||
$backup_lock = '/admin/partials/images/unlocked.png';
|
||||
$lock_status = 'unlock';
|
||||
$ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
|
||||
}
|
||||
} else {
|
||||
$backup_lock = '/admin/partials/images/unlocked.png';
|
||||
$lock_status = 'unlock';
|
||||
$ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public static function get_has_remote_backuplist()
|
||||
{
|
||||
$backup_id_list=array();
|
||||
$list = WPvivid_Setting::get_option('wpvivid_backup_list');
|
||||
foreach ($list as $k=>$backup)
|
||||
{
|
||||
if(!empty($backup['remote']))
|
||||
{
|
||||
$backup_id_list[]=$k;
|
||||
}
|
||||
}
|
||||
return $backup_id_list;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user