Migration, Backup, Staging – WPvivid - Version 0.9.37

Version Description

  • Changed the time in the name of the backup zip to the sites local time.
  • Changed the time showed in the backup list and log list to the sites local time.
  • Fixed some bugs in the plugin code.
Download this release

Release Info

Developer wpvivid
Plugin Icon 128x128 Migration, Backup, Staging – WPvivid
Version 0.9.37
Comparing to
See all releases

Code changes from version 0.9.36 to 0.9.37

admin/js/wpvivid-admin.js CHANGED
@@ -83,28 +83,6 @@ function wpvivid_popup_tour(style) {
83
  }
84
  }
85
 
86
- function click_dismiss_restore_notice(obj){
87
- wpvivid_display_restore_backup = false;
88
- jQuery(obj).parent().remove();
89
- }
90
-
91
- function wpvivid_click_how_to_restore_backup(){
92
- if(!wpvivid_display_restore_backup){
93
- wpvivid_display_restore_backup = true;
94
- var top = jQuery('#wpvivid_how_to_restore_backup_describe').offset().top-jQuery('#wpvivid_how_to_restore_backup_describe').height();
95
- jQuery('html, body').animate({scrollTop:top}, 'slow');
96
- var div = "<div class='notice notice-info is-dismissible inline'>" +
97
- "<p>Step One: In the backup list, click the 'Restore' button on the backup you want to restore. This will bring up the restore tab</p>" +
98
- "<p>Step Two: Choose an option to complete restore, if any</p>" +
99
- "<p>Step Three: Click 'Restore' button</p>" +
100
- "<button type='button' class='notice-dismiss' onclick='click_dismiss_restore_notice(this);'>" +
101
- "<span class='screen-reader-text'>Dismiss this notice.</span>" +
102
- "</button>" +
103
- "</div>";
104
- jQuery('#wpvivid_how_to_restore_backup').append(div);
105
- }
106
- }
107
-
108
  window.onbeforeunload = function(e) {
109
  if (wpvivid_settings_changed) {
110
  if (wpvivid_location_href){
83
  }
84
  }
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  window.onbeforeunload = function(e) {
87
  if (wpvivid_settings_changed) {
88
  if (wpvivid_location_href){
admin/partials/wpvivid-admin-display.php CHANGED
@@ -29,6 +29,13 @@ $schedule=WPvivid_Schedule::get_schedule();
29
 
30
  do_action('show_notice');
31
 
 
 
 
 
 
 
 
32
  ?>
33
 
34
  <?php
@@ -46,7 +53,7 @@ foreach ($page_array as $page_name){
46
  <h1><?php
47
  $plugin_display_name = 'WPvivid Backup Plugin';
48
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
49
- _e($plugin_display_name);
50
  ?></h1>
51
  <div id="wpvivid_backup_notice">
52
  <?php
29
 
30
  do_action('show_notice');
31
 
32
+ add_filter('wpvivid_tran_test', 'wpvivid_tran_test');
33
+ function wpvivid_tran_test($content){
34
+ $content = str_replace('wpvivid', 'Other trademarks', $content);
35
+ $content = str_replace('WPvivid', 'Other trademarks', $content);
36
+ return $content;
37
+ }
38
+
39
  ?>
40
 
41
  <?php
53
  <h1><?php
54
  $plugin_display_name = 'WPvivid Backup Plugin';
55
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
56
+ echo apply_filters('wpvivid_tran_test', __('WPvivid Backup Plugin', 'wpvivid'));
57
  ?></h1>
58
  <div id="wpvivid_backup_notice">
59
  <?php
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -17,19 +17,19 @@ function wpvivid_add_backup_type($html, $type_name)
17
  <label>
18
  <div style="float: left;">
19
  <input type="radio" disabled />
20
- <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Create a staging site').'</span>
21
  </div>
22
  <span class="wpvivid-feature-pro">
23
- <a href="https://wpvivid.com/wpvivid-backup-pro-create-staging-site" style="text-decoration: none;">Pro feature: learn more</a>
24
  </span>
25
  </label><br>
26
  <label>
27
  <div style="float: left;">
28
  <input type="radio" disabled />
29
- <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom').'</span>
30
  </div>
31
  <span class="wpvivid-feature-pro">
32
- <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: learn more</a>
33
  </span>
34
  </label><br>';
35
  return $html;
@@ -827,6 +827,28 @@ function wpvivid_backuppage_add_page_backup(){
827
  });
828
  }
829
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
830
  </script>
831
  <?php
832
  }
@@ -1534,13 +1556,13 @@ function wpvivid_backup_module_add_descript(){
1534
  <div style="font-size: 14px; padding: 8px 12px; margin: 0; line-height: 1.4; font-weight: 600;">
1535
  <span style="margin-right: 5px;"><?php _e( 'Back Up Manually','wpvivid'); ?></span>
1536
  <span style="margin-right: 5px;">|</span>
1537
- <span style="margin-right: 0;"><a href="<?php echo esc_url(admin_url().'admin.php?page=wpvivid-export-import'); ?>" style="text-decoration: none;">Export Content</a></span>
1538
- <span style="font-size: 10px; color: #FFA500; line-height: 10px;">(new feature)</span>
1539
  </div>
1540
  <div class="quickstart-storage-setting">
1541
- <span class="list-top-chip backup" name="ismerge" value="1" style="margin: 10px 10px 10px 0;"><?php _e('Local Storage Directory: '); ?></span>
1542
  <span class="list-top-chip" id="wpvivid_local_storage_path" style="margin: 10px 10px 10px 0;"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1543
- <span class="list-top-chip" style="margin: 10px 10px 10px 0;"><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);" style="text-decoration: none;"><?php _e(' rename directory', 'wpvivid'); ?></a></span>
1544
  </div>
1545
  <?php
1546
  }
@@ -1693,7 +1715,8 @@ function wpvivid_backup_module_add_exec(){
1693
  wpvivid_delete_ready_task(err);
1694
  }
1695
  }, function (XMLHttpRequest, textStatus, errorThrown) {
1696
- var error_message = wpvivid_output_ajaxerror('preparing the backup', textStatus, errorThrown);
 
1697
  wpvivid_delete_ready_task(error_message);
1698
  });
1699
  }
@@ -1761,7 +1784,7 @@ function wpvivid_backup_module_add_exec(){
1761
  function wpvivid_backup_module_add_tips(){
1762
  ?>
1763
  <div class="custom-info" style="float:left; width:100%;">
1764
- <strong><?php _e('Tips', 'wpvivid'); ?></strong><?php _e(': The settings are only for manual backup, which won\'t affect schedule settings.', 'wpvivid'); ?>
1765
  </div>
1766
  <?php
1767
  }
17
  <label>
18
  <div style="float: left;">
19
  <input type="radio" disabled />
20
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Create a staging site', 'wpvivid').'</span>
21
  </div>
22
  <span class="wpvivid-feature-pro">
23
+ <a href="https://wpvivid.com/wpvivid-backup-pro-create-staging-site" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>
24
  </span>
25
  </label><br>
26
  <label>
27
  <div style="float: left;">
28
  <input type="radio" disabled />
29
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>
30
  </div>
31
  <span class="wpvivid-feature-pro">
32
+ <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>
33
  </span>
34
  </label><br>';
35
  return $html;
827
  });
828
  }
829
  });
830
+
831
+ function click_dismiss_restore_notice(obj){
832
+ wpvivid_display_restore_backup = false;
833
+ jQuery(obj).parent().remove();
834
+ }
835
+
836
+ function wpvivid_click_how_to_restore_backup(){
837
+ if(!wpvivid_display_restore_backup){
838
+ wpvivid_display_restore_backup = true;
839
+ var top = jQuery('#wpvivid_how_to_restore_backup_describe').offset().top-jQuery('#wpvivid_how_to_restore_backup_describe').height();
840
+ jQuery('html, body').animate({scrollTop:top}, 'slow');
841
+ var div = "<div class='notice notice-info is-dismissible inline'>" +
842
+ "<p><?php _e('Step One: In the backup list, click the \'Restore\' button on the backup you want to restore. This will bring up the restore tab', 'wpvivid'); ?></p>" +
843
+ "<p><?php _e('Step Two: Choose an option to complete restore, if any', 'wpvivid'); ?></p>" +
844
+ "<p><?php _e('Step Three: Click \'Restore\' button', 'wpvivid'); ?></p>" +
845
+ "<button type='button' class='notice-dismiss' onclick='click_dismiss_restore_notice(this);'>" +
846
+ "<span class='screen-reader-text'>Dismiss this notice.</span>" +
847
+ "</button>" +
848
+ "</div>";
849
+ jQuery('#wpvivid_how_to_restore_backup').append(div);
850
+ }
851
+ }
852
  </script>
853
  <?php
854
  }
1556
  <div style="font-size: 14px; padding: 8px 12px; margin: 0; line-height: 1.4; font-weight: 600;">
1557
  <span style="margin-right: 5px;"><?php _e( 'Back Up Manually','wpvivid'); ?></span>
1558
  <span style="margin-right: 5px;">|</span>
1559
+ <span style="margin-right: 0;"><a href="<?php echo esc_url(admin_url().'admin.php?page=wpvivid-export-import'); ?>" style="text-decoration: none;"><?php _e('Export Content', 'wpvivid'); ?></a></span>
1560
+ <span style="font-size: 10px; color: #FFA500; line-height: 10px;">(<?php _e('new feature', 'wpvivid'); ?>)</span>
1561
  </div>
1562
  <div class="quickstart-storage-setting">
1563
+ <span class="list-top-chip backup" name="ismerge" value="1" style="margin: 10px 10px 10px 0;"><?php _e('Local Storage Directory:'); ?></span>
1564
  <span class="list-top-chip" id="wpvivid_local_storage_path" style="margin: 10px 10px 10px 0;"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1565
+ <span class="list-top-chip" style="margin: 10px 10px 10px 0;"><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);" style="text-decoration: none;"><?php _e('rename directory', 'wpvivid'); ?></a></span>
1566
  </div>
1567
  <?php
1568
  }
1715
  wpvivid_delete_ready_task(err);
1716
  }
1717
  }, function (XMLHttpRequest, textStatus, errorThrown) {
1718
+ //var error_message = wpvivid_output_ajaxerror('preparing the backup', textStatus, errorThrown);
1719
+ var error_message='Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck \'Calculate the size of files, folder and database before backing up\', save changes, then try again.';
1720
  wpvivid_delete_ready_task(error_message);
1721
  });
1722
  }
1784
  function wpvivid_backup_module_add_tips(){
1785
  ?>
1786
  <div class="custom-info" style="float:left; width:100%;">
1787
+ <strong><?php _e('Tips:', 'wpvivid'); ?></strong>&nbsp<?php _e('The settings are only for manual backup, which won\'t affect schedule settings.', 'wpvivid'); ?>
1788
  </div>
1789
  <?php
1790
  }
admin/partials/wpvivid-schedule-page-display.php CHANGED
@@ -17,11 +17,11 @@ function wpvivid_schedule_settings()
17
  <label>
18
  <div style="float: left;">
19
  <input type="checkbox" disabled />
20
- <span class="wpvivid-element-space-right" style="color: #ddd;">Enable Incremental Backup</span>
21
  </div>
22
  <div style="float: left; height: 32px; line-height: 32px;">
23
  <span class="wpvivid-feature-pro">
24
- <a href="https://wpvivid.com/wpvivid-backup-pro-incremental-backup">Pro feature: learn more</a>
25
  </span>
26
  </div>
27
  <div style="clear: both;"></div>
@@ -29,11 +29,11 @@ function wpvivid_schedule_settings()
29
  <label>
30
  <div style="float: left;">
31
  <input type="checkbox" disabled />
32
- <span class="wpvivid-element-space-right" style="color: #ddd;">Advanced Schedule</span>
33
  </div>
34
  <div style="float: left; height: 32px; line-height: 32px;">
35
  <span class="wpvivid-feature-pro">
36
- <a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access">Pro feature: learn more</a>
37
  </span>
38
  </div>
39
  <div style="clear: both;"></div>
@@ -82,7 +82,7 @@ function wpvivid_schedule_settings()
82
  echo $html;
83
  ?>
84
  </div>
85
- <div id="schedule_upload_storage" style="cursor:pointer;" title="Highlighted icon illuminates that you have choosed a remote storage to store backups">
86
  <?php
87
  $pic='';
88
  $pic= apply_filters('wpvivid_schedule_add_remote_pic',$pic);
@@ -92,10 +92,10 @@ function wpvivid_schedule_settings()
92
  </div>
93
  <div class="postbox schedule-tab-block">
94
  <div style="float:left; color: #ddd; margin-right: 10px;">
95
- + Add another schedule
96
  </div>
97
  <span class="wpvivid-feature-pro">
98
- <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access">Pro feature: learn more</a>
99
  </span>
100
  </div>
101
  </div>
@@ -114,8 +114,8 @@ function wpvivid_schedule_notice($html)
114
  $offset=get_option('gmt_offset');
115
  $time = '00:00:00';
116
  $utime = strtotime($time) + $offset * 60 * 60;
117
- $html='<p>1) Scheduled job will start at <strong>UTC</strong> time: '.date('H:i:s', $utime).'</p>';
118
- $html.='<p>2) Being subjected to mechanisms of PHP, a scheduled backup task for your site will be triggered only when the site receives at least a visit at any page.</p>';
119
  return $html;
120
  }
121
 
@@ -123,27 +123,27 @@ function wpvivid_schedule_backup_type($html)
123
  {
124
  $html='<label>';
125
  $html.='<input type="radio" option="schedule" name="backup_type" value="files+db"/>';
126
- $html.='<span>Database + Files (WordPress Files)</span>';
127
  $html.='</label><br>';
128
 
129
  $html.='<label>';
130
  $html.='<input type="radio" option="schedule" name="backup_type" value="files"/>';
131
- $html.='<span>WordPress Files (Exclude Database)</span>';
132
  $html.='</label><br>';
133
 
134
  $html.='<label>';
135
  $html.='<input type="radio" option="schedule" name="backup_type" value="db"/>';
136
- $html.='<span>Only Database</span>';
137
  $html.='</label><br>';
138
 
139
  $html.='<label>';
140
  $html.='<div style="float: left;">';
141
  $html.='<input type="radio" disabled />';
142
- $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom').'</span>';
143
  $html.='</div>';
144
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
145
  $html.='<span class="wpvivid-feature-pro">';
146
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: learn more</a>';
147
  $html.='</span>';
148
  $html.='</div>';
149
  $html.='</label><br>';
17
  <label>
18
  <div style="float: left;">
19
  <input type="checkbox" disabled />
20
+ <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Enable Incremental Backup', 'wpvivid'); ?></span>
21
  </div>
22
  <div style="float: left; height: 32px; line-height: 32px;">
23
  <span class="wpvivid-feature-pro">
24
+ <a href="https://wpvivid.com/wpvivid-backup-pro-incremental-backup"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
25
  </span>
26
  </div>
27
  <div style="clear: both;"></div>
29
  <label>
30
  <div style="float: left;">
31
  <input type="checkbox" disabled />
32
+ <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Advanced Schedule', 'wpvivid'); ?></span>
33
  </div>
34
  <div style="float: left; height: 32px; line-height: 32px;">
35
  <span class="wpvivid-feature-pro">
36
+ <a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
37
  </span>
38
  </div>
39
  <div style="clear: both;"></div>
82
  echo $html;
83
  ?>
84
  </div>
85
+ <div id="schedule_upload_storage" style="cursor:pointer;" title="<?php _e('Highlighted icon illuminates that you have choosed a remote storage to store backups', 'wpvivid'); ?>">
86
  <?php
87
  $pic='';
88
  $pic= apply_filters('wpvivid_schedule_add_remote_pic',$pic);
92
  </div>
93
  <div class="postbox schedule-tab-block">
94
  <div style="float:left; color: #ddd; margin-right: 10px;">
95
+ <?php _e('+ Add another schedule', 'wpvivid'); ?>
96
  </div>
97
  <span class="wpvivid-feature-pro">
98
+ <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
99
  </span>
100
  </div>
101
  </div>
114
  $offset=get_option('gmt_offset');
115
  $time = '00:00:00';
116
  $utime = strtotime($time) + $offset * 60 * 60;
117
+ $html='<p>1) '.__('Scheduled job will start at <strong>UTC</strong> time:', 'wpvivid').'&nbsp'.date('H:i:s', $utime).'</p>';
118
+ $html.='<p>2) '.__('Being subjected to mechanisms of PHP, a scheduled backup task for your site will be triggered only when the site receives at least a visit at any page.', 'wpvivid').'</p>';
119
  return $html;
120
  }
121
 
123
  {
124
  $html='<label>';
125
  $html.='<input type="radio" option="schedule" name="backup_type" value="files+db"/>';
126
+ $html.='<span>'.__('Database + Files (WordPress Files)', 'wpvivid').'</span>';
127
  $html.='</label><br>';
128
 
129
  $html.='<label>';
130
  $html.='<input type="radio" option="schedule" name="backup_type" value="files"/>';
131
+ $html.='<span>'.__('WordPress Files (Exclude Database)', 'wpvivid').'</span>';
132
  $html.='</label><br>';
133
 
134
  $html.='<label>';
135
  $html.='<input type="radio" option="schedule" name="backup_type" value="db"/>';
136
+ $html.='<span>'.__('Only Database', 'wpvivid').'</span>';
137
  $html.='</label><br>';
138
 
139
  $html.='<label>';
140
  $html.='<div style="float: left;">';
141
  $html.='<input type="radio" disabled />';
142
+ $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>';
143
  $html.='</div>';
144
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
145
  $html.='<span class="wpvivid-feature-pro">';
146
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>';
147
  $html.='</span>';
148
  $html.='</div>';
149
  $html.='</label><br>';
includes/class-wpvivid-backup-uploader.php CHANGED
@@ -270,6 +270,8 @@ class Wpvivid_BackupUploader
270
 
271
  function clean_tmp_files($path, $filename){
272
  $handler=opendir($path);
 
 
273
  while(($file=readdir($handler))!==false) {
274
  if (!is_dir($path.$file) && preg_match('/wpvivid-.*_.*_.*\.tmp$/', $file)) {
275
  $iPos = strrpos($file, '_');
@@ -294,6 +296,8 @@ class Wpvivid_BackupUploader
294
  $need_update = false;
295
  if (is_dir($path)) {
296
  $handler = opendir($path);
 
 
297
  while (($filename = readdir($handler)) !== false) {
298
  if ($filename != "." && $filename != "..") {
299
  if (!is_dir($path . $filename)) {
@@ -380,29 +384,32 @@ class Wpvivid_BackupUploader
380
  if(is_dir($path))
381
  {
382
  $handler = opendir($path);
383
- while (($filename = readdir($handler)) !== false)
384
  {
385
- if ($filename != "." && $filename != "..")
386
  {
387
- $count++;
388
-
389
- if (is_dir($path . $filename))
390
  {
391
- continue;
392
- } else {
393
- if($this->check_file_is_a_wpvivid_backup($filename,$backup_id))
394
  {
395
- if($this->zip_check_sum($path . $filename))
 
 
396
  {
397
- if($this->check_is_a_wpvivid_backup($path.$filename) === true)
398
- $backups[$backup_id]['files'][]=$filename;
 
 
 
399
  }
400
  }
401
  }
402
  }
 
 
403
  }
404
- if($handler)
405
- @closedir($handler);
406
  }
407
  else{
408
  global $wpvivid_plugin;
@@ -483,10 +490,10 @@ class Wpvivid_BackupUploader
483
  $backupdir=WPvivid_Setting::get_backupdir();
484
  ?>
485
  <div style="padding-top: 10px;">
486
- <span>Tips: Click the button below to scan all uploaded or received backups in directory <?php echo WP_CONTENT_DIR.'/'.$backupdir; ?></span>
487
  </div>
488
  <div style="padding-top: 10px;">
489
- <input type="submit" class="button-primary" value="Scan uploaded backup or received backup" onclick="wpvivid_rescan_local_folder();" />
490
  </div>
491
  <script type="text/javascript">
492
  function wpvivid_rescan_local_folder()
270
 
271
  function clean_tmp_files($path, $filename){
272
  $handler=opendir($path);
273
+ if($handler===false)
274
+ return;
275
  while(($file=readdir($handler))!==false) {
276
  if (!is_dir($path.$file) && preg_match('/wpvivid-.*_.*_.*\.tmp$/', $file)) {
277
  $iPos = strrpos($file, '_');
296
  $need_update = false;
297
  if (is_dir($path)) {
298
  $handler = opendir($path);
299
+ if($handler===false)
300
+ return true;
301
  while (($filename = readdir($handler)) !== false) {
302
  if ($filename != "." && $filename != "..") {
303
  if (!is_dir($path . $filename)) {
384
  if(is_dir($path))
385
  {
386
  $handler = opendir($path);
387
+ if($handler!==false)
388
  {
389
+ while (($filename = readdir($handler)) !== false)
390
  {
391
+ if ($filename != "." && $filename != "..")
 
 
392
  {
393
+ $count++;
394
+
395
+ if (is_dir($path . $filename))
396
  {
397
+ continue;
398
+ } else {
399
+ if($this->check_file_is_a_wpvivid_backup($filename,$backup_id))
400
  {
401
+ if($this->zip_check_sum($path . $filename))
402
+ {
403
+ if($this->check_is_a_wpvivid_backup($path.$filename) === true)
404
+ $backups[$backup_id]['files'][]=$filename;
405
+ }
406
  }
407
  }
408
  }
409
  }
410
+ if($handler)
411
+ @closedir($handler);
412
  }
 
 
413
  }
414
  else{
415
  global $wpvivid_plugin;
490
  $backupdir=WPvivid_Setting::get_backupdir();
491
  ?>
492
  <div style="padding-top: 10px;">
493
+ <span><?php _e('Tips: Click the button below to scan all uploaded or received backups in directory', 'wpvivid'); ?>&nbsp<?php echo WP_CONTENT_DIR.'/'.$backupdir; ?></span>
494
  </div>
495
  <div style="padding-top: 10px;">
496
+ <input type="submit" class="button-primary" value="<?php esc_attr_e('Scan uploaded backup or received backup', 'wpvivid'); ?>" onclick="wpvivid_rescan_local_folder();" />
497
  </div>
498
  <script type="text/javascript">
499
  function wpvivid_rescan_local_folder()
includes/class-wpvivid-backup.php CHANGED
@@ -148,10 +148,11 @@ class WPvivid_Backup_Task
148
  }
149
  }
150
  $this->task['options']['backup_prefix']=$backup_prefix;
 
151
  if(empty($backup_prefix))
152
- $this->task['options']['file_prefix'] = $this->task['id'] . '_' . date('Y-m-d-H-i', $this->task['status']['start_time']);
153
  else
154
- $this->task['options']['file_prefix'] = $backup_prefix . '_' . $this->task['id'] . '_' . date('Y-m-d-H-i', $this->task['status']['start_time']);
155
 
156
  if(isset($general_setting['options']['wpvivid_common_setting']['ismerge']))
157
  {
@@ -476,21 +477,25 @@ class WPvivid_Backup_Task
476
  if(is_dir($root))
477
  {
478
  $handler = opendir($root);
479
- while (($filename = readdir($handler)) !== false)
480
  {
481
- if ($filename != "." && $filename != "..") {
482
- $count++;
 
 
483
 
484
- if (is_dir($root . DIRECTORY_SEPARATOR . $filename))
485
- {
486
- $size=$this->get_folder_size($root . DIRECTORY_SEPARATOR . $filename,$size);
487
- } else {
488
- $size+=filesize($root . DIRECTORY_SEPARATOR . $filename);
 
489
  }
490
  }
 
 
491
  }
492
- if($handler)
493
- @closedir($handler);
494
  }
495
  return $size;
496
  }
@@ -770,39 +775,44 @@ class WPvivid_Backup_Task
770
  if(is_dir($path))
771
  {
772
  $handler = opendir($path);
773
- while (($filename = readdir($handler)) !== false) {
774
- if ($filename != "." && $filename != "..") {
775
- $count++;
 
 
 
776
 
777
- if (is_dir($path . DIRECTORY_SEPARATOR . $filename))
778
- {
779
- if ($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)) {
780
- if ($this->regex_match($include_regex, $path . DIRECTORY_SEPARATOR . $filename, 1)) {
781
- $this->getFileLoop($files, $path . DIRECTORY_SEPARATOR . $filename, $exclude_regex, $include_regex, $exclude_file_size, $include_dir);
782
- }
783
- }
784
- } else {
785
- if($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)){
786
- if ($exclude_file_size == 0)
787
- {
788
- if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
789
- {
790
- $files[] = $path . DIRECTORY_SEPARATOR . $filename;
791
  }
792
- } else {
793
- if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
 
 
794
  {
795
- if (filesize($path . DIRECTORY_SEPARATOR . $filename) < $exclude_file_size * 1024 * 1024) {
 
796
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
797
  }
 
 
 
 
 
 
 
798
  }
799
  }
800
  }
801
  }
802
  }
 
 
803
  }
804
- if($handler)
805
- @closedir($handler);
806
  }
807
  if($include_dir && $count == 0){
808
  $files[] = $path;
@@ -1266,44 +1276,47 @@ class WPvivid_Backup_Task
1266
  if(is_dir($path))
1267
  {
1268
  $handler = opendir($path);
1269
- while (($filename = readdir($handler)) !== false)
1270
  {
1271
- if ($filename != "." && $filename != "..")
1272
  {
1273
- $count++;
1274
-
1275
- if (is_dir($path . DIRECTORY_SEPARATOR . $filename))
1276
  {
1277
- if ($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0))
 
 
1278
  {
1279
- if ($this->regex_match($include_regex, $path . DIRECTORY_SEPARATOR . $filename, 1))
1280
- {
1281
- $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1282
- }
1283
- }
1284
- } else {
1285
- if($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)){
1286
- if ($exclude_file_size == 0)
1287
  {
1288
- if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
1289
  {
1290
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1291
  }
1292
- } else {
1293
- if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
 
 
1294
  {
1295
- if (filesize($path . DIRECTORY_SEPARATOR . $filename) < $exclude_file_size * 1024 * 1024)
1296
  {
1297
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1298
  }
 
 
 
 
 
 
 
 
1299
  }
1300
  }
1301
  }
1302
  }
1303
  }
 
 
1304
  }
1305
- if($handler)
1306
- @closedir($handler);
1307
  }
1308
  if($include_dir && $count == 0)
1309
  {
@@ -1337,6 +1350,8 @@ class WPvivid_Backup_Task
1337
  if(is_dir($path))
1338
  {
1339
  $handler = opendir($path);
 
 
1340
  while (($filename = readdir($handler)) !== false)
1341
  {
1342
  if ($filename != "." && $filename != "..")
@@ -2421,14 +2436,17 @@ class WPvivid_Backup
2421
  {
2422
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
2423
  $handler=opendir($path);
2424
- while(($filename=readdir($handler))!==false)
2425
  {
2426
- if(preg_match('#'.$this->task->get_id().'#',$filename))
2427
  {
2428
- @unlink($path.DIRECTORY_SEPARATOR.$filename);
 
 
 
2429
  }
 
2430
  }
2431
- @closedir($handler);
2432
  }
2433
 
2434
  public function clearcache()
@@ -2436,24 +2454,28 @@ class WPvivid_Backup
2436
  $task_id=$this->task->get_prefix();
2437
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
2438
  $handler=opendir($path);
2439
- while(($filename=readdir($handler))!==false)
2440
  {
2441
- if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$task_id.'#',$filename))
2442
- {
2443
- $this->deldir($path.DIRECTORY_SEPARATOR.$filename,'',true);
2444
- }
2445
- if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$task_id.'#',$filename))
2446
  {
2447
- $this->deldir($path.DIRECTORY_SEPARATOR.$filename,'',true);
2448
- }
2449
- if(preg_match('#pclzip-.*\.tmp#', $filename)){
2450
- @unlink($path.DIRECTORY_SEPARATOR.$filename);
2451
- }
2452
- if(preg_match('#pclzip-.*\.gz#', $filename)){
2453
- @unlink($path.DIRECTORY_SEPARATOR.$filename);
 
 
 
 
 
 
 
2454
  }
 
2455
  }
2456
- @closedir($handler);
2457
  }
2458
 
2459
  public function deldir($path,$exclude=array(),$flag = false)
148
  }
149
  }
150
  $this->task['options']['backup_prefix']=$backup_prefix;
151
+ $offset=get_option('gmt_offset');
152
  if(empty($backup_prefix))
153
+ $this->task['options']['file_prefix'] = $this->task['id'] . '_' . date('Y-m-d-H-i', $this->task['status']['start_time']+$offset*60*60);
154
  else
155
+ $this->task['options']['file_prefix'] = $backup_prefix . '_' . $this->task['id'] . '_' . date('Y-m-d-H-i', $this->task['status']['start_time']+$offset*60*60);
156
 
157
  if(isset($general_setting['options']['wpvivid_common_setting']['ismerge']))
158
  {
477
  if(is_dir($root))
478
  {
479
  $handler = opendir($root);
480
+ if($handler!==false)
481
  {
482
+ while (($filename = readdir($handler)) !== false)
483
+ {
484
+ if ($filename != "." && $filename != "..") {
485
+ $count++;
486
 
487
+ if (is_dir($root . DIRECTORY_SEPARATOR . $filename))
488
+ {
489
+ $size=$this->get_folder_size($root . DIRECTORY_SEPARATOR . $filename,$size);
490
+ } else {
491
+ $size+=filesize($root . DIRECTORY_SEPARATOR . $filename);
492
+ }
493
  }
494
  }
495
+ if($handler)
496
+ @closedir($handler);
497
  }
498
+
 
499
  }
500
  return $size;
501
  }
775
  if(is_dir($path))
776
  {
777
  $handler = opendir($path);
778
+ if($handler!==false)
779
+ {
780
+ while (($filename = readdir($handler)) !== false)
781
+ {
782
+ if ($filename != "." && $filename != "..") {
783
+ $count++;
784
 
785
+ if (is_dir($path . DIRECTORY_SEPARATOR . $filename))
786
+ {
787
+ if ($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)) {
788
+ if ($this->regex_match($include_regex, $path . DIRECTORY_SEPARATOR . $filename, 1)) {
789
+ $this->getFileLoop($files, $path . DIRECTORY_SEPARATOR . $filename, $exclude_regex, $include_regex, $exclude_file_size, $include_dir);
 
 
 
 
 
 
 
 
 
790
  }
791
+ }
792
+ } else {
793
+ if($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)){
794
+ if ($exclude_file_size == 0)
795
  {
796
+ if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
797
+ {
798
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
799
  }
800
+ } else {
801
+ if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
802
+ {
803
+ if (filesize($path . DIRECTORY_SEPARATOR . $filename) < $exclude_file_size * 1024 * 1024) {
804
+ $files[] = $path . DIRECTORY_SEPARATOR . $filename;
805
+ }
806
+ }
807
  }
808
  }
809
  }
810
  }
811
  }
812
+ if($handler)
813
+ @closedir($handler);
814
  }
815
+
 
816
  }
817
  if($include_dir && $count == 0){
818
  $files[] = $path;
1276
  if(is_dir($path))
1277
  {
1278
  $handler = opendir($path);
1279
+ if($handler!==false)
1280
  {
1281
+ while (($filename = readdir($handler)) !== false)
1282
  {
1283
+ if ($filename != "." && $filename != "..")
 
 
1284
  {
1285
+ $count++;
1286
+
1287
+ if (is_dir($path . DIRECTORY_SEPARATOR . $filename))
1288
  {
1289
+ if ($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0))
 
 
 
 
 
 
 
1290
  {
1291
+ if ($this->regex_match($include_regex, $path . DIRECTORY_SEPARATOR . $filename, 1))
1292
  {
1293
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1294
  }
1295
+ }
1296
+ } else {
1297
+ if($this->regex_match($exclude_regex, $path . DIRECTORY_SEPARATOR . $filename, 0)){
1298
+ if ($exclude_file_size == 0)
1299
  {
1300
+ if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
1301
  {
1302
  $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1303
  }
1304
+ } else {
1305
+ if(is_readable($path . DIRECTORY_SEPARATOR . $filename))
1306
+ {
1307
+ if (filesize($path . DIRECTORY_SEPARATOR . $filename) < $exclude_file_size * 1024 * 1024)
1308
+ {
1309
+ $files[] = $path . DIRECTORY_SEPARATOR . $filename;
1310
+ }
1311
+ }
1312
  }
1313
  }
1314
  }
1315
  }
1316
  }
1317
+ if($handler)
1318
+ @closedir($handler);
1319
  }
 
 
1320
  }
1321
  if($include_dir && $count == 0)
1322
  {
1350
  if(is_dir($path))
1351
  {
1352
  $handler = opendir($path);
1353
+ if($handler===false)
1354
+ return;
1355
  while (($filename = readdir($handler)) !== false)
1356
  {
1357
  if ($filename != "." && $filename != "..")
2436
  {
2437
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
2438
  $handler=opendir($path);
2439
+ if($handler!==false)
2440
  {
2441
+ while(($filename=readdir($handler))!==false)
2442
  {
2443
+ if(preg_match('#'.$this->task->get_id().'#',$filename))
2444
+ {
2445
+ @unlink($path.DIRECTORY_SEPARATOR.$filename);
2446
+ }
2447
  }
2448
+ @closedir($handler);
2449
  }
 
2450
  }
2451
 
2452
  public function clearcache()
2454
  $task_id=$this->task->get_prefix();
2455
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
2456
  $handler=opendir($path);
2457
+ if($handler!==false)
2458
  {
2459
+ while(($filename=readdir($handler))!==false)
 
 
 
 
2460
  {
2461
+ if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$task_id.'#',$filename))
2462
+ {
2463
+ $this->deldir($path.DIRECTORY_SEPARATOR.$filename,'',true);
2464
+ }
2465
+ if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$task_id.'#',$filename))
2466
+ {
2467
+ $this->deldir($path.DIRECTORY_SEPARATOR.$filename,'',true);
2468
+ }
2469
+ if(preg_match('#pclzip-.*\.tmp#', $filename)){
2470
+ @unlink($path.DIRECTORY_SEPARATOR.$filename);
2471
+ }
2472
+ if(preg_match('#pclzip-.*\.gz#', $filename)){
2473
+ @unlink($path.DIRECTORY_SEPARATOR.$filename);
2474
+ }
2475
  }
2476
+ @closedir($handler);
2477
  }
2478
+
2479
  }
2480
 
2481
  public function deldir($path,$exclude=array(),$flag = false)
includes/class-wpvivid-export-import.php CHANGED
@@ -746,7 +746,7 @@ class WPvivid_Export_Import
746
  <tr>
747
  <td class="plugin-title column-primary">
748
  <div class="wpvivid-storage-form">
749
- <input class="button-primary" id="wpvivid-post-query-submit" type="submit" name="<?php _e($post_type); ?>" value="Search" />
750
  </div>
751
  </td>
752
  <td class="column-description desc">
@@ -784,7 +784,7 @@ class WPvivid_Export_Import
784
  </div>
785
 
786
  <div>
787
- <input class="button-primary" id="wpvivid_start_export" type="submit" name="<?php _e($post_type); ?>" value="Export and Download" style="pointer-events: none; opacity: 0.4;">
788
  </div>
789
  <?php
790
 
@@ -2334,6 +2334,8 @@ class WPvivid_Export_Import
2334
 
2335
  function clean_tmp_files($path, $filename){
2336
  $handler=opendir($path);
 
 
2337
  while(($file=readdir($handler))!==false) {
2338
  if (!is_dir($path.$file) && preg_match('/wpvivid-.*_.*_.*\.tmp$/', $file)) {
2339
  $iPos = strrpos($file, '_');
@@ -2404,15 +2406,18 @@ class WPvivid_Export_Import
2404
  if(is_dir($path))
2405
  {
2406
  $handler = opendir($path);
2407
- while (($filename = readdir($handler)) !== false){
2408
- if ($filename != "." && $filename != ".."){
2409
- if (is_dir($path . $filename)) {
2410
- continue;
2411
- }
2412
- else{
2413
- $res=$this->check_is_import_file($path.$filename);
2414
- if($res['result'] =='success'){
2415
- @unlink($path.$filename);
 
 
 
2416
  }
2417
  }
2418
  }
@@ -2461,35 +2466,38 @@ class WPvivid_Export_Import
2461
  if(is_dir($path))
2462
  {
2463
  $handler = opendir($path);
2464
- while (($filename = readdir($handler)) !== false)
2465
  {
2466
- if ($filename != "." && $filename != "..")
2467
  {
2468
- $count++;
2469
-
2470
- if (is_dir($path . $filename))
2471
  {
2472
- continue;
2473
- }
2474
- else {
2475
 
2476
- $res=$this->check_is_import_file($path.$filename);
2477
- if($res['result'] =='success')
2478
  {
2479
- $add_file['file_name']=$filename;
2480
- $add_file['size']=filesize($path.$filename);
2481
- $add_file['export_type']=$res['export_type'];
2482
- $add_file['export_comment']=$res['export_comment'];
2483
- $add_file['posts_count']=$res['posts_count'];
2484
- $add_file['media_size']=size_format($res['media_size'],2);
2485
- $add_file['time']=$res['time'];
2486
- $data[$this->get_file_id($filename)]=$add_file;
 
 
 
 
 
 
 
 
2487
  }
2488
  }
2489
  }
 
 
2490
  }
2491
- if($handler)
2492
- @closedir($handler);
2493
  }
2494
  else{
2495
  global $wpvivid_plugin;
746
  <tr>
747
  <td class="plugin-title column-primary">
748
  <div class="wpvivid-storage-form">
749
+ <input class="button-primary" id="wpvivid-post-query-submit" type="submit" name="<?php echo $post_type; ?>" value="Search" />
750
  </div>
751
  </td>
752
  <td class="column-description desc">
784
  </div>
785
 
786
  <div>
787
+ <input class="button-primary" id="wpvivid_start_export" type="submit" name="<?php echo $post_type; ?>" value="Export and Download" style="pointer-events: none; opacity: 0.4;">
788
  </div>
789
  <?php
790
 
2334
 
2335
  function clean_tmp_files($path, $filename){
2336
  $handler=opendir($path);
2337
+ if($handler===false)
2338
+ return;
2339
  while(($file=readdir($handler))!==false) {
2340
  if (!is_dir($path.$file) && preg_match('/wpvivid-.*_.*_.*\.tmp$/', $file)) {
2341
  $iPos = strrpos($file, '_');
2406
  if(is_dir($path))
2407
  {
2408
  $handler = opendir($path);
2409
+ if($handler!==false)
2410
+ {
2411
+ while (($filename = readdir($handler)) !== false){
2412
+ if ($filename != "." && $filename != ".."){
2413
+ if (is_dir($path . $filename)) {
2414
+ continue;
2415
+ }
2416
+ else{
2417
+ $res=$this->check_is_import_file($path.$filename);
2418
+ if($res['result'] =='success'){
2419
+ @unlink($path.$filename);
2420
+ }
2421
  }
2422
  }
2423
  }
2466
  if(is_dir($path))
2467
  {
2468
  $handler = opendir($path);
2469
+ if($handler!==false)
2470
  {
2471
+ while (($filename = readdir($handler)) !== false)
2472
  {
2473
+ if ($filename != "." && $filename != "..")
 
 
2474
  {
2475
+ $count++;
 
 
2476
 
2477
+ if (is_dir($path . $filename))
 
2478
  {
2479
+ continue;
2480
+ }
2481
+ else {
2482
+
2483
+ $res=$this->check_is_import_file($path.$filename);
2484
+ if($res['result'] =='success')
2485
+ {
2486
+ $add_file['file_name']=$filename;
2487
+ $add_file['size']=filesize($path.$filename);
2488
+ $add_file['export_type']=$res['export_type'];
2489
+ $add_file['export_comment']=$res['export_comment'];
2490
+ $add_file['posts_count']=$res['posts_count'];
2491
+ $add_file['media_size']=size_format($res['media_size'],2);
2492
+ $add_file['time']=$res['time'];
2493
+ $data[$this->get_file_id($filename)]=$add_file;
2494
+ }
2495
  }
2496
  }
2497
  }
2498
+ if($handler)
2499
+ @closedir($handler);
2500
  }
 
 
2501
  }
2502
  else{
2503
  global $wpvivid_plugin;
includes/class-wpvivid-exporter.php CHANGED
@@ -1325,7 +1325,7 @@ class WPvivid_Exporter_Item{
1325
  ?>
1326
  <div style="float:left;margin:10px 10px 10px 0;text-align:center; width:180px;">
1327
  <span>Part01</span><br>
1328
- <span><a class="wpvivid-download-export" id="trtr" name="<?php _e($file); ?>" style="cursor: pointer;">Download</a></span><br>
1329
  <div style="width:100%;height:5px; background-color:#dcdcdc;">
1330
  <div style="background-color:#0085ba; float:left;width:100%;height:5px;"></div>
1331
  </div>
1325
  ?>
1326
  <div style="float:left;margin:10px 10px 10px 0;text-align:center; width:180px;">
1327
  <span>Part01</span><br>
1328
+ <span><a class="wpvivid-download-export" id="trtr" name="<?php echo $file; ?>" style="cursor: pointer;">Download</a></span><br>
1329
  <div style="width:100%;height:5px; background-color:#dcdcdc;">
1330
  <div style="background-color:#0085ba; float:left;width:100%;height:5px;"></div>
1331
  </div>
includes/class-wpvivid-migrate.php CHANGED
@@ -1252,10 +1252,10 @@ class WPvivid_Migrate
1252
  <div class="backup-tab-content wpvivid_tab_upload" id="page-upload" style="display:none;">
1253
  <div style="padding: 10px 0 10px 0;">
1254
  <div style="padding-bottom: 10px;">
1255
- <span>The backups will be uploaded to <?php echo WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir; ?> directory.</span>
1256
  </div>
1257
  <div style="padding-bottom: 10px;">
1258
- <span>Note: The files you want to upload must be a backup created by WPvivid backup plugin. Make sure that uploading every part of a backup to the directory if the backup is split into many parts</span>
1259
  </div>
1260
  <?php
1261
  Wpvivid_BackupUploader::upload_meta_box();
1252
  <div class="backup-tab-content wpvivid_tab_upload" id="page-upload" style="display:none;">
1253
  <div style="padding: 10px 0 10px 0;">
1254
  <div style="padding-bottom: 10px;">
1255
+ <span><?php echo sprintf(__('The backups will be uploaded to %s directory.', 'wpvivid'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1256
  </div>
1257
  <div style="padding-bottom: 10px;">
1258
+ <span><?php echo apply_filters('wpvivid_tran_test', __('Note: The files you want to upload must be a backup created by WPvivid backup plugin. Make sure that uploading every part of a backup to the directory if the backup is split into many parts', 'wpvivid')); ?></span>
1259
  </div>
1260
  <?php
1261
  Wpvivid_BackupUploader::upload_meta_box();
includes/class-wpvivid-schedule.php CHANGED
@@ -87,7 +87,21 @@ class WPvivid_Schedule
87
  $schedule_check = $this->check_schedule_type($display);
88
  if($schedule_check['result']){
89
  $html.=' <label><input type="radio" option="schedule" name="recurrence" value="'.$schedule_check['type'].'" />';
90
- $html.='<span>'.$display.'</span></label><br>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  }
92
  else{
93
  $html.='<p>Warning: Unable to set '.$display.' backup schedule</p>';
@@ -96,11 +110,11 @@ class WPvivid_Schedule
96
  $html.='<label>';
97
  $html.='<div style="float: left;">';
98
  $html.='<input type="radio" disabled />';
99
- $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom').'</span>';
100
  $html.='</div>';
101
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
102
  $html.='<span class="wpvivid-feature-pro">';
103
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none; margin-top: 10px;">Pro feature: learn more</a>';
104
  $html.='</span>';
105
  $html.='</div>';
106
  $html.='</label><br>';
87
  $schedule_check = $this->check_schedule_type($display);
88
  if($schedule_check['result']){
89
  $html.=' <label><input type="radio" option="schedule" name="recurrence" value="'.$schedule_check['type'].'" />';
90
+ if($display === '12Hours'){
91
+ $html.='<span>'.__('12Hours', 'wpvivid').'</span></label><br>';
92
+ }
93
+ if($display === 'Daily'){
94
+ $html.='<span>'.__('Daily', 'wpvivid').'</span></label><br>';
95
+ }
96
+ if($display === 'Weekly'){
97
+ $html.='<span>'.__('Weekly', 'wpvivid').'</span></label><br>';
98
+ }
99
+ if($display === 'Fortnightly'){
100
+ $html.='<span>'.__('Fortnightly', 'wpvivid').'</span></label><br>';
101
+ }
102
+ if($display === 'Monthly'){
103
+ $html.='<span>'.__('Monthly', 'wpvivid').'</span></label><br>';
104
+ }
105
  }
106
  else{
107
  $html.='<p>Warning: Unable to set '.$display.' backup schedule</p>';
110
  $html.='<label>';
111
  $html.='<div style="float: left;">';
112
  $html.='<input type="radio" disabled />';
113
+ $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>';
114
  $html.='</div>';
115
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
116
  $html.='<span class="wpvivid-feature-pro">';
117
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none; margin-top: 10px;">'.__('Pro feature: learn more', 'wpvivid').'</a>';
118
  $html.='</span>';
119
  $html.='</div>';
120
  $html.='</label><br>';
includes/class-wpvivid-tools.php CHANGED
@@ -13,6 +13,10 @@ class WPvivid_tools
13
  $home_url_prefix = $parse['host'].$tmppath;
14
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
15
  $handler=opendir($path);
 
 
 
 
16
  while(($filename=readdir($handler))!==false)
17
  {
18
  if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$home_url_prefix.'_'.'#',$filename))
13
  $home_url_prefix = $parse['host'].$tmppath;
14
  $path = WP_CONTENT_DIR.DIRECTORY_SEPARATOR.WPvivid_Setting::get_backupdir();
15
  $handler=opendir($path);
16
+ if($handler===false)
17
+ {
18
+ return ;
19
+ }
20
  while(($filename=readdir($handler))!==false)
21
  {
22
  if(is_dir($path.DIRECTORY_SEPARATOR.$filename) && preg_match('#temp-'.$home_url_prefix.'_'.'#',$filename))
includes/class-wpvivid-zipclass.php CHANGED
@@ -659,21 +659,23 @@ class WPvivid_ZipClass extends Wpvivid_Compress_Default
659
  function get_folder_file_count_loop($path,&$count)
660
  {
661
  $handler = opendir($path);
662
-
663
- while (($filename = readdir($handler)) !== false)
664
  {
665
- if ($filename != "." && $filename != "..")
666
  {
667
- $count++;
668
-
669
- if(is_dir($path . DIRECTORY_SEPARATOR . $filename))
670
  {
671
- $this->get_folder_file_count_loop($path . DIRECTORY_SEPARATOR . $filename,$count);
 
 
 
 
 
672
  }
673
  }
 
 
674
  }
675
- if($handler)
676
- @closedir($handler);
677
  }
678
 
679
  function get_folder_file_size($file)
@@ -687,23 +689,25 @@ class WPvivid_ZipClass extends Wpvivid_Compress_Default
687
  function get_folder_file_size_loop($path,&$count)
688
  {
689
  $handler = opendir($path);
690
-
691
- while (($filename = readdir($handler)) !== false)
692
  {
693
- if ($filename != "." && $filename != "..")
694
  {
695
- if(is_dir($path . DIRECTORY_SEPARATOR . $filename))
696
- {
697
- $this->get_folder_file_size_loop($path . DIRECTORY_SEPARATOR . $filename,$count);
698
- }
699
- else
700
  {
701
- $count+=filesize($path . DIRECTORY_SEPARATOR . $filename);
 
 
 
 
 
 
 
702
  }
703
  }
 
 
704
  }
705
- if($handler)
706
- @closedir($handler);
707
  }
708
 
709
  public function get_root_flag_path($flag)
@@ -775,6 +779,9 @@ class WPvivid_ZipClass extends Wpvivid_Compress_Default
775
  }
776
  $handler = opendir($path);
777
 
 
 
 
778
  while (($filename = readdir($handler)) !== false)
779
  {
780
  if ($filename != "." && $filename != "..")
659
  function get_folder_file_count_loop($path,&$count)
660
  {
661
  $handler = opendir($path);
662
+ if($handler!==false)
 
663
  {
664
+ while (($filename = readdir($handler)) !== false)
665
  {
666
+ if ($filename != "." && $filename != "..")
 
 
667
  {
668
+ $count++;
669
+
670
+ if(is_dir($path . DIRECTORY_SEPARATOR . $filename))
671
+ {
672
+ $this->get_folder_file_count_loop($path . DIRECTORY_SEPARATOR . $filename,$count);
673
+ }
674
  }
675
  }
676
+ if($handler)
677
+ @closedir($handler);
678
  }
 
 
679
  }
680
 
681
  function get_folder_file_size($file)
689
  function get_folder_file_size_loop($path,&$count)
690
  {
691
  $handler = opendir($path);
692
+ if($handler!==false)
 
693
  {
694
+ while (($filename = readdir($handler)) !== false)
695
  {
696
+ if ($filename != "." && $filename != "..")
 
 
 
 
697
  {
698
+ if(is_dir($path . DIRECTORY_SEPARATOR . $filename))
699
+ {
700
+ $this->get_folder_file_size_loop($path . DIRECTORY_SEPARATOR . $filename,$count);
701
+ }
702
+ else
703
+ {
704
+ $count+=filesize($path . DIRECTORY_SEPARATOR . $filename);
705
+ }
706
  }
707
  }
708
+ if($handler)
709
+ @closedir($handler);
710
  }
 
 
711
  }
712
 
713
  public function get_root_flag_path($flag)
779
  }
780
  $handler = opendir($path);
781
 
782
+ if($handler===false)
783
+ return;
784
+
785
  while (($filename = readdir($handler)) !== false)
786
  {
787
  if ($filename != "." && $filename != "..")
includes/class-wpvivid.php CHANGED
@@ -4070,6 +4070,8 @@ class WPvivid {
4070
  public function get_dir_files(&$files,&$folder,$path,$except_regex,$exclude_files=array(),$exclude_folder=array(),$exclude_file_size=0,$flag = true)
4071
  {
4072
  $handler=opendir($path);
 
 
4073
  while(($filename=readdir($handler))!==false)
4074
  {
4075
  if($filename != "." && $filename != "..")
@@ -4815,6 +4817,11 @@ class WPvivid {
4815
  if (empty($value['time'])) {
4816
  $value['time'] = 'N/A';
4817
  }
 
 
 
 
 
4818
  if (empty($value['des'])) {
4819
  $value['des'] = 'N/A';
4820
  }
@@ -4846,23 +4853,26 @@ class WPvivid {
4846
  $files=array();
4847
  $handler=opendir($dir);
4848
  $regex='#^wpvivid.*_log.txt#';
4849
- while(($filename=readdir($handler))!==false)
4850
  {
4851
- if($filename != "." && $filename != "..")
4852
  {
4853
- if(is_dir($dir.$filename))
4854
  {
4855
- continue;
4856
- }else{
4857
- if(preg_match($regex,$filename))
4858
  {
4859
- $files[$filename] = $dir.$filename;
 
 
 
 
 
4860
  }
4861
  }
4862
  }
 
 
4863
  }
4864
- if($handler)
4865
- @closedir($handler);
4866
 
4867
  foreach ($files as $file)
4868
  {
@@ -5121,7 +5131,7 @@ class WPvivid {
5121
  $backuplist=WPvivid_Backuplist::get_backuplist($list_name);
5122
  $remote=array();
5123
  $remote=apply_filters('wpvivid_remote_pic', $remote);
5124
-
5125
  foreach ($backuplist as $key=>$value) {
5126
  if($value['type'] !== 'Rollback') {
5127
  $row_style = '';
@@ -5152,6 +5162,27 @@ class WPvivid {
5152
  }
5153
  }
5154
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5155
  $remote_pic_html = '';
5156
  $save_local_pic_y = '/admin/partials/images/storage-local.png';
5157
  $save_local_pic_n = '/admin/partials/images/storage-local(gray).png';
@@ -5193,7 +5224,7 @@ class WPvivid {
5193
  <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid') . '" value="' . esc_attr($key, 'wpvivid') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5194
  <td class="tablelistcolumn">
5195
  <div style="float:left;padding:0 10px 10px 0;">
5196
- <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M d, Y H:i', $value['create_time']), 'wpvivid') . '</div>
5197
  <div class="common-table">
5198
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5199
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
@@ -5216,7 +5247,7 @@ class WPvivid {
5216
  </td>
5217
  <td class="tablelistcolumn" style="min-width:100px;">
5218
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5219
- ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid') . '\',\'' . __(date('M d, Y H:i', $value['create_time']), 'wpvivid') . '\',\'' . __($value['type'], 'wpvivid') . '\');" style="float:left;padding:10px 10px 10px 0;">
5220
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid') . '</span>
5221
  </div>
5222
  </div>
4070
  public function get_dir_files(&$files,&$folder,$path,$except_regex,$exclude_files=array(),$exclude_folder=array(),$exclude_file_size=0,$flag = true)
4071
  {
4072
  $handler=opendir($path);
4073
+ if($handler===false)
4074
+ return;
4075
  while(($filename=readdir($handler))!==false)
4076
  {
4077
  if($filename != "." && $filename != "..")
4817
  if (empty($value['time'])) {
4818
  $value['time'] = 'N/A';
4819
  }
4820
+ else{
4821
+ $offset=get_option('gmt_offset');
4822
+ $localtime = strtotime($value['time']) + $offset * 60 * 60;
4823
+ $value['time'] = date('Y-m-d H:i:s',$localtime);
4824
+ }
4825
  if (empty($value['des'])) {
4826
  $value['des'] = 'N/A';
4827
  }
4853
  $files=array();
4854
  $handler=opendir($dir);
4855
  $regex='#^wpvivid.*_log.txt#';
4856
+ if($handler!==false)
4857
  {
4858
+ while(($filename=readdir($handler))!==false)
4859
  {
4860
+ if($filename != "." && $filename != "..")
4861
  {
4862
+ if(is_dir($dir.$filename))
 
 
4863
  {
4864
+ continue;
4865
+ }else{
4866
+ if(preg_match($regex,$filename))
4867
+ {
4868
+ $files[$filename] = $dir.$filename;
4869
+ }
4870
  }
4871
  }
4872
  }
4873
+ if($handler)
4874
+ @closedir($handler);
4875
  }
 
 
4876
 
4877
  foreach ($files as $file)
4878
  {
5131
  $backuplist=WPvivid_Backuplist::get_backuplist($list_name);
5132
  $remote=array();
5133
  $remote=apply_filters('wpvivid_remote_pic', $remote);
5134
+ $upload_title = '';
5135
  foreach ($backuplist as $key=>$value) {
5136
  if($value['type'] !== 'Rollback') {
5137
  $row_style = '';
5162
  }
5163
  }
5164
 
5165
+ $backup_time=$value['create_time'];
5166
+ if(isset($value['backup']['files'])){
5167
+ foreach ($value['backup']['files'] as $file_info){
5168
+ if(preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}/',$file_info['file_name'],$matches))
5169
+ {
5170
+ $backup_date=$matches[0];
5171
+ }
5172
+ else
5173
+ {
5174
+ $backup_date=$value['create_time'];
5175
+ }
5176
+
5177
+ $time_array=explode('-',$backup_date);
5178
+ if(sizeof($time_array)>4){
5179
+ $time=$time_array[0].'-'.$time_array[1].'-'.$time_array[2].' '.$time_array[3].':'.$time_array[4];
5180
+ $backup_time=strtotime($time);
5181
+ }
5182
+ break;
5183
+ }
5184
+ }
5185
+
5186
  $remote_pic_html = '';
5187
  $save_local_pic_y = '/admin/partials/images/storage-local.png';
5188
  $save_local_pic_n = '/admin/partials/images/storage-local(gray).png';
5224
  <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid') . '" value="' . esc_attr($key, 'wpvivid') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5225
  <td class="tablelistcolumn">
5226
  <div style="float:left;padding:0 10px 10px 0;">
5227
+ <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M d, Y H:i', $backup_time), 'wpvivid') . '</div>
5228
  <div class="common-table">
5229
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5230
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
5247
  </td>
5248
  <td class="tablelistcolumn" style="min-width:100px;">
5249
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5250
+ ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid') . '\',\'' . __(date('M d, Y H:i', $backup_time), 'wpvivid') . '\',\'' . __($value['type'], 'wpvivid') . '\');" style="float:left;padding:10px 10px 10px 0;">
5251
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid') . '</span>
5252
  </div>
5253
  </div>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: move, clone, migrate, copy, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
  Tested up to: 5.3.2
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.36
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
@@ -177,6 +177,10 @@ Thank you for translating WPvivid Backup Plugin to your languages!
177
  * [Shohei OKADA](https://ja.gravatar.com/silversword0630)(Japanese)
178
 
179
  == Changelog ==
 
 
 
 
180
  = 0.9.36 =
181
  - Added an option to overwrite existing pages in an import.
182
  - Fixed: Could not retrieve posts list on a multilingual site in an export.
4
  Requires at least: 4.5
5
  Tested up to: 5.3.2
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.37
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
177
  * [Shohei OKADA](https://ja.gravatar.com/silversword0630)(Japanese)
178
 
179
  == Changelog ==
180
+ = 0.9.37 =
181
+ - Changed the time in the name of the backup zip to the sites local time.
182
+ - Changed the time showed in the backup list and log list to the sites local time.
183
+ - Fixed some bugs in the plugin code.
184
  = 0.9.36 =
185
  - Added an option to overwrite existing pages in an import.
186
  - Fixed: Could not retrieve posts list on a multilingual site in an export.
wpvivid-backuprestore.php CHANGED
@@ -7,7 +7,7 @@
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
- * Version: 0.9.36
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
@@ -21,7 +21,7 @@ if ( ! defined( 'WPINC' ) ) {
21
  die;
22
  }
23
 
24
- define( 'WPVIVID_PLUGIN_VERSION', '0.9.36' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
+ * Version: 0.9.37
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
21
  die;
22
  }
23
 
24
+ define( 'WPVIVID_PLUGIN_VERSION', '0.9.37' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');