Backup and Restore WordPress – WPBackItUp Backup Plugin - Version 1.10.9

Version Description

Release Date - August 14, 2015

  • NEW : New Feature - Cancel backup
  • NEW : New Feature - Batch Size settings for plugins, themes, uploads
  • UPDATE: Add additional logging to data access methods.
  • UPDATE: Add base localization
  • UPDATE: Add new static logging class
  • UPDATE: Add logging to verify timeout error
  • UPDATE: Change backup file validation to be performed in multiple steps
  • UPDATE: Update backup to no longer use using .tmp extensions
  • UPDATE: Add new logging to track file sizes and capture zip file status before close
  • UPDATE: Add permission checking to files being added to zip
  • UPDATE: Check archive state on close and file count check
  • UPDATE: Additional logging to detect error on archive creation
  • UPDATE: Add filter for plugin wp-backitup on backup
  • UPDATE: Separate validation into smaller batches to support large WordPress sites
  • UPDATE: Add check for safe mode and ini_set instead of set_time_limit.
  • FIX : Fix to hide cancel button on backup error
  • FIX : Fix get_portonly() method
Download this release

Release Info

Developer cssimmon
Plugin Icon 128x128 Backup and Restore WordPress – WPBackItUp Backup Plugin
Version 1.10.9
Comparing to
See all releases

Code changes from version 1.10.8 to 1.10.9

Files changed (50) hide show
  1. css/wpbackitup_admin.css +13 -2
  2. js/wpbackitup_admin.js +88 -25
  3. languages/en-GB.mo +0 -0
  4. languages/en-GB.po +0 -333
  5. languages/wp-backitup-bn_BD.mo +0 -0
  6. languages/wp-backitup-bn_BD.po +1321 -0
  7. languages/wp-backitup-de_DE.mo +0 -0
  8. languages/wp-backitup-de_DE.po +1334 -0
  9. languages/wp-backitup-en_US.mo +0 -0
  10. languages/wp-backitup-en_US.po +1330 -0
  11. languages/wp-backitup-fr_FR.mo +0 -0
  12. languages/wp-backitup-fr_FR.po +1559 -0
  13. languages/wp-backitup-ru_RU.mo +0 -0
  14. languages/wp-backitup-ru_RU.po +1338 -0
  15. languages/wp-backitup-tl.mo +0 -0
  16. languages/wp-backitup-tl.po +1540 -0
  17. languages/wp-backitup.pot +1331 -0
  18. languages/wp-backitup_it_IT.mo +0 -0
  19. languages/wp-backitup_it_IT.po +1333 -0
  20. lib/includes/class-backup.php +356 -365
  21. lib/includes/class-database.php +119 -36
  22. lib/includes/class-filesystem.php +133 -137
  23. lib/includes/class-job-v2.php +103 -102
  24. lib/includes/class-job.php +94 -91
  25. lib/includes/class-logger.php +26 -6
  26. lib/includes/class-loggerV2.php +187 -0
  27. lib/includes/class-mutex.php +11 -5
  28. lib/includes/class-recursiveFilter_Iterator.php +0 -34
  29. lib/includes/class-restore.php +180 -171
  30. lib/includes/class-scheduler.php +29 -25
  31. lib/includes/class-sql.php +83 -67
  32. lib/includes/class-task.php +38 -33
  33. lib/includes/class-utility.php +20 -14
  34. lib/includes/class-wpbackitup-admin.php +241 -138
  35. lib/includes/class-zip.php +1 -1
  36. lib/includes/handler_download.php +17 -13
  37. lib/includes/handler_upload.php +13 -12
  38. lib/includes/handler_viewlog.php +8 -1
  39. lib/includes/job_backup.php +260 -177
  40. lib/includes/job_backup_cancelled.php +118 -0
  41. lib/includes/job_cleanup.php +48 -50
  42. lib/includes/job_restore.php +105 -90
  43. lib/includes/update_database.php +6 -2
  44. lib/includes/update_plugin.php +7 -3
  45. readme.txt +53 -18
  46. views/backup.php +87 -76
  47. views/restore.php +16 -16
  48. views/settings.php +33 -21
  49. views/support.php +9 -10
  50. wp-backitup.php +6 -12
css/wpbackitup_admin.css CHANGED
@@ -11,7 +11,7 @@
11
  .warning { color: #FEEFB3;}
12
  .wpbackitup-warning { color: #FF8000;}
13
 
14
- .isa_info, .isa_success, .isa_warning, .isa_error {
15
  border: 1px solid;
16
  margin: 10px 0px;
17
  padding:15px 10px 15px 50px;
@@ -42,6 +42,12 @@ border-radius:.5em;
42
  background-image: url('../images/error.png');
43
  }
44
 
 
 
 
 
 
 
45
  p {line-height: 1.4em;}
46
 
47
  td {padding: 0;}
@@ -106,7 +112,7 @@ h3 {
106
 
107
  .restore-success,
108
  .restore-success div,
109
-
110
  .upload-status,
111
  .upload-status span
112
  {
@@ -124,3 +130,8 @@ h3 {
124
  background-color: white;
125
  margin: 20px;
126
  }
 
 
 
 
 
11
  .warning { color: #FEEFB3;}
12
  .wpbackitup-warning { color: #FF8000;}
13
 
14
+ .isa_info, .isa_success, .isa_warning, .isa_error, .isa_cancelled{
15
  border: 1px solid;
16
  margin: 10px 0px;
17
  padding:15px 10px 15px 50px;
42
  background-image: url('../images/error.png');
43
  }
44
 
45
+ .isa_cancelled{
46
+ color: #9F6000;
47
+ background-color: #FEEFB3;
48
+ background-image: url('../images/warning.png');
49
+ }
50
+
51
  p {line-height: 1.4em;}
52
 
53
  td {padding: 0;}
112
 
113
  .restore-success,
114
  .restore-success div,
115
+ .backup-cancelled,
116
  .upload-status,
117
  .upload-status span
118
  {
130
  background-color: white;
131
  margin: 20px;
132
  }
133
+
134
+ /* cancel button */
135
+ .cancel-hidden{
136
+ display: none !important;
137
+ }
js/wpbackitup_admin.js CHANGED
@@ -83,7 +83,7 @@
83
  }
84
 
85
  if (upload_file_size > max_file_size){
86
- alert('The backup you have selected exceeds what your host allows you to upload.');
87
  $("#wpbackitup-zip").val("");
88
  }
89
  });
@@ -255,6 +255,19 @@
255
 
256
  }
257
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  });
259
  });
260
  }
@@ -290,6 +303,7 @@
290
  //fade out all of the spinners
291
  $('.status-icon').fadeOut(200);
292
  $("#backup-button").removeAttr("disabled"); //enable button
 
293
 
294
  $('.isa_success').show;
295
  $('.backup-success').fadeIn(1500);
@@ -303,7 +317,7 @@
303
  var $warningMessages = jsonData.backupWarnings;
304
  $warningMessages.forEach(function(obj) {
305
  var warningMessage = obj.warningMessage;
306
- warning.append('<li class="isa_warning">Warning: '+ warningMessage + '</li>');
307
  });
308
 
309
  warning.fadeIn(1500);
@@ -314,11 +328,11 @@
314
  case 'error':
315
  console.log("JSON error response received.");
316
 
317
- var msg="(JS997) Unexpected error";
318
  if (typeof jsonData.backupMessage !== 'undefined'){
319
  msg= jsonData.backupMessage;
320
  }
321
- var status_message='Error: &nbsp;' + msg;
322
 
323
  var backup_error= $('.backup-error');
324
  backup_error.html(status_message);
@@ -328,17 +342,18 @@
328
  //fade out all of the spinners
329
  $('.status-icon').fadeOut(200);
330
  $("#backup-button").removeAttr("disabled"); //enable button
 
331
 
332
  break;
333
 
334
  default:
335
  console.log("Unexpected JSON response status received.");
336
 
337
- var msg="(JS998) Unexpected error";
338
  if (typeof jsonData.backupMessage !== 'undefined'){
339
  msg= jsonData.backupMessage;
340
  }
341
- var status_message='Error(JS998) : &nbsp;' + msg;
342
 
343
  var unexpected_error= $('.backup-error');
344
  unexpected_error.html(status_message);
@@ -348,6 +363,7 @@
348
  //fade out all of the spinners
349
  $('.status-icon').fadeOut(200);
350
  $("#backup-button").removeAttr("disabled"); //enable button
 
351
 
352
  break;
353
 
@@ -356,10 +372,10 @@
356
  } else { //Didnt get any json back
357
  console.log("NON JSON response received.");
358
  console.log("Backup Response:" + errorThrown);
359
- status_message='(JS999) An unexpected error has occurred: &nbsp;';
360
- status_message+='</br>Response: &nbsp;' + JSON.stringify(jsonData);
361
- status_message+='</br>Status: &nbsp;' + textStatus;
362
- status_message+='</br>Error: &nbsp;' + JSON.stringify(errorThrown);
363
 
364
  $('.backup-status').hide();
365
 
@@ -411,10 +427,10 @@
411
  switch (response)
412
  {
413
  case 'success':
414
- wpbackitup_show_success_message("Scheduled has been saved.");
415
  break;
416
  case 'error':
417
- wpbackitup_show_error_message("Scheduled was not saved.");
418
  break;
419
  default:
420
 
@@ -433,13 +449,16 @@
433
 
434
  });
435
 
 
 
436
  // BACKUP button click
437
  $(".backup-button").click(function(e) {
438
  e.preventDefault();
439
 
440
  $("#backup-button").attr('disabled', 'disabled'); //Disable button
 
441
 
442
- var jqxhr = $.ajax({
443
  url: ajaxurl,
444
  type: 'POST',
445
  data: {action: wpbackitup_get_action_name('backup')},
@@ -468,6 +487,7 @@
468
  $('.backup-success').hide();
469
  $('.default-status').hide();
470
  $('.backup-error').hide();
 
471
 
472
  /* hide the status just incase this is the second run */
473
  $("ul.backup-status").children().children().hide();
@@ -480,12 +500,55 @@
480
  window.intervalDefine = setInterval(wpbackitup_get_backup_status, 5000);
481
  }
482
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
 
484
  //RESTORE button click
485
  $('#datatable').on('click', 'a.restoreRow', function(e) {
486
  e.preventDefault();
487
 
488
- if (confirm('Are you sure you want to restore your site?'))
489
  {
490
  var filename = this.title;
491
  var row = this.id.replace('restoreRow', 'row');
@@ -544,7 +607,7 @@
544
  $('#datatable').on('click', 'a.deleteRow', function(e) {
545
 
546
  e.preventDefault();
547
- if (confirm('Are you sure ?'))
548
  {
549
  var filename = this.title;
550
  var row = this.id.replace('deleteRow', 'row');
@@ -559,7 +622,7 @@
559
  }
560
  else
561
  {
562
- alert('This file cannot be delete!');
563
  }
564
  }
565
  });
@@ -709,15 +772,15 @@
709
 
710
  var viewColumn = '<td>&nbsp;</td>\n';
711
  if (typeof data.logFileExists !== 'undefined' && data.logFileExists==true) {
712
- viewColumn = '<td><a class="viewloglink" href="' + data.backupName + '">View Log</a></td>\n';
713
  }
714
 
715
  var newRow =
716
  '<tr ' + css_class + ' id="row' + cur_row + '">\n\
717
- <td>New Backup!</td>\n\
718
- <td><a href="#TB_inline?width=600&height=550&inlineId=new_backup" class="thickbox" title="' + data.backupName + '">Download</a></td>\n';
719
  newRow +=viewColumn;
720
- newRow +='<td><a href="#" title="' + data.backupName + '" class="deleteRow" id="deleteRow' + cur_row + '">Delete</a></td>\n';
721
  newRow +='</tr>';
722
 
723
  if ($('#nofiles'))
@@ -754,13 +817,13 @@
754
  // built id of the row to be inserted dynamically
755
  if (data != undefined)
756
  {
757
- var restoreColumn = '<td><a href="#" title="' + data.file + '" class="restoreRow" id="restoreRow' + cur_row + '">Restore</a></td>\n';
758
  var newRow =
759
  '<tr ' + css_class + ' id="row' + cur_row + '">\n\
760
- <td>Uploaded Backup<i class="fa fa-long-arrow-right"></i>' + data.file +'</td>\n\
761
- <td><a href="' + data.zip_link + '">Download</a></td>\n\
762
- <td><a href="#" title="' + data.file + '" class="deleteRow" id="deleteRow' + cur_row + '">Delete</a></td>\n\
763
- <td><a href="#" title="' + data.file + '" class="restoreRow" id="restoreRow' + cur_row + '">Restore</a></td>\n\
764
  </tr>';
765
 
766
  if ($('#nofiles'))
83
  }
84
 
85
  if (upload_file_size > max_file_size){
86
+ alert(wpbackitup_local.upload_file_size_exceed);
87
  $("#wpbackitup-zip").val("");
88
  }
89
  });
255
 
256
  }
257
 
258
+ // Cancelled
259
+ if ( $(this).html() == -99 ) {
260
+
261
+ $('.status-icon').fadeOut(200);
262
+ $("#backup-button").removeAttr("disabled");
263
+ $("#cancel-button").addClass('cancel-hidden');
264
+ $("#cancel-button").removeAttr("disabled");
265
+ $('.backup-cancelled').fadeIn(200);
266
+
267
+ /* Stop statusreader */
268
+ clearInterval(window.intervalDefine);
269
+ }
270
+
271
  });
272
  });
273
  }
303
  //fade out all of the spinners
304
  $('.status-icon').fadeOut(200);
305
  $("#backup-button").removeAttr("disabled"); //enable button
306
+ $("#cancel-button").addClass('cancel-hidden');
307
 
308
  $('.isa_success').show;
309
  $('.backup-success').fadeIn(1500);
317
  var $warningMessages = jsonData.backupWarnings;
318
  $warningMessages.forEach(function(obj) {
319
  var warningMessage = obj.warningMessage;
320
+ warning.append('<li class="isa_warning">' + wpbackitup_local.warning + ': ' + warningMessage + '</li>');
321
  });
322
 
323
  warning.fadeIn(1500);
328
  case 'error':
329
  console.log("JSON error response received.");
330
 
331
+ var msg= wpbackitup_local.unexpected_err;
332
  if (typeof jsonData.backupMessage !== 'undefined'){
333
  msg= jsonData.backupMessage;
334
  }
335
+ var status_message=wpbackitup_local.error + ': &nbsp;' + msg;
336
 
337
  var backup_error= $('.backup-error');
338
  backup_error.html(status_message);
342
  //fade out all of the spinners
343
  $('.status-icon').fadeOut(200);
344
  $("#backup-button").removeAttr("disabled"); //enable button
345
+ $("#cancel-button").addClass('cancel-hidden');
346
 
347
  break;
348
 
349
  default:
350
  console.log("Unexpected JSON response status received.");
351
 
352
+ var msg= wpbackitup_local.unexpected_err2;
353
  if (typeof jsonData.backupMessage !== 'undefined'){
354
  msg= jsonData.backupMessage;
355
  }
356
+ var status_message= wpbackitup_local.error + '(JS998) : &nbsp;' + msg;
357
 
358
  var unexpected_error= $('.backup-error');
359
  unexpected_error.html(status_message);
363
  //fade out all of the spinners
364
  $('.status-icon').fadeOut(200);
365
  $("#backup-button").removeAttr("disabled"); //enable button
366
+ $("#cancel-button").addClass('cancel-hidden');
367
 
368
  break;
369
 
372
  } else { //Didnt get any json back
373
  console.log("NON JSON response received.");
374
  console.log("Backup Response:" + errorThrown);
375
+ status_message= wpbackitup_local.unexpected_err3 + ': &nbsp;';
376
+ status_message+= '</br>' + wpbackitup_local.response + ': &nbsp;' + JSON.stringify(jsonData);
377
+ status_message+= '</br>' + wpbackitup_local.status + ': &nbsp;' + textStatus;
378
+ status_message+= '</br>' + wpbackitup_local.error + ': &nbsp;' + JSON.stringify(errorThrown);
379
 
380
  $('.backup-status').hide();
381
 
427
  switch (response)
428
  {
429
  case 'success':
430
+ wpbackitup_show_success_message(wpbackitup_local.scheduled_saved);
431
  break;
432
  case 'error':
433
+ wpbackitup_show_error_message(wpbackitup_local.scheduled_not_saved);
434
  break;
435
  default:
436
 
449
 
450
  });
451
 
452
+ // Tracking ajax request.
453
+ var jqxhr = null;
454
  // BACKUP button click
455
  $(".backup-button").click(function(e) {
456
  e.preventDefault();
457
 
458
  $("#backup-button").attr('disabled', 'disabled'); //Disable button
459
+ $("#cancel-button").removeClass('cancel-hidden');
460
 
461
+ jqxhr = $.ajax({
462
  url: ajaxurl,
463
  type: 'POST',
464
  data: {action: wpbackitup_get_action_name('backup')},
487
  $('.backup-success').hide();
488
  $('.default-status').hide();
489
  $('.backup-error').hide();
490
+ $(".backup-cancelled").hide();
491
 
492
  /* hide the status just incase this is the second run */
493
  $("ul.backup-status").children().children().hide();
500
  window.intervalDefine = setInterval(wpbackitup_get_backup_status, 5000);
501
  }
502
 
503
+ // Cancel button click
504
+ $(".cancel-button").click(function(e) {
505
+ e.preventDefault();
506
+
507
+ $("#cancel-button").attr('disabled', 'disabled'); //Disable button
508
+
509
+ // abort previous ajax call
510
+ if(jqxhr != null){
511
+ jqxhr.abort();
512
+ jqxhr = null;
513
+ }
514
+
515
+ jqxhr = $.ajax({
516
+ url: ajaxurl,
517
+ type: 'POST',
518
+ data: {action: wpbackitup_get_action_name('cancel_backup')},
519
+ cache: false,
520
+ dataType: "json",
521
+
522
+ beforeSend: function(jqXHR, settings) {
523
+ console.log("BeforeSend:Nothing to report.");
524
+ wpbackitup_show_cancel_backup();
525
+ }
526
+ });
527
+
528
+ //Fetch the JSON response file if it exists
529
+ jqxhr.always(function(data, textStatus, errorThrown) {
530
+ console.log("Cancel Button Click - Always");
531
+ console.log(data.message);//backup queued?
532
+ });
533
+ });
534
+
535
+ function wpbackitup_show_cancel_backup(){
536
+ /* display processing icon */
537
+ $('.backup-icon').css('visibility', 'visible');
538
+ $('.backup-icon').show();
539
+
540
+ /* show backup status, backup errors */
541
+ $('.backup-status').show();
542
+ backup_response=false;
543
+ clearInterval(window.intervalDefine);
544
+ window.intervalDefine = setInterval(wpbackitup_get_backup_status, 5000);
545
+ }
546
 
547
  //RESTORE button click
548
  $('#datatable').on('click', 'a.restoreRow', function(e) {
549
  e.preventDefault();
550
 
551
+ if (confirm(wpbackitup_local.confirm_restore))
552
  {
553
  var filename = this.title;
554
  var row = this.id.replace('restoreRow', 'row');
607
  $('#datatable').on('click', 'a.deleteRow', function(e) {
608
 
609
  e.preventDefault();
610
+ if (confirm(wpbackitup_local.sure))
611
  {
612
  var filename = this.title;
613
  var row = this.id.replace('deleteRow', 'row');
622
  }
623
  else
624
  {
625
+ alert(wpbackitup_local.file_not_del);
626
  }
627
  }
628
  });
772
 
773
  var viewColumn = '<td>&nbsp;</td>\n';
774
  if (typeof data.logFileExists !== 'undefined' && data.logFileExists==true) {
775
+ viewColumn = '<td><a class="viewloglink" href="' + data.backupName + '">' + wpbackitup_local.view_log + '</a></td>\n';
776
  }
777
 
778
  var newRow =
779
  '<tr ' + css_class + ' id="row' + cur_row + '">\n\
780
+ <td>' + wpbackitup_local.new_backup + '</td>\n\
781
+ <td><a href="#TB_inline?width=600&height=550&inlineId=new_backup" class="thickbox" title="' + data.backupName + '">' + wpbackitup_local.download + '</a></td>\n';
782
  newRow +=viewColumn;
783
+ newRow +='<td><a href="#" title="' + data.backupName + '" class="deleteRow" id="deleteRow' + cur_row + '">' + wpbackitup_local.delete + '</a></td>\n';
784
  newRow +='</tr>';
785
 
786
  if ($('#nofiles'))
817
  // built id of the row to be inserted dynamically
818
  if (data != undefined)
819
  {
820
+ var restoreColumn = '<td><a href="#" title="' + data.file + '" class="restoreRow" id="restoreRow' + cur_row + '">' + wpbackitup_local.restore + '</a></td>\n';
821
  var newRow =
822
  '<tr ' + css_class + ' id="row' + cur_row + '">\n\
823
+ <td>' + wpbackitup_local.uploaded_backup + '<i class="fa fa-long-arrow-right"></i>' + data.file +'</td>\n\
824
+ <td><a href="' + data.zip_link + '">' + wpbackitup_local.download + '</a></td>\n\
825
+ <td><a href="#" title="' + data.file + '" class="deleteRow" id="deleteRow' + cur_row + '">' + wpbackitup_local.delete + '</a></td>\n\
826
+ <td><a href="#" title="' + data.file + '" class="restoreRow" id="restoreRow' + cur_row + '">' + wpbackitup_local.restore + '</a></td>\n\
827
  </tr>';
828
 
829
  if ($('#nofiles'))
languages/en-GB.mo DELETED
Binary file
languages/en-GB.po DELETED
@@ -1,333 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: WP Backitup\n"
4
- "POT-Creation-Date: 2013-09-07 19:24-0000\n"
5
- "PO-Revision-Date: 2013-09-07 19:24-0000\n"
6
- "Last-Translator: John Peden <john.peden@britishcouncil.org>\n"
7
- "Language-Team: John Peden Ltd <mail@johncpeden.com>\n"
8
- "Language: English\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.5.4\n"
13
- "X-Poedit-KeywordsList: _e;__\n"
14
- "X-Poedit-Basepath: .\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
- "X-Poedit-SearchPath-1: ..\n"
18
-
19
- #: ../index.php:312
20
- msgid "Manage"
21
- msgstr ""
22
-
23
- #: ../views/options.php:6 ../views/options.php:8
24
- msgid "Backup"
25
- msgstr ""
26
-
27
- #: ../views/options.php:7
28
- msgid "Create a backup file of this site's content and settings"
29
- msgstr ""
30
-
31
- #: ../views/options.php:9
32
- msgid "Download"
33
- msgstr ""
34
-
35
- #: ../views/options.php:15 ../views/options.php:30
36
- msgid "Restore"
37
- msgstr ""
38
-
39
- #: ../views/options.php:17
40
- msgid ""
41
- "Restore a WP Backitup zip file and overwrite this site's content, themes, "
42
- "plugins, uploads and settings"
43
- msgstr ""
44
-
45
- #: ../views/options.php:22
46
- msgid "The maximum filesize you can upload is "
47
- msgstr ""
48
-
49
- #: ../views/options.php:35
50
- msgid "Status"
51
- msgstr ""
52
-
53
- #: ../views/options.php:40
54
- msgid "Nothing to report"
55
- msgstr ""
56
-
57
- #: ../views/options.php:45
58
- msgid "Preparing to backup"
59
- msgstr ""
60
-
61
- #: ../views/options.php:45 ../views/options.php:46 ../views/options.php:47
62
- #: ../views/options.php:48 ../views/options.php:49 ../views/options.php:50
63
- #: ../views/options.php:67 ../views/options.php:68 ../views/options.php:69
64
- #: ../views/options.php:70 ../views/options.php:71 ../views/options.php:72
65
- #: ../views/options.php:73
66
- msgid "Done"
67
- msgstr ""
68
-
69
- #: ../views/options.php:45 ../views/options.php:46 ../views/options.php:47
70
- #: ../views/options.php:48 ../views/options.php:49 ../views/options.php:50
71
- #: ../views/options.php:67 ../views/options.php:68 ../views/options.php:69
72
- #: ../views/options.php:70 ../views/options.php:71 ../views/options.php:72
73
- #: ../views/options.php:73
74
- msgid "Failed"
75
- msgstr ""
76
-
77
- #: ../views/options.php:46
78
- msgid "Backing-up database"
79
- msgstr ""
80
-
81
- #: ../views/options.php:47
82
- msgid "Backing-up /wp-content/"
83
- msgstr ""
84
-
85
- #: ../views/options.php:48
86
- msgid "Creating backup information file"
87
- msgstr ""
88
-
89
- #: ../views/options.php:49
90
- msgid "Zipping backup directory"
91
- msgstr ""
92
-
93
- #: ../views/options.php:50 ../views/options.php:73
94
- msgid "Cleaning up"
95
- msgstr ""
96
-
97
- #: ../views/options.php:51
98
- msgid ""
99
- "Backup file created successfully. You can download your backup file using "
100
- "the link above"
101
- msgstr ""
102
-
103
- #: ../views/options.php:56
104
- msgid ""
105
- "Error: Unable to create new directory for backup. Please check your CHMOD "
106
- "settings of your wp-backitup plugin directory"
107
- msgstr ""
108
-
109
- #: ../views/options.php:57
110
- msgid ""
111
- "Error: Cannot create backup directory. Please check the CHMOD settings of "
112
- "your wp-backitup plugin directory"
113
- msgstr ""
114
-
115
- #: ../views/options.php:58
116
- msgid "Error: Unable to backup your files. Please try again"
117
- msgstr ""
118
-
119
- #: ../views/options.php:59
120
- msgid "Error: Unable to backup your database. Please try again"
121
- msgstr ""
122
-
123
- #: ../views/options.php:60
124
- msgid ""
125
- "Error: Your database was accesible but a dump could not be created. Please "
126
- "contact support by clicking the link on the right, stating your web host "
127
- "when you submit the form."
128
- msgstr ""
129
-
130
- #: ../views/options.php:61
131
- msgid "Error: Unable to create site information file. Please try again"
132
- msgstr ""
133
-
134
- #: ../views/options.php:62
135
- msgid "Warning: Unable to cleanup your backup directory"
136
- msgstr ""
137
-
138
- #: ../views/options.php:67
139
- msgid "Uploading restoration zip"
140
- msgstr ""
141
-
142
- #: ../views/options.php:68
143
- msgid "Unzipping"
144
- msgstr ""
145
-
146
- #: ../views/options.php:69
147
- msgid "Validating restoration zip"
148
- msgstr ""
149
-
150
- #: ../views/options.php:70
151
- msgid "Setting checkpoint"
152
- msgstr ""
153
-
154
- #: ../views/options.php:71
155
- msgid "Importing database"
156
- msgstr ""
157
-
158
- #: ../views/options.php:72
159
- msgid "Importing /wp-content/ directory"
160
- msgstr ""
161
-
162
- #: ../views/options.php:74
163
- msgid ""
164
- "Restoration completed successfully. Please refresh the page and login to the "
165
- "site again (with your current username and password)"
166
- msgstr ""
167
-
168
- #: ../views/options.php:79
169
- msgid "Error: No file selected"
170
- msgstr ""
171
-
172
- #: ../views/options.php:80
173
- msgid "Error: Your file could not be uploaded"
174
- msgstr ""
175
-
176
- #: ../views/options.php:81
177
- msgid "Error: Your restoration file could not be unzipped"
178
- msgstr ""
179
-
180
- #: ../views/options.php:82
181
- msgid ""
182
- "Error: Your zip file appears to be invalid. Please ensure you chose the "
183
- "correct zip file"
184
- msgstr ""
185
-
186
- #: ../views/options.php:83
187
- msgid "Error: Cannot create restore point"
188
- msgstr ""
189
-
190
- #: ../views/options.php:84
191
- msgid "Error: Unable to connect to your database"
192
- msgstr ""
193
-
194
- #: ../views/options.php:85
195
- msgid "Error: Unable to get current site URL from database. Please try again"
196
- msgstr ""
197
-
198
- #: ../views/options.php:86
199
- msgid "Error: Unable to get current home URL from database. Please try again"
200
- msgstr ""
201
-
202
- #: ../views/options.php:87
203
- msgid "Error: Unable to get current user ID from database. Please try again"
204
- msgstr ""
205
-
206
- #: ../views/options.php:88
207
- msgid ""
208
- "Error: Unable to get current user password from database. Please try again"
209
- msgstr ""
210
-
211
- #: ../views/options.php:89
212
- msgid "Error: Unable to get current user email from database. Please try again"
213
- msgstr ""
214
-
215
- #: ../views/options.php:90
216
- msgid ""
217
- "Error: Unable to get import your database. This may require importing the "
218
- "file manually"
219
- msgstr ""
220
-
221
- #: ../views/options.php:91
222
- msgid ""
223
- "Error: Unable to update your current site URL value. This may require "
224
- "importing the file manually"
225
- msgstr ""
226
-
227
- #: ../views/options.php:92
228
- msgid ""
229
- "Error: Unable to update your current home URL value. This may require "
230
- "importing the file manually"
231
- msgstr ""
232
-
233
- #: ../views/options.php:93
234
- msgid ""
235
- "Error: Unable to update your user information. This may require importing "
236
- "the file manually"
237
- msgstr ""
238
-
239
- #: ../views/options.php:94
240
- msgid "Error: Warning: Database not detected in import file"
241
- msgstr ""
242
-
243
- #: ../views/options.php:95
244
- msgid ""
245
- "Error: Unable to remove existing wp-content directory for import. Please "
246
- "check your CHMOD settings in /wp-content/"
247
- msgstr ""
248
-
249
- #: ../views/options.php:96
250
- msgid ""
251
- "Error: Unable to create new wp-content directory for import. Please check "
252
- "your CHMOD settings in /wp-content/"
253
- msgstr ""
254
-
255
- #: ../views/options.php:97
256
- msgid "Error: Unable to import wp-content. Please try again"
257
- msgstr ""
258
-
259
- #: ../views/options.php:98
260
- msgid "Warning: Unable to cleanup import directory"
261
- msgstr ""
262
-
263
- #: ../views/options.php:109
264
- msgid "License Key"
265
- msgstr ""
266
-
267
- #: ../views/options.php:113
268
- msgid "Pro features and auto-updates enabled"
269
- msgstr ""
270
-
271
- #: ../views/options.php:115
272
- msgid "Activate auto-restore and auto-updates by entering your license key"
273
- msgstr ""
274
-
275
- #: ../views/options.php:120
276
- msgid "Active"
277
- msgstr ""
278
-
279
- #: ../views/options.php:121
280
- msgid "Update"
281
- msgstr ""
282
-
283
- #: ../views/options.php:123
284
- msgid "Inactive"
285
- msgstr ""
286
-
287
- #: ../views/options.php:124
288
- msgid "Activate"
289
- msgstr ""
290
-
291
- #: ../views/options.php:125
292
- msgid "Purchase a license key"
293
- msgstr ""
294
-
295
- #: ../views/options.php:132
296
- msgid "WP Backitup support system"
297
- msgstr ""
298
-
299
- #: ../views/options.php:135
300
- msgid "support system"
301
- msgstr ""
302
-
303
- #: ../views/options.php:138
304
- msgid "Need Help?"
305
- msgstr ""
306
-
307
- #: ../views/options.php:139
308
- msgid "Access the"
309
- msgstr ""
310
-
311
- #: ../views/options.php:143
312
- msgid "Spread the Word"
313
- msgstr ""
314
-
315
- #: ../views/options.php:144
316
- msgid "Rate WP Backitup"
317
- msgstr ""
318
-
319
- #: ../views/options.php:149
320
- msgid "Enable"
321
- msgstr ""
322
-
323
- #: ../views/options.php:150
324
- msgid "Disable"
325
- msgstr ""
326
-
327
- #: ../views/options.php:151
328
- msgid "Help to improve Easy Webtrends by enabling"
329
- msgstr ""
330
-
331
- #: ../views/options.php:152
332
- msgid "Save"
333
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/wp-backitup-bn_BD.mo ADDED
Binary file
languages/wp-backitup-bn_BD.po ADDED
@@ -0,0 +1,1321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ # MD. AL-AMIN <alamin_opu@yahoo.com>, 2015
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: WP BackItUp\n"
7
+ "POT-Creation-Date: 2015-08-14 10:31-0400\n"
8
+ "PO-Revision-Date: 2015-08-14 10:31-0400\n"
9
+ "Last-Translator: MD. AL-AMIN <alamin_opu@yahoo.com>\n"
10
+ "Language-Team: Bengali (Bangladesh) (http://www.transifex.com/wp-translations/wp-"
11
+ "backitup/language/bn_BD/)\n"
12
+ "Language: bn_BD\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: Poedit 1.8.4\n"
18
+ "X-Poedit-Basepath: ..\n"
19
+ "X-Poedit-KeywordsList: _;__;_e\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+
22
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
23
+ #: views/backup.php:179
24
+ msgid "Backup"
25
+ msgstr "ব্যাকআপ"
26
+
27
+ #: lib/includes/class-wpbackitup-admin.php:175
28
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
29
+ msgid "Restore"
30
+ msgstr "পুনরুদ্ধার"
31
+
32
+ #: lib/includes/class-wpbackitup-admin.php:179
33
+ msgid "Support"
34
+ msgstr "সাহায্য"
35
+
36
+ #: lib/includes/class-wpbackitup-admin.php:182
37
+ msgid "Settings"
38
+ msgstr "সেটিংস"
39
+
40
+ #: lib/includes/class-wpbackitup-admin.php:203
41
+ msgid "The backup you have selected exceeds what your host allows you to upload."
42
+ msgstr ""
43
+ "অাপনি যে ব্যাকঅাপটি সিলেক্ট করেছেন সেটি অাপনার হোস্ট যতটুকু অাপলোড করার অনুমতি দেয় তা "
44
+ "অতিক্রম করবে।"
45
+
46
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
47
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
48
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
49
+ #: views/backup.php:312 views/backup.php:313
50
+ msgid "Warning"
51
+ msgstr "সতর্কবার্তা"
52
+
53
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
54
+ msgid "Error"
55
+ msgstr "ত্রুটি"
56
+
57
+ #: lib/includes/class-wpbackitup-admin.php:206
58
+ msgid "Response"
59
+ msgstr "উত্তর"
60
+
61
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
62
+ #: views/restore.php:205
63
+ msgid "Status"
64
+ msgstr "অবস্থা"
65
+
66
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
67
+ msgid "Download"
68
+ msgstr "ডাউনলোড"
69
+
70
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
71
+ #: views/restore.php:111
72
+ msgid "Delete"
73
+ msgstr "মুছুন "
74
+
75
+ #: lib/includes/class-wpbackitup-admin.php:211
76
+ msgid "(JS997) Unexpected error"
77
+ msgstr "(JS997) অপ্রত্যাশিত ত্রুটি"
78
+
79
+ #: lib/includes/class-wpbackitup-admin.php:212
80
+ msgid "(JS998) Unexpected error"
81
+ msgstr "(JS998) অপ্রত্যাশিত ত্রুটি"
82
+
83
+ #: lib/includes/class-wpbackitup-admin.php:213
84
+ msgid "(JS999) An unexpected error has occurred"
85
+ msgstr "(JS999) একটি অপ্রত্যাশিত ত্রুটি হয়েছে"
86
+
87
+ #: lib/includes/class-wpbackitup-admin.php:214
88
+ msgid "Scheduled has been saved."
89
+ msgstr "সুচি সংরক্ষন করা হয়েছে।"
90
+
91
+ #: lib/includes/class-wpbackitup-admin.php:215
92
+ msgid "Scheduled was not saved."
93
+ msgstr "সুচি সংরক্ষন সম্পন্ন হয়নি।"
94
+
95
+ #: lib/includes/class-wpbackitup-admin.php:216
96
+ msgid "Are you sure you want to restore your site?"
97
+ msgstr "অাপনি কি নিশ্চিতভাবে চান সাইটটি পুনরুদ্ধার করতে? "
98
+
99
+ #: lib/includes/class-wpbackitup-admin.php:217
100
+ msgid "Are you sure ?"
101
+ msgstr "অাপনি কি নিশ্চিত ? "
102
+
103
+ #: lib/includes/class-wpbackitup-admin.php:218
104
+ msgid "This file cannot be delete!"
105
+ msgstr "এই ফাইলটি মুছা যাবে নাহ !"
106
+
107
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
108
+ msgid "View Log"
109
+ msgstr "লগ দেখুন"
110
+
111
+ #: lib/includes/class-wpbackitup-admin.php:220
112
+ msgid "New Backup!"
113
+ msgstr "নতুন ব্যাকঅাপ !"
114
+
115
+ #: lib/includes/class-wpbackitup-admin.php:221
116
+ msgid "Uploaded Backup"
117
+ msgstr "অাপলোডকৃত ব্যাকঅাপ"
118
+
119
+ #: lib/includes/class-wpbackitup-admin.php:480
120
+ msgid "Backup Queued"
121
+ msgstr "ব্যাকঅাপ অপেক্ষমান"
122
+
123
+ #: lib/includes/class-wpbackitup-admin.php:482
124
+ msgid "Backup could not be queued"
125
+ msgstr "ব্যাকঅাপ অপেক্ষমান করা যায়নি। "
126
+
127
+ #: lib/includes/class-wpbackitup-admin.php:485
128
+ msgid "Backup already in queue"
129
+ msgstr "ব্যাকঅাপ অাগে থেকেই অপেক্ষমান"
130
+
131
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
132
+ msgid "Backup Cancelled"
133
+ msgstr "ব্যাকঅাপ বাতিল করা হয়েছে"
134
+
135
+ #: lib/includes/class-wpbackitup-admin.php:535
136
+ msgid "No backup file selected."
137
+ msgstr "ব্যাকঅাপ ফাইল বাছাই করা হয়নি।"
138
+
139
+ #: lib/includes/class-wpbackitup-admin.php:542
140
+ msgid "No user id found."
141
+ msgstr "ব্যবহারকারী খুজে পাওয়া যায়নি। "
142
+
143
+ #: lib/includes/class-wpbackitup-admin.php:553
144
+ msgid "Restore Queued"
145
+ msgstr "পুনরুদ্ধার অপেক্ষমান"
146
+
147
+ #: lib/includes/class-wpbackitup-admin.php:555
148
+ msgid "Restore could not be queued"
149
+ msgstr "পুনরুদ্ধার অপেক্ষমান করা যায় নি"
150
+
151
+ #: lib/includes/class-wpbackitup-admin.php:558
152
+ msgid "Restore already in queue"
153
+ msgstr "পুনরুদ্ধার অাগে থেকেই অপেক্ষমান"
154
+
155
+ #: lib/includes/class-wpbackitup-admin.php:743
156
+ msgid "No response log found."
157
+ msgstr "রেসপনস লগ পাওয়া যায়নি।"
158
+
159
+ #: lib/includes/class-wpbackitup-admin.php:836
160
+ #: lib/includes/class-wpbackitup-admin.php:844
161
+ #: lib/includes/class-wpbackitup-admin.php:873
162
+ #: lib/includes/class-wpbackitup-admin.php:880
163
+ #: lib/includes/class-wpbackitup-admin.php:887
164
+ #: lib/includes/class-wpbackitup-admin.php:894
165
+ msgid "Please enter a number"
166
+ msgstr "একটি নাম্বার প্রবেশ করুন "
167
+
168
+ #: lib/includes/class-wpbackitup-admin.php:865
169
+ #: lib/includes/class-wpbackitup-admin.php:972
170
+ msgid "Please enter a valid email"
171
+ msgstr "একটি সঠিক ইমেইল প্রবেশ করুন "
172
+
173
+ #: lib/includes/class-wpbackitup-admin.php:979
174
+ msgid "Please enter your support ticket id"
175
+ msgstr "অাপনার সাপোর্ট টিকেট অাইডি প্রবেশ করুন"
176
+
177
+ #: lib/includes/class-wpbackitup-admin.php:984
178
+ msgid "Please only enter numbers in this field"
179
+ msgstr "এই ঘরে শুধুমাত্র নাম্বার প্রবেশ করুন"
180
+
181
+ #: lib/includes/class-wpbackitup-admin.php:1645
182
+ msgid "License is invalid."
183
+ msgstr "লাইসেন্স সঠিক নয়।"
184
+
185
+ #: lib/includes/class-wpbackitup-admin.php:1650
186
+ msgid "License has expired."
187
+ msgstr "লাইসেন্স বাতিল হয়ে গিয়েছে। "
188
+
189
+ #: lib/includes/class-wpbackitup-admin.php:1655
190
+ msgid "Activation limit has been reached."
191
+ msgstr "সক্রিয়করন সীমা পুর্ন হয়ে গিয়েছে।"
192
+
193
+ #: lib/includes/handler_upload.php:29
194
+ msgid "Invalid Nonce"
195
+ msgstr "ভুল Nonce"
196
+
197
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
198
+ msgid "Upload directory is not writable, or does not exist."
199
+ msgstr "অাপলোড ডিরেক্টরি writeable নয় , অথবা এর অস্তিত্ব নেই"
200
+
201
+ #: lib/includes/handler_upload.php:80
202
+ #, php-format
203
+ msgid "Error: %s"
204
+ msgstr "ত্রুটি: %s"
205
+
206
+ #: lib/includes/handler_upload.php:80
207
+ msgid "File could not be uploaded"
208
+ msgstr "ফাইল অাপলোড করা সম্ভব নয়। "
209
+
210
+ #: lib/includes/handler_upload.php:141
211
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
212
+ msgstr "অাপলোড WP BackitUp ব্যাকঅাপের সংরক্ষিত ফাইল নয়।"
213
+
214
+ #: lib/includes/handler_upload.php:161
215
+ msgid "Could not import file into WP BackItUp backup set."
216
+ msgstr ""
217
+
218
+ #: lib/includes/job_backup.php:851
219
+ msgid "Preparing for backup...Done"
220
+ msgstr "ব্যাকঅাপের জন্যে তৈরি হচ্ছে...সম্পন্ন হল"
221
+
222
+ #: lib/includes/job_backup.php:852
223
+ msgid "Backing up database...Done"
224
+ msgstr "ডাটাবেজ ব্যাকঅাপ হচ্ছে...সম্পন্ন হল"
225
+
226
+ #: lib/includes/job_backup.php:853
227
+ msgid "Creating backup information file...Done"
228
+ msgstr "ব্যাকঅাপের তথ্য তৈরি হচ্ছে...সম্পন্ন হল"
229
+
230
+ #: lib/includes/job_backup.php:854
231
+ msgid "Backing up themes...Done"
232
+ msgstr "থিম ব্যাকঅাপ হচ্ছে...সম্পন্ন হল"
233
+
234
+ #: lib/includes/job_backup.php:855
235
+ msgid "Backing up plugins...Done"
236
+ msgstr "প্লাগিন ব্যাকঅাপ হচ্ছে...সম্পন্ন হল"
237
+
238
+ #: lib/includes/job_backup.php:856
239
+ msgid "Backing up uploads...Done"
240
+ msgstr "অাপলোড ব্যাকঅাপ হচ্ছে...সম্পন্ন হল"
241
+
242
+ #: lib/includes/job_backup.php:857
243
+ msgid "Backing up miscellaneous files...Done"
244
+ msgstr "অন্যান্য ফাইল ব্যাকঅাপ হচ্ছে...সম্পন্ন হল"
245
+
246
+ #: lib/includes/job_backup.php:858
247
+ msgid "Finalizing backup...Done"
248
+ msgstr "ব্যাকঅাপ নেয়া শেষ হচ্ছে...সম্পন্ন হল"
249
+
250
+ #: lib/includes/job_backup.php:859
251
+ msgid "Validating backup...Done"
252
+ msgstr "ব্যাকঅাপ যাচাই করা হচ্ছে...সম্পন্ন হল"
253
+
254
+ #: lib/includes/job_backup.php:860
255
+ msgid "Cleaning up...Done"
256
+ msgstr "পরিষ্কার করছে...সম্পন্ন হল"
257
+
258
+ #: lib/includes/job_backup.php:870
259
+ #, php-format
260
+ msgid "%s - Backup completed successfully."
261
+ msgstr "%s - সফলভাবে ব্যাকআপ হয়েছে। "
262
+
263
+ #: lib/includes/job_backup.php:871
264
+ msgid "Your backup completed successfully."
265
+ msgstr "অাপনার ব্যাকআপ সফলভাবে হয়েছে। "
266
+
267
+ #: lib/includes/job_backup.php:874
268
+ #, php-format
269
+ msgid "%s - Backup did not complete successfully."
270
+ msgstr ""
271
+
272
+ #: lib/includes/job_backup.php:875
273
+ msgid "Your backup did not complete successfully."
274
+ msgstr ""
275
+
276
+ #: lib/includes/job_backup.php:880
277
+ #, php-format
278
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
279
+ msgstr ""
280
+
281
+ #: lib/includes/job_backup.php:881
282
+ msgid "Backup date:"
283
+ msgstr ""
284
+
285
+ #: lib/includes/job_backup.php:882
286
+ msgid "Number of backups completed with WP BackItUp:"
287
+ msgstr ""
288
+
289
+ #: lib/includes/job_backup.php:884
290
+ msgid "Completion Code:"
291
+ msgstr ""
292
+
293
+ #: lib/includes/job_backup.php:885
294
+ msgid "WP BackItUp Version:"
295
+ msgstr ""
296
+
297
+ #: lib/includes/job_backup.php:891
298
+ msgid "Steps Completed"
299
+ msgstr ""
300
+
301
+ #: lib/includes/job_backup.php:912
302
+ #, php-format
303
+ msgid "Checkout %s for info about WP BackItUp and our other products."
304
+ msgstr ""
305
+
306
+ #: lib/includes/job_backup.php:1088
307
+ msgid ""
308
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
309
+ "settings of your wp-backitup backup directory"
310
+ msgstr ""
311
+
312
+ #: lib/includes/job_backup.php:1089
313
+ msgid ""
314
+ "(102) Cannot create backup directory. Please check the CHMOD settings of your wp-"
315
+ "backitup plugin directory"
316
+ msgstr ""
317
+
318
+ #: lib/includes/job_backup.php:1090
319
+ msgid "(103) Unable to backup your files. Please try again"
320
+ msgstr ""
321
+
322
+ #: lib/includes/job_backup.php:1091
323
+ msgid "(104) Unable to export your database. Please try again"
324
+ msgstr ""
325
+
326
+ #: lib/includes/job_backup.php:1092
327
+ msgid "(105) Unable to export site information file. Please try again"
328
+ msgstr ""
329
+
330
+ #: lib/includes/job_backup.php:1093
331
+ msgid "(106) Unable to cleanup your backup directory"
332
+ msgstr ""
333
+
334
+ #: lib/includes/job_backup.php:1094
335
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
336
+ msgstr ""
337
+
338
+ #: lib/includes/job_backup.php:1095
339
+ msgid "(108) Unable to backup your site data files. Please try again"
340
+ msgstr ""
341
+
342
+ #: lib/includes/job_backup.php:1096
343
+ msgid "(109) Unable to finalize backup. Please try again"
344
+ msgstr ""
345
+
346
+ #: lib/includes/job_backup.php:1097
347
+ msgid ""
348
+ "(114) Your database was accessible but an export could not be created. Please "
349
+ "contact support by clicking the get support link on the right. Please let us know "
350
+ "who your host is when you submit the request"
351
+ msgstr ""
352
+
353
+ #: lib/includes/job_backup.php:1098
354
+ msgid "(120) Unable to backup your themes. Please try again"
355
+ msgstr ""
356
+
357
+ #: lib/includes/job_backup.php:1099
358
+ msgid "(121) Unable to backup your plugins. Please try again"
359
+ msgstr ""
360
+
361
+ #: lib/includes/job_backup.php:1100
362
+ msgid "(122) Unable to backup your uploads. Please try again"
363
+ msgstr ""
364
+
365
+ #: lib/includes/job_backup.php:1101
366
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
367
+ msgstr ""
368
+
369
+ #: lib/includes/job_backup.php:1102
370
+ msgid ""
371
+ "(125) Unable to compress your backup because there is no zip utility available. "
372
+ "Please contact support"
373
+ msgstr ""
374
+
375
+ #: lib/includes/job_backup.php:1103
376
+ msgid "(126) Unable to validate your backup. Please try again"
377
+ msgstr ""
378
+
379
+ #: lib/includes/job_backup.php:1104
380
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
381
+ msgstr ""
382
+
383
+ #: lib/includes/job_backup.php:1105
384
+ msgid "(128) Unable to create job control record. Please try again"
385
+ msgstr ""
386
+
387
+ #: lib/includes/job_backup.php:1107
388
+ msgid ""
389
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
390
+ "settings of your wp-backitup backup directory"
391
+ msgstr ""
392
+
393
+ #: lib/includes/job_backup.php:1108
394
+ msgid ""
395
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of your wp-"
396
+ "backitup plugin directory"
397
+ msgstr ""
398
+
399
+ #: lib/includes/job_backup.php:1109
400
+ msgid "(2103) Unable to backup your files. Please try again"
401
+ msgstr ""
402
+
403
+ #: lib/includes/job_backup.php:1110
404
+ msgid "(2104) Unable to export your database. Please try again"
405
+ msgstr ""
406
+
407
+ #: lib/includes/job_backup.php:1111
408
+ msgid "(2105) Unable to export site information file. Please try again"
409
+ msgstr ""
410
+
411
+ #: lib/includes/job_backup.php:1112
412
+ msgid "(2106) Unable to cleanup your backup directory"
413
+ msgstr ""
414
+
415
+ #: lib/includes/job_backup.php:1113
416
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
417
+ msgstr ""
418
+
419
+ #: lib/includes/job_backup.php:1114
420
+ msgid "(2108) Unable to backup your site data files. Please try again"
421
+ msgstr ""
422
+
423
+ #: lib/includes/job_backup.php:1115
424
+ msgid "(2109) Unable to finalize backup. Please try again"
425
+ msgstr ""
426
+
427
+ #: lib/includes/job_backup.php:1116
428
+ msgid ""
429
+ "(2114) Your database was accessible but an export could not be created. Please "
430
+ "contact support by clicking the get support link on the right. Please let us know "
431
+ "who your host is when you submit the request"
432
+ msgstr ""
433
+
434
+ #: lib/includes/job_backup.php:1117
435
+ msgid "(2120) Unable to backup your themes. Please try again"
436
+ msgstr ""
437
+
438
+ #: lib/includes/job_backup.php:1118
439
+ msgid "(2121) Unable to backup your plugins. Please try again"
440
+ msgstr ""
441
+
442
+ #: lib/includes/job_backup.php:1119
443
+ msgid "(2122) Unable to backup your uploads. Please try again"
444
+ msgstr ""
445
+
446
+ #: lib/includes/job_backup.php:1120
447
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
448
+ msgstr ""
449
+
450
+ #: lib/includes/job_backup.php:1121
451
+ msgid ""
452
+ "(2125) Unable to compress your backup because there is no zip utility available. "
453
+ "Please contact support"
454
+ msgstr ""
455
+
456
+ #: lib/includes/job_backup.php:1122
457
+ msgid "(2126) Unable to validate your backup. Please try again"
458
+ msgstr ""
459
+
460
+ #: lib/includes/job_backup.php:1123
461
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
462
+ msgstr ""
463
+
464
+ #: lib/includes/job_backup.php:1124
465
+ msgid "(2128) Unable to create job control record. Please try again"
466
+ msgstr ""
467
+
468
+ #: lib/includes/job_backup.php:1127
469
+ msgid "(999) Unexpected error"
470
+ msgstr ""
471
+
472
+ #. TRANSLATORS: %s = plugin name.
473
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
474
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
475
+ #: views/backup.php:20
476
+ #, php-format
477
+ msgid "%s Dashboard"
478
+ msgstr ""
479
+
480
+ #: views/backup.php:150
481
+ #, php-format
482
+ msgid "Backup folder does not exist. Please contact %s for assistance."
483
+ msgstr ""
484
+
485
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
486
+ msgid "support"
487
+ msgstr ""
488
+
489
+ #: views/backup.php:153 views/backup.php:159
490
+ msgid "Close"
491
+ msgstr ""
492
+
493
+ #: views/backup.php:174
494
+ msgid ""
495
+ "Click the backup button to create a zipped backup file of this site's database, "
496
+ "plugins, themes and settings."
497
+ msgstr ""
498
+
499
+ #: views/backup.php:175
500
+ msgid ""
501
+ "Once your backup file has been created it will appear in the available backups "
502
+ "section below. This file may remain on your hosting providers server but we "
503
+ "recommend that you download and save it somewhere safe."
504
+ msgstr ""
505
+
506
+ #: views/backup.php:176
507
+ msgid ""
508
+ "WP BackItUp premium customers can use these backup files to perform an automated "
509
+ "restore of their site."
510
+ msgstr ""
511
+
512
+ #: views/backup.php:180
513
+ msgid "Cancel"
514
+ msgstr ""
515
+
516
+ #: views/backup.php:187
517
+ #, php-format
518
+ msgid ""
519
+ "WP BackItUp lite customers may use these backup files to manually restore their "
520
+ "site. Please visit %s for manual restore instructions."
521
+ msgstr ""
522
+
523
+ #: views/backup.php:194
524
+ msgid "Backup Schedule"
525
+ msgstr ""
526
+
527
+ #: views/backup.php:196
528
+ msgid "Select the days of the week you would like your backup to run."
529
+ msgstr ""
530
+
531
+ #: views/backup.php:198
532
+ msgid ""
533
+ "Backup your site once per week or every day, it's up to you. If you have email "
534
+ "notifications turned on we'll even send you an email when it's done. Once your "
535
+ "backup file has been created it will appear in the available backups section "
536
+ "below. This file may remain on your hosting providers server but we recommend that "
537
+ "you download and save it somewhere safe."
538
+ msgstr ""
539
+
540
+ #: views/backup.php:200
541
+ msgid "Please make sure to schedule your backup for at least once per week."
542
+ msgstr ""
543
+
544
+ #: views/backup.php:204
545
+ msgid "Monday"
546
+ msgstr ""
547
+
548
+ #: views/backup.php:205
549
+ msgid "Tuesday"
550
+ msgstr ""
551
+
552
+ #: views/backup.php:206
553
+ msgid "Wednesday"
554
+ msgstr ""
555
+
556
+ #: views/backup.php:207
557
+ msgid "Thursday"
558
+ msgstr ""
559
+
560
+ #: views/backup.php:208
561
+ msgid "Friday"
562
+ msgstr ""
563
+
564
+ #: views/backup.php:209
565
+ msgid "Saturday"
566
+ msgstr ""
567
+
568
+ #: views/backup.php:210
569
+ msgid "Sunday"
570
+ msgstr ""
571
+
572
+ #: views/backup.php:213
573
+ msgid "Save Schedule"
574
+ msgstr ""
575
+
576
+ #: views/backup.php:218
577
+ #, php-format
578
+ msgid ""
579
+ "Scheduled backups are only available to WP BackItUp premium customers. Please "
580
+ "visit %s to get WP BackItUp risk free for 30 days."
581
+ msgstr ""
582
+
583
+ #: views/backup.php:225 views/restore.php:94
584
+ msgid "Available Backups"
585
+ msgstr ""
586
+
587
+ #: views/backup.php:283 views/restore.php:125
588
+ msgid "No backup archives found."
589
+ msgstr ""
590
+
591
+ #: views/backup.php:291
592
+ #, php-format
593
+ msgid ""
594
+ "The automated restore feature is only available to WP BackItUp premium customers. "
595
+ "Please visit %s to get WP BackItUp risk free for 30 days."
596
+ msgstr ""
597
+
598
+ #: views/backup.php:300 views/restore.php:209
599
+ msgid "Nothing to report"
600
+ msgstr ""
601
+
602
+ #: views/backup.php:305
603
+ msgid "Preparing for backup"
604
+ msgstr ""
605
+
606
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
607
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
608
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
609
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
610
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
611
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
612
+ #: views/restore.php:228 views/restore.php:230
613
+ msgid "Done"
614
+ msgstr ""
615
+
616
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
617
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
618
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
619
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
620
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
621
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
622
+ #: views/restore.php:228 views/restore.php:230
623
+ msgid "Failed"
624
+ msgstr ""
625
+
626
+ #: views/backup.php:306
627
+ msgid "Backing up database"
628
+ msgstr ""
629
+
630
+ #: views/backup.php:307
631
+ msgid "Creating backup information file"
632
+ msgstr ""
633
+
634
+ #: views/backup.php:308
635
+ msgid "Backing up themes"
636
+ msgstr ""
637
+
638
+ #: views/backup.php:309
639
+ msgid "Backing up plugins"
640
+ msgstr ""
641
+
642
+ #: views/backup.php:310
643
+ msgid "Backing up uploads"
644
+ msgstr ""
645
+
646
+ #: views/backup.php:311
647
+ msgid "Backing up everything else"
648
+ msgstr ""
649
+
650
+ #: views/backup.php:312
651
+ msgid "Validating backup"
652
+ msgstr ""
653
+
654
+ #: views/backup.php:313
655
+ msgid "Finalizing backup"
656
+ msgstr ""
657
+
658
+ #: views/backup.php:323
659
+ msgid "Backup completed successfully"
660
+ msgstr ""
661
+
662
+ #: views/backup.php:344
663
+ msgid "Backups"
664
+ msgstr ""
665
+
666
+ #: views/backup.php:344
667
+ msgid "Version "
668
+ msgstr ""
669
+
670
+ #: views/backup.php:346
671
+ msgid "Welcome to WP BackItUp!"
672
+ msgstr ""
673
+
674
+ #: views/backup.php:346
675
+ msgid "The simplest way to backup your WordPress site."
676
+ msgstr ""
677
+
678
+ #: views/backup.php:347
679
+ msgid ""
680
+ "Getting started is easy, just click the backup button on the left side of this "
681
+ "page."
682
+ msgstr ""
683
+
684
+ #: views/backup.php:351
685
+ #, php-format
686
+ msgid ""
687
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
688
+ "medium;color: green\">%s</span> successful backups."
689
+ msgstr ""
690
+
691
+ #: views/backup.php:352
692
+ msgid "Tips"
693
+ msgstr ""
694
+
695
+ #: views/backup.php:353
696
+ msgid "Backup your site at least once per week"
697
+ msgstr ""
698
+
699
+ #: views/backup.php:354
700
+ msgid "Download all your backups and store them somewhere safe"
701
+ msgstr ""
702
+
703
+ #: views/backup.php:355
704
+ msgid "Verify your backup files are good by taking a look at what's inside"
705
+ msgstr ""
706
+
707
+ #: views/backup.php:360
708
+ #, php-format
709
+ msgid "Why not %s and schedule your backups!"
710
+ msgstr ""
711
+
712
+ #: views/backup.php:360
713
+ msgid "upgrade"
714
+ msgstr ""
715
+
716
+ #: views/backup.php:369
717
+ msgid "Register WP BackItUp"
718
+ msgstr ""
719
+
720
+ #: views/backup.php:372
721
+ msgid ""
722
+ "Enter your name and email address below to receive <b>special offers</b> and "
723
+ "access to our world class <b>support</b> team. <br />\n"
724
+ " <br />Enter your license key below to activate it on this site."
725
+ msgstr ""
726
+
727
+ #: views/backup.php:374
728
+ msgid "name"
729
+ msgstr ""
730
+
731
+ #: views/backup.php:375
732
+ msgid "email address"
733
+ msgstr ""
734
+
735
+ #: views/backup.php:376
736
+ msgid "license key"
737
+ msgstr ""
738
+
739
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
740
+ #, php-format
741
+ msgid "%s"
742
+ msgstr ""
743
+
744
+ #: views/backup.php:377
745
+ msgid "Free plugin customers do not need to enter license key."
746
+ msgstr ""
747
+
748
+ #: views/backup.php:378
749
+ msgid "Register"
750
+ msgstr ""
751
+
752
+ #: views/backup.php:387
753
+ msgid "License Info"
754
+ msgstr ""
755
+
756
+ #: views/backup.php:409
757
+ msgid "Name"
758
+ msgstr ""
759
+
760
+ #: views/backup.php:410
761
+ msgid "Email"
762
+ msgstr ""
763
+
764
+ #: views/backup.php:411
765
+ msgid "License Type"
766
+ msgstr ""
767
+
768
+ #: views/backup.php:412
769
+ msgid "Expires"
770
+ msgstr ""
771
+
772
+ #: views/backup.php:415
773
+ msgid "Enter license key to activate on this site."
774
+ msgstr ""
775
+
776
+ #: views/backup.php:422
777
+ msgid "License Active"
778
+ msgstr ""
779
+
780
+ #: views/backup.php:430
781
+ msgid "License expired"
782
+ msgstr ""
783
+
784
+ #: views/backup.php:434
785
+ msgid "Update"
786
+ msgstr ""
787
+
788
+ #: views/backup.php:438
789
+ msgid "Activate"
790
+ msgstr ""
791
+
792
+ #: views/backup.php:442
793
+ #, php-format
794
+ msgid "Purchase a %s license using the purchase link above."
795
+ msgstr ""
796
+
797
+ #: views/backup.php:442
798
+ msgid "no-risk"
799
+ msgstr ""
800
+
801
+ #: views/backup.php:448
802
+ #, php-format
803
+ msgid ""
804
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year of "
805
+ "<strong>product updates</strong> and <strong>priority support.</strong>"
806
+ msgstr ""
807
+
808
+ #: views/backup.php:459
809
+ msgid "Useful Links"
810
+ msgstr ""
811
+
812
+ #: views/backup.php:462 views/backup.php:466
813
+ msgid "Your account"
814
+ msgstr ""
815
+
816
+ #: views/backup.php:469
817
+ msgid "Documentation"
818
+ msgstr ""
819
+
820
+ #: views/backup.php:472
821
+ msgid "Get support"
822
+ msgstr ""
823
+
824
+ #: views/backup.php:475
825
+ msgid "Feature request"
826
+ msgstr ""
827
+
828
+ #: views/backup.php:477
829
+ msgid "Contact"
830
+ msgstr ""
831
+
832
+ #: views/backup.php:497 views/backup.php:518
833
+ msgid "WP BackItUp Backup Set"
834
+ msgstr ""
835
+
836
+ #: views/backup.php:499
837
+ msgid ""
838
+ "Below are the archive files included in this backup set. Click the link to "
839
+ "download."
840
+ msgstr ""
841
+
842
+ #: views/backup.php:519
843
+ msgid "Please refresh this page to download your new backup files."
844
+ msgstr ""
845
+
846
+ #: views/restore.php:16
847
+ #, php-format
848
+ msgid "%s Restore"
849
+ msgstr ""
850
+
851
+ #: views/restore.php:59
852
+ msgid "Zip Files"
853
+ msgstr ""
854
+
855
+ #: views/restore.php:74
856
+ #, php-format
857
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
858
+ msgstr ""
859
+
860
+ #: views/restore.php:81
861
+ #, php-format
862
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
863
+ msgstr ""
864
+
865
+ #: views/restore.php:141
866
+ #, php-format
867
+ msgid ""
868
+ "<p>* The automated restore feature is only available to licensed customers. "
869
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP BackItUp "
870
+ "risk free for 30 days.</p>"
871
+ msgstr ""
872
+
873
+ #: views/restore.php:153
874
+ msgid "Upload"
875
+ msgstr ""
876
+
877
+ #: views/restore.php:156
878
+ msgid ""
879
+ "Upload WP BackItUp archive(zip) files to add to your list of available backups."
880
+ msgstr ""
881
+
882
+ #: views/restore.php:173
883
+ msgid "WP BackItUp - Upload backup files"
884
+ msgstr ""
885
+
886
+ #: views/restore.php:174
887
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
888
+ msgstr ""
889
+
890
+ #: views/restore.php:174
891
+ msgid ""
892
+ "They may also be uploaded manually into the WP BackItUp directory (wp-content/"
893
+ "wpbackitup_backups) using FTP. When done uploading all backup files refresh this "
894
+ "page."
895
+ msgstr ""
896
+
897
+ #: views/restore.php:178
898
+ #, php-format
899
+ msgid "This feature requires %s version %s or later"
900
+ msgstr ""
901
+
902
+ #: views/restore.php:184
903
+ msgid "Drop backup files here"
904
+ msgstr ""
905
+
906
+ #: views/restore.php:190
907
+ msgid ""
908
+ "* Reload this page when done uploading to see new backups appear in the Available "
909
+ "Backups section above. "
910
+ msgstr ""
911
+
912
+ #: views/restore.php:219
913
+ msgid "Preparing for restore"
914
+ msgstr ""
915
+
916
+ #: views/restore.php:220
917
+ msgid "Unzipping backup set"
918
+ msgstr ""
919
+
920
+ #: views/restore.php:221
921
+ msgid "Validating backup file"
922
+ msgstr ""
923
+
924
+ #: views/restore.php:222
925
+ msgid "Deactivating plugins"
926
+ msgstr ""
927
+
928
+ #: views/restore.php:223
929
+ msgid "Creating database restore point"
930
+ msgstr ""
931
+
932
+ #: views/restore.php:224
933
+ msgid "Staging content files"
934
+ msgstr ""
935
+
936
+ #: views/restore.php:225
937
+ msgid "Restoring content files"
938
+ msgstr ""
939
+
940
+ #: views/restore.php:226
941
+ msgid "Restoring database"
942
+ msgstr ""
943
+
944
+ #: views/restore.php:227
945
+ msgid "Updating current user info"
946
+ msgstr ""
947
+
948
+ #: views/restore.php:228
949
+ msgid "Updating site URL"
950
+ msgstr ""
951
+
952
+ #: views/restore.php:230
953
+ msgid "Updating permalinks"
954
+ msgstr ""
955
+
956
+ #: views/restore.php:236
957
+ msgid "Error 201: No file selected"
958
+ msgstr ""
959
+
960
+ #: views/restore.php:237
961
+ msgid "Error 202: Your file could not be uploaded"
962
+ msgstr ""
963
+
964
+ #: views/restore.php:238
965
+ msgid "Error 203: Your backup could not be unzipped"
966
+ msgstr ""
967
+
968
+ #: views/restore.php:239
969
+ msgid ""
970
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a valid "
971
+ "backup"
972
+ msgstr ""
973
+
974
+ #: views/restore.php:240
975
+ msgid "Error 205: Cannot create restore point"
976
+ msgstr ""
977
+
978
+ #: views/restore.php:241
979
+ msgid "Error 206: Unable to connect to your database"
980
+ msgstr ""
981
+
982
+ #: views/restore.php:242
983
+ msgid "Error 207: Unable to get current site URL from database. Please try again"
984
+ msgstr ""
985
+
986
+ #: views/restore.php:243
987
+ msgid "Error 208: Unable to get current home URL from database. Please try again"
988
+ msgstr ""
989
+
990
+ #: views/restore.php:244
991
+ msgid "Error 209: Unable to get current user ID from database. Please try again"
992
+ msgstr ""
993
+
994
+ #: views/restore.php:245
995
+ msgid ""
996
+ "Error 210: Unable to get current user password from database. Please try again"
997
+ msgstr ""
998
+
999
+ #: views/restore.php:246
1000
+ msgid "Error 211: Unable to get current user email from database. Please try again"
1001
+ msgstr ""
1002
+
1003
+ #: views/restore.php:247
1004
+ msgid ""
1005
+ "Error 212: Unable to import your database. This may require importing the file "
1006
+ "manually"
1007
+ msgstr ""
1008
+
1009
+ #: views/restore.php:248
1010
+ msgid ""
1011
+ "Warning 213: Unable to update your site URL value. Please check your WordPress "
1012
+ "general settings to make sure your Site and WordPress URLs are correct"
1013
+ msgstr ""
1014
+
1015
+ #: views/restore.php:249
1016
+ msgid ""
1017
+ "Warning 214: Unable to update your home URL value. Please check your WordPress "
1018
+ "general settings to make sure your Site and WordPress URLs are correct"
1019
+ msgstr ""
1020
+
1021
+ #: views/restore.php:250
1022
+ msgid ""
1023
+ "Warning 215: Unable to update your user information. This may require you to login "
1024
+ "with the admin username and password that was used when the backup was created"
1025
+ msgstr ""
1026
+
1027
+ #: views/restore.php:251
1028
+ msgid "Error 216: Database not found in backup"
1029
+ msgstr ""
1030
+
1031
+ #: views/restore.php:252
1032
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1033
+ msgstr ""
1034
+
1035
+ #: views/restore.php:253
1036
+ msgid ""
1037
+ "Error 218: Unable to create new wp-content directory. Please check your CHMOD "
1038
+ "settings in /wp-content/"
1039
+ msgstr ""
1040
+
1041
+ #: views/restore.php:254
1042
+ msgid "Error 219: Unable to import wp-content. Please try again"
1043
+ msgstr ""
1044
+
1045
+ #: views/restore.php:255
1046
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1047
+ msgstr ""
1048
+
1049
+ #: views/restore.php:256
1050
+ #, php-format
1051
+ msgid ""
1052
+ "Error 221: Table prefix value in wp-config.php is different from backup. This MUST "
1053
+ "be changed in your wp-config.php file before you will be able to restore your "
1054
+ "site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" > FAQs</a> for "
1055
+ "more info."
1056
+ msgstr ""
1057
+
1058
+ #: views/restore.php:257
1059
+ msgid "Error 222: Unable to create restore folder"
1060
+ msgstr ""
1061
+
1062
+ #: views/restore.php:258
1063
+ msgid ""
1064
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to restore "
1065
+ "the database to its previous state but were unsuccessful. Please contact WP "
1066
+ "BackItUp customer support and do not attempt to perform any further restores"
1067
+ msgstr ""
1068
+
1069
+ #: views/restore.php:259
1070
+ msgid ""
1071
+ "Error 224: An error occurred during the restore, however, we have successfully "
1072
+ "restored your database to the previous state"
1073
+ msgstr ""
1074
+
1075
+ #: views/restore.php:260
1076
+ msgid "Error 225: Restore option is only available to licensed WP BackItUp users"
1077
+ msgstr ""
1078
+
1079
+ #: views/restore.php:261
1080
+ msgid ""
1081
+ "Error 226: Restore cannot proceed because your backup was created using a "
1082
+ "different version of WordPress"
1083
+ msgstr ""
1084
+
1085
+ #: views/restore.php:262
1086
+ msgid ""
1087
+ "Error 227: Restore cannot proceed because your backup was created using a "
1088
+ "different version of WP BackItUp. Please contact WP BackItUp support to help "
1089
+ "convert this backup to the current version"
1090
+ msgstr ""
1091
+
1092
+ #: views/restore.php:263
1093
+ msgid ""
1094
+ "Error 230: WP BackItUp ran into unexpected errors during the database restore. "
1095
+ "However, we were able to successfully revert the database back to its original "
1096
+ "state . This error may require importing the database manually"
1097
+ msgstr ""
1098
+
1099
+ #: views/restore.php:264
1100
+ msgid ""
1101
+ "Error 235: WP BackItUp is not able to proceed because there is no zip utility "
1102
+ "available. Please contact support"
1103
+ msgstr ""
1104
+
1105
+ #: views/restore.php:265
1106
+ msgid ""
1107
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1108
+ "running. Please wait for the backup to complete and then try again"
1109
+ msgstr ""
1110
+
1111
+ #: views/restore.php:267
1112
+ msgid ""
1113
+ "Error 251: WP BackItUp is unable to begin the restore because the backup manifest "
1114
+ "is empty"
1115
+ msgstr ""
1116
+
1117
+ #: views/restore.php:268
1118
+ msgid ""
1119
+ "Error 252: At least one zip file is missing from your backup set. Please make "
1120
+ "sure to upload all zip files that were part of this backup"
1121
+ msgstr ""
1122
+
1123
+ #: views/restore.php:269
1124
+ msgid ""
1125
+ "Error 253: Backup set contains a zip file that is not in the manifest. Please "
1126
+ "make sure to upload only zip files that were part of this backup"
1127
+ msgstr ""
1128
+
1129
+ #: views/restore.php:271
1130
+ msgid ""
1131
+ "Warning 300: Unable to restore all WordPress content. Please review your restore "
1132
+ "logs to see what WP BackItUp was unable to restore"
1133
+ msgstr ""
1134
+
1135
+ #: views/restore.php:272
1136
+ msgid ""
1137
+ "Warning 305: Unable to restore all plugins. Please review your restore logs to see "
1138
+ "what WP BackItUp was unable to restore"
1139
+ msgstr ""
1140
+
1141
+ #: views/restore.php:274
1142
+ msgid "Error 2001: Unable to prepare site for restore"
1143
+ msgstr ""
1144
+
1145
+ #: views/restore.php:275
1146
+ msgid "Error 2002: Unable to unzip backup"
1147
+ msgstr ""
1148
+
1149
+ #: views/restore.php:276
1150
+ msgid "Error 2003: Unable to validate backup"
1151
+ msgstr ""
1152
+
1153
+ #: views/restore.php:277
1154
+ msgid "Error 2004: Unable to create restore point"
1155
+ msgstr ""
1156
+
1157
+ #: views/restore.php:278
1158
+ msgid "Error 2005: Unable to stage wp-content"
1159
+ msgstr ""
1160
+
1161
+ #: views/restore.php:279
1162
+ msgid "Error 2006: Unable to restore content files"
1163
+ msgstr ""
1164
+
1165
+ #: views/restore.php:280
1166
+ msgid "Error 2007: Unable to restore database"
1167
+ msgstr ""
1168
+
1169
+ #: views/restore.php:281
1170
+ msgid "Error 2999: Unexpected error encountered"
1171
+ msgstr ""
1172
+
1173
+ #: views/restore.php:288
1174
+ msgid ""
1175
+ "Restore completed successfully. If you are prompted to login please do so with "
1176
+ "your current username and password"
1177
+ msgstr ""
1178
+
1179
+ #: views/settings.php:16
1180
+ #, php-format
1181
+ msgid "%s Settings"
1182
+ msgstr ""
1183
+
1184
+ #: views/settings.php:43
1185
+ msgid "Email Notifications"
1186
+ msgstr ""
1187
+
1188
+ #: views/settings.php:44
1189
+ msgid ""
1190
+ "Please enter your email address if you would like to receive backup email "
1191
+ "notifications."
1192
+ msgstr ""
1193
+
1194
+ #: views/settings.php:45
1195
+ msgid ""
1196
+ "Backup email notifications will be sent for every backup and will contain status "
1197
+ "information related to the backup."
1198
+ msgstr ""
1199
+
1200
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1201
+ #: views/settings.php:114
1202
+ msgid "Save"
1203
+ msgstr ""
1204
+
1205
+ #: views/settings.php:63
1206
+ msgid "Backup Retention"
1207
+ msgstr ""
1208
+
1209
+ #: views/settings.php:64
1210
+ msgid ""
1211
+ "Enter the number of backup archives that you would like to remain on the server."
1212
+ msgstr ""
1213
+
1214
+ #: views/settings.php:65
1215
+ msgid ""
1216
+ "Many hosts limit the amount of space that you can take up on their servers. This "
1217
+ "option tells WP BackItUp the maximum number of backup archives that should remain "
1218
+ "on your hosts server. Don't worry, we will always remove the oldest backup "
1219
+ "archives first."
1220
+ msgstr ""
1221
+
1222
+ #: views/settings.php:84
1223
+ msgid "Turn on logging?"
1224
+ msgstr ""
1225
+
1226
+ #: views/settings.php:85
1227
+ msgid "Yes"
1228
+ msgstr ""
1229
+
1230
+ #: views/settings.php:86
1231
+ msgid "No"
1232
+ msgstr ""
1233
+
1234
+ #: views/settings.php:87
1235
+ msgid ""
1236
+ "This option should only be turned on when troubleshooting issues with WPBackItUp "
1237
+ "support."
1238
+ msgstr ""
1239
+
1240
+ #: views/settings.php:92
1241
+ msgid "Advanced Settings"
1242
+ msgstr ""
1243
+
1244
+ #: views/settings.php:93
1245
+ msgid "These options should only be changed when working with WP BackItUp support."
1246
+ msgstr ""
1247
+
1248
+ #: views/settings.php:96
1249
+ msgid "Plugins Batch Size"
1250
+ msgstr ""
1251
+
1252
+ #: views/settings.php:101
1253
+ msgid "Themes Batch Size"
1254
+ msgstr ""
1255
+
1256
+ #: views/settings.php:106
1257
+ msgid "Uploads Batch Size"
1258
+ msgstr ""
1259
+
1260
+ #: views/settings.php:111
1261
+ msgid "Others Batch Size"
1262
+ msgstr ""
1263
+
1264
+ #: views/support.php:16
1265
+ #, php-format
1266
+ msgid "%s Support"
1267
+ msgstr ""
1268
+
1269
+ #: views/support.php:35
1270
+ msgid "Support email sent successfully!"
1271
+ msgstr ""
1272
+
1273
+ #: views/support.php:48
1274
+ msgid "Email Logs to Support"
1275
+ msgstr ""
1276
+
1277
+ #: views/support.php:49
1278
+ msgid "This form should be used to send log files to support only."
1279
+ msgstr ""
1280
+
1281
+ #: views/support.php:50
1282
+ msgid ""
1283
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://www."
1284
+ "wpbackitup.com/support\" target=\"_blank\">support portal.</a> before using this "
1285
+ "form."
1286
+ msgstr ""
1287
+
1288
+ #: views/support.php:51
1289
+ msgid ""
1290
+ "The ticket id you receive from your support request should be entered in the "
1291
+ "ticket id field below."
1292
+ msgstr ""
1293
+
1294
+ #: views/support.php:52
1295
+ msgid "your email address"
1296
+ msgstr ""
1297
+
1298
+ #: views/support.php:62
1299
+ msgid "support ticket id"
1300
+ msgstr ""
1301
+
1302
+ #: views/support.php:72
1303
+ msgid "problem description or additional information"
1304
+ msgstr ""
1305
+
1306
+ #: views/support.php:83
1307
+ msgid "Send"
1308
+ msgstr ""
1309
+
1310
+ #: views/support.php:86
1311
+ msgid "Please register your version of WP BackItUp for access to support."
1312
+ msgstr ""
1313
+
1314
+ #: views/support.php:90
1315
+ msgid "Premium customers receive priority support."
1316
+ msgstr ""
1317
+
1318
+ #: wp-backitup.php:97 wp-backitup.php:98
1319
+ #, php-format
1320
+ msgid "Every %s hours"
1321
+ msgstr ""
languages/wp-backitup-de_DE.mo ADDED
Binary file
languages/wp-backitup-de_DE.po ADDED
@@ -0,0 +1,1334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ # WebSource <info@websource.li>, 2015
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: WP BackItUp\n"
7
+ "POT-Creation-Date: 2015-08-14 10:31-0400\n"
8
+ "PO-Revision-Date: 2015-08-14 10:31-0400\n"
9
+ "Last-Translator: Chris Simmons <chris.simmons01@gmail.com>\n"
10
+ "Language-Team: German (Germany) (http://www.transifex.com/wp-translations/wp-"
11
+ "backitup/language/de_DE/)\n"
12
+ "Language: de_DE\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: Poedit 1.8.4\n"
18
+ "X-Poedit-Basepath: ..\n"
19
+ "X-Poedit-KeywordsList: _;__;_e\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+
22
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
23
+ #: views/backup.php:179
24
+ msgid "Backup"
25
+ msgstr "Backup"
26
+
27
+ #: lib/includes/class-wpbackitup-admin.php:175
28
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
29
+ msgid "Restore"
30
+ msgstr "Wiederherstellen"
31
+
32
+ #: lib/includes/class-wpbackitup-admin.php:179
33
+ msgid "Support"
34
+ msgstr "Support"
35
+
36
+ #: lib/includes/class-wpbackitup-admin.php:182
37
+ msgid "Settings"
38
+ msgstr "Einstellungen"
39
+
40
+ #: lib/includes/class-wpbackitup-admin.php:203
41
+ msgid ""
42
+ "The backup you have selected exceeds what your host allows you to upload."
43
+ msgstr ""
44
+
45
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
46
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
47
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
48
+ #: views/backup.php:312 views/backup.php:313
49
+ msgid "Warning"
50
+ msgstr "Warnung"
51
+
52
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
53
+ msgid "Error"
54
+ msgstr "Fehler"
55
+
56
+ #: lib/includes/class-wpbackitup-admin.php:206
57
+ msgid "Response"
58
+ msgstr "Antwort"
59
+
60
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
61
+ #: views/restore.php:205
62
+ msgid "Status"
63
+ msgstr "Status"
64
+
65
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
66
+ msgid "Download"
67
+ msgstr "Download"
68
+
69
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
70
+ #: views/restore.php:111
71
+ msgid "Delete"
72
+ msgstr "Löschen"
73
+
74
+ #: lib/includes/class-wpbackitup-admin.php:211
75
+ msgid "(JS997) Unexpected error"
76
+ msgstr ""
77
+
78
+ #: lib/includes/class-wpbackitup-admin.php:212
79
+ msgid "(JS998) Unexpected error"
80
+ msgstr ""
81
+
82
+ #: lib/includes/class-wpbackitup-admin.php:213
83
+ msgid "(JS999) An unexpected error has occurred"
84
+ msgstr ""
85
+
86
+ #: lib/includes/class-wpbackitup-admin.php:214
87
+ msgid "Scheduled has been saved."
88
+ msgstr ""
89
+
90
+ #: lib/includes/class-wpbackitup-admin.php:215
91
+ msgid "Scheduled was not saved."
92
+ msgstr ""
93
+
94
+ #: lib/includes/class-wpbackitup-admin.php:216
95
+ msgid "Are you sure you want to restore your site?"
96
+ msgstr ""
97
+
98
+ #: lib/includes/class-wpbackitup-admin.php:217
99
+ msgid "Are you sure ?"
100
+ msgstr "Sind Sie sicher?"
101
+
102
+ #: lib/includes/class-wpbackitup-admin.php:218
103
+ msgid "This file cannot be delete!"
104
+ msgstr ""
105
+
106
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
107
+ msgid "View Log"
108
+ msgstr "Logdatei anzeigen"
109
+
110
+ #: lib/includes/class-wpbackitup-admin.php:220
111
+ msgid "New Backup!"
112
+ msgstr "Neues Backup!"
113
+
114
+ #: lib/includes/class-wpbackitup-admin.php:221
115
+ msgid "Uploaded Backup"
116
+ msgstr ""
117
+
118
+ #: lib/includes/class-wpbackitup-admin.php:480
119
+ msgid "Backup Queued"
120
+ msgstr ""
121
+
122
+ #: lib/includes/class-wpbackitup-admin.php:482
123
+ msgid "Backup could not be queued"
124
+ msgstr ""
125
+
126
+ #: lib/includes/class-wpbackitup-admin.php:485
127
+ msgid "Backup already in queue"
128
+ msgstr ""
129
+
130
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
131
+ msgid "Backup Cancelled"
132
+ msgstr ""
133
+
134
+ #: lib/includes/class-wpbackitup-admin.php:535
135
+ msgid "No backup file selected."
136
+ msgstr ""
137
+
138
+ #: lib/includes/class-wpbackitup-admin.php:542
139
+ msgid "No user id found."
140
+ msgstr ""
141
+
142
+ #: lib/includes/class-wpbackitup-admin.php:553
143
+ msgid "Restore Queued"
144
+ msgstr ""
145
+
146
+ #: lib/includes/class-wpbackitup-admin.php:555
147
+ msgid "Restore could not be queued"
148
+ msgstr ""
149
+
150
+ #: lib/includes/class-wpbackitup-admin.php:558
151
+ msgid "Restore already in queue"
152
+ msgstr ""
153
+
154
+ #: lib/includes/class-wpbackitup-admin.php:743
155
+ msgid "No response log found."
156
+ msgstr ""
157
+
158
+ #: lib/includes/class-wpbackitup-admin.php:836
159
+ #: lib/includes/class-wpbackitup-admin.php:844
160
+ #: lib/includes/class-wpbackitup-admin.php:873
161
+ #: lib/includes/class-wpbackitup-admin.php:880
162
+ #: lib/includes/class-wpbackitup-admin.php:887
163
+ #: lib/includes/class-wpbackitup-admin.php:894
164
+ msgid "Please enter a number"
165
+ msgstr ""
166
+
167
+ #: lib/includes/class-wpbackitup-admin.php:865
168
+ #: lib/includes/class-wpbackitup-admin.php:972
169
+ msgid "Please enter a valid email"
170
+ msgstr ""
171
+
172
+ #: lib/includes/class-wpbackitup-admin.php:979
173
+ msgid "Please enter your support ticket id"
174
+ msgstr ""
175
+
176
+ #: lib/includes/class-wpbackitup-admin.php:984
177
+ msgid "Please only enter numbers in this field"
178
+ msgstr ""
179
+
180
+ #: lib/includes/class-wpbackitup-admin.php:1645
181
+ msgid "License is invalid."
182
+ msgstr ""
183
+
184
+ #: lib/includes/class-wpbackitup-admin.php:1650
185
+ msgid "License has expired."
186
+ msgstr ""
187
+
188
+ #: lib/includes/class-wpbackitup-admin.php:1655
189
+ msgid "Activation limit has been reached."
190
+ msgstr ""
191
+
192
+ #: lib/includes/handler_upload.php:29
193
+ msgid "Invalid Nonce"
194
+ msgstr ""
195
+
196
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
197
+ msgid "Upload directory is not writable, or does not exist."
198
+ msgstr ""
199
+
200
+ #: lib/includes/handler_upload.php:80
201
+ #, php-format
202
+ msgid "Error: %s"
203
+ msgstr ""
204
+
205
+ #: lib/includes/handler_upload.php:80
206
+ msgid "File could not be uploaded"
207
+ msgstr ""
208
+
209
+ #: lib/includes/handler_upload.php:141
210
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
211
+ msgstr ""
212
+
213
+ #: lib/includes/handler_upload.php:161
214
+ msgid "Could not import file into WP BackItUp backup set."
215
+ msgstr ""
216
+
217
+ #: lib/includes/job_backup.php:851
218
+ msgid "Preparing for backup...Done"
219
+ msgstr ""
220
+
221
+ #: lib/includes/job_backup.php:852
222
+ msgid "Backing up database...Done"
223
+ msgstr ""
224
+
225
+ #: lib/includes/job_backup.php:853
226
+ msgid "Creating backup information file...Done"
227
+ msgstr ""
228
+
229
+ #: lib/includes/job_backup.php:854
230
+ msgid "Backing up themes...Done"
231
+ msgstr ""
232
+
233
+ #: lib/includes/job_backup.php:855
234
+ msgid "Backing up plugins...Done"
235
+ msgstr ""
236
+
237
+ #: lib/includes/job_backup.php:856
238
+ msgid "Backing up uploads...Done"
239
+ msgstr ""
240
+
241
+ #: lib/includes/job_backup.php:857
242
+ msgid "Backing up miscellaneous files...Done"
243
+ msgstr ""
244
+
245
+ #: lib/includes/job_backup.php:858
246
+ msgid "Finalizing backup...Done"
247
+ msgstr ""
248
+
249
+ #: lib/includes/job_backup.php:859
250
+ msgid "Validating backup...Done"
251
+ msgstr ""
252
+
253
+ #: lib/includes/job_backup.php:860
254
+ msgid "Cleaning up...Done"
255
+ msgstr ""
256
+
257
+ #: lib/includes/job_backup.php:870
258
+ #, php-format
259
+ msgid "%s - Backup completed successfully."
260
+ msgstr ""
261
+
262
+ #: lib/includes/job_backup.php:871
263
+ msgid "Your backup completed successfully."
264
+ msgstr ""
265
+
266
+ #: lib/includes/job_backup.php:874
267
+ #, php-format
268
+ msgid "%s - Backup did not complete successfully."
269
+ msgstr ""
270
+
271
+ #: lib/includes/job_backup.php:875
272
+ msgid "Your backup did not complete successfully."
273
+ msgstr ""
274
+
275
+ #: lib/includes/job_backup.php:880
276
+ #, php-format
277
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
278
+ msgstr ""
279
+
280
+ #: lib/includes/job_backup.php:881
281
+ msgid "Backup date:"
282
+ msgstr ""
283
+
284
+ #: lib/includes/job_backup.php:882
285
+ msgid "Number of backups completed with WP BackItUp:"
286
+ msgstr ""
287
+
288
+ #: lib/includes/job_backup.php:884
289
+ msgid "Completion Code:"
290
+ msgstr ""
291
+
292
+ #: lib/includes/job_backup.php:885
293
+ msgid "WP BackItUp Version:"
294
+ msgstr ""
295
+
296
+ #: lib/includes/job_backup.php:891
297
+ msgid "Steps Completed"
298
+ msgstr ""
299
+
300
+ #: lib/includes/job_backup.php:912
301
+ #, php-format
302
+ msgid "Checkout %s for info about WP BackItUp and our other products."
303
+ msgstr ""
304
+
305
+ #: lib/includes/job_backup.php:1088
306
+ msgid ""
307
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
308
+ "settings of your wp-backitup backup directory"
309
+ msgstr ""
310
+
311
+ #: lib/includes/job_backup.php:1089
312
+ msgid ""
313
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
314
+ "your wp-backitup plugin directory"
315
+ msgstr ""
316
+
317
+ #: lib/includes/job_backup.php:1090
318
+ msgid "(103) Unable to backup your files. Please try again"
319
+ msgstr ""
320
+
321
+ #: lib/includes/job_backup.php:1091
322
+ msgid "(104) Unable to export your database. Please try again"
323
+ msgstr ""
324
+
325
+ #: lib/includes/job_backup.php:1092
326
+ msgid "(105) Unable to export site information file. Please try again"
327
+ msgstr ""
328
+
329
+ #: lib/includes/job_backup.php:1093
330
+ msgid "(106) Unable to cleanup your backup directory"
331
+ msgstr ""
332
+
333
+ #: lib/includes/job_backup.php:1094
334
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
335
+ msgstr ""
336
+
337
+ #: lib/includes/job_backup.php:1095
338
+ msgid "(108) Unable to backup your site data files. Please try again"
339
+ msgstr ""
340
+
341
+ #: lib/includes/job_backup.php:1096
342
+ msgid "(109) Unable to finalize backup. Please try again"
343
+ msgstr ""
344
+
345
+ #: lib/includes/job_backup.php:1097
346
+ msgid ""
347
+ "(114) Your database was accessible but an export could not be created. "
348
+ "Please contact support by clicking the get support link on the right. Please "
349
+ "let us know who your host is when you submit the request"
350
+ msgstr ""
351
+
352
+ #: lib/includes/job_backup.php:1098
353
+ msgid "(120) Unable to backup your themes. Please try again"
354
+ msgstr ""
355
+
356
+ #: lib/includes/job_backup.php:1099
357
+ msgid "(121) Unable to backup your plugins. Please try again"
358
+ msgstr ""
359
+
360
+ #: lib/includes/job_backup.php:1100
361
+ msgid "(122) Unable to backup your uploads. Please try again"
362
+ msgstr ""
363
+
364
+ #: lib/includes/job_backup.php:1101
365
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
366
+ msgstr ""
367
+
368
+ #: lib/includes/job_backup.php:1102
369
+ msgid ""
370
+ "(125) Unable to compress your backup because there is no zip utility "
371
+ "available. Please contact support"
372
+ msgstr ""
373
+
374
+ #: lib/includes/job_backup.php:1103
375
+ msgid "(126) Unable to validate your backup. Please try again"
376
+ msgstr ""
377
+
378
+ #: lib/includes/job_backup.php:1104
379
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
380
+ msgstr ""
381
+
382
+ #: lib/includes/job_backup.php:1105
383
+ msgid "(128) Unable to create job control record. Please try again"
384
+ msgstr ""
385
+
386
+ #: lib/includes/job_backup.php:1107
387
+ msgid ""
388
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
389
+ "settings of your wp-backitup backup directory"
390
+ msgstr ""
391
+
392
+ #: lib/includes/job_backup.php:1108
393
+ msgid ""
394
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
395
+ "your wp-backitup plugin directory"
396
+ msgstr ""
397
+
398
+ #: lib/includes/job_backup.php:1109
399
+ msgid "(2103) Unable to backup your files. Please try again"
400
+ msgstr ""
401
+
402
+ #: lib/includes/job_backup.php:1110
403
+ msgid "(2104) Unable to export your database. Please try again"
404
+ msgstr ""
405
+
406
+ #: lib/includes/job_backup.php:1111
407
+ msgid "(2105) Unable to export site information file. Please try again"
408
+ msgstr ""
409
+
410
+ #: lib/includes/job_backup.php:1112
411
+ msgid "(2106) Unable to cleanup your backup directory"
412
+ msgstr ""
413
+
414
+ #: lib/includes/job_backup.php:1113
415
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
416
+ msgstr ""
417
+
418
+ #: lib/includes/job_backup.php:1114
419
+ msgid "(2108) Unable to backup your site data files. Please try again"
420
+ msgstr ""
421
+
422
+ #: lib/includes/job_backup.php:1115
423
+ msgid "(2109) Unable to finalize backup. Please try again"
424
+ msgstr ""
425
+
426
+ #: lib/includes/job_backup.php:1116
427
+ msgid ""
428
+ "(2114) Your database was accessible but an export could not be created. "
429
+ "Please contact support by clicking the get support link on the right. Please "
430
+ "let us know who your host is when you submit the request"
431
+ msgstr ""
432
+
433
+ #: lib/includes/job_backup.php:1117
434
+ msgid "(2120) Unable to backup your themes. Please try again"
435
+ msgstr ""
436
+
437
+ #: lib/includes/job_backup.php:1118
438
+ msgid "(2121) Unable to backup your plugins. Please try again"
439
+ msgstr ""
440
+
441
+ #: lib/includes/job_backup.php:1119
442
+ msgid "(2122) Unable to backup your uploads. Please try again"
443
+ msgstr ""
444
+
445
+ #: lib/includes/job_backup.php:1120
446
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
447
+ msgstr ""
448
+
449
+ #: lib/includes/job_backup.php:1121
450
+ msgid ""
451
+ "(2125) Unable to compress your backup because there is no zip utility "
452
+ "available. Please contact support"
453
+ msgstr ""
454
+
455
+ #: lib/includes/job_backup.php:1122
456
+ msgid "(2126) Unable to validate your backup. Please try again"
457
+ msgstr ""
458
+
459
+ #: lib/includes/job_backup.php:1123
460
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
461
+ msgstr ""
462
+
463
+ #: lib/includes/job_backup.php:1124
464
+ msgid "(2128) Unable to create job control record. Please try again"
465
+ msgstr ""
466
+
467
+ #: lib/includes/job_backup.php:1127
468
+ msgid "(999) Unexpected error"
469
+ msgstr ""
470
+
471
+ #. TRANSLATORS: %s = plugin name.
472
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
473
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
474
+ #: views/backup.php:20
475
+ #, php-format
476
+ msgid "%s Dashboard"
477
+ msgstr ""
478
+
479
+ #: views/backup.php:150
480
+ #, php-format
481
+ msgid "Backup folder does not exist. Please contact %s for assistance."
482
+ msgstr ""
483
+
484
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
485
+ msgid "support"
486
+ msgstr ""
487
+
488
+ #: views/backup.php:153 views/backup.php:159
489
+ msgid "Close"
490
+ msgstr "Schließen"
491
+
492
+ #: views/backup.php:174
493
+ msgid ""
494
+ "Click the backup button to create a zipped backup file of this site's "
495
+ "database, plugins, themes and settings."
496
+ msgstr ""
497
+
498
+ #: views/backup.php:175
499
+ msgid ""
500
+ "Once your backup file has been created it will appear in the available "
501
+ "backups section below. This file may remain on your hosting providers server "
502
+ "but we recommend that you download and save it somewhere safe."
503
+ msgstr ""
504
+
505
+ #: views/backup.php:176
506
+ msgid ""
507
+ "WP BackItUp premium customers can use these backup files to perform an "
508
+ "automated restore of their site."
509
+ msgstr ""
510
+
511
+ #: views/backup.php:180
512
+ msgid "Cancel"
513
+ msgstr "Abbrechen"
514
+
515
+ #: views/backup.php:187
516
+ #, php-format
517
+ msgid ""
518
+ "WP BackItUp lite customers may use these backup files to manually restore "
519
+ "their site. Please visit %s for manual restore instructions."
520
+ msgstr ""
521
+
522
+ #: views/backup.php:194
523
+ msgid "Backup Schedule"
524
+ msgstr ""
525
+
526
+ #: views/backup.php:196
527
+ msgid "Select the days of the week you would like your backup to run."
528
+ msgstr ""
529
+
530
+ #: views/backup.php:198
531
+ msgid ""
532
+ "Backup your site once per week or every day, it's up to you. If you have "
533
+ "email notifications turned on we'll even send you an email when it's done. "
534
+ "Once your backup file has been created it will appear in the available "
535
+ "backups section below. This file may remain on your hosting providers server "
536
+ "but we recommend that you download and save it somewhere safe."
537
+ msgstr ""
538
+
539
+ #: views/backup.php:200
540
+ msgid "Please make sure to schedule your backup for at least once per week."
541
+ msgstr ""
542
+
543
+ #: views/backup.php:204
544
+ msgid "Monday"
545
+ msgstr "Montag"
546
+
547
+ #: views/backup.php:205
548
+ msgid "Tuesday"
549
+ msgstr "Dienstag"
550
+
551
+ #: views/backup.php:206
552
+ msgid "Wednesday"
553
+ msgstr "Mittwoch"
554
+
555
+ #: views/backup.php:207
556
+ msgid "Thursday"
557
+ msgstr "Donnerstag"
558
+
559
+ #: views/backup.php:208
560
+ msgid "Friday"
561
+ msgstr "Freitag"
562
+
563
+ #: views/backup.php:209
564
+ msgid "Saturday"
565
+ msgstr "Samstag"
566
+
567
+ #: views/backup.php:210
568
+ msgid "Sunday"
569
+ msgstr "Sonntag"
570
+
571
+ #: views/backup.php:213
572
+ msgid "Save Schedule"
573
+ msgstr ""
574
+
575
+ #: views/backup.php:218
576
+ #, php-format
577
+ msgid ""
578
+ "Scheduled backups are only available to WP BackItUp premium customers. "
579
+ "Please visit %s to get WP BackItUp risk free for 30 days."
580
+ msgstr ""
581
+
582
+ #: views/backup.php:225 views/restore.php:94
583
+ msgid "Available Backups"
584
+ msgstr "Verfügbare Backups"
585
+
586
+ #: views/backup.php:283 views/restore.php:125
587
+ msgid "No backup archives found."
588
+ msgstr ""
589
+
590
+ #: views/backup.php:291
591
+ #, php-format
592
+ msgid ""
593
+ "The automated restore feature is only available to WP BackItUp premium "
594
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
595
+ msgstr ""
596
+
597
+ #: views/backup.php:300 views/restore.php:209
598
+ msgid "Nothing to report"
599
+ msgstr ""
600
+
601
+ #: views/backup.php:305
602
+ msgid "Preparing for backup"
603
+ msgstr ""
604
+
605
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
606
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
607
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
608
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
609
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
610
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
611
+ #: views/restore.php:228 views/restore.php:230
612
+ msgid "Done"
613
+ msgstr ""
614
+
615
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
616
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
617
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
618
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
619
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
620
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
621
+ #: views/restore.php:228 views/restore.php:230
622
+ msgid "Failed"
623
+ msgstr ""
624
+
625
+ #: views/backup.php:306
626
+ msgid "Backing up database"
627
+ msgstr ""
628
+
629
+ #: views/backup.php:307
630
+ msgid "Creating backup information file"
631
+ msgstr ""
632
+
633
+ #: views/backup.php:308
634
+ msgid "Backing up themes"
635
+ msgstr ""
636
+
637
+ #: views/backup.php:309
638
+ msgid "Backing up plugins"
639
+ msgstr ""
640
+
641
+ #: views/backup.php:310
642
+ msgid "Backing up uploads"
643
+ msgstr ""
644
+
645
+ #: views/backup.php:311
646
+ msgid "Backing up everything else"
647
+ msgstr ""
648
+
649
+ #: views/backup.php:312
650
+ msgid "Validating backup"
651
+ msgstr ""
652
+
653
+ #: views/backup.php:313
654
+ msgid "Finalizing backup"
655
+ msgstr ""
656
+
657
+ #: views/backup.php:323
658
+ msgid "Backup completed successfully"
659
+ msgstr ""
660
+
661
+ #: views/backup.php:344
662
+ msgid "Backups"
663
+ msgstr "Backups"
664
+
665
+ #: views/backup.php:344
666
+ msgid "Version "
667
+ msgstr "Version"
668
+
669
+ #: views/backup.php:346
670
+ msgid "Welcome to WP BackItUp!"
671
+ msgstr ""
672
+
673
+ #: views/backup.php:346
674
+ msgid "The simplest way to backup your WordPress site."
675
+ msgstr ""
676
+
677
+ #: views/backup.php:347
678
+ msgid ""
679
+ "Getting started is easy, just click the backup button on the left side of "
680
+ "this page."
681
+ msgstr ""
682
+
683
+ #: views/backup.php:351
684
+ #, php-format
685
+ msgid ""
686
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
687
+ "medium;color: green\">%s</span> successful backups."
688
+ msgstr ""
689
+
690
+ #: views/backup.php:352
691
+ msgid "Tips"
692
+ msgstr "Tipps"
693
+
694
+ #: views/backup.php:353
695
+ msgid "Backup your site at least once per week"
696
+ msgstr ""
697
+
698
+ #: views/backup.php:354
699
+ msgid "Download all your backups and store them somewhere safe"
700
+ msgstr ""
701
+
702
+ #: views/backup.php:355
703
+ msgid "Verify your backup files are good by taking a look at what's inside"
704
+ msgstr ""
705
+
706
+ #: views/backup.php:360
707
+ #, php-format
708
+ msgid "Why not %s and schedule your backups!"
709
+ msgstr ""
710
+
711
+ #: views/backup.php:360
712
+ msgid "upgrade"
713
+ msgstr ""
714
+
715
+ #: views/backup.php:369
716
+ msgid "Register WP BackItUp"
717
+ msgstr ""
718
+
719
+ #: views/backup.php:372
720
+ msgid ""
721
+ "Enter your name and email address below to receive <b>special offers</b> and "
722
+ "access to our world class <b>support</b> team. <br />\n"
723
+ " <br />Enter your license key below to activate it on this "
724
+ "site."
725
+ msgstr ""
726
+
727
+ #: views/backup.php:374
728
+ msgid "name"
729
+ msgstr ""
730
+
731
+ #: views/backup.php:375
732
+ msgid "email address"
733
+ msgstr ""
734
+
735
+ #: views/backup.php:376
736
+ msgid "license key"
737
+ msgstr ""
738
+
739
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
740
+ #, php-format
741
+ msgid "%s"
742
+ msgstr ""
743
+
744
+ #: views/backup.php:377
745
+ msgid "Free plugin customers do not need to enter license key."
746
+ msgstr ""
747
+
748
+ #: views/backup.php:378
749
+ msgid "Register"
750
+ msgstr "Registrieren"
751
+
752
+ #: views/backup.php:387
753
+ msgid "License Info"
754
+ msgstr "Lizenzinformation"
755
+
756
+ #: views/backup.php:409
757
+ msgid "Name"
758
+ msgstr "Name"
759
+
760
+ #: views/backup.php:410
761
+ msgid "Email"
762
+ msgstr "E-Mail"
763
+
764
+ #: views/backup.php:411
765
+ msgid "License Type"
766
+ msgstr "Lizenztyp"
767
+
768
+ #: views/backup.php:412
769
+ msgid "Expires"
770
+ msgstr ""
771
+
772
+ #: views/backup.php:415
773
+ msgid "Enter license key to activate on this site."
774
+ msgstr ""
775
+
776
+ #: views/backup.php:422
777
+ msgid "License Active"
778
+ msgstr ""
779
+
780
+ #: views/backup.php:430
781
+ msgid "License expired"
782
+ msgstr ""
783
+
784
+ #: views/backup.php:434
785
+ msgid "Update"
786
+ msgstr ""
787
+
788
+ #: views/backup.php:438
789
+ msgid "Activate"
790
+ msgstr ""
791
+
792
+ #: views/backup.php:442
793
+ #, php-format
794
+ msgid "Purchase a %s license using the purchase link above."
795
+ msgstr ""
796
+
797
+ #: views/backup.php:442
798
+ msgid "no-risk"
799
+ msgstr ""
800
+
801
+ #: views/backup.php:448
802
+ #, php-format
803
+ msgid ""
804
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
805
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
806
+ msgstr ""
807
+
808
+ #: views/backup.php:459
809
+ msgid "Useful Links"
810
+ msgstr "Nützliche Links"
811
+
812
+ #: views/backup.php:462 views/backup.php:466
813
+ msgid "Your account"
814
+ msgstr "Dein Konto"
815
+
816
+ #: views/backup.php:469
817
+ msgid "Documentation"
818
+ msgstr "Dokumentation"
819
+
820
+ #: views/backup.php:472
821
+ msgid "Get support"
822
+ msgstr "Erhalte Support"
823
+
824
+ #: views/backup.php:475
825
+ msgid "Feature request"
826
+ msgstr ""
827
+
828
+ #: views/backup.php:477
829
+ msgid "Contact"
830
+ msgstr "Kontakt"
831
+
832
+ #: views/backup.php:497 views/backup.php:518
833
+ msgid "WP BackItUp Backup Set"
834
+ msgstr ""
835
+
836
+ #: views/backup.php:499
837
+ msgid ""
838
+ "Below are the archive files included in this backup set. Click the link to "
839
+ "download."
840
+ msgstr ""
841
+
842
+ #: views/backup.php:519
843
+ msgid "Please refresh this page to download your new backup files."
844
+ msgstr ""
845
+
846
+ #: views/restore.php:16
847
+ #, php-format
848
+ msgid "%s Restore"
849
+ msgstr ""
850
+
851
+ #: views/restore.php:59
852
+ msgid "Zip Files"
853
+ msgstr ""
854
+
855
+ #: views/restore.php:74
856
+ #, php-format
857
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
858
+ msgstr ""
859
+
860
+ #: views/restore.php:81
861
+ #, php-format
862
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
863
+ msgstr ""
864
+
865
+ #: views/restore.php:141
866
+ #, php-format
867
+ msgid ""
868
+ "<p>* The automated restore feature is only available to licensed customers. "
869
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
870
+ "BackItUp risk free for 30 days.</p>"
871
+ msgstr ""
872
+
873
+ #: views/restore.php:153
874
+ msgid "Upload"
875
+ msgstr ""
876
+
877
+ #: views/restore.php:156
878
+ msgid ""
879
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
880
+ "backups."
881
+ msgstr ""
882
+
883
+ #: views/restore.php:173
884
+ msgid "WP BackItUp - Upload backup files"
885
+ msgstr ""
886
+
887
+ #: views/restore.php:174
888
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
889
+ msgstr ""
890
+
891
+ #: views/restore.php:174
892
+ msgid ""
893
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
894
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
895
+ "refresh this page."
896
+ msgstr ""
897
+
898
+ #: views/restore.php:178
899
+ #, php-format
900
+ msgid "This feature requires %s version %s or later"
901
+ msgstr ""
902
+
903
+ #: views/restore.php:184
904
+ msgid "Drop backup files here"
905
+ msgstr ""
906
+
907
+ #: views/restore.php:190
908
+ msgid ""
909
+ "* Reload this page when done uploading to see new backups appear in the "
910
+ "Available Backups section above. "
911
+ msgstr ""
912
+
913
+ #: views/restore.php:219
914
+ msgid "Preparing for restore"
915
+ msgstr ""
916
+
917
+ #: views/restore.php:220
918
+ msgid "Unzipping backup set"
919
+ msgstr ""
920
+
921
+ #: views/restore.php:221
922
+ msgid "Validating backup file"
923
+ msgstr ""
924
+
925
+ #: views/restore.php:222
926
+ msgid "Deactivating plugins"
927
+ msgstr ""
928
+
929
+ #: views/restore.php:223
930
+ msgid "Creating database restore point"
931
+ msgstr ""
932
+
933
+ #: views/restore.php:224
934
+ msgid "Staging content files"
935
+ msgstr ""
936
+
937
+ #: views/restore.php:225
938
+ msgid "Restoring content files"
939
+ msgstr ""
940
+
941
+ #: views/restore.php:226
942
+ msgid "Restoring database"
943
+ msgstr ""
944
+
945
+ #: views/restore.php:227
946
+ msgid "Updating current user info"
947
+ msgstr ""
948
+
949
+ #: views/restore.php:228
950
+ msgid "Updating site URL"
951
+ msgstr ""
952
+
953
+ #: views/restore.php:230
954
+ msgid "Updating permalinks"
955
+ msgstr ""
956
+
957
+ #: views/restore.php:236
958
+ msgid "Error 201: No file selected"
959
+ msgstr ""
960
+
961
+ #: views/restore.php:237
962
+ msgid "Error 202: Your file could not be uploaded"
963
+ msgstr ""
964
+
965
+ #: views/restore.php:238
966
+ msgid "Error 203: Your backup could not be unzipped"
967
+ msgstr ""
968
+
969
+ #: views/restore.php:239
970
+ msgid ""
971
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
972
+ "valid backup"
973
+ msgstr ""
974
+
975
+ #: views/restore.php:240
976
+ msgid "Error 205: Cannot create restore point"
977
+ msgstr ""
978
+
979
+ #: views/restore.php:241
980
+ msgid "Error 206: Unable to connect to your database"
981
+ msgstr ""
982
+
983
+ #: views/restore.php:242
984
+ msgid ""
985
+ "Error 207: Unable to get current site URL from database. Please try again"
986
+ msgstr ""
987
+
988
+ #: views/restore.php:243
989
+ msgid ""
990
+ "Error 208: Unable to get current home URL from database. Please try again"
991
+ msgstr ""
992
+
993
+ #: views/restore.php:244
994
+ msgid ""
995
+ "Error 209: Unable to get current user ID from database. Please try again"
996
+ msgstr ""
997
+
998
+ #: views/restore.php:245
999
+ msgid ""
1000
+ "Error 210: Unable to get current user password from database. Please try "
1001
+ "again"
1002
+ msgstr ""
1003
+
1004
+ #: views/restore.php:246
1005
+ msgid ""
1006
+ "Error 211: Unable to get current user email from database. Please try again"
1007
+ msgstr ""
1008
+
1009
+ #: views/restore.php:247
1010
+ msgid ""
1011
+ "Error 212: Unable to import your database. This may require importing the "
1012
+ "file manually"
1013
+ msgstr ""
1014
+
1015
+ #: views/restore.php:248
1016
+ msgid ""
1017
+ "Warning 213: Unable to update your site URL value. Please check your "
1018
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1019
+ "correct"
1020
+ msgstr ""
1021
+
1022
+ #: views/restore.php:249
1023
+ msgid ""
1024
+ "Warning 214: Unable to update your home URL value. Please check your "
1025
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1026
+ "correct"
1027
+ msgstr ""
1028
+
1029
+ #: views/restore.php:250
1030
+ msgid ""
1031
+ "Warning 215: Unable to update your user information. This may require you to "
1032
+ "login with the admin username and password that was used when the backup was "
1033
+ "created"
1034
+ msgstr ""
1035
+
1036
+ #: views/restore.php:251
1037
+ msgid "Error 216: Database not found in backup"
1038
+ msgstr ""
1039
+
1040
+ #: views/restore.php:252
1041
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1042
+ msgstr ""
1043
+
1044
+ #: views/restore.php:253
1045
+ msgid ""
1046
+ "Error 218: Unable to create new wp-content directory. Please check your "
1047
+ "CHMOD settings in /wp-content/"
1048
+ msgstr ""
1049
+
1050
+ #: views/restore.php:254
1051
+ msgid "Error 219: Unable to import wp-content. Please try again"
1052
+ msgstr ""
1053
+
1054
+ #: views/restore.php:255
1055
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1056
+ msgstr ""
1057
+
1058
+ #: views/restore.php:256
1059
+ #, php-format
1060
+ msgid ""
1061
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1062
+ "This MUST be changed in your wp-config.php file before you will be able to "
1063
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1064
+ "> FAQs</a> for more info."
1065
+ msgstr ""
1066
+
1067
+ #: views/restore.php:257
1068
+ msgid "Error 222: Unable to create restore folder"
1069
+ msgstr ""
1070
+
1071
+ #: views/restore.php:258
1072
+ msgid ""
1073
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1074
+ "restore the database to its previous state but were unsuccessful. Please "
1075
+ "contact WP BackItUp customer support and do not attempt to perform any "
1076
+ "further restores"
1077
+ msgstr ""
1078
+
1079
+ #: views/restore.php:259
1080
+ msgid ""
1081
+ "Error 224: An error occurred during the restore, however, we have "
1082
+ "successfully restored your database to the previous state"
1083
+ msgstr ""
1084
+
1085
+ #: views/restore.php:260
1086
+ msgid ""
1087
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1088
+ msgstr ""
1089
+
1090
+ #: views/restore.php:261
1091
+ msgid ""
1092
+ "Error 226: Restore cannot proceed because your backup was created using a "
1093
+ "different version of WordPress"
1094
+ msgstr ""
1095
+
1096
+ #: views/restore.php:262
1097
+ msgid ""
1098
+ "Error 227: Restore cannot proceed because your backup was created using a "
1099
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1100
+ "help convert this backup to the current version"
1101
+ msgstr ""
1102
+
1103
+ #: views/restore.php:263
1104
+ msgid ""
1105
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1106
+ "restore. However, we were able to successfully revert the database back to "
1107
+ "its original state . This error may require importing the database manually"
1108
+ msgstr ""
1109
+
1110
+ #: views/restore.php:264
1111
+ msgid ""
1112
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1113
+ "utility available. Please contact support"
1114
+ msgstr ""
1115
+
1116
+ #: views/restore.php:265
1117
+ msgid ""
1118
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1119
+ "running. Please wait for the backup to complete and then try again"
1120
+ msgstr ""
1121
+
1122
+ #: views/restore.php:267
1123
+ msgid ""
1124
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1125
+ "manifest is empty"
1126
+ msgstr ""
1127
+
1128
+ #: views/restore.php:268
1129
+ msgid ""
1130
+ "Error 252: At least one zip file is missing from your backup set. Please "
1131
+ "make sure to upload all zip files that were part of this backup"
1132
+ msgstr ""
1133
+
1134
+ #: views/restore.php:269
1135
+ msgid ""
1136
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1137
+ "Please make sure to upload only zip files that were part of this backup"
1138
+ msgstr ""
1139
+
1140
+ #: views/restore.php:271
1141
+ msgid ""
1142
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1143
+ "restore logs to see what WP BackItUp was unable to restore"
1144
+ msgstr ""
1145
+
1146
+ #: views/restore.php:272
1147
+ msgid ""
1148
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1149
+ "to see what WP BackItUp was unable to restore"
1150
+ msgstr ""
1151
+
1152
+ #: views/restore.php:274
1153
+ msgid "Error 2001: Unable to prepare site for restore"
1154
+ msgstr ""
1155
+
1156
+ #: views/restore.php:275
1157
+ msgid "Error 2002: Unable to unzip backup"
1158
+ msgstr ""
1159
+
1160
+ #: views/restore.php:276
1161
+ msgid "Error 2003: Unable to validate backup"
1162
+ msgstr ""
1163
+
1164
+ #: views/restore.php:277
1165
+ msgid "Error 2004: Unable to create restore point"
1166
+ msgstr ""
1167
+
1168
+ #: views/restore.php:278
1169
+ msgid "Error 2005: Unable to stage wp-content"
1170
+ msgstr ""
1171
+
1172
+ #: views/restore.php:279
1173
+ msgid "Error 2006: Unable to restore content files"
1174
+ msgstr ""
1175
+
1176
+ #: views/restore.php:280
1177
+ msgid "Error 2007: Unable to restore database"
1178
+ msgstr ""
1179
+
1180
+ #: views/restore.php:281
1181
+ msgid "Error 2999: Unexpected error encountered"
1182
+ msgstr ""
1183
+
1184
+ #: views/restore.php:288
1185
+ msgid ""
1186
+ "Restore completed successfully. If you are prompted to login please do so "
1187
+ "with your current username and password"
1188
+ msgstr ""
1189
+
1190
+ #: views/settings.php:16
1191
+ #, php-format
1192
+ msgid "%s Settings"
1193
+ msgstr ""
1194
+
1195
+ #: views/settings.php:43
1196
+ msgid "Email Notifications"
1197
+ msgstr ""
1198
+
1199
+ #: views/settings.php:44
1200
+ msgid ""
1201
+ "Please enter your email address if you would like to receive backup email "
1202
+ "notifications."
1203
+ msgstr ""
1204
+
1205
+ #: views/settings.php:45
1206
+ msgid ""
1207
+ "Backup email notifications will be sent for every backup and will contain "
1208
+ "status information related to the backup."
1209
+ msgstr ""
1210
+
1211
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1212
+ #: views/settings.php:114
1213
+ msgid "Save"
1214
+ msgstr ""
1215
+
1216
+ #: views/settings.php:63
1217
+ msgid "Backup Retention"
1218
+ msgstr ""
1219
+
1220
+ #: views/settings.php:64
1221
+ msgid ""
1222
+ "Enter the number of backup archives that you would like to remain on the "
1223
+ "server."
1224
+ msgstr ""
1225
+
1226
+ #: views/settings.php:65
1227
+ msgid ""
1228
+ "Many hosts limit the amount of space that you can take up on their servers. "
1229
+ "This option tells WP BackItUp the maximum number of backup archives that "
1230
+ "should remain on your hosts server. Don't worry, we will always remove the "
1231
+ "oldest backup archives first."
1232
+ msgstr ""
1233
+
1234
+ #: views/settings.php:84
1235
+ msgid "Turn on logging?"
1236
+ msgstr ""
1237
+
1238
+ #: views/settings.php:85
1239
+ msgid "Yes"
1240
+ msgstr ""
1241
+
1242
+ #: views/settings.php:86
1243
+ msgid "No"
1244
+ msgstr ""
1245
+
1246
+ #: views/settings.php:87
1247
+ msgid ""
1248
+ "This option should only be turned on when troubleshooting issues with "
1249
+ "WPBackItUp support."
1250
+ msgstr ""
1251
+
1252
+ #: views/settings.php:92
1253
+ msgid "Advanced Settings"
1254
+ msgstr ""
1255
+
1256
+ #: views/settings.php:93
1257
+ msgid ""
1258
+ "These options should only be changed when working with WP BackItUp support."
1259
+ msgstr ""
1260
+
1261
+ #: views/settings.php:96
1262
+ msgid "Plugins Batch Size"
1263
+ msgstr ""
1264
+
1265
+ #: views/settings.php:101
1266
+ msgid "Themes Batch Size"
1267
+ msgstr ""
1268
+
1269
+ #: views/settings.php:106
1270
+ msgid "Uploads Batch Size"
1271
+ msgstr ""
1272
+
1273
+ #: views/settings.php:111
1274
+ msgid "Others Batch Size"
1275
+ msgstr ""
1276
+
1277
+ #: views/support.php:16
1278
+ #, php-format
1279
+ msgid "%s Support"
1280
+ msgstr "%s Support"
1281
+
1282
+ #: views/support.php:35
1283
+ msgid "Support email sent successfully!"
1284
+ msgstr ""
1285
+
1286
+ #: views/support.php:48
1287
+ msgid "Email Logs to Support"
1288
+ msgstr ""
1289
+
1290
+ #: views/support.php:49
1291
+ msgid "This form should be used to send log files to support only."
1292
+ msgstr ""
1293
+
1294
+ #: views/support.php:50
1295
+ msgid ""
1296
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1297
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1298
+ "using this form."
1299
+ msgstr ""
1300
+
1301
+ #: views/support.php:51
1302
+ msgid ""
1303
+ "The ticket id you receive from your support request should be entered in the "
1304
+ "ticket id field below."
1305
+ msgstr ""
1306
+
1307
+ #: views/support.php:52
1308
+ msgid "your email address"
1309
+ msgstr "Deine E-Mail Adresse."
1310
+
1311
+ #: views/support.php:62
1312
+ msgid "support ticket id"
1313
+ msgstr ""
1314
+
1315
+ #: views/support.php:72
1316
+ msgid "problem description or additional information"
1317
+ msgstr ""
1318
+
1319
+ #: views/support.php:83
1320
+ msgid "Send"
1321
+ msgstr "Senden"
1322
+
1323
+ #: views/support.php:86
1324
+ msgid "Please register your version of WP BackItUp for access to support."
1325
+ msgstr ""
1326
+
1327
+ #: views/support.php:90
1328
+ msgid "Premium customers receive priority support."
1329
+ msgstr ""
1330
+
1331
+ #: wp-backitup.php:97 wp-backitup.php:98
1332
+ #, php-format
1333
+ msgid "Every %s hours"
1334
+ msgstr ""
languages/wp-backitup-en_US.mo ADDED
Binary file
languages/wp-backitup-en_US.po ADDED
@@ -0,0 +1,1330 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WPBackItUp\n"
4
+ "POT-Creation-Date: 2015-08-14 10:31-0400\n"
5
+ "PO-Revision-Date: 2015-08-14 10:31-0400\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: WPBackItUp <translations@wpbackitup.com>\n"
8
+ "Language: en_US\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.8.4\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
+ "X-Poedit-KeywordsList: _;__;_e\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+
18
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
19
+ #: views/backup.php:179
20
+ msgid "Backup"
21
+ msgstr ""
22
+
23
+ #: lib/includes/class-wpbackitup-admin.php:175
24
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
25
+ msgid "Restore"
26
+ msgstr ""
27
+
28
+ #: lib/includes/class-wpbackitup-admin.php:179
29
+ msgid "Support"
30
+ msgstr ""
31
+
32
+ #: lib/includes/class-wpbackitup-admin.php:182
33
+ msgid "Settings"
34
+ msgstr ""
35
+
36
+ #: lib/includes/class-wpbackitup-admin.php:203
37
+ msgid ""
38
+ "The backup you have selected exceeds what your host allows you to upload."
39
+ msgstr ""
40
+
41
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
42
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
43
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
44
+ #: views/backup.php:312 views/backup.php:313
45
+ msgid "Warning"
46
+ msgstr ""
47
+
48
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
49
+ msgid "Error"
50
+ msgstr ""
51
+
52
+ #: lib/includes/class-wpbackitup-admin.php:206
53
+ msgid "Response"
54
+ msgstr ""
55
+
56
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
57
+ #: views/restore.php:205
58
+ msgid "Status"
59
+ msgstr ""
60
+
61
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
62
+ msgid "Download"
63
+ msgstr ""
64
+
65
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
66
+ #: views/restore.php:111
67
+ msgid "Delete"
68
+ msgstr ""
69
+
70
+ #: lib/includes/class-wpbackitup-admin.php:211
71
+ msgid "(JS997) Unexpected error"
72
+ msgstr ""
73
+
74
+ #: lib/includes/class-wpbackitup-admin.php:212
75
+ msgid "(JS998) Unexpected error"
76
+ msgstr ""
77
+
78
+ #: lib/includes/class-wpbackitup-admin.php:213
79
+ msgid "(JS999) An unexpected error has occurred"
80
+ msgstr ""
81
+
82
+ #: lib/includes/class-wpbackitup-admin.php:214
83
+ msgid "Scheduled has been saved."
84
+ msgstr ""
85
+
86
+ #: lib/includes/class-wpbackitup-admin.php:215
87
+ msgid "Scheduled was not saved."
88
+ msgstr ""
89
+
90
+ #: lib/includes/class-wpbackitup-admin.php:216
91
+ msgid "Are you sure you want to restore your site?"
92
+ msgstr ""
93
+
94
+ #: lib/includes/class-wpbackitup-admin.php:217
95
+ msgid "Are you sure ?"
96
+ msgstr ""
97
+
98
+ #: lib/includes/class-wpbackitup-admin.php:218
99
+ msgid "This file cannot be delete!"
100
+ msgstr ""
101
+
102
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
103
+ msgid "View Log"
104
+ msgstr ""
105
+
106
+ #: lib/includes/class-wpbackitup-admin.php:220
107
+ msgid "New Backup!"
108
+ msgstr ""
109
+
110
+ #: lib/includes/class-wpbackitup-admin.php:221
111
+ msgid "Uploaded Backup"
112
+ msgstr ""
113
+
114
+ #: lib/includes/class-wpbackitup-admin.php:480
115
+ msgid "Backup Queued"
116
+ msgstr ""
117
+
118
+ #: lib/includes/class-wpbackitup-admin.php:482
119
+ msgid "Backup could not be queued"
120
+ msgstr ""
121
+
122
+ #: lib/includes/class-wpbackitup-admin.php:485
123
+ msgid "Backup already in queue"
124
+ msgstr ""
125
+
126
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
127
+ msgid "Backup Cancelled"
128
+ msgstr ""
129
+
130
+ #: lib/includes/class-wpbackitup-admin.php:535
131
+ msgid "No backup file selected."
132
+ msgstr ""
133
+
134
+ #: lib/includes/class-wpbackitup-admin.php:542
135
+ msgid "No user id found."
136
+ msgstr ""
137
+
138
+ #: lib/includes/class-wpbackitup-admin.php:553
139
+ msgid "Restore Queued"
140
+ msgstr ""
141
+
142
+ #: lib/includes/class-wpbackitup-admin.php:555
143
+ msgid "Restore could not be queued"
144
+ msgstr ""
145
+
146
+ #: lib/includes/class-wpbackitup-admin.php:558
147
+ msgid "Restore already in queue"
148
+ msgstr ""
149
+
150
+ #: lib/includes/class-wpbackitup-admin.php:743
151
+ msgid "No response log found."
152
+ msgstr ""
153
+
154
+ #: lib/includes/class-wpbackitup-admin.php:836
155
+ #: lib/includes/class-wpbackitup-admin.php:844
156
+ #: lib/includes/class-wpbackitup-admin.php:873
157
+ #: lib/includes/class-wpbackitup-admin.php:880
158
+ #: lib/includes/class-wpbackitup-admin.php:887
159
+ #: lib/includes/class-wpbackitup-admin.php:894
160
+ msgid "Please enter a number"
161
+ msgstr ""
162
+
163
+ #: lib/includes/class-wpbackitup-admin.php:865
164
+ #: lib/includes/class-wpbackitup-admin.php:972
165
+ msgid "Please enter a valid email"
166
+ msgstr ""
167
+
168
+ #: lib/includes/class-wpbackitup-admin.php:979
169
+ msgid "Please enter your support ticket id"
170
+ msgstr ""
171
+
172
+ #: lib/includes/class-wpbackitup-admin.php:984
173
+ msgid "Please only enter numbers in this field"
174
+ msgstr ""
175
+
176
+ #: lib/includes/class-wpbackitup-admin.php:1645
177
+ msgid "License is invalid."
178
+ msgstr ""
179
+
180
+ #: lib/includes/class-wpbackitup-admin.php:1650
181
+ msgid "License has expired."
182
+ msgstr ""
183
+
184
+ #: lib/includes/class-wpbackitup-admin.php:1655
185
+ msgid "Activation limit has been reached."
186
+ msgstr ""
187
+
188
+ #: lib/includes/handler_upload.php:29
189
+ msgid "Invalid Nonce"
190
+ msgstr ""
191
+
192
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
193
+ msgid "Upload directory is not writable, or does not exist."
194
+ msgstr ""
195
+
196
+ #: lib/includes/handler_upload.php:80
197
+ #, php-format
198
+ msgid "Error: %s"
199
+ msgstr ""
200
+
201
+ #: lib/includes/handler_upload.php:80
202
+ msgid "File could not be uploaded"
203
+ msgstr ""
204
+
205
+ #: lib/includes/handler_upload.php:141
206
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
207
+ msgstr ""
208
+
209
+ #: lib/includes/handler_upload.php:161
210
+ msgid "Could not import file into WP BackItUp backup set."
211
+ msgstr ""
212
+
213
+ #: lib/includes/job_backup.php:851
214
+ msgid "Preparing for backup...Done"
215
+ msgstr ""
216
+
217
+ #: lib/includes/job_backup.php:852
218
+ msgid "Backing up database...Done"
219
+ msgstr ""
220
+
221
+ #: lib/includes/job_backup.php:853
222
+ msgid "Creating backup information file...Done"
223
+ msgstr ""
224
+
225
+ #: lib/includes/job_backup.php:854
226
+ msgid "Backing up themes...Done"
227
+ msgstr ""
228
+
229
+ #: lib/includes/job_backup.php:855
230
+ msgid "Backing up plugins...Done"
231
+ msgstr ""
232
+
233
+ #: lib/includes/job_backup.php:856
234
+ msgid "Backing up uploads...Done"
235
+ msgstr ""
236
+
237
+ #: lib/includes/job_backup.php:857
238
+ msgid "Backing up miscellaneous files...Done"
239
+ msgstr ""
240
+
241
+ #: lib/includes/job_backup.php:858
242
+ msgid "Finalizing backup...Done"
243
+ msgstr ""
244
+
245
+ #: lib/includes/job_backup.php:859
246
+ msgid "Validating backup...Done"
247
+ msgstr ""
248
+
249
+ #: lib/includes/job_backup.php:860
250
+ msgid "Cleaning up...Done"
251
+ msgstr ""
252
+
253
+ #: lib/includes/job_backup.php:870
254
+ #, php-format
255
+ msgid "%s - Backup completed successfully."
256
+ msgstr ""
257
+
258
+ #: lib/includes/job_backup.php:871
259
+ msgid "Your backup completed successfully."
260
+ msgstr ""
261
+
262
+ #: lib/includes/job_backup.php:874
263
+ #, php-format
264
+ msgid "%s - Backup did not complete successfully."
265
+ msgstr ""
266
+
267
+ #: lib/includes/job_backup.php:875
268
+ msgid "Your backup did not complete successfully."
269
+ msgstr ""
270
+
271
+ #: lib/includes/job_backup.php:880
272
+ #, php-format
273
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
274
+ msgstr ""
275
+
276
+ #: lib/includes/job_backup.php:881
277
+ msgid "Backup date:"
278
+ msgstr ""
279
+
280
+ #: lib/includes/job_backup.php:882
281
+ msgid "Number of backups completed with WP BackItUp:"
282
+ msgstr ""
283
+
284
+ #: lib/includes/job_backup.php:884
285
+ msgid "Completion Code:"
286
+ msgstr ""
287
+
288
+ #: lib/includes/job_backup.php:885
289
+ msgid "WP BackItUp Version:"
290
+ msgstr ""
291
+
292
+ #: lib/includes/job_backup.php:891
293
+ msgid "Steps Completed"
294
+ msgstr ""
295
+
296
+ #: lib/includes/job_backup.php:912
297
+ #, php-format
298
+ msgid "Checkout %s for info about WP BackItUp and our other products."
299
+ msgstr ""
300
+
301
+ #: lib/includes/job_backup.php:1088
302
+ msgid ""
303
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
304
+ "settings of your wp-backitup backup directory"
305
+ msgstr ""
306
+
307
+ #: lib/includes/job_backup.php:1089
308
+ msgid ""
309
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
310
+ "your wp-backitup plugin directory"
311
+ msgstr ""
312
+
313
+ #: lib/includes/job_backup.php:1090
314
+ msgid "(103) Unable to backup your files. Please try again"
315
+ msgstr ""
316
+
317
+ #: lib/includes/job_backup.php:1091
318
+ msgid "(104) Unable to export your database. Please try again"
319
+ msgstr ""
320
+
321
+ #: lib/includes/job_backup.php:1092
322
+ msgid "(105) Unable to export site information file. Please try again"
323
+ msgstr ""
324
+
325
+ #: lib/includes/job_backup.php:1093
326
+ msgid "(106) Unable to cleanup your backup directory"
327
+ msgstr ""
328
+
329
+ #: lib/includes/job_backup.php:1094
330
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
331
+ msgstr ""
332
+
333
+ #: lib/includes/job_backup.php:1095
334
+ msgid "(108) Unable to backup your site data files. Please try again"
335
+ msgstr ""
336
+
337
+ #: lib/includes/job_backup.php:1096
338
+ msgid "(109) Unable to finalize backup. Please try again"
339
+ msgstr ""
340
+
341
+ #: lib/includes/job_backup.php:1097
342
+ msgid ""
343
+ "(114) Your database was accessible but an export could not be created. "
344
+ "Please contact support by clicking the get support link on the right. Please "
345
+ "let us know who your host is when you submit the request"
346
+ msgstr ""
347
+
348
+ #: lib/includes/job_backup.php:1098
349
+ msgid "(120) Unable to backup your themes. Please try again"
350
+ msgstr ""
351
+
352
+ #: lib/includes/job_backup.php:1099
353
+ msgid "(121) Unable to backup your plugins. Please try again"
354
+ msgstr ""
355
+
356
+ #: lib/includes/job_backup.php:1100
357
+ msgid "(122) Unable to backup your uploads. Please try again"
358
+ msgstr ""
359
+
360
+ #: lib/includes/job_backup.php:1101
361
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
362
+ msgstr ""
363
+
364
+ #: lib/includes/job_backup.php:1102
365
+ msgid ""
366
+ "(125) Unable to compress your backup because there is no zip utility "
367
+ "available. Please contact support"
368
+ msgstr ""
369
+
370
+ #: lib/includes/job_backup.php:1103
371
+ msgid "(126) Unable to validate your backup. Please try again"
372
+ msgstr ""
373
+
374
+ #: lib/includes/job_backup.php:1104
375
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
376
+ msgstr ""
377
+
378
+ #: lib/includes/job_backup.php:1105
379
+ msgid "(128) Unable to create job control record. Please try again"
380
+ msgstr ""
381
+
382
+ #: lib/includes/job_backup.php:1107
383
+ msgid ""
384
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
385
+ "settings of your wp-backitup backup directory"
386
+ msgstr ""
387
+
388
+ #: lib/includes/job_backup.php:1108
389
+ msgid ""
390
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
391
+ "your wp-backitup plugin directory"
392
+ msgstr ""
393
+
394
+ #: lib/includes/job_backup.php:1109
395
+ msgid "(2103) Unable to backup your files. Please try again"
396
+ msgstr ""
397
+
398
+ #: lib/includes/job_backup.php:1110
399
+ msgid "(2104) Unable to export your database. Please try again"
400
+ msgstr ""
401
+
402
+ #: lib/includes/job_backup.php:1111
403
+ msgid "(2105) Unable to export site information file. Please try again"
404
+ msgstr ""
405
+
406
+ #: lib/includes/job_backup.php:1112
407
+ msgid "(2106) Unable to cleanup your backup directory"
408
+ msgstr ""
409
+
410
+ #: lib/includes/job_backup.php:1113
411
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
412
+ msgstr ""
413
+
414
+ #: lib/includes/job_backup.php:1114
415
+ msgid "(2108) Unable to backup your site data files. Please try again"
416
+ msgstr ""
417
+
418
+ #: lib/includes/job_backup.php:1115
419
+ msgid "(2109) Unable to finalize backup. Please try again"
420
+ msgstr ""
421
+
422
+ #: lib/includes/job_backup.php:1116
423
+ msgid ""
424
+ "(2114) Your database was accessible but an export could not be created. "
425
+ "Please contact support by clicking the get support link on the right. Please "
426
+ "let us know who your host is when you submit the request"
427
+ msgstr ""
428
+
429
+ #: lib/includes/job_backup.php:1117
430
+ msgid "(2120) Unable to backup your themes. Please try again"
431
+ msgstr ""
432
+
433
+ #: lib/includes/job_backup.php:1118
434
+ msgid "(2121) Unable to backup your plugins. Please try again"
435
+ msgstr ""
436
+
437
+ #: lib/includes/job_backup.php:1119
438
+ msgid "(2122) Unable to backup your uploads. Please try again"
439
+ msgstr ""
440
+
441
+ #: lib/includes/job_backup.php:1120
442
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
443
+ msgstr ""
444
+
445
+ #: lib/includes/job_backup.php:1121
446
+ msgid ""
447
+ "(2125) Unable to compress your backup because there is no zip utility "
448
+ "available. Please contact support"
449
+ msgstr ""
450
+
451
+ #: lib/includes/job_backup.php:1122
452
+ msgid "(2126) Unable to validate your backup. Please try again"
453
+ msgstr ""
454
+
455
+ #: lib/includes/job_backup.php:1123
456
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
457
+ msgstr ""
458
+
459
+ #: lib/includes/job_backup.php:1124
460
+ msgid "(2128) Unable to create job control record. Please try again"
461
+ msgstr ""
462
+
463
+ #: lib/includes/job_backup.php:1127
464
+ msgid "(999) Unexpected error"
465
+ msgstr ""
466
+
467
+ #. TRANSLATORS: %s = plugin name.
468
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
469
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
470
+ #: views/backup.php:20
471
+ #, php-format
472
+ msgid "%s Dashboard"
473
+ msgstr ""
474
+
475
+ #: views/backup.php:150
476
+ #, php-format
477
+ msgid "Backup folder does not exist. Please contact %s for assistance."
478
+ msgstr ""
479
+
480
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
481
+ msgid "support"
482
+ msgstr ""
483
+
484
+ #: views/backup.php:153 views/backup.php:159
485
+ msgid "Close"
486
+ msgstr ""
487
+
488
+ #: views/backup.php:174
489
+ msgid ""
490
+ "Click the backup button to create a zipped backup file of this site's "
491
+ "database, plugins, themes and settings."
492
+ msgstr ""
493
+
494
+ #: views/backup.php:175
495
+ msgid ""
496
+ "Once your backup file has been created it will appear in the available "
497
+ "backups section below. This file may remain on your hosting providers server "
498
+ "but we recommend that you download and save it somewhere safe."
499
+ msgstr ""
500
+
501
+ #: views/backup.php:176
502
+ msgid ""
503
+ "WP BackItUp premium customers can use these backup files to perform an "
504
+ "automated restore of their site."
505
+ msgstr ""
506
+
507
+ #: views/backup.php:180
508
+ msgid "Cancel"
509
+ msgstr ""
510
+
511
+ #: views/backup.php:187
512
+ #, php-format
513
+ msgid ""
514
+ "WP BackItUp lite customers may use these backup files to manually restore "
515
+ "their site. Please visit %s for manual restore instructions."
516
+ msgstr ""
517
+
518
+ #: views/backup.php:194
519
+ msgid "Backup Schedule"
520
+ msgstr ""
521
+
522
+ #: views/backup.php:196
523
+ msgid "Select the days of the week you would like your backup to run."
524
+ msgstr ""
525
+
526
+ #: views/backup.php:198
527
+ msgid ""
528
+ "Backup your site once per week or every day, it's up to you. If you have "
529
+ "email notifications turned on we'll even send you an email when it's done. "
530
+ "Once your backup file has been created it will appear in the available "
531
+ "backups section below. This file may remain on your hosting providers server "
532
+ "but we recommend that you download and save it somewhere safe."
533
+ msgstr ""
534
+
535
+ #: views/backup.php:200
536
+ msgid "Please make sure to schedule your backup for at least once per week."
537
+ msgstr ""
538
+
539
+ #: views/backup.php:204
540
+ msgid "Monday"
541
+ msgstr ""
542
+
543
+ #: views/backup.php:205
544
+ msgid "Tuesday"
545
+ msgstr ""
546
+
547
+ #: views/backup.php:206
548
+ msgid "Wednesday"
549
+ msgstr ""
550
+
551
+ #: views/backup.php:207
552
+ msgid "Thursday"
553
+ msgstr ""
554
+
555
+ #: views/backup.php:208
556
+ msgid "Friday"
557
+ msgstr ""
558
+
559
+ #: views/backup.php:209
560
+ msgid "Saturday"
561
+ msgstr ""
562
+
563
+ #: views/backup.php:210
564
+ msgid "Sunday"
565
+ msgstr ""
566
+
567
+ #: views/backup.php:213
568
+ msgid "Save Schedule"
569
+ msgstr ""
570
+
571
+ #: views/backup.php:218
572
+ #, php-format
573
+ msgid ""
574
+ "Scheduled backups are only available to WP BackItUp premium customers. "
575
+ "Please visit %s to get WP BackItUp risk free for 30 days."
576
+ msgstr ""
577
+
578
+ #: views/backup.php:225 views/restore.php:94
579
+ msgid "Available Backups"
580
+ msgstr ""
581
+
582
+ #: views/backup.php:283 views/restore.php:125
583
+ msgid "No backup archives found."
584
+ msgstr ""
585
+
586
+ #: views/backup.php:291
587
+ #, php-format
588
+ msgid ""
589
+ "The automated restore feature is only available to WP BackItUp premium "
590
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
591
+ msgstr ""
592
+
593
+ #: views/backup.php:300 views/restore.php:209
594
+ msgid "Nothing to report"
595
+ msgstr ""
596
+
597
+ #: views/backup.php:305
598
+ msgid "Preparing for backup"
599
+ msgstr ""
600
+
601
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
602
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
603
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
604
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
605
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
606
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
607
+ #: views/restore.php:228 views/restore.php:230
608
+ msgid "Done"
609
+ msgstr ""
610
+
611
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
612
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
613
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
614
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
615
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
616
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
617
+ #: views/restore.php:228 views/restore.php:230
618
+ msgid "Failed"
619
+ msgstr ""
620
+
621
+ #: views/backup.php:306
622
+ msgid "Backing up database"
623
+ msgstr ""
624
+
625
+ #: views/backup.php:307
626
+ msgid "Creating backup information file"
627
+ msgstr ""
628
+
629
+ #: views/backup.php:308
630
+ msgid "Backing up themes"
631
+ msgstr ""
632
+
633
+ #: views/backup.php:309
634
+ msgid "Backing up plugins"
635
+ msgstr ""
636
+
637
+ #: views/backup.php:310
638
+ msgid "Backing up uploads"
639
+ msgstr ""
640
+
641
+ #: views/backup.php:311
642
+ msgid "Backing up everything else"
643
+ msgstr ""
644
+
645
+ #: views/backup.php:312
646
+ msgid "Validating backup"
647
+ msgstr ""
648
+
649
+ #: views/backup.php:313
650
+ msgid "Finalizing backup"
651
+ msgstr ""
652
+
653
+ #: views/backup.php:323
654
+ msgid "Backup completed successfully"
655
+ msgstr ""
656
+
657
+ #: views/backup.php:344
658
+ msgid "Backups"
659
+ msgstr ""
660
+
661
+ #: views/backup.php:344
662
+ msgid "Version "
663
+ msgstr ""
664
+
665
+ #: views/backup.php:346
666
+ msgid "Welcome to WP BackItUp!"
667
+ msgstr ""
668
+
669
+ #: views/backup.php:346
670
+ msgid "The simplest way to backup your WordPress site."
671
+ msgstr ""
672
+
673
+ #: views/backup.php:347
674
+ msgid ""
675
+ "Getting started is easy, just click the backup button on the left side of "
676
+ "this page."
677
+ msgstr ""
678
+
679
+ #: views/backup.php:351
680
+ #, php-format
681
+ msgid ""
682
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
683
+ "medium;color: green\">%s</span> successful backups."
684
+ msgstr ""
685
+
686
+ #: views/backup.php:352
687
+ msgid "Tips"
688
+ msgstr ""
689
+
690
+ #: views/backup.php:353
691
+ msgid "Backup your site at least once per week"
692
+ msgstr ""
693
+
694
+ #: views/backup.php:354
695
+ msgid "Download all your backups and store them somewhere safe"
696
+ msgstr ""
697
+
698
+ #: views/backup.php:355
699
+ msgid "Verify your backup files are good by taking a look at what's inside"
700
+ msgstr ""
701
+
702
+ #: views/backup.php:360
703
+ #, php-format
704
+ msgid "Why not %s and schedule your backups!"
705
+ msgstr ""
706
+
707
+ #: views/backup.php:360
708
+ msgid "upgrade"
709
+ msgstr ""
710
+
711
+ #: views/backup.php:369
712
+ msgid "Register WP BackItUp"
713
+ msgstr ""
714
+
715
+ #: views/backup.php:372
716
+ msgid ""
717
+ "Enter your name and email address below to receive <b>special offers</b> and "
718
+ "access to our world class <b>support</b> team. <br />\n"
719
+ " <br />Enter your license key below to activate it on this "
720
+ "site."
721
+ msgstr ""
722
+
723
+ #: views/backup.php:374
724
+ msgid "name"
725
+ msgstr ""
726
+
727
+ #: views/backup.php:375
728
+ msgid "email address"
729
+ msgstr ""
730
+
731
+ #: views/backup.php:376
732
+ msgid "license key"
733
+ msgstr ""
734
+
735
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
736
+ #, php-format
737
+ msgid "%s"
738
+ msgstr ""
739
+
740
+ #: views/backup.php:377
741
+ msgid "Free plugin customers do not need to enter license key."
742
+ msgstr ""
743
+
744
+ #: views/backup.php:378
745
+ msgid "Register"
746
+ msgstr ""
747
+
748
+ #: views/backup.php:387
749
+ msgid "License Info"
750
+ msgstr ""
751
+
752
+ #: views/backup.php:409
753
+ msgid "Name"
754
+ msgstr ""
755
+
756
+ #: views/backup.php:410
757
+ msgid "Email"
758
+ msgstr ""
759
+
760
+ #: views/backup.php:411
761
+ msgid "License Type"
762
+ msgstr ""
763
+
764
+ #: views/backup.php:412
765
+ msgid "Expires"
766
+ msgstr ""
767
+
768
+ #: views/backup.php:415
769
+ msgid "Enter license key to activate on this site."
770
+ msgstr ""
771
+
772
+ #: views/backup.php:422
773
+ msgid "License Active"
774
+ msgstr ""
775
+
776
+ #: views/backup.php:430
777
+ msgid "License expired"
778
+ msgstr ""
779
+
780
+ #: views/backup.php:434
781
+ msgid "Update"
782
+ msgstr ""
783
+
784
+ #: views/backup.php:438
785
+ msgid "Activate"
786
+ msgstr ""
787
+
788
+ #: views/backup.php:442
789
+ #, php-format
790
+ msgid "Purchase a %s license using the purchase link above."
791
+ msgstr ""
792
+
793
+ #: views/backup.php:442
794
+ msgid "no-risk"
795
+ msgstr ""
796
+
797
+ #: views/backup.php:448
798
+ #, php-format
799
+ msgid ""
800
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
801
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
802
+ msgstr ""
803
+
804
+ #: views/backup.php:459
805
+ msgid "Useful Links"
806
+ msgstr ""
807
+
808
+ #: views/backup.php:462 views/backup.php:466
809
+ msgid "Your account"
810
+ msgstr ""
811
+
812
+ #: views/backup.php:469
813
+ msgid "Documentation"
814
+ msgstr ""
815
+
816
+ #: views/backup.php:472
817
+ msgid "Get support"
818
+ msgstr ""
819
+
820
+ #: views/backup.php:475
821
+ msgid "Feature request"
822
+ msgstr ""
823
+
824
+ #: views/backup.php:477
825
+ msgid "Contact"
826
+ msgstr ""
827
+
828
+ #: views/backup.php:497 views/backup.php:518
829
+ msgid "WP BackItUp Backup Set"
830
+ msgstr ""
831
+
832
+ #: views/backup.php:499
833
+ msgid ""
834
+ "Below are the archive files included in this backup set. Click the link to "
835
+ "download."
836
+ msgstr ""
837
+
838
+ #: views/backup.php:519
839
+ msgid "Please refresh this page to download your new backup files."
840
+ msgstr ""
841
+
842
+ #: views/restore.php:16
843
+ #, php-format
844
+ msgid "%s Restore"
845
+ msgstr ""
846
+
847
+ #: views/restore.php:59
848
+ msgid "Zip Files"
849
+ msgstr ""
850
+
851
+ #: views/restore.php:74
852
+ #, php-format
853
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
854
+ msgstr ""
855
+
856
+ #: views/restore.php:81
857
+ #, php-format
858
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
859
+ msgstr ""
860
+
861
+ #: views/restore.php:141
862
+ #, php-format
863
+ msgid ""
864
+ "<p>* The automated restore feature is only available to licensed customers. "
865
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
866
+ "BackItUp risk free for 30 days.</p>"
867
+ msgstr ""
868
+
869
+ #: views/restore.php:153
870
+ msgid "Upload"
871
+ msgstr ""
872
+
873
+ #: views/restore.php:156
874
+ msgid ""
875
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
876
+ "backups."
877
+ msgstr ""
878
+
879
+ #: views/restore.php:173
880
+ msgid "WP BackItUp - Upload backup files"
881
+ msgstr ""
882
+
883
+ #: views/restore.php:174
884
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
885
+ msgstr ""
886
+
887
+ #: views/restore.php:174
888
+ msgid ""
889
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
890
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
891
+ "refresh this page."
892
+ msgstr ""
893
+
894
+ #: views/restore.php:178
895
+ #, php-format
896
+ msgid "This feature requires %s version %s or later"
897
+ msgstr ""
898
+
899
+ #: views/restore.php:184
900
+ msgid "Drop backup files here"
901
+ msgstr ""
902
+
903
+ #: views/restore.php:190
904
+ msgid ""
905
+ "* Reload this page when done uploading to see new backups appear in the "
906
+ "Available Backups section above. "
907
+ msgstr ""
908
+
909
+ #: views/restore.php:219
910
+ msgid "Preparing for restore"
911
+ msgstr ""
912
+
913
+ #: views/restore.php:220
914
+ msgid "Unzipping backup set"
915
+ msgstr ""
916
+
917
+ #: views/restore.php:221
918
+ msgid "Validating backup file"
919
+ msgstr ""
920
+
921
+ #: views/restore.php:222
922
+ msgid "Deactivating plugins"
923
+ msgstr ""
924
+
925
+ #: views/restore.php:223
926
+ msgid "Creating database restore point"
927
+ msgstr ""
928
+
929
+ #: views/restore.php:224
930
+ msgid "Staging content files"
931
+ msgstr ""
932
+
933
+ #: views/restore.php:225
934
+ msgid "Restoring content files"
935
+ msgstr ""
936
+
937
+ #: views/restore.php:226
938
+ msgid "Restoring database"
939
+ msgstr ""
940
+
941
+ #: views/restore.php:227
942
+ msgid "Updating current user info"
943
+ msgstr ""
944
+
945
+ #: views/restore.php:228
946
+ msgid "Updating site URL"
947
+ msgstr ""
948
+
949
+ #: views/restore.php:230
950
+ msgid "Updating permalinks"
951
+ msgstr ""
952
+
953
+ #: views/restore.php:236
954
+ msgid "Error 201: No file selected"
955
+ msgstr ""
956
+
957
+ #: views/restore.php:237
958
+ msgid "Error 202: Your file could not be uploaded"
959
+ msgstr ""
960
+
961
+ #: views/restore.php:238
962
+ msgid "Error 203: Your backup could not be unzipped"
963
+ msgstr ""
964
+
965
+ #: views/restore.php:239
966
+ msgid ""
967
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
968
+ "valid backup"
969
+ msgstr ""
970
+
971
+ #: views/restore.php:240
972
+ msgid "Error 205: Cannot create restore point"
973
+ msgstr ""
974
+
975
+ #: views/restore.php:241
976
+ msgid "Error 206: Unable to connect to your database"
977
+ msgstr ""
978
+
979
+ #: views/restore.php:242
980
+ msgid ""
981
+ "Error 207: Unable to get current site URL from database. Please try again"
982
+ msgstr ""
983
+
984
+ #: views/restore.php:243
985
+ msgid ""
986
+ "Error 208: Unable to get current home URL from database. Please try again"
987
+ msgstr ""
988
+
989
+ #: views/restore.php:244
990
+ msgid ""
991
+ "Error 209: Unable to get current user ID from database. Please try again"
992
+ msgstr ""
993
+
994
+ #: views/restore.php:245
995
+ msgid ""
996
+ "Error 210: Unable to get current user password from database. Please try "
997
+ "again"
998
+ msgstr ""
999
+
1000
+ #: views/restore.php:246
1001
+ msgid ""
1002
+ "Error 211: Unable to get current user email from database. Please try again"
1003
+ msgstr ""
1004
+
1005
+ #: views/restore.php:247
1006
+ msgid ""
1007
+ "Error 212: Unable to import your database. This may require importing the "
1008
+ "file manually"
1009
+ msgstr ""
1010
+
1011
+ #: views/restore.php:248
1012
+ msgid ""
1013
+ "Warning 213: Unable to update your site URL value. Please check your "
1014
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1015
+ "correct"
1016
+ msgstr ""
1017
+
1018
+ #: views/restore.php:249
1019
+ msgid ""
1020
+ "Warning 214: Unable to update your home URL value. Please check your "
1021
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1022
+ "correct"
1023
+ msgstr ""
1024
+
1025
+ #: views/restore.php:250
1026
+ msgid ""
1027
+ "Warning 215: Unable to update your user information. This may require you to "
1028
+ "login with the admin username and password that was used when the backup was "
1029
+ "created"
1030
+ msgstr ""
1031
+
1032
+ #: views/restore.php:251
1033
+ msgid "Error 216: Database not found in backup"
1034
+ msgstr ""
1035
+
1036
+ #: views/restore.php:252
1037
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1038
+ msgstr ""
1039
+
1040
+ #: views/restore.php:253
1041
+ msgid ""
1042
+ "Error 218: Unable to create new wp-content directory. Please check your "
1043
+ "CHMOD settings in /wp-content/"
1044
+ msgstr ""
1045
+
1046
+ #: views/restore.php:254
1047
+ msgid "Error 219: Unable to import wp-content. Please try again"
1048
+ msgstr ""
1049
+
1050
+ #: views/restore.php:255
1051
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1052
+ msgstr ""
1053
+
1054
+ #: views/restore.php:256
1055
+ #, php-format
1056
+ msgid ""
1057
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1058
+ "This MUST be changed in your wp-config.php file before you will be able to "
1059
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1060
+ "> FAQs</a> for more info."
1061
+ msgstr ""
1062
+
1063
+ #: views/restore.php:257
1064
+ msgid "Error 222: Unable to create restore folder"
1065
+ msgstr ""
1066
+
1067
+ #: views/restore.php:258
1068
+ msgid ""
1069
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1070
+ "restore the database to its previous state but were unsuccessful. Please "
1071
+ "contact WP BackItUp customer support and do not attempt to perform any "
1072
+ "further restores"
1073
+ msgstr ""
1074
+
1075
+ #: views/restore.php:259
1076
+ msgid ""
1077
+ "Error 224: An error occurred during the restore, however, we have "
1078
+ "successfully restored your database to the previous state"
1079
+ msgstr ""
1080
+
1081
+ #: views/restore.php:260
1082
+ msgid ""
1083
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1084
+ msgstr ""
1085
+
1086
+ #: views/restore.php:261
1087
+ msgid ""
1088
+ "Error 226: Restore cannot proceed because your backup was created using a "
1089
+ "different version of WordPress"
1090
+ msgstr ""
1091
+
1092
+ #: views/restore.php:262
1093
+ msgid ""
1094
+ "Error 227: Restore cannot proceed because your backup was created using a "
1095
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1096
+ "help convert this backup to the current version"
1097
+ msgstr ""
1098
+
1099
+ #: views/restore.php:263
1100
+ msgid ""
1101
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1102
+ "restore. However, we were able to successfully revert the database back to "
1103
+ "its original state . This error may require importing the database manually"
1104
+ msgstr ""
1105
+
1106
+ #: views/restore.php:264
1107
+ msgid ""
1108
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1109
+ "utility available. Please contact support"
1110
+ msgstr ""
1111
+
1112
+ #: views/restore.php:265
1113
+ msgid ""
1114
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1115
+ "running. Please wait for the backup to complete and then try again"
1116
+ msgstr ""
1117
+
1118
+ #: views/restore.php:267
1119
+ msgid ""
1120
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1121
+ "manifest is empty"
1122
+ msgstr ""
1123
+
1124
+ #: views/restore.php:268
1125
+ msgid ""
1126
+ "Error 252: At least one zip file is missing from your backup set. Please "
1127
+ "make sure to upload all zip files that were part of this backup"
1128
+ msgstr ""
1129
+
1130
+ #: views/restore.php:269
1131
+ msgid ""
1132
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1133
+ "Please make sure to upload only zip files that were part of this backup"
1134
+ msgstr ""
1135
+
1136
+ #: views/restore.php:271
1137
+ msgid ""
1138
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1139
+ "restore logs to see what WP BackItUp was unable to restore"
1140
+ msgstr ""
1141
+
1142
+ #: views/restore.php:272
1143
+ msgid ""
1144
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1145
+ "to see what WP BackItUp was unable to restore"
1146
+ msgstr ""
1147
+
1148
+ #: views/restore.php:274
1149
+ msgid "Error 2001: Unable to prepare site for restore"
1150
+ msgstr ""
1151
+
1152
+ #: views/restore.php:275
1153
+ msgid "Error 2002: Unable to unzip backup"
1154
+ msgstr ""
1155
+
1156
+ #: views/restore.php:276
1157
+ msgid "Error 2003: Unable to validate backup"
1158
+ msgstr ""
1159
+
1160
+ #: views/restore.php:277
1161
+ msgid "Error 2004: Unable to create restore point"
1162
+ msgstr ""
1163
+
1164
+ #: views/restore.php:278
1165
+ msgid "Error 2005: Unable to stage wp-content"
1166
+ msgstr ""
1167
+
1168
+ #: views/restore.php:279
1169
+ msgid "Error 2006: Unable to restore content files"
1170
+ msgstr ""
1171
+
1172
+ #: views/restore.php:280
1173
+ msgid "Error 2007: Unable to restore database"
1174
+ msgstr ""
1175
+
1176
+ #: views/restore.php:281
1177
+ msgid "Error 2999: Unexpected error encountered"
1178
+ msgstr ""
1179
+
1180
+ #: views/restore.php:288
1181
+ msgid ""
1182
+ "Restore completed successfully. If you are prompted to login please do so "
1183
+ "with your current username and password"
1184
+ msgstr ""
1185
+
1186
+ #: views/settings.php:16
1187
+ #, php-format
1188
+ msgid "%s Settings"
1189
+ msgstr ""
1190
+
1191
+ #: views/settings.php:43
1192
+ msgid "Email Notifications"
1193
+ msgstr ""
1194
+
1195
+ #: views/settings.php:44
1196
+ msgid ""
1197
+ "Please enter your email address if you would like to receive backup email "
1198
+ "notifications."
1199
+ msgstr ""
1200
+
1201
+ #: views/settings.php:45
1202
+ msgid ""
1203
+ "Backup email notifications will be sent for every backup and will contain "
1204
+ "status information related to the backup."
1205
+ msgstr ""
1206
+
1207
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1208
+ #: views/settings.php:114
1209
+ msgid "Save"
1210
+ msgstr ""
1211
+
1212
+ #: views/settings.php:63
1213
+ msgid "Backup Retention"
1214
+ msgstr ""
1215
+
1216
+ #: views/settings.php:64
1217
+ msgid ""
1218
+ "Enter the number of backup archives that you would like to remain on the "
1219
+ "server."
1220
+ msgstr ""
1221
+
1222
+ #: views/settings.php:65
1223
+ msgid ""
1224
+ "Many hosts limit the amount of space that you can take up on their servers. "
1225
+ "This option tells WP BackItUp the maximum number of backup archives that "
1226
+ "should remain on your hosts server. Don't worry, we will always remove the "
1227
+ "oldest backup archives first."
1228
+ msgstr ""
1229
+
1230
+ #: views/settings.php:84
1231
+ msgid "Turn on logging?"
1232
+ msgstr ""
1233
+
1234
+ #: views/settings.php:85
1235
+ msgid "Yes"
1236
+ msgstr ""
1237
+
1238
+ #: views/settings.php:86
1239
+ msgid "No"
1240
+ msgstr ""
1241
+
1242
+ #: views/settings.php:87
1243
+ msgid ""
1244
+ "This option should only be turned on when troubleshooting issues with "
1245
+ "WPBackItUp support."
1246
+ msgstr ""
1247
+
1248
+ #: views/settings.php:92
1249
+ msgid "Advanced Settings"
1250
+ msgstr ""
1251
+
1252
+ #: views/settings.php:93
1253
+ msgid ""
1254
+ "These options should only be changed when working with WP BackItUp support."
1255
+ msgstr ""
1256
+
1257
+ #: views/settings.php:96
1258
+ msgid "Plugins Batch Size"
1259
+ msgstr ""
1260
+
1261
+ #: views/settings.php:101
1262
+ msgid "Themes Batch Size"
1263
+ msgstr ""
1264
+
1265
+ #: views/settings.php:106
1266
+ msgid "Uploads Batch Size"
1267
+ msgstr ""
1268
+
1269
+ #: views/settings.php:111
1270
+ msgid "Others Batch Size"
1271
+ msgstr ""
1272
+
1273
+ #: views/support.php:16
1274
+ #, php-format
1275
+ msgid "%s Support"
1276
+ msgstr ""
1277
+
1278
+ #: views/support.php:35
1279
+ msgid "Support email sent successfully!"
1280
+ msgstr ""
1281
+
1282
+ #: views/support.php:48
1283
+ msgid "Email Logs to Support"
1284
+ msgstr ""
1285
+
1286
+ #: views/support.php:49
1287
+ msgid "This form should be used to send log files to support only."
1288
+ msgstr ""
1289
+
1290
+ #: views/support.php:50
1291
+ msgid ""
1292
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1293
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1294
+ "using this form."
1295
+ msgstr ""
1296
+
1297
+ #: views/support.php:51
1298
+ msgid ""
1299
+ "The ticket id you receive from your support request should be entered in the "
1300
+ "ticket id field below."
1301
+ msgstr ""
1302
+
1303
+ #: views/support.php:52
1304
+ msgid "your email address"
1305
+ msgstr ""
1306
+
1307
+ #: views/support.php:62
1308
+ msgid "support ticket id"
1309
+ msgstr ""
1310
+
1311
+ #: views/support.php:72
1312
+ msgid "problem description or additional information"
1313
+ msgstr ""
1314
+
1315
+ #: views/support.php:83
1316
+ msgid "Send"
1317
+ msgstr ""
1318
+
1319
+ #: views/support.php:86
1320
+ msgid "Please register your version of WP BackItUp for access to support."
1321
+ msgstr ""
1322
+
1323
+ #: views/support.php:90
1324
+ msgid "Premium customers receive priority support."
1325
+ msgstr ""
1326
+
1327
+ #: wp-backitup.php:97 wp-backitup.php:98
1328
+ #, php-format
1329
+ msgid "Every %s hours"
1330
+ msgstr ""
languages/wp-backitup-fr_FR.mo ADDED
Binary file
languages/wp-backitup-fr_FR.po ADDED
@@ -0,0 +1,1559 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ # Bruno TRITSCH <bruno@btweb.fr>, 2015
4
+ # Franck, 2015
5
+ # FX Bénard <fxb@wp-translations.org>, 2015
6
+ # FX Bénard <fxb@wp-translations.org>, 2015
7
+ # Jean-Christophe Brebion <pro@jcbrebion.com>, 2015
8
+ msgid ""
9
+ msgstr ""
10
+ "Project-Id-Version: WP BackItUp\n"
11
+ "POT-Creation-Date: 2015-08-14 10:31-0400\n"
12
+ "PO-Revision-Date: 2015-08-14 10:31-0400\n"
13
+ "Last-Translator: Franck\n"
14
+ "Language-Team: French (France) (http://www.transifex.com/wp-translations/wp-"
15
+ "backitup/language/fr_FR/)\n"
16
+ "Language: fr_FR\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
21
+ "X-Generator: Poedit 1.8.4\n"
22
+ "X-Poedit-Basepath: ..\n"
23
+ "X-Poedit-KeywordsList: _;__;_e\n"
24
+ "X-Poedit-SearchPath-0: .\n"
25
+
26
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
27
+ #: views/backup.php:179
28
+ msgid "Backup"
29
+ msgstr "Sauvegarder"
30
+
31
+ #: lib/includes/class-wpbackitup-admin.php:175
32
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
33
+ msgid "Restore"
34
+ msgstr "Rétablir"
35
+
36
+ #: lib/includes/class-wpbackitup-admin.php:179
37
+ msgid "Support"
38
+ msgstr "Support"
39
+
40
+ #: lib/includes/class-wpbackitup-admin.php:182
41
+ msgid "Settings"
42
+ msgstr "Réglages"
43
+
44
+ #: lib/includes/class-wpbackitup-admin.php:203
45
+ msgid ""
46
+ "The backup you have selected exceeds what your host allows you to upload."
47
+ msgstr ""
48
+ "La sauvegarde que vous avez sélectionnée excède ce que vous êtes autorisé à "
49
+ "mettre en ligne par votre hébergeur."
50
+
51
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
52
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
53
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
54
+ #: views/backup.php:312 views/backup.php:313
55
+ msgid "Warning"
56
+ msgstr "Avertissement"
57
+
58
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
59
+ msgid "Error"
60
+ msgstr "Erreur"
61
+
62
+ #: lib/includes/class-wpbackitup-admin.php:206
63
+ msgid "Response"
64
+ msgstr "Réponse"
65
+
66
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
67
+ #: views/restore.php:205
68
+ msgid "Status"
69
+ msgstr "État"
70
+
71
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
72
+ msgid "Download"
73
+ msgstr "Télécharger"
74
+
75
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
76
+ #: views/restore.php:111
77
+ msgid "Delete"
78
+ msgstr "Supprimer"
79
+
80
+ #: lib/includes/class-wpbackitup-admin.php:211
81
+ msgid "(JS997) Unexpected error"
82
+ msgstr "(JS997) Erreur inattendue."
83
+
84
+ #: lib/includes/class-wpbackitup-admin.php:212
85
+ msgid "(JS998) Unexpected error"
86
+ msgstr "(JS998) Erreur inattendue."
87
+
88
+ #: lib/includes/class-wpbackitup-admin.php:213
89
+ msgid "(JS999) An unexpected error has occurred"
90
+ msgstr "(JS999) Erreur inattendue."
91
+
92
+ #: lib/includes/class-wpbackitup-admin.php:214
93
+ msgid "Scheduled has been saved."
94
+ msgstr "La planification a été enregistrée."
95
+
96
+ #: lib/includes/class-wpbackitup-admin.php:215
97
+ msgid "Scheduled was not saved."
98
+ msgstr "La planification n'a pas été enregistrée."
99
+
100
+ #: lib/includes/class-wpbackitup-admin.php:216
101
+ msgid "Are you sure you want to restore your site?"
102
+ msgstr "Êtes-vous sur de vouloir restaurer votre site ?"
103
+
104
+ #: lib/includes/class-wpbackitup-admin.php:217
105
+ msgid "Are you sure ?"
106
+ msgstr "Voulez-vous vraiment faire cela ?"
107
+
108
+ #: lib/includes/class-wpbackitup-admin.php:218
109
+ msgid "This file cannot be delete!"
110
+ msgstr "Ce fichier ne peut pas être supprimé&nbsp;!"
111
+
112
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
113
+ msgid "View Log"
114
+ msgstr "Voir le fichier journal"
115
+
116
+ #: lib/includes/class-wpbackitup-admin.php:220
117
+ msgid "New Backup!"
118
+ msgstr "Nouvelle sauvegarde !"
119
+
120
+ #: lib/includes/class-wpbackitup-admin.php:221
121
+ msgid "Uploaded Backup"
122
+ msgstr "Sauvegarde mise en ligne."
123
+
124
+ #: lib/includes/class-wpbackitup-admin.php:480
125
+ msgid "Backup Queued"
126
+ msgstr "Sauvegarde mise en file d'attente."
127
+
128
+ #: lib/includes/class-wpbackitup-admin.php:482
129
+ msgid "Backup could not be queued"
130
+ msgstr "La sauvegarde n'a pas pu être mise en file d'attente."
131
+
132
+ #: lib/includes/class-wpbackitup-admin.php:485
133
+ msgid "Backup already in queue"
134
+ msgstr "La sauvegarde est déjà dans la file d'attente."
135
+
136
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
137
+ msgid "Backup Cancelled"
138
+ msgstr "Sauvegarde annulée."
139
+
140
+ #: lib/includes/class-wpbackitup-admin.php:535
141
+ msgid "No backup file selected."
142
+ msgstr "Aucun fichier de sauvegarde sélectionné."
143
+
144
+ #: lib/includes/class-wpbackitup-admin.php:542
145
+ msgid "No user id found."
146
+ msgstr "Aucun identifiant d'utilisateur trouvé."
147
+
148
+ #: lib/includes/class-wpbackitup-admin.php:553
149
+ msgid "Restore Queued"
150
+ msgstr "Restauration mise en file d'attente."
151
+
152
+ #: lib/includes/class-wpbackitup-admin.php:555
153
+ msgid "Restore could not be queued"
154
+ msgstr "La restauration n'a pas pu être mise en file d'attente."
155
+
156
+ #: lib/includes/class-wpbackitup-admin.php:558
157
+ msgid "Restore already in queue"
158
+ msgstr "La restauration est déjà en file d'attente."
159
+
160
+ #: lib/includes/class-wpbackitup-admin.php:743
161
+ msgid "No response log found."
162
+ msgstr "Pas de réponse de journal trouvée."
163
+
164
+ #: lib/includes/class-wpbackitup-admin.php:836
165
+ #: lib/includes/class-wpbackitup-admin.php:844
166
+ #: lib/includes/class-wpbackitup-admin.php:873
167
+ #: lib/includes/class-wpbackitup-admin.php:880
168
+ #: lib/includes/class-wpbackitup-admin.php:887
169
+ #: lib/includes/class-wpbackitup-admin.php:894
170
+ msgid "Please enter a number"
171
+ msgstr "Veuillez saisir un chiffre."
172
+
173
+ #: lib/includes/class-wpbackitup-admin.php:865
174
+ #: lib/includes/class-wpbackitup-admin.php:972
175
+ msgid "Please enter a valid email"
176
+ msgstr "Veuillez saisir une adresse de messagerie valide."
177
+
178
+ #: lib/includes/class-wpbackitup-admin.php:979
179
+ msgid "Please enter your support ticket id"
180
+ msgstr "Veuillez saisir l'identifiant de votre ticket de support."
181
+
182
+ #: lib/includes/class-wpbackitup-admin.php:984
183
+ msgid "Please only enter numbers in this field"
184
+ msgstr "Veuillez saisir uniquement des chiffres dans ce champ."
185
+
186
+ #: lib/includes/class-wpbackitup-admin.php:1645
187
+ msgid "License is invalid."
188
+ msgstr "La licence n'est pas valide."
189
+
190
+ #: lib/includes/class-wpbackitup-admin.php:1650
191
+ msgid "License has expired."
192
+ msgstr "La licence est expirée."
193
+
194
+ #: lib/includes/class-wpbackitup-admin.php:1655
195
+ msgid "Activation limit has been reached."
196
+ msgstr "La limite d'activation a été atteinte."
197
+
198
+ #: lib/includes/handler_upload.php:29
199
+ msgid "Invalid Nonce"
200
+ msgstr "Nonce invalide"
201
+
202
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
203
+ msgid "Upload directory is not writable, or does not exist."
204
+ msgstr ""
205
+ "Le répertoire de stockage n&rsquo;est pas accessible en écriture ou n'existe "
206
+ "pas."
207
+
208
+ #: lib/includes/handler_upload.php:80
209
+ #, php-format
210
+ msgid "Error: %s"
211
+ msgstr "Erreur : %s"
212
+
213
+ #: lib/includes/handler_upload.php:80
214
+ msgid "File could not be uploaded"
215
+ msgstr "Le fichier n'a pas pu être mis en ligne."
216
+
217
+ #: lib/includes/handler_upload.php:141
218
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
219
+ msgstr ""
220
+ "Le fichier ne semble pas être un fichier d'archive de sauvegarde WP BackItUp."
221
+
222
+ #: lib/includes/handler_upload.php:161
223
+ msgid "Could not import file into WP BackItUp backup set."
224
+ msgstr ""
225
+ "Impossible d&rsquo;importer le fichier dans le jeu de sauvegarde WP BackItUp."
226
+
227
+ #: lib/includes/job_backup.php:851
228
+ msgid "Preparing for backup...Done"
229
+ msgstr "Préparation pour la sauvegarde... Terminé."
230
+
231
+ #: lib/includes/job_backup.php:852
232
+ msgid "Backing up database...Done"
233
+ msgstr "Sauvegarde de la base de données... Terminé."
234
+
235
+ #: lib/includes/job_backup.php:853
236
+ msgid "Creating backup information file...Done"
237
+ msgstr "Création du fichier d'information de la sauvegarde... Terminé."
238
+
239
+ #: lib/includes/job_backup.php:854
240
+ msgid "Backing up themes...Done"
241
+ msgstr "Sauvegarde des thèmes... Terminé."
242
+
243
+ #: lib/includes/job_backup.php:855
244
+ msgid "Backing up plugins...Done"
245
+ msgstr "Sauvegarde des extensions... Terminé."
246
+
247
+ #: lib/includes/job_backup.php:856
248
+ msgid "Backing up uploads...Done"
249
+ msgstr "Sauvegarde des pièces jointes... Terminé."
250
+
251
+ #: lib/includes/job_backup.php:857
252
+ msgid "Backing up miscellaneous files...Done"
253
+ msgstr "Sauvegarde des fichiers divers... Terminé."
254
+
255
+ #: lib/includes/job_backup.php:858
256
+ msgid "Finalizing backup...Done"
257
+ msgstr "Finalisation de la sauvegarde... Terminé."
258
+
259
+ #: lib/includes/job_backup.php:859
260
+ msgid "Validating backup...Done"
261
+ msgstr "Validation de la sauvegarde... Terminé."
262
+
263
+ #: lib/includes/job_backup.php:860
264
+ msgid "Cleaning up...Done"
265
+ msgstr "Nettoyage... Terminé."
266
+
267
+ #: lib/includes/job_backup.php:870
268
+ #, php-format
269
+ msgid "%s - Backup completed successfully."
270
+ msgstr "%s - La sauvegarde a été correctement effectuée."
271
+
272
+ #: lib/includes/job_backup.php:871
273
+ msgid "Your backup completed successfully."
274
+ msgstr "Votre sauvegarde a été correctement effectuée."
275
+
276
+ #: lib/includes/job_backup.php:874
277
+ #, php-format
278
+ msgid "%s - Backup did not complete successfully."
279
+ msgstr "%s - La sauvegarde n'a pas été correctement effectuée."
280
+
281
+ #: lib/includes/job_backup.php:875
282
+ msgid "Your backup did not complete successfully."
283
+ msgstr "Votre sauvegarde n'a pas été correctement effectuée."
284
+
285
+ #: lib/includes/job_backup.php:880
286
+ #, php-format
287
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
288
+ msgstr "Site WordPress&nbsp;: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
289
+
290
+ #: lib/includes/job_backup.php:881
291
+ msgid "Backup date:"
292
+ msgstr "Date de la sauvegarde&nbsp;:"
293
+
294
+ #: lib/includes/job_backup.php:882
295
+ msgid "Number of backups completed with WP BackItUp:"
296
+ msgstr "Nombre de sauvegardes effectuées avec WP BackItUp&nbsp;:"
297
+
298
+ #: lib/includes/job_backup.php:884
299
+ msgid "Completion Code:"
300
+ msgstr "Code de réussite&nbsp;:"
301
+
302
+ #: lib/includes/job_backup.php:885
303
+ msgid "WP BackItUp Version:"
304
+ msgstr "Version de WP BackItUp&nbsp;:"
305
+
306
+ #: lib/includes/job_backup.php:891
307
+ msgid "Steps Completed"
308
+ msgstr "Étapes terminées"
309
+
310
+ #: lib/includes/job_backup.php:912
311
+ #, php-format
312
+ msgid "Checkout %s for info about WP BackItUp and our other products."
313
+ msgstr ""
314
+ "Consultez %s pour en savoir plus sur WP BackItUp et nos autres produits."
315
+
316
+ #: lib/includes/job_backup.php:1088
317
+ msgid ""
318
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
319
+ "settings of your wp-backitup backup directory"
320
+ msgstr ""
321
+ "(101) Impossible de créer un nouveau répertoire pour la sauvegarde. Veuillez "
322
+ "vérifier vos réglages CHMOD de votre répertoire de sauvegarde wp-backitup."
323
+
324
+ #: lib/includes/job_backup.php:1089
325
+ msgid ""
326
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
327
+ "your wp-backitup plugin directory"
328
+ msgstr ""
329
+ "(102) Impossible de créer le répertoire de sauvegarde. Veuillez vérifier vos "
330
+ "réglages CHMOD du répertoire de l'extension wp-backitup."
331
+
332
+ #: lib/includes/job_backup.php:1090
333
+ msgid "(103) Unable to backup your files. Please try again"
334
+ msgstr "(103) Impossible de sauvegarder vos fichiers. Veuillez réessayer."
335
+
336
+ #: lib/includes/job_backup.php:1091
337
+ msgid "(104) Unable to export your database. Please try again"
338
+ msgstr ""
339
+ "(104) Impossible d'exporter votre base de données. Veuillez réessayer. "
340
+
341
+ #: lib/includes/job_backup.php:1092
342
+ msgid "(105) Unable to export site information file. Please try again"
343
+ msgstr ""
344
+ "(105) Impossible d'exporter le fichier d'informations du site. Veuillez "
345
+ "réessayer."
346
+
347
+ #: lib/includes/job_backup.php:1093
348
+ msgid "(106) Unable to cleanup your backup directory"
349
+ msgstr "(106) Impossible de nettoyer votre répertoire de sauvegarde."
350
+
351
+ #: lib/includes/job_backup.php:1094
352
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
353
+ msgstr ""
354
+ "(107) Impossible de compresser (zip) votre sauvegarde. Veuillez réessayer."
355
+
356
+ #: lib/includes/job_backup.php:1095
357
+ msgid "(108) Unable to backup your site data files. Please try again"
358
+ msgstr ""
359
+ "(108) Impossible de sauvegarder les fichiers de données de votre site. "
360
+ "Veuillez réessayer."
361
+
362
+ #: lib/includes/job_backup.php:1096
363
+ msgid "(109) Unable to finalize backup. Please try again"
364
+ msgstr "(109) Impossible de finaliser la sauvegarde. Veuillez réessayer."
365
+
366
+ #: lib/includes/job_backup.php:1097
367
+ msgid ""
368
+ "(114) Your database was accessible but an export could not be created. "
369
+ "Please contact support by clicking the get support link on the right. Please "
370
+ "let us know who your host is when you submit the request"
371
+ msgstr ""
372
+ "(114) Votre base de données était accessible mais un export n'a pas pu être "
373
+ "créé. Veuillez contacter le support en cliquant sur le lien Obtenir du "
374
+ "support sur la droite. Veuillez nous dire quel est votre hébergeur et le "
375
+ "moment où vous avez effectué la requête."
376
+
377
+ #: lib/includes/job_backup.php:1098
378
+ msgid "(120) Unable to backup your themes. Please try again"
379
+ msgstr "(120) Impossible de sauvegarder vos thèmes. Veuillez réessayer."
380
+
381
+ #: lib/includes/job_backup.php:1099
382
+ msgid "(121) Unable to backup your plugins. Please try again"
383
+ msgstr "(121) Impossible de sauvegarder vos extensions. Veuillez réessayer."
384
+
385
+ #: lib/includes/job_backup.php:1100
386
+ msgid "(122) Unable to backup your uploads. Please try again"
387
+ msgstr ""
388
+ "(122) Impossible de sauvegarder vos pièces jointes. Veuillez réessayer. "
389
+
390
+ #: lib/includes/job_backup.php:1101
391
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
392
+ msgstr ""
393
+ "(123) Impossible de sauvegarder vos fichiers divers. Veuillez réessayer."
394
+
395
+ #: lib/includes/job_backup.php:1102
396
+ msgid ""
397
+ "(125) Unable to compress your backup because there is no zip utility "
398
+ "available. Please contact support"
399
+ msgstr ""
400
+ "(125) Impossible de compresser votre sauvegarde car il n'y a pas "
401
+ "d'utilitaire zip disponible. Veuillez réessayer."
402
+
403
+ #: lib/includes/job_backup.php:1103
404
+ msgid "(126) Unable to validate your backup. Please try again"
405
+ msgstr "(126) Impossible de valider votre sauvegarde. Veuillez réessayer."
406
+
407
+ #: lib/includes/job_backup.php:1104
408
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
409
+ msgstr ""
410
+ "(127) Impossible de créer l'inventaire des fichiers de sauvegarde. Veuillez "
411
+ "réessayer."
412
+
413
+ #: lib/includes/job_backup.php:1105
414
+ msgid "(128) Unable to create job control record. Please try again"
415
+ msgstr ""
416
+ "(128) Impossible de créer une tâche d'enregistrement de contrôle. Veuillez "
417
+ "réessayer."
418
+
419
+ #: lib/includes/job_backup.php:1107
420
+ msgid ""
421
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
422
+ "settings of your wp-backitup backup directory"
423
+ msgstr ""
424
+ "(2101) Impossible de créer un nouveau répertoire pour la sauvegarde. "
425
+ "Veuillez vérifier vos réglages CHMOD de votre répertoire de sauvegarde wp-"
426
+ "backitup."
427
+
428
+ #: lib/includes/job_backup.php:1108
429
+ msgid ""
430
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
431
+ "your wp-backitup plugin directory"
432
+ msgstr ""
433
+ "(2102) Impossible de créer le répertoire de sauvegarde. Veuillez vérifier "
434
+ "vos réglages CHMOD du répertoire de l'extension wp-backitup."
435
+
436
+ #: lib/includes/job_backup.php:1109
437
+ msgid "(2103) Unable to backup your files. Please try again"
438
+ msgstr "(2103) Impossible de sauvegarder vos fichiers. Veuillez réessayer. "
439
+
440
+ #: lib/includes/job_backup.php:1110
441
+ msgid "(2104) Unable to export your database. Please try again"
442
+ msgstr ""
443
+ "(2104) Impossible d'exporter votre base de données. Veuillez réessayer."
444
+
445
+ #: lib/includes/job_backup.php:1111
446
+ msgid "(2105) Unable to export site information file. Please try again"
447
+ msgstr ""
448
+ "(2105) Impossible d'exporter le fichier d'informations du site. Veuillez "
449
+ "réessayer."
450
+
451
+ #: lib/includes/job_backup.php:1112
452
+ msgid "(2106) Unable to cleanup your backup directory"
453
+ msgstr "(2106) Impossible de nettoyer votre répertoire de sauvegarde."
454
+
455
+ #: lib/includes/job_backup.php:1113
456
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
457
+ msgstr ""
458
+ "(2107) Impossible de compresser (zip) votre sauvegarde. Veuillez réessayer."
459
+
460
+ #: lib/includes/job_backup.php:1114
461
+ msgid "(2108) Unable to backup your site data files. Please try again"
462
+ msgstr ""
463
+ "(2108) Impossible de sauvegarder les fichiers de données de votre site. "
464
+ "Veuillez réessayer."
465
+
466
+ #: lib/includes/job_backup.php:1115
467
+ msgid "(2109) Unable to finalize backup. Please try again"
468
+ msgstr "(2109) Impossible de finaliser la sauvegarde. Veuillez réessayer."
469
+
470
+ #: lib/includes/job_backup.php:1116
471
+ msgid ""
472
+ "(2114) Your database was accessible but an export could not be created. "
473
+ "Please contact support by clicking the get support link on the right. Please "
474
+ "let us know who your host is when you submit the request"
475
+ msgstr ""
476
+ "(2114) Votre base de données était accessible mais un export n'a pas pu être "
477
+ "créé. Veuillez contacter le support en cliquant sur le lien Obtenir du "
478
+ "support sur la droite. Veuillez nous dire quel est votre hébergeur et le "
479
+ "moment où vous avez effectué la requête."
480
+
481
+ #: lib/includes/job_backup.php:1117
482
+ msgid "(2120) Unable to backup your themes. Please try again"
483
+ msgstr "(2120) Impossible de sauvegarder vos thèmes. Veuillez réessayer."
484
+
485
+ #: lib/includes/job_backup.php:1118
486
+ msgid "(2121) Unable to backup your plugins. Please try again"
487
+ msgstr "(2121) Impossible de sauvegarder vos extensions. Veuillez réessayer."
488
+
489
+ #: lib/includes/job_backup.php:1119
490
+ msgid "(2122) Unable to backup your uploads. Please try again"
491
+ msgstr ""
492
+ "(2122) Impossible de sauvegarder vos pièces jointes. Veuillez réessayer. "
493
+
494
+ #: lib/includes/job_backup.php:1120
495
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
496
+ msgstr ""
497
+ "(2123) Impossible de sauvegarder vos fichiers divers. Veuillez réessayer."
498
+
499
+ #: lib/includes/job_backup.php:1121
500
+ msgid ""
501
+ "(2125) Unable to compress your backup because there is no zip utility "
502
+ "available. Please contact support"
503
+ msgstr ""
504
+ "(2125) Impossible de compresser votre sauvegarde car il n'y a pas "
505
+ "d'utilitaire zip disponible. Veuillez réessayer."
506
+
507
+ #: lib/includes/job_backup.php:1122
508
+ msgid "(2126) Unable to validate your backup. Please try again"
509
+ msgstr "(2126) Impossible de valider votre sauvegarde. Veuillez réessayer."
510
+
511
+ #: lib/includes/job_backup.php:1123
512
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
513
+ msgstr ""
514
+ "(2127) Impossible de créer l'inventaire des fichiers de sauvegarde. Veuillez "
515
+ "réessayer."
516
+
517
+ #: lib/includes/job_backup.php:1124
518
+ msgid "(2128) Unable to create job control record. Please try again"
519
+ msgstr ""
520
+ "(2128) Impossible de créer une tâche d'enregistrement de contrôle. Veuillez "
521
+ "réessayer."
522
+
523
+ #: lib/includes/job_backup.php:1127
524
+ msgid "(999) Unexpected error"
525
+ msgstr "(999) Erreur inattendue"
526
+
527
+ #. TRANSLATORS: %s = plugin name.
528
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
529
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
530
+ #: views/backup.php:20
531
+ #, php-format
532
+ msgid "%s Dashboard"
533
+ msgstr "Tableau de bord de %s"
534
+
535
+ #: views/backup.php:150
536
+ #, php-format
537
+ msgid "Backup folder does not exist. Please contact %s for assistance."
538
+ msgstr ""
539
+ "Le dossier de sauvegarde n'existe pas. Veuillez contacter %s pour de "
540
+ "l'assistance."
541
+
542
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
543
+ msgid "support"
544
+ msgstr "support"
545
+
546
+ #: views/backup.php:153 views/backup.php:159
547
+ msgid "Close"
548
+ msgstr "Fermer"
549
+
550
+ #: views/backup.php:174
551
+ msgid ""
552
+ "Click the backup button to create a zipped backup file of this site's "
553
+ "database, plugins, themes and settings."
554
+ msgstr ""
555
+ "Cliquez sur le bouton de sauvegarde pour créer un fichier zippé de la base "
556
+ "de données, des extensions, thèmes et réglages de votre site."
557
+
558
+ #: views/backup.php:175
559
+ msgid ""
560
+ "Once your backup file has been created it will appear in the available "
561
+ "backups section below. This file may remain on your hosting providers server "
562
+ "but we recommend that you download and save it somewhere safe."
563
+ msgstr ""
564
+ "Une fois que votre fichier de sauvegarde a été créé, il apparaîtra dans la "
565
+ "section des sauvegardes disponibles ci-dessous. Ce fichier peut rester sur "
566
+ "le serveur de votre hébergement, mais nous vous recommandons de le "
567
+ "télécharger et de l'enregistrer dans un endroit sûr."
568
+
569
+ #: views/backup.php:176
570
+ msgid ""
571
+ "WP BackItUp premium customers can use these backup files to perform an "
572
+ "automated restore of their site."
573
+ msgstr ""
574
+ "Les utilisateurs de WP BackItUp Premium peuvent utiliser les fichiers de "
575
+ "sauvegarde pour effectuer une restauration automatique de leurs sites."
576
+
577
+ #: views/backup.php:180
578
+ msgid "Cancel"
579
+ msgstr "Annuler"
580
+
581
+ #: views/backup.php:187
582
+ #, php-format
583
+ msgid ""
584
+ "WP BackItUp lite customers may use these backup files to manually restore "
585
+ "their site. Please visit %s for manual restore instructions."
586
+ msgstr ""
587
+ "Les utilisateurs de WP BackItUp Premium peuvent utiliser ces fichiers de "
588
+ "sauvegarde pour effectuer une restauration manuelle de leurs sites. Veuillez "
589
+ "vous rendre sur %s pour les instructions de restauration."
590
+
591
+ #: views/backup.php:194
592
+ msgid "Backup Schedule"
593
+ msgstr "Planification de sauvegarde"
594
+
595
+ #: views/backup.php:196
596
+ msgid "Select the days of the week you would like your backup to run."
597
+ msgstr "Sélectionner les jours de la semaine pour effectuer la sauvegarde."
598
+
599
+ #: views/backup.php:198
600
+ msgid ""
601
+ "Backup your site once per week or every day, it's up to you. If you have "
602
+ "email notifications turned on we'll even send you an email when it's done. "
603
+ "Once your backup file has been created it will appear in the available "
604
+ "backups section below. This file may remain on your hosting providers server "
605
+ "but we recommend that you download and save it somewhere safe."
606
+ msgstr ""
607
+ "Sauvegardez votre site une fois par semaine ou tous les jours, c'est de "
608
+ "votre responsabilité. Si vous avez des notifications par e-mail activées "
609
+ "nous vous enverrons même un e-mail lorsque c'est fait. Une fois que votre "
610
+ "fichier de sauvegarde a été créé, il apparaîtra dans la section des "
611
+ "sauvegardes disponibles ci-dessous. Ce fichier peut rester sur votre serveur "
612
+ "d'hébergement, mais nous vous recommandons de télécharger et de "
613
+ "l'enregistrer dans un endroit sûr."
614
+
615
+ #: views/backup.php:200
616
+ msgid "Please make sure to schedule your backup for at least once per week."
617
+ msgstr ""
618
+ "Veuillez vous assurer de programmer une sauvegarde au moins une fois par "
619
+ "semaine."
620
+
621
+ #: views/backup.php:204
622
+ msgid "Monday"
623
+ msgstr "lundi"
624
+
625
+ #: views/backup.php:205
626
+ msgid "Tuesday"
627
+ msgstr "mardi"
628
+
629
+ #: views/backup.php:206
630
+ msgid "Wednesday"
631
+ msgstr "mercredi"
632
+
633
+ #: views/backup.php:207
634
+ msgid "Thursday"
635
+ msgstr "jeudi"
636
+
637
+ #: views/backup.php:208
638
+ msgid "Friday"
639
+ msgstr "vendredi"
640
+
641
+ #: views/backup.php:209
642
+ msgid "Saturday"
643
+ msgstr "samedi"
644
+
645
+ #: views/backup.php:210
646
+ msgid "Sunday"
647
+ msgstr "dimanche"
648
+
649
+ #: views/backup.php:213
650
+ msgid "Save Schedule"
651
+ msgstr "Enregistrer la planification"
652
+
653
+ #: views/backup.php:218
654
+ #, php-format
655
+ msgid ""
656
+ "Scheduled backups are only available to WP BackItUp premium customers. "
657
+ "Please visit %s to get WP BackItUp risk free for 30 days."
658
+ msgstr ""
659
+ "Les sauvegardes planifiées sont disponibles uniquement pour les clients WP "
660
+ "BackItUp premium. Veuillez visiter %s pour obtenir sans risque WP BackItUp "
661
+ "pendant 30 jours."
662
+
663
+ #: views/backup.php:225 views/restore.php:94
664
+ msgid "Available Backups"
665
+ msgstr "Sauvegardes disponibles"
666
+
667
+ #: views/backup.php:283 views/restore.php:125
668
+ msgid "No backup archives found."
669
+ msgstr "Aucune archive de sauvegarde trouvée."
670
+
671
+ #: views/backup.php:291
672
+ #, php-format
673
+ msgid ""
674
+ "The automated restore feature is only available to WP BackItUp premium "
675
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
676
+ msgstr ""
677
+ "La fonction de restauration automatique est uniquement disponible pour les "
678
+ "clients WP BackItUp premium. Veuillez visiter %s pour obtenir sans risque WP "
679
+ "BackItUp pendant 30 jours."
680
+
681
+ #: views/backup.php:300 views/restore.php:209
682
+ msgid "Nothing to report"
683
+ msgstr "Rien à signaler"
684
+
685
+ #: views/backup.php:305
686
+ msgid "Preparing for backup"
687
+ msgstr "Préparation pour la sauvegarde"
688
+
689
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
690
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
691
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
692
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
693
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
694
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
695
+ #: views/restore.php:228 views/restore.php:230
696
+ msgid "Done"
697
+ msgstr "Terminé"
698
+
699
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
700
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
701
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
702
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
703
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
704
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
705
+ #: views/restore.php:228 views/restore.php:230
706
+ msgid "Failed"
707
+ msgstr "Échoué"
708
+
709
+ #: views/backup.php:306
710
+ msgid "Backing up database"
711
+ msgstr "Sauvegarde de la base de données"
712
+
713
+ #: views/backup.php:307
714
+ msgid "Creating backup information file"
715
+ msgstr "Création du fichier de données de sauvegarde."
716
+
717
+ #: views/backup.php:308
718
+ msgid "Backing up themes"
719
+ msgstr "Sauvegarde des thèmes"
720
+
721
+ #: views/backup.php:309
722
+ msgid "Backing up plugins"
723
+ msgstr "Sauvegarde des extensions"
724
+
725
+ #: views/backup.php:310
726
+ msgid "Backing up uploads"
727
+ msgstr "Sauvegarde des pièces jointes"
728
+
729
+ #: views/backup.php:311
730
+ msgid "Backing up everything else"
731
+ msgstr "Sauvegarde de tout le reste"
732
+
733
+ #: views/backup.php:312
734
+ msgid "Validating backup"
735
+ msgstr "Validation de la sauvegarde"
736
+
737
+ #: views/backup.php:313
738
+ msgid "Finalizing backup"
739
+ msgstr "Finalisation de la sauvegarde"
740
+
741
+ #: views/backup.php:323
742
+ msgid "Backup completed successfully"
743
+ msgstr "La sauvegarde a bien été effectuée."
744
+
745
+ #: views/backup.php:344
746
+ msgid "Backups"
747
+ msgstr "Sauvegardes"
748
+
749
+ #: views/backup.php:344
750
+ msgid "Version "
751
+ msgstr "Version "
752
+
753
+ #: views/backup.php:346
754
+ msgid "Welcome to WP BackItUp!"
755
+ msgstr "Bienvenue dans WP BackItUp !"
756
+
757
+ #: views/backup.php:346
758
+ msgid "The simplest way to backup your WordPress site."
759
+ msgstr "La manière la plus simple de sauvegarder votre site WordPress."
760
+
761
+ #: views/backup.php:347
762
+ msgid ""
763
+ "Getting started is easy, just click the backup button on the left side of "
764
+ "this page."
765
+ msgstr ""
766
+ "Le démarrage est simple, cliquez sur le bouton de sauvegarde à gauche sur "
767
+ "cette page."
768
+
769
+ #: views/backup.php:351
770
+ #, php-format
771
+ msgid ""
772
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
773
+ "medium;color: green\">%s</span> successful backups."
774
+ msgstr ""
775
+ "Félicitations ! Vous avez bien effectué <span style=\"font-weight:bold;font-"
776
+ "size:medium;color: green\">%s</span> sauvegardes."
777
+
778
+ #: views/backup.php:352
779
+ msgid "Tips"
780
+ msgstr "Astuces"
781
+
782
+ #: views/backup.php:353
783
+ msgid "Backup your site at least once per week"
784
+ msgstr "Sauvegardez votre site au moins une fois par semaine"
785
+
786
+ #: views/backup.php:354
787
+ msgid "Download all your backups and store them somewhere safe"
788
+ msgstr ""
789
+ "Téléchargez toutes vos sauvegardes et stockez-les dans un endroit sécurisé."
790
+
791
+ #: views/backup.php:355
792
+ msgid "Verify your backup files are good by taking a look at what's inside"
793
+ msgstr ""
794
+ "Vérifiez que vos fichiers de sauvegarde sont bons en regardant attentivement "
795
+ "ce qu'il y a dedans."
796
+
797
+ #: views/backup.php:360
798
+ #, php-format
799
+ msgid "Why not %s and schedule your backups!"
800
+ msgstr "Pourquoi ne pas %s et planifier vos sauvegardes&nbsp;!"
801
+
802
+ #: views/backup.php:360
803
+ msgid "upgrade"
804
+ msgstr "mettre à jour"
805
+
806
+ #: views/backup.php:369
807
+ msgid "Register WP BackItUp"
808
+ msgstr "Enregistrer WP BackItUp"
809
+
810
+ #: views/backup.php:372
811
+ msgid ""
812
+ "Enter your name and email address below to receive <b>special offers</b> and "
813
+ "access to our world class <b>support</b> team. <br />\n"
814
+ " <br />Enter your license key below to activate it on this "
815
+ "site."
816
+ msgstr ""
817
+ "Saisissez votre nom et votre adresse e-mail ci-dessous pour recevoir des "
818
+ "<b>offres spéciales</b> et l'accès à notre équipe de <b>support</b> de "
819
+ "classe mondiale.<br />\n"
820
+ "<br />Entrez votre clé de licence ci-dessous pour l'activer sur ce site."
821
+
822
+ #: views/backup.php:374
823
+ msgid "name"
824
+ msgstr "nom"
825
+
826
+ #: views/backup.php:375
827
+ msgid "email address"
828
+ msgstr "adresse de messagerie"
829
+
830
+ #: views/backup.php:376
831
+ msgid "license key"
832
+ msgstr "clé de licence"
833
+
834
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
835
+ #, php-format
836
+ msgid "%s"
837
+ msgstr "%s"
838
+
839
+ #: views/backup.php:377
840
+ msgid "Free plugin customers do not need to enter license key."
841
+ msgstr ""
842
+ "Les utilisateurs de l'extension gratuite n'ont pas besoin de saisir de clé "
843
+ "de licence."
844
+
845
+ #: views/backup.php:378
846
+ msgid "Register"
847
+ msgstr "Inscription"
848
+
849
+ #: views/backup.php:387
850
+ msgid "License Info"
851
+ msgstr "Info de licence"
852
+
853
+ #: views/backup.php:409
854
+ msgid "Name"
855
+ msgstr "Nom"
856
+
857
+ #: views/backup.php:410
858
+ msgid "Email"
859
+ msgstr "E-mail "
860
+
861
+ #: views/backup.php:411
862
+ msgid "License Type"
863
+ msgstr "Type de licence"
864
+
865
+ #: views/backup.php:412
866
+ msgid "Expires"
867
+ msgstr "Expire"
868
+
869
+ #: views/backup.php:415
870
+ msgid "Enter license key to activate on this site."
871
+ msgstr "Saisissez la clé de licence à activer sur ce site."
872
+
873
+ #: views/backup.php:422
874
+ msgid "License Active"
875
+ msgstr "Licence active"
876
+
877
+ #: views/backup.php:430
878
+ msgid "License expired"
879
+ msgstr "Licence expirée"
880
+
881
+ #: views/backup.php:434
882
+ msgid "Update"
883
+ msgstr "Mettre à jour"
884
+
885
+ #: views/backup.php:438
886
+ msgid "Activate"
887
+ msgstr "Activer"
888
+
889
+ #: views/backup.php:442
890
+ #, php-format
891
+ msgid "Purchase a %s license using the purchase link above."
892
+ msgstr "Achetez une licence %s en utilisant le lien d'achat ci-dessus."
893
+
894
+ #: views/backup.php:442
895
+ msgid "no-risk"
896
+ msgstr "sans risque"
897
+
898
+ #: views/backup.php:448
899
+ #, php-format
900
+ msgid ""
901
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
902
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
903
+ msgstr ""
904
+ "<a href=\"%s\" target=\"blank\">Renouveler</a> votre licence maintenant pour "
905
+ "une nouvelle année de <strong>mises à jour produit</strong> et <strong>un "
906
+ "support prioritaire.</strong>"
907
+
908
+ #: views/backup.php:459
909
+ msgid "Useful Links"
910
+ msgstr "Liens utiles"
911
+
912
+ #: views/backup.php:462 views/backup.php:466
913
+ msgid "Your account"
914
+ msgstr "Votre compte"
915
+
916
+ #: views/backup.php:469
917
+ msgid "Documentation"
918
+ msgstr "Documentation"
919
+
920
+ #: views/backup.php:472
921
+ msgid "Get support"
922
+ msgstr "Obtenir du support"
923
+
924
+ #: views/backup.php:475
925
+ msgid "Feature request"
926
+ msgstr "Demande de fonctionnalité"
927
+
928
+ #: views/backup.php:477
929
+ msgid "Contact"
930
+ msgstr "Contact"
931
+
932
+ #: views/backup.php:497 views/backup.php:518
933
+ msgid "WP BackItUp Backup Set"
934
+ msgstr "Jeu de sauvegarde WP BackItUp"
935
+
936
+ #: views/backup.php:499
937
+ msgid ""
938
+ "Below are the archive files included in this backup set. Click the link to "
939
+ "download."
940
+ msgstr ""
941
+ "Voici les fichiers d'archive inclus dans ce jeu de sauvegarde. Cliquez sur "
942
+ "le lien pour télécharger."
943
+
944
+ #: views/backup.php:519
945
+ msgid "Please refresh this page to download your new backup files."
946
+ msgstr ""
947
+ "Veuillez rafraichir cette page pour télécharger vos nouveaux fichiers de "
948
+ "sauvegarde."
949
+
950
+ #: views/restore.php:16
951
+ #, php-format
952
+ msgid "%s Restore"
953
+ msgstr "Restaurer %s"
954
+
955
+ #: views/restore.php:59
956
+ msgid "Zip Files"
957
+ msgstr "Fichiers Zip"
958
+
959
+ #: views/restore.php:74
960
+ #, php-format
961
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
962
+ msgstr ""
963
+ "Erreur&nbsp;: Le dossier de sauvegarde n'existe pas. Veuillez contacter %s "
964
+ "pour de l'assistance."
965
+
966
+ #: views/restore.php:81
967
+ #, php-format
968
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
969
+ msgstr ""
970
+ "Erreur&nbsp;: Le dossier de restauration n'existe pas. Veuillez contacter %s "
971
+ "pour de l'assistance."
972
+
973
+ #: views/restore.php:141
974
+ #, php-format
975
+ msgid ""
976
+ "<p>* The automated restore feature is only available to licensed customers. "
977
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
978
+ "BackItUp risk free for 30 days.</p>"
979
+ msgstr ""
980
+ "<p>* La fonction de restauration automatique est uniquement disponible pour "
981
+ "les clients WP BackItUp avec une licence. Veuillez visiter <a href=\"%s\" "
982
+ "target=\"_blank\">%s</a> pour obtenir sans risque une licence WP BackItUp "
983
+ "pendant 30 jours.</p>"
984
+
985
+ #: views/restore.php:153
986
+ msgid "Upload"
987
+ msgstr "Envoyer"
988
+
989
+ #: views/restore.php:156
990
+ msgid ""
991
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
992
+ "backups."
993
+ msgstr ""
994
+ "Mettez en ligne les fichiers d'archive (zip) de WP BackItUp à ajouter à "
995
+ "votre liste de sauvegardes disponibles."
996
+
997
+ #: views/restore.php:173
998
+ msgid "WP BackItUp - Upload backup files"
999
+ msgstr "WP BackItUp - Envoi de fichiers de sauvegarde"
1000
+
1001
+ #: views/restore.php:174
1002
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
1003
+ msgstr ""
1004
+ "Les fichiers de sauvegarde peuvent être envoyés dans WP BackItUp via ce "
1005
+ "formulaire."
1006
+
1007
+ #: views/restore.php:174
1008
+ msgid ""
1009
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
1010
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
1011
+ "refresh this page."
1012
+ msgstr ""
1013
+ "Ils peuvent également être chargés manuellement dans le répertoire WP "
1014
+ "BackItUp (wp-content/wpbackitup_backups) en utilisant FTP. Lorsque vous avez "
1015
+ "terminé le chargement de tous les fichiers de sauvegarde rafraîchissez cette "
1016
+ "page."
1017
+
1018
+ #: views/restore.php:178
1019
+ #, php-format
1020
+ msgid "This feature requires %s version %s or later"
1021
+ msgstr "Cette fonctionnalité nécessite %s version %s ou plus."
1022
+
1023
+ #: views/restore.php:184
1024
+ msgid "Drop backup files here"
1025
+ msgstr "Déposez ici vos fichiers de sauvegarde"
1026
+
1027
+ #: views/restore.php:190
1028
+ msgid ""
1029
+ "* Reload this page when done uploading to see new backups appear in the "
1030
+ "Available Backups section above. "
1031
+ msgstr ""
1032
+ "* Rechargez cette page lorsque vous avez terminé le chargement pour voir "
1033
+ "apparaître de nouvelles sauvegardes dans la section sauvegardes disponibles "
1034
+ "ci-dessus."
1035
+
1036
+ #: views/restore.php:219
1037
+ msgid "Preparing for restore"
1038
+ msgstr "Préparation pour la restauration"
1039
+
1040
+ #: views/restore.php:220
1041
+ msgid "Unzipping backup set"
1042
+ msgstr "Décompression du jeu de sauvegardes"
1043
+
1044
+ #: views/restore.php:221
1045
+ msgid "Validating backup file"
1046
+ msgstr "Validation du fichier de sauvegarde"
1047
+
1048
+ #: views/restore.php:222
1049
+ msgid "Deactivating plugins"
1050
+ msgstr "Désactivation des extensions"
1051
+
1052
+ #: views/restore.php:223
1053
+ msgid "Creating database restore point"
1054
+ msgstr "Création du point de restauration de la base de données."
1055
+
1056
+ #: views/restore.php:224
1057
+ msgid "Staging content files"
1058
+ msgstr ""
1059
+
1060
+ #: views/restore.php:225
1061
+ msgid "Restoring content files"
1062
+ msgstr "Restauration des fichiers de contenu."
1063
+
1064
+ #: views/restore.php:226
1065
+ msgid "Restoring database"
1066
+ msgstr "Restauration de la base de données."
1067
+
1068
+ #: views/restore.php:227
1069
+ msgid "Updating current user info"
1070
+ msgstr "Mise à jour des informations de l'utilisateur courant."
1071
+
1072
+ #: views/restore.php:228
1073
+ msgid "Updating site URL"
1074
+ msgstr "Mise à jour de l'URL du site"
1075
+
1076
+ #: views/restore.php:230
1077
+ msgid "Updating permalinks"
1078
+ msgstr "Mise à jour des permaliens"
1079
+
1080
+ #: views/restore.php:236
1081
+ msgid "Error 201: No file selected"
1082
+ msgstr "Erreur 201 : aucun fichier sélectionné."
1083
+
1084
+ #: views/restore.php:237
1085
+ msgid "Error 202: Your file could not be uploaded"
1086
+ msgstr "Erreur 202&nbsp;: Votre fichier n'a pas pu être mis en ligne."
1087
+
1088
+ #: views/restore.php:238
1089
+ msgid "Error 203: Your backup could not be unzipped"
1090
+ msgstr "Erreur 203&nbsp;: Votre sauvegarde n'a pas pu être dé-zippée."
1091
+
1092
+ #: views/restore.php:239
1093
+ msgid ""
1094
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
1095
+ "valid backup"
1096
+ msgstr ""
1097
+ "Erreur 204&nbsp;: Votre sauvegarde semble ne pas être valide. Veuillez vous "
1098
+ "assurer d'en choisir une valide."
1099
+
1100
+ #: views/restore.php:240
1101
+ msgid "Error 205: Cannot create restore point"
1102
+ msgstr "Erreur 205 : impossible de créer le point de restauration."
1103
+
1104
+ #: views/restore.php:241
1105
+ msgid "Error 206: Unable to connect to your database"
1106
+ msgstr "Erreur 206 : impossible de se connecter à votre base de données."
1107
+
1108
+ #: views/restore.php:242
1109
+ msgid ""
1110
+ "Error 207: Unable to get current site URL from database. Please try again"
1111
+ msgstr ""
1112
+ "Erreur 207&nbsp;: Impossible d'obtenir l'URL actuelle du site depuis la base "
1113
+ "de données. Veuillez réessayer."
1114
+
1115
+ #: views/restore.php:243
1116
+ msgid ""
1117
+ "Error 208: Unable to get current home URL from database. Please try again"
1118
+ msgstr ""
1119
+ "Erreur 208&nbsp;: Impossible d'obtenir l'URL actuelle de la page d'accueil "
1120
+ "depuis la base de données. Veuillez réessayer."
1121
+
1122
+ #: views/restore.php:244
1123
+ msgid ""
1124
+ "Error 209: Unable to get current user ID from database. Please try again"
1125
+ msgstr ""
1126
+ "Erreur 209&nbsp;: Impossible d'obtenir l'identifiant de l'utilisateur "
1127
+ "courant depuis la base de données. Veuillez réessayer."
1128
+
1129
+ #: views/restore.php:245
1130
+ msgid ""
1131
+ "Error 210: Unable to get current user password from database. Please try "
1132
+ "again"
1133
+ msgstr ""
1134
+ "Erreur 210&nbsp;: Impossible d'obtenir le mot de passe de l'utilisateur "
1135
+ "courant depuis la base de données. Veuillez réessayer."
1136
+
1137
+ #: views/restore.php:246
1138
+ msgid ""
1139
+ "Error 211: Unable to get current user email from database. Please try again"
1140
+ msgstr ""
1141
+ "Erreur 211&nbsp;: Impossible d'obtenir l'e-mail de l'utilisateur courant "
1142
+ "depuis la base de données. Veuillez réessayer."
1143
+
1144
+ #: views/restore.php:247
1145
+ msgid ""
1146
+ "Error 212: Unable to import your database. This may require importing the "
1147
+ "file manually"
1148
+ msgstr ""
1149
+ "Erreur 212&nbsp;: Impossible d'importer votre base de données. Cela peut "
1150
+ "nécessiter l'importation du fichier manuellement."
1151
+
1152
+ #: views/restore.php:248
1153
+ msgid ""
1154
+ "Warning 213: Unable to update your site URL value. Please check your "
1155
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1156
+ "correct"
1157
+ msgstr ""
1158
+ "Avertissement 213&nbsp;: Impossible de mettre à jour la valeur de l'URL de "
1159
+ "votre site. Veuillez vérifier vos paramètres généraux WordPress pour vous "
1160
+ "assurer que votre site et les URLs Wordpress sont correctes."
1161
+
1162
+ #: views/restore.php:249
1163
+ msgid ""
1164
+ "Warning 214: Unable to update your home URL value. Please check your "
1165
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1166
+ "correct"
1167
+ msgstr ""
1168
+ "Avertissement 214&nbsp;: Impossible de mettre à jour la valeur de l'URL de "
1169
+ "votre page d'accueil. Veuillez vérifier vos paramètres généraux WordPress "
1170
+ "pour vous assurer que votre site et les URLs Wordpress sont corrects."
1171
+
1172
+ #: views/restore.php:250
1173
+ msgid ""
1174
+ "Warning 215: Unable to update your user information. This may require you to "
1175
+ "login with the admin username and password that was used when the backup was "
1176
+ "created"
1177
+ msgstr ""
1178
+ "Avertissement 215&nbsp;: Impossible de mettre à jour vos informations "
1179
+ "utilisateur. Cela peut nécessiter de vous connecter avec le compte et le mot "
1180
+ "de passe d'administrateur qui a été utilisé lorsque la sauvegarde a été "
1181
+ "créée."
1182
+
1183
+ #: views/restore.php:251
1184
+ msgid "Error 216: Database not found in backup"
1185
+ msgstr "Erreur 216 : base de données introuvable dans la sauvegarde."
1186
+
1187
+ #: views/restore.php:252
1188
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1189
+ msgstr ""
1190
+ "Avertissement 217&nbsp;: Impossible de supprimer le répertoire wp-content "
1191
+ "existant."
1192
+
1193
+ #: views/restore.php:253
1194
+ msgid ""
1195
+ "Error 218: Unable to create new wp-content directory. Please check your "
1196
+ "CHMOD settings in /wp-content/"
1197
+ msgstr ""
1198
+ "Erreur 218&nbsp;: Impossible de créer le nouveau répertoire wp-content. "
1199
+ "Veuillez vérifier vos réglages CHMOD dans /wp-content/."
1200
+
1201
+ #: views/restore.php:254
1202
+ msgid "Error 219: Unable to import wp-content. Please try again"
1203
+ msgstr ""
1204
+ "Erreur 219&nbsp;: Impossible d'importer wp-content. Veuillez réessayer."
1205
+
1206
+ #: views/restore.php:255
1207
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1208
+ msgstr ""
1209
+ "Avertissement 220&nbsp;: Impossible de nettoyer le répertoire d'import. "
1210
+ "Aucune action n'est requise."
1211
+
1212
+ #: views/restore.php:256
1213
+ #, php-format
1214
+ msgid ""
1215
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1216
+ "This MUST be changed in your wp-config.php file before you will be able to "
1217
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1218
+ "> FAQs</a> for more info."
1219
+ msgstr ""
1220
+ "Erreur 221&nbsp;: La valeur du préfixe des tables dans wp-config.php est "
1221
+ "différente de celle de la sauvegarde. Ceci DOIT ÊTRE changé dans votre "
1222
+ "fichier wp-config.php avant vous puissiez restaurer votre site. Voir www."
1223
+ "wpbackitup.com <a href =\"%s\" target=\"_blank\" >FAQ</a> pour plus "
1224
+ "d'informations."
1225
+
1226
+ #: views/restore.php:257
1227
+ msgid "Error 222: Unable to create restore folder"
1228
+ msgstr "Erreur 222 : impossible de créer le répertoire de restauration."
1229
+
1230
+ #: views/restore.php:258
1231
+ msgid ""
1232
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1233
+ "restore the database to its previous state but were unsuccessful. Please "
1234
+ "contact WP BackItUp customer support and do not attempt to perform any "
1235
+ "further restores"
1236
+ msgstr ""
1237
+ "Erreur 223&nbsp;: Une erreur s'est produite durant la restauration. WP "
1238
+ "BackItUp a tenté de restaurer la base de données dans son état précédent "
1239
+ "mais sans succès. Veuillez contacter le support client de WP BackItUp et ne "
1240
+ "pas essayer de lancer de nouvelles restaurations."
1241
+
1242
+ #: views/restore.php:259
1243
+ msgid ""
1244
+ "Error 224: An error occurred during the restore, however, we have "
1245
+ "successfully restored your database to the previous state"
1246
+ msgstr ""
1247
+ "Erreur 224&nbsp;: Une erreur s'est produite durant la restauration. "
1248
+ "Cependant, nous avons restauré avec succès votre base de données à son état "
1249
+ "précédent."
1250
+
1251
+ #: views/restore.php:260
1252
+ msgid ""
1253
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1254
+ msgstr ""
1255
+ "Erreur 225&nbsp;: L'option de restauration est disponible uniquement aux "
1256
+ "utilisateurs WP BackItUp avec licence."
1257
+
1258
+ #: views/restore.php:261
1259
+ msgid ""
1260
+ "Error 226: Restore cannot proceed because your backup was created using a "
1261
+ "different version of WordPress"
1262
+ msgstr ""
1263
+ "Erreur 226&nbsp;: La restauration ne peut pas être effectuée parce que votre "
1264
+ "sauvegarde a été faite en utilisant une version différente de WordPress."
1265
+
1266
+ #: views/restore.php:262
1267
+ msgid ""
1268
+ "Error 227: Restore cannot proceed because your backup was created using a "
1269
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1270
+ "help convert this backup to the current version"
1271
+ msgstr ""
1272
+ "Erreur 227&nbsp;: La restauration ne peut pas continuer parce que votre "
1273
+ "sauvegarde a été créée en utilisant une version différente de WP BackItUp. "
1274
+ "Veuillez contacter le support WP BackItUp pour aider à convertir cette "
1275
+ "sauvegarde vers la version actuelle."
1276
+
1277
+ #: views/restore.php:263
1278
+ msgid ""
1279
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1280
+ "restore. However, we were able to successfully revert the database back to "
1281
+ "its original state . This error may require importing the database manually"
1282
+ msgstr ""
1283
+ "Erreur 230&nbsp;: WP BackItUp a rencontré des erreurs inattendues lors de "
1284
+ "la de restauration de la base de données. Cependant, nous étions en mesure "
1285
+ "de restaurer la base de données dans son état d'origine avec succès. Cette "
1286
+ "erreur peut nécessiter d'importer manuellement la base de données."
1287
+
1288
+ #: views/restore.php:264
1289
+ msgid ""
1290
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1291
+ "utility available. Please contact support"
1292
+ msgstr ""
1293
+ "Erreur 235&nbsp;: WP BackItUp ne peut pas continuer car aucun utilitaire zip "
1294
+ "n'est disponible. Veuillez contacter le support."
1295
+
1296
+ #: views/restore.php:265
1297
+ msgid ""
1298
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1299
+ "running. Please wait for the backup to complete and then try again"
1300
+ msgstr ""
1301
+ "Erreur 250:&nbsp; WP BackItUp ne peut pas démarrer la restauration car une "
1302
+ "sauvegarde est en cours. Veuillez attendre la fin de la sauvegarde et "
1303
+ "refaire un essai."
1304
+
1305
+ #: views/restore.php:267
1306
+ msgid ""
1307
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1308
+ "manifest is empty"
1309
+ msgstr ""
1310
+ "Erreur 251&nbsp;: WP BackItUp est incapable de commencer la restauration "
1311
+ "parce que le manifeste de sauvegarde est vide."
1312
+
1313
+ #: views/restore.php:268
1314
+ msgid ""
1315
+ "Error 252: At least one zip file is missing from your backup set. Please "
1316
+ "make sure to upload all zip files that were part of this backup"
1317
+ msgstr ""
1318
+ "Erreur 252&nbsp;: Au moins un fichier zip est absent de votre jeu de "
1319
+ "sauvegarde. Veuillez vous assurer de mettre en ligne tous les fichiers zip "
1320
+ "faisant partie de cette sauvegarde."
1321
+
1322
+ #: views/restore.php:269
1323
+ msgid ""
1324
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1325
+ "Please make sure to upload only zip files that were part of this backup"
1326
+ msgstr ""
1327
+ "Erreur 253&nbsp;: Le jeu de sauvegarde contient un fichier zip qui n'est pas "
1328
+ "présent dans le manifeste. Veuillez vous assurez de faire de mettre en ligne "
1329
+ "uniquement les fichiers zip faisant partie de cette sauvegarde."
1330
+
1331
+ #: views/restore.php:271
1332
+ msgid ""
1333
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1334
+ "restore logs to see what WP BackItUp was unable to restore"
1335
+ msgstr ""
1336
+ "Avertissement 300&nbsp;: Impossible de restaurer tout le contenu WordPress. "
1337
+ "Veuillez consulter les journaux de restauration pour voir ce que WP BackItUp "
1338
+ "n'a pas été capable de restaurer."
1339
+
1340
+ #: views/restore.php:272
1341
+ msgid ""
1342
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1343
+ "to see what WP BackItUp was unable to restore"
1344
+ msgstr ""
1345
+ "Avertissement 305&nbsp;: Impossible de restaurer toutes les extensions. "
1346
+ "Veuillez consulter les journaux de restauration pour voir ce WP BackItUp n'a "
1347
+ "pas été capable de restaurer."
1348
+
1349
+ #: views/restore.php:274
1350
+ msgid "Error 2001: Unable to prepare site for restore"
1351
+ msgstr ""
1352
+ "Erreur 2001&nbsp;: Impossible de préparer le site pour la restauration."
1353
+
1354
+ #: views/restore.php:275
1355
+ msgid "Error 2002: Unable to unzip backup"
1356
+ msgstr "Erreur 2002&nbsp;: Impossible de décompresser la sauvegarde."
1357
+
1358
+ #: views/restore.php:276
1359
+ msgid "Error 2003: Unable to validate backup"
1360
+ msgstr "Erreur 2003&nbsp;: Impossible de valider la sauvegarde."
1361
+
1362
+ #: views/restore.php:277
1363
+ msgid "Error 2004: Unable to create restore point"
1364
+ msgstr "Erreur 2004&nbsp;: Impossible de créer le point de restauration."
1365
+
1366
+ #: views/restore.php:278
1367
+ msgid "Error 2005: Unable to stage wp-content"
1368
+ msgstr ""
1369
+
1370
+ #: views/restore.php:279
1371
+ msgid "Error 2006: Unable to restore content files"
1372
+ msgstr "Erreur 2006&nbsp;: Impossible de restaurer les fichiers de contenu."
1373
+
1374
+ #: views/restore.php:280
1375
+ msgid "Error 2007: Unable to restore database"
1376
+ msgstr "Erreur 2007&nbsp;: Impossible de restaurer la base de données."
1377
+
1378
+ #: views/restore.php:281
1379
+ msgid "Error 2999: Unexpected error encountered"
1380
+ msgstr "Erreur 2999&nbsp;: Une erreur inattendue s'est produite."
1381
+
1382
+ #: views/restore.php:288
1383
+ msgid ""
1384
+ "Restore completed successfully. If you are prompted to login please do so "
1385
+ "with your current username and password"
1386
+ msgstr ""
1387
+ "La restauration a bien été effectuée. Si le formulaire de connexion "
1388
+ "apparaît, veuillez vous connecter avec vos nom d'utilisateur et mot de passe "
1389
+ "actuels."
1390
+
1391
+ #: views/settings.php:16
1392
+ #, php-format
1393
+ msgid "%s Settings"
1394
+ msgstr "Réglages de %s"
1395
+
1396
+ #: views/settings.php:43
1397
+ msgid "Email Notifications"
1398
+ msgstr "Notifications par e-mail"
1399
+
1400
+ #: views/settings.php:44
1401
+ msgid ""
1402
+ "Please enter your email address if you would like to receive backup email "
1403
+ "notifications."
1404
+ msgstr ""
1405
+ "Veuillez saisir votre adresse de messagerie si vous souhaitez recevoir par e-"
1406
+ "mail les notifications de vos sauvegardes."
1407
+
1408
+ #: views/settings.php:45
1409
+ msgid ""
1410
+ "Backup email notifications will be sent for every backup and will contain "
1411
+ "status information related to the backup."
1412
+ msgstr ""
1413
+ "Les e-mails de notification de sauvegarde seront envoyés à chaque sauvegarde "
1414
+ "et contiendront des informations sur l'état de la sauvegarde."
1415
+
1416
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1417
+ #: views/settings.php:114
1418
+ msgid "Save"
1419
+ msgstr "Enregistrer"
1420
+
1421
+ #: views/settings.php:63
1422
+ msgid "Backup Retention"
1423
+ msgstr "Rétention de sauvegarde"
1424
+
1425
+ #: views/settings.php:64
1426
+ msgid ""
1427
+ "Enter the number of backup archives that you would like to remain on the "
1428
+ "server."
1429
+ msgstr ""
1430
+ "Saisissez le nombre d'archives de sauvegarde que vous souhaitez conserver "
1431
+ "sur le serveur."
1432
+
1433
+ #: views/settings.php:65
1434
+ msgid ""
1435
+ "Many hosts limit the amount of space that you can take up on their servers. "
1436
+ "This option tells WP BackItUp the maximum number of backup archives that "
1437
+ "should remain on your hosts server. Don't worry, we will always remove the "
1438
+ "oldest backup archives first."
1439
+ msgstr ""
1440
+ "De nombreux hébergeurs limitent la quantité d'espace que vous pouvez prendre "
1441
+ "sur leurs serveurs. Cette option indique à WP BackItUp le nombre maximal "
1442
+ "d'archives de sauvegarde qui doivent rester sur votre serveur d'hébergement. "
1443
+ "Ne vous inquiétez pas, nous supprimons toujours les anciennes archives de "
1444
+ "sauvegarde en premier."
1445
+
1446
+ #: views/settings.php:84
1447
+ msgid "Turn on logging?"
1448
+ msgstr "Activer la journalisation&nbsp;?"
1449
+
1450
+ #: views/settings.php:85
1451
+ msgid "Yes"
1452
+ msgstr "Oui"
1453
+
1454
+ #: views/settings.php:86
1455
+ msgid "No"
1456
+ msgstr "Non"
1457
+
1458
+ #: views/settings.php:87
1459
+ msgid ""
1460
+ "This option should only be turned on when troubleshooting issues with "
1461
+ "WPBackItUp support."
1462
+ msgstr ""
1463
+ "Cette option ne devrait être activée uniquement lors de la résolution des "
1464
+ "problèmes avec le suport WPBackItUp."
1465
+
1466
+ #: views/settings.php:92
1467
+ msgid "Advanced Settings"
1468
+ msgstr "Réglages avancés"
1469
+
1470
+ #: views/settings.php:93
1471
+ msgid ""
1472
+ "These options should only be changed when working with WP BackItUp support."
1473
+ msgstr ""
1474
+ "Ces options ne doivent être modifiées uniquement lorsqu'on travaille avec le "
1475
+ "suppport WP BackItUp."
1476
+
1477
+ #: views/settings.php:96
1478
+ msgid "Plugins Batch Size"
1479
+ msgstr "Taille du lot des extensions"
1480
+
1481
+ #: views/settings.php:101
1482
+ msgid "Themes Batch Size"
1483
+ msgstr "Taille du lot des thèmes"
1484
+
1485
+ #: views/settings.php:106
1486
+ msgid "Uploads Batch Size"
1487
+ msgstr "Taille du lot des pièces jointes"
1488
+
1489
+ #: views/settings.php:111
1490
+ msgid "Others Batch Size"
1491
+ msgstr "Taille des autres lots"
1492
+
1493
+ #: views/support.php:16
1494
+ #, php-format
1495
+ msgid "%s Support"
1496
+ msgstr "Support de %s"
1497
+
1498
+ #: views/support.php:35
1499
+ msgid "Support email sent successfully!"
1500
+ msgstr "Votre e-mail au support a bien été envoyé !"
1501
+
1502
+ #: views/support.php:48
1503
+ msgid "Email Logs to Support"
1504
+ msgstr "Envoyer au support vos fichiers de logs"
1505
+
1506
+ #: views/support.php:49
1507
+ msgid "This form should be used to send log files to support only."
1508
+ msgstr ""
1509
+ "Ce formulaire doit être utilisé uniquement pour envoyer des fichiers de log "
1510
+ "au support."
1511
+
1512
+ #: views/support.php:50
1513
+ msgid ""
1514
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1515
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1516
+ "using this form."
1517
+ msgstr ""
1518
+ "Veuillez vous assurer d'avoir ouvert un ticket de support via WP BackItUp "
1519
+ "sur le <a href=\"https://www.wpbackitup.com/support\" target=\"_blank"
1520
+ "\">portail de support </a> avant d'utiliser ce formulaire."
1521
+
1522
+ #: views/support.php:51
1523
+ msgid ""
1524
+ "The ticket id you receive from your support request should be entered in the "
1525
+ "ticket id field below."
1526
+ msgstr ""
1527
+ "L'ID du ticket que vous avez reçu du support doit être saisi dans le champ "
1528
+ "ID du ticket ci-dessous."
1529
+
1530
+ #: views/support.php:52
1531
+ msgid "your email address"
1532
+ msgstr "votre adresse e-mail"
1533
+
1534
+ #: views/support.php:62
1535
+ msgid "support ticket id"
1536
+ msgstr "ID du ticket de support"
1537
+
1538
+ #: views/support.php:72
1539
+ msgid "problem description or additional information"
1540
+ msgstr "description du problème ou informations supplémentaires"
1541
+
1542
+ #: views/support.php:83
1543
+ msgid "Send"
1544
+ msgstr "Envoyer"
1545
+
1546
+ #: views/support.php:86
1547
+ msgid "Please register your version of WP BackItUp for access to support."
1548
+ msgstr ""
1549
+ "Veuillez enregistrer votre version de WP BackItUp afin de bénéficier du "
1550
+ "support."
1551
+
1552
+ #: views/support.php:90
1553
+ msgid "Premium customers receive priority support."
1554
+ msgstr "Les clients Premium bénéficient d'un support prioritaire."
1555
+
1556
+ #: wp-backitup.php:97 wp-backitup.php:98
1557
+ #, php-format
1558
+ msgid "Every %s hours"
1559
+ msgstr "Toutes les %s heures"
languages/wp-backitup-ru_RU.mo ADDED
Binary file
languages/wp-backitup-ru_RU.po ADDED
@@ -0,0 +1,1338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ # Almaz Mannanov <AlmazWorks@gmail.com>, 2015
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: WP BackItUp\n"
7
+ "POT-Creation-Date: 2015-08-14 10:30-0400\n"
8
+ "PO-Revision-Date: 2015-08-14 10:30-0400\n"
9
+ "Last-Translator: Chris Simmons <chris.simmons01@gmail.com>\n"
10
+ "Language-Team: Russian (Russia) (http://www.transifex.com/wp-translations/wp-"
11
+ "backitup/language/ru_RU/)\n"
12
+ "Language: ru_RU\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
17
+ "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
18
+ "%100>=11 && n%100<=14)? 2 : 3);\n"
19
+ "X-Generator: Poedit 1.8.4\n"
20
+ "X-Poedit-Basepath: ..\n"
21
+ "X-Poedit-KeywordsList: _;__;_e\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+
24
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
25
+ #: views/backup.php:179
26
+ msgid "Backup"
27
+ msgstr "Резервная копия"
28
+
29
+ #: lib/includes/class-wpbackitup-admin.php:175
30
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
31
+ msgid "Restore"
32
+ msgstr "Восстановить"
33
+
34
+ #: lib/includes/class-wpbackitup-admin.php:179
35
+ msgid "Support"
36
+ msgstr "Поддержка"
37
+
38
+ #: lib/includes/class-wpbackitup-admin.php:182
39
+ msgid "Settings"
40
+ msgstr "Настройки"
41
+
42
+ #: lib/includes/class-wpbackitup-admin.php:203
43
+ msgid ""
44
+ "The backup you have selected exceeds what your host allows you to upload."
45
+ msgstr ""
46
+ "Резервная копия, которую вы указали, больше чем позволяет ваш сервер для "
47
+ "загрузки."
48
+
49
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
50
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
51
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
52
+ #: views/backup.php:312 views/backup.php:313
53
+ msgid "Warning"
54
+ msgstr "Внимание"
55
+
56
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
57
+ msgid "Error"
58
+ msgstr "Ошибка"
59
+
60
+ #: lib/includes/class-wpbackitup-admin.php:206
61
+ msgid "Response"
62
+ msgstr "Ответ"
63
+
64
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
65
+ #: views/restore.php:205
66
+ msgid "Status"
67
+ msgstr "Статус"
68
+
69
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
70
+ msgid "Download"
71
+ msgstr "Скачать"
72
+
73
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
74
+ #: views/restore.php:111
75
+ msgid "Delete"
76
+ msgstr "Удалить"
77
+
78
+ #: lib/includes/class-wpbackitup-admin.php:211
79
+ msgid "(JS997) Unexpected error"
80
+ msgstr "(JS997) Непредвиденная ошибка"
81
+
82
+ #: lib/includes/class-wpbackitup-admin.php:212
83
+ msgid "(JS998) Unexpected error"
84
+ msgstr "(JS998) Непредвиденная ошибка"
85
+
86
+ #: lib/includes/class-wpbackitup-admin.php:213
87
+ msgid "(JS999) An unexpected error has occurred"
88
+ msgstr "(JS999) Произошла непредвиденная ошибка"
89
+
90
+ #: lib/includes/class-wpbackitup-admin.php:214
91
+ msgid "Scheduled has been saved."
92
+ msgstr ""
93
+
94
+ #: lib/includes/class-wpbackitup-admin.php:215
95
+ msgid "Scheduled was not saved."
96
+ msgstr ""
97
+
98
+ #: lib/includes/class-wpbackitup-admin.php:216
99
+ msgid "Are you sure you want to restore your site?"
100
+ msgstr ""
101
+
102
+ #: lib/includes/class-wpbackitup-admin.php:217
103
+ msgid "Are you sure ?"
104
+ msgstr "Вы уверены?"
105
+
106
+ #: lib/includes/class-wpbackitup-admin.php:218
107
+ msgid "This file cannot be delete!"
108
+ msgstr ""
109
+
110
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
111
+ msgid "View Log"
112
+ msgstr ""
113
+
114
+ #: lib/includes/class-wpbackitup-admin.php:220
115
+ msgid "New Backup!"
116
+ msgstr ""
117
+
118
+ #: lib/includes/class-wpbackitup-admin.php:221
119
+ msgid "Uploaded Backup"
120
+ msgstr ""
121
+
122
+ #: lib/includes/class-wpbackitup-admin.php:480
123
+ msgid "Backup Queued"
124
+ msgstr ""
125
+
126
+ #: lib/includes/class-wpbackitup-admin.php:482
127
+ msgid "Backup could not be queued"
128
+ msgstr ""
129
+
130
+ #: lib/includes/class-wpbackitup-admin.php:485
131
+ msgid "Backup already in queue"
132
+ msgstr ""
133
+
134
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
135
+ msgid "Backup Cancelled"
136
+ msgstr ""
137
+
138
+ #: lib/includes/class-wpbackitup-admin.php:535
139
+ msgid "No backup file selected."
140
+ msgstr ""
141
+
142
+ #: lib/includes/class-wpbackitup-admin.php:542
143
+ msgid "No user id found."
144
+ msgstr ""
145
+
146
+ #: lib/includes/class-wpbackitup-admin.php:553
147
+ msgid "Restore Queued"
148
+ msgstr ""
149
+
150
+ #: lib/includes/class-wpbackitup-admin.php:555
151
+ msgid "Restore could not be queued"
152
+ msgstr ""
153
+
154
+ #: lib/includes/class-wpbackitup-admin.php:558
155
+ msgid "Restore already in queue"
156
+ msgstr ""
157
+
158
+ #: lib/includes/class-wpbackitup-admin.php:743
159
+ msgid "No response log found."
160
+ msgstr ""
161
+
162
+ #: lib/includes/class-wpbackitup-admin.php:836
163
+ #: lib/includes/class-wpbackitup-admin.php:844
164
+ #: lib/includes/class-wpbackitup-admin.php:873
165
+ #: lib/includes/class-wpbackitup-admin.php:880
166
+ #: lib/includes/class-wpbackitup-admin.php:887
167
+ #: lib/includes/class-wpbackitup-admin.php:894
168
+ msgid "Please enter a number"
169
+ msgstr ""
170
+
171
+ #: lib/includes/class-wpbackitup-admin.php:865
172
+ #: lib/includes/class-wpbackitup-admin.php:972
173
+ msgid "Please enter a valid email"
174
+ msgstr ""
175
+
176
+ #: lib/includes/class-wpbackitup-admin.php:979
177
+ msgid "Please enter your support ticket id"
178
+ msgstr ""
179
+
180
+ #: lib/includes/class-wpbackitup-admin.php:984
181
+ msgid "Please only enter numbers in this field"
182
+ msgstr ""
183
+
184
+ #: lib/includes/class-wpbackitup-admin.php:1645
185
+ msgid "License is invalid."
186
+ msgstr ""
187
+
188
+ #: lib/includes/class-wpbackitup-admin.php:1650
189
+ msgid "License has expired."
190
+ msgstr ""
191
+
192
+ #: lib/includes/class-wpbackitup-admin.php:1655
193
+ msgid "Activation limit has been reached."
194
+ msgstr ""
195
+
196
+ #: lib/includes/handler_upload.php:29
197
+ msgid "Invalid Nonce"
198
+ msgstr ""
199
+
200
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
201
+ msgid "Upload directory is not writable, or does not exist."
202
+ msgstr ""
203
+
204
+ #: lib/includes/handler_upload.php:80
205
+ #, php-format
206
+ msgid "Error: %s"
207
+ msgstr ""
208
+
209
+ #: lib/includes/handler_upload.php:80
210
+ msgid "File could not be uploaded"
211
+ msgstr ""
212
+
213
+ #: lib/includes/handler_upload.php:141
214
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
215
+ msgstr ""
216
+
217
+ #: lib/includes/handler_upload.php:161
218
+ msgid "Could not import file into WP BackItUp backup set."
219
+ msgstr ""
220
+
221
+ #: lib/includes/job_backup.php:851
222
+ msgid "Preparing for backup...Done"
223
+ msgstr ""
224
+
225
+ #: lib/includes/job_backup.php:852
226
+ msgid "Backing up database...Done"
227
+ msgstr ""
228
+
229
+ #: lib/includes/job_backup.php:853
230
+ msgid "Creating backup information file...Done"
231
+ msgstr ""
232
+
233
+ #: lib/includes/job_backup.php:854
234
+ msgid "Backing up themes...Done"
235
+ msgstr ""
236
+
237
+ #: lib/includes/job_backup.php:855
238
+ msgid "Backing up plugins...Done"
239
+ msgstr ""
240
+
241
+ #: lib/includes/job_backup.php:856
242
+ msgid "Backing up uploads...Done"
243
+ msgstr ""
244
+
245
+ #: lib/includes/job_backup.php:857
246
+ msgid "Backing up miscellaneous files...Done"
247
+ msgstr ""
248
+
249
+ #: lib/includes/job_backup.php:858
250
+ msgid "Finalizing backup...Done"
251
+ msgstr ""
252
+
253
+ #: lib/includes/job_backup.php:859
254
+ msgid "Validating backup...Done"
255
+ msgstr ""
256
+
257
+ #: lib/includes/job_backup.php:860
258
+ msgid "Cleaning up...Done"
259
+ msgstr ""
260
+
261
+ #: lib/includes/job_backup.php:870
262
+ #, php-format
263
+ msgid "%s - Backup completed successfully."
264
+ msgstr ""
265
+
266
+ #: lib/includes/job_backup.php:871
267
+ msgid "Your backup completed successfully."
268
+ msgstr ""
269
+
270
+ #: lib/includes/job_backup.php:874
271
+ #, php-format
272
+ msgid "%s - Backup did not complete successfully."
273
+ msgstr ""
274
+
275
+ #: lib/includes/job_backup.php:875
276
+ msgid "Your backup did not complete successfully."
277
+ msgstr ""
278
+
279
+ #: lib/includes/job_backup.php:880
280
+ #, php-format
281
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
282
+ msgstr ""
283
+
284
+ #: lib/includes/job_backup.php:881
285
+ msgid "Backup date:"
286
+ msgstr ""
287
+
288
+ #: lib/includes/job_backup.php:882
289
+ msgid "Number of backups completed with WP BackItUp:"
290
+ msgstr ""
291
+
292
+ #: lib/includes/job_backup.php:884
293
+ msgid "Completion Code:"
294
+ msgstr ""
295
+
296
+ #: lib/includes/job_backup.php:885
297
+ msgid "WP BackItUp Version:"
298
+ msgstr ""
299
+
300
+ #: lib/includes/job_backup.php:891
301
+ msgid "Steps Completed"
302
+ msgstr ""
303
+
304
+ #: lib/includes/job_backup.php:912
305
+ #, php-format
306
+ msgid "Checkout %s for info about WP BackItUp and our other products."
307
+ msgstr ""
308
+
309
+ #: lib/includes/job_backup.php:1088
310
+ msgid ""
311
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
312
+ "settings of your wp-backitup backup directory"
313
+ msgstr ""
314
+
315
+ #: lib/includes/job_backup.php:1089
316
+ msgid ""
317
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
318
+ "your wp-backitup plugin directory"
319
+ msgstr ""
320
+
321
+ #: lib/includes/job_backup.php:1090
322
+ msgid "(103) Unable to backup your files. Please try again"
323
+ msgstr ""
324
+
325
+ #: lib/includes/job_backup.php:1091
326
+ msgid "(104) Unable to export your database. Please try again"
327
+ msgstr ""
328
+
329
+ #: lib/includes/job_backup.php:1092
330
+ msgid "(105) Unable to export site information file. Please try again"
331
+ msgstr ""
332
+
333
+ #: lib/includes/job_backup.php:1093
334
+ msgid "(106) Unable to cleanup your backup directory"
335
+ msgstr ""
336
+
337
+ #: lib/includes/job_backup.php:1094
338
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
339
+ msgstr ""
340
+
341
+ #: lib/includes/job_backup.php:1095
342
+ msgid "(108) Unable to backup your site data files. Please try again"
343
+ msgstr ""
344
+
345
+ #: lib/includes/job_backup.php:1096
346
+ msgid "(109) Unable to finalize backup. Please try again"
347
+ msgstr ""
348
+
349
+ #: lib/includes/job_backup.php:1097
350
+ msgid ""
351
+ "(114) Your database was accessible but an export could not be created. "
352
+ "Please contact support by clicking the get support link on the right. Please "
353
+ "let us know who your host is when you submit the request"
354
+ msgstr ""
355
+
356
+ #: lib/includes/job_backup.php:1098
357
+ msgid "(120) Unable to backup your themes. Please try again"
358
+ msgstr ""
359
+
360
+ #: lib/includes/job_backup.php:1099
361
+ msgid "(121) Unable to backup your plugins. Please try again"
362
+ msgstr ""
363
+
364
+ #: lib/includes/job_backup.php:1100
365
+ msgid "(122) Unable to backup your uploads. Please try again"
366
+ msgstr ""
367
+
368
+ #: lib/includes/job_backup.php:1101
369
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
370
+ msgstr ""
371
+
372
+ #: lib/includes/job_backup.php:1102
373
+ msgid ""
374
+ "(125) Unable to compress your backup because there is no zip utility "
375
+ "available. Please contact support"
376
+ msgstr ""
377
+
378
+ #: lib/includes/job_backup.php:1103
379
+ msgid "(126) Unable to validate your backup. Please try again"
380
+ msgstr ""
381
+
382
+ #: lib/includes/job_backup.php:1104
383
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
384
+ msgstr ""
385
+
386
+ #: lib/includes/job_backup.php:1105
387
+ msgid "(128) Unable to create job control record. Please try again"
388
+ msgstr ""
389
+
390
+ #: lib/includes/job_backup.php:1107
391
+ msgid ""
392
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
393
+ "settings of your wp-backitup backup directory"
394
+ msgstr ""
395
+
396
+ #: lib/includes/job_backup.php:1108
397
+ msgid ""
398
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
399
+ "your wp-backitup plugin directory"
400
+ msgstr ""
401
+
402
+ #: lib/includes/job_backup.php:1109
403
+ msgid "(2103) Unable to backup your files. Please try again"
404
+ msgstr ""
405
+
406
+ #: lib/includes/job_backup.php:1110
407
+ msgid "(2104) Unable to export your database. Please try again"
408
+ msgstr ""
409
+
410
+ #: lib/includes/job_backup.php:1111
411
+ msgid "(2105) Unable to export site information file. Please try again"
412
+ msgstr ""
413
+
414
+ #: lib/includes/job_backup.php:1112
415
+ msgid "(2106) Unable to cleanup your backup directory"
416
+ msgstr ""
417
+
418
+ #: lib/includes/job_backup.php:1113
419
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
420
+ msgstr ""
421
+
422
+ #: lib/includes/job_backup.php:1114
423
+ msgid "(2108) Unable to backup your site data files. Please try again"
424
+ msgstr ""
425
+
426
+ #: lib/includes/job_backup.php:1115
427
+ msgid "(2109) Unable to finalize backup. Please try again"
428
+ msgstr ""
429
+
430
+ #: lib/includes/job_backup.php:1116
431
+ msgid ""
432
+ "(2114) Your database was accessible but an export could not be created. "
433
+ "Please contact support by clicking the get support link on the right. Please "
434
+ "let us know who your host is when you submit the request"
435
+ msgstr ""
436
+
437
+ #: lib/includes/job_backup.php:1117
438
+ msgid "(2120) Unable to backup your themes. Please try again"
439
+ msgstr ""
440
+
441
+ #: lib/includes/job_backup.php:1118
442
+ msgid "(2121) Unable to backup your plugins. Please try again"
443
+ msgstr ""
444
+
445
+ #: lib/includes/job_backup.php:1119
446
+ msgid "(2122) Unable to backup your uploads. Please try again"
447
+ msgstr ""
448
+
449
+ #: lib/includes/job_backup.php:1120
450
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
451
+ msgstr ""
452
+
453
+ #: lib/includes/job_backup.php:1121
454
+ msgid ""
455
+ "(2125) Unable to compress your backup because there is no zip utility "
456
+ "available. Please contact support"
457
+ msgstr ""
458
+
459
+ #: lib/includes/job_backup.php:1122
460
+ msgid "(2126) Unable to validate your backup. Please try again"
461
+ msgstr ""
462
+
463
+ #: lib/includes/job_backup.php:1123
464
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
465
+ msgstr ""
466
+
467
+ #: lib/includes/job_backup.php:1124
468
+ msgid "(2128) Unable to create job control record. Please try again"
469
+ msgstr ""
470
+
471
+ #: lib/includes/job_backup.php:1127
472
+ msgid "(999) Unexpected error"
473
+ msgstr ""
474
+
475
+ #. TRANSLATORS: %s = plugin name.
476
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
477
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
478
+ #: views/backup.php:20
479
+ #, php-format
480
+ msgid "%s Dashboard"
481
+ msgstr ""
482
+
483
+ #: views/backup.php:150
484
+ #, php-format
485
+ msgid "Backup folder does not exist. Please contact %s for assistance."
486
+ msgstr ""
487
+
488
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
489
+ msgid "support"
490
+ msgstr ""
491
+
492
+ #: views/backup.php:153 views/backup.php:159
493
+ msgid "Close"
494
+ msgstr ""
495
+
496
+ #: views/backup.php:174
497
+ msgid ""
498
+ "Click the backup button to create a zipped backup file of this site's "
499
+ "database, plugins, themes and settings."
500
+ msgstr ""
501
+
502
+ #: views/backup.php:175
503
+ msgid ""
504
+ "Once your backup file has been created it will appear in the available "
505
+ "backups section below. This file may remain on your hosting providers server "
506
+ "but we recommend that you download and save it somewhere safe."
507
+ msgstr ""
508
+
509
+ #: views/backup.php:176
510
+ msgid ""
511
+ "WP BackItUp premium customers can use these backup files to perform an "
512
+ "automated restore of their site."
513
+ msgstr ""
514
+
515
+ #: views/backup.php:180
516
+ msgid "Cancel"
517
+ msgstr ""
518
+
519
+ #: views/backup.php:187
520
+ #, php-format
521
+ msgid ""
522
+ "WP BackItUp lite customers may use these backup files to manually restore "
523
+ "their site. Please visit %s for manual restore instructions."
524
+ msgstr ""
525
+
526
+ #: views/backup.php:194
527
+ msgid "Backup Schedule"
528
+ msgstr ""
529
+
530
+ #: views/backup.php:196
531
+ msgid "Select the days of the week you would like your backup to run."
532
+ msgstr ""
533
+
534
+ #: views/backup.php:198
535
+ msgid ""
536
+ "Backup your site once per week or every day, it's up to you. If you have "
537
+ "email notifications turned on we'll even send you an email when it's done. "
538
+ "Once your backup file has been created it will appear in the available "
539
+ "backups section below. This file may remain on your hosting providers server "
540
+ "but we recommend that you download and save it somewhere safe."
541
+ msgstr ""
542
+
543
+ #: views/backup.php:200
544
+ msgid "Please make sure to schedule your backup for at least once per week."
545
+ msgstr ""
546
+
547
+ #: views/backup.php:204
548
+ msgid "Monday"
549
+ msgstr ""
550
+
551
+ #: views/backup.php:205
552
+ msgid "Tuesday"
553
+ msgstr ""
554
+
555
+ #: views/backup.php:206
556
+ msgid "Wednesday"
557
+ msgstr ""
558
+
559
+ #: views/backup.php:207
560
+ msgid "Thursday"
561
+ msgstr ""
562
+
563
+ #: views/backup.php:208
564
+ msgid "Friday"
565
+ msgstr ""
566
+
567
+ #: views/backup.php:209
568
+ msgid "Saturday"
569
+ msgstr ""
570
+
571
+ #: views/backup.php:210
572
+ msgid "Sunday"
573
+ msgstr ""
574
+
575
+ #: views/backup.php:213
576
+ msgid "Save Schedule"
577
+ msgstr ""
578
+
579
+ #: views/backup.php:218
580
+ #, php-format
581
+ msgid ""
582
+ "Scheduled backups are only available to WP BackItUp premium customers. "
583
+ "Please visit %s to get WP BackItUp risk free for 30 days."
584
+ msgstr ""
585
+
586
+ #: views/backup.php:225 views/restore.php:94
587
+ msgid "Available Backups"
588
+ msgstr ""
589
+
590
+ #: views/backup.php:283 views/restore.php:125
591
+ msgid "No backup archives found."
592
+ msgstr ""
593
+
594
+ #: views/backup.php:291
595
+ #, php-format
596
+ msgid ""
597
+ "The automated restore feature is only available to WP BackItUp premium "
598
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
599
+ msgstr ""
600
+
601
+ #: views/backup.php:300 views/restore.php:209
602
+ msgid "Nothing to report"
603
+ msgstr ""
604
+
605
+ #: views/backup.php:305
606
+ msgid "Preparing for backup"
607
+ msgstr ""
608
+
609
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
610
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
611
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
612
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
613
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
614
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
615
+ #: views/restore.php:228 views/restore.php:230
616
+ msgid "Done"
617
+ msgstr ""
618
+
619
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
620
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
621
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
622
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
623
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
624
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
625
+ #: views/restore.php:228 views/restore.php:230
626
+ msgid "Failed"
627
+ msgstr ""
628
+
629
+ #: views/backup.php:306
630
+ msgid "Backing up database"
631
+ msgstr ""
632
+
633
+ #: views/backup.php:307
634
+ msgid "Creating backup information file"
635
+ msgstr ""
636
+
637
+ #: views/backup.php:308
638
+ msgid "Backing up themes"
639
+ msgstr ""
640
+
641
+ #: views/backup.php:309
642
+ msgid "Backing up plugins"
643
+ msgstr ""
644
+
645
+ #: views/backup.php:310
646
+ msgid "Backing up uploads"
647
+ msgstr ""
648
+
649
+ #: views/backup.php:311
650
+ msgid "Backing up everything else"
651
+ msgstr ""
652
+
653
+ #: views/backup.php:312
654
+ msgid "Validating backup"
655
+ msgstr ""
656
+
657
+ #: views/backup.php:313
658
+ msgid "Finalizing backup"
659
+ msgstr ""
660
+
661
+ #: views/backup.php:323
662
+ msgid "Backup completed successfully"
663
+ msgstr ""
664
+
665
+ #: views/backup.php:344
666
+ msgid "Backups"
667
+ msgstr ""
668
+
669
+ #: views/backup.php:344
670
+ msgid "Version "
671
+ msgstr ""
672
+
673
+ #: views/backup.php:346
674
+ msgid "Welcome to WP BackItUp!"
675
+ msgstr ""
676
+
677
+ #: views/backup.php:346
678
+ msgid "The simplest way to backup your WordPress site."
679
+ msgstr ""
680
+
681
+ #: views/backup.php:347
682
+ msgid ""
683
+ "Getting started is easy, just click the backup button on the left side of "
684
+ "this page."
685
+ msgstr ""
686
+
687
+ #: views/backup.php:351
688
+ #, php-format
689
+ msgid ""
690
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
691
+ "medium;color: green\">%s</span> successful backups."
692
+ msgstr ""
693
+
694
+ #: views/backup.php:352
695
+ msgid "Tips"
696
+ msgstr ""
697
+
698
+ #: views/backup.php:353
699
+ msgid "Backup your site at least once per week"
700
+ msgstr ""
701
+
702
+ #: views/backup.php:354
703
+ msgid "Download all your backups and store them somewhere safe"
704
+ msgstr ""
705
+
706
+ #: views/backup.php:355
707
+ msgid "Verify your backup files are good by taking a look at what's inside"
708
+ msgstr ""
709
+
710
+ #: views/backup.php:360
711
+ #, php-format
712
+ msgid "Why not %s and schedule your backups!"
713
+ msgstr ""
714
+
715
+ #: views/backup.php:360
716
+ msgid "upgrade"
717
+ msgstr ""
718
+
719
+ #: views/backup.php:369
720
+ msgid "Register WP BackItUp"
721
+ msgstr ""
722
+
723
+ #: views/backup.php:372
724
+ msgid ""
725
+ "Enter your name and email address below to receive <b>special offers</b> and "
726
+ "access to our world class <b>support</b> team. <br />\n"
727
+ " <br />Enter your license key below to activate it on this "
728
+ "site."
729
+ msgstr ""
730
+
731
+ #: views/backup.php:374
732
+ msgid "name"
733
+ msgstr ""
734
+
735
+ #: views/backup.php:375
736
+ msgid "email address"
737
+ msgstr ""
738
+
739
+ #: views/backup.php:376
740
+ msgid "license key"
741
+ msgstr ""
742
+
743
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
744
+ #, php-format
745
+ msgid "%s"
746
+ msgstr ""
747
+
748
+ #: views/backup.php:377
749
+ msgid "Free plugin customers do not need to enter license key."
750
+ msgstr ""
751
+
752
+ #: views/backup.php:378
753
+ msgid "Register"
754
+ msgstr ""
755
+
756
+ #: views/backup.php:387
757
+ msgid "License Info"
758
+ msgstr ""
759
+
760
+ #: views/backup.php:409
761
+ msgid "Name"
762
+ msgstr ""
763
+
764
+ #: views/backup.php:410
765
+ msgid "Email"
766
+ msgstr ""
767
+
768
+ #: views/backup.php:411
769
+ msgid "License Type"
770
+ msgstr ""
771
+
772
+ #: views/backup.php:412
773
+ msgid "Expires"
774
+ msgstr ""
775
+
776
+ #: views/backup.php:415
777
+ msgid "Enter license key to activate on this site."
778
+ msgstr ""
779
+
780
+ #: views/backup.php:422
781
+ msgid "License Active"
782
+ msgstr ""
783
+
784
+ #: views/backup.php:430
785
+ msgid "License expired"
786
+ msgstr ""
787
+
788
+ #: views/backup.php:434
789
+ msgid "Update"
790
+ msgstr ""
791
+
792
+ #: views/backup.php:438
793
+ msgid "Activate"
794
+ msgstr ""
795
+
796
+ #: views/backup.php:442
797
+ #, php-format
798
+ msgid "Purchase a %s license using the purchase link above."
799
+ msgstr ""
800
+
801
+ #: views/backup.php:442
802
+ msgid "no-risk"
803
+ msgstr ""
804
+
805
+ #: views/backup.php:448
806
+ #, php-format
807
+ msgid ""
808
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
809
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
810
+ msgstr ""
811
+
812
+ #: views/backup.php:459
813
+ msgid "Useful Links"
814
+ msgstr ""
815
+
816
+ #: views/backup.php:462 views/backup.php:466
817
+ msgid "Your account"
818
+ msgstr ""
819
+
820
+ #: views/backup.php:469
821
+ msgid "Documentation"
822
+ msgstr ""
823
+
824
+ #: views/backup.php:472
825
+ msgid "Get support"
826
+ msgstr ""
827
+
828
+ #: views/backup.php:475
829
+ msgid "Feature request"
830
+ msgstr ""
831
+
832
+ #: views/backup.php:477
833
+ msgid "Contact"
834
+ msgstr ""
835
+
836
+ #: views/backup.php:497 views/backup.php:518
837
+ msgid "WP BackItUp Backup Set"
838
+ msgstr ""
839
+
840
+ #: views/backup.php:499
841
+ msgid ""
842
+ "Below are the archive files included in this backup set. Click the link to "
843
+ "download."
844
+ msgstr ""
845
+
846
+ #: views/backup.php:519
847
+ msgid "Please refresh this page to download your new backup files."
848
+ msgstr ""
849
+
850
+ #: views/restore.php:16
851
+ #, php-format
852
+ msgid "%s Restore"
853
+ msgstr ""
854
+
855
+ #: views/restore.php:59
856
+ msgid "Zip Files"
857
+ msgstr ""
858
+
859
+ #: views/restore.php:74
860
+ #, php-format
861
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
862
+ msgstr ""
863
+
864
+ #: views/restore.php:81
865
+ #, php-format
866
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
867
+ msgstr ""
868
+
869
+ #: views/restore.php:141
870
+ #, php-format
871
+ msgid ""
872
+ "<p>* The automated restore feature is only available to licensed customers. "
873
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
874
+ "BackItUp risk free for 30 days.</p>"
875
+ msgstr ""
876
+
877
+ #: views/restore.php:153
878
+ msgid "Upload"
879
+ msgstr ""
880
+
881
+ #: views/restore.php:156
882
+ msgid ""
883
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
884
+ "backups."
885
+ msgstr ""
886
+
887
+ #: views/restore.php:173
888
+ msgid "WP BackItUp - Upload backup files"
889
+ msgstr ""
890
+
891
+ #: views/restore.php:174
892
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
893
+ msgstr ""
894
+
895
+ #: views/restore.php:174
896
+ msgid ""
897
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
898
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
899
+ "refresh this page."
900
+ msgstr ""
901
+
902
+ #: views/restore.php:178
903
+ #, php-format
904
+ msgid "This feature requires %s version %s or later"
905
+ msgstr ""
906
+
907
+ #: views/restore.php:184
908
+ msgid "Drop backup files here"
909
+ msgstr ""
910
+
911
+ #: views/restore.php:190
912
+ msgid ""
913
+ "* Reload this page when done uploading to see new backups appear in the "
914
+ "Available Backups section above. "
915
+ msgstr ""
916
+
917
+ #: views/restore.php:219
918
+ msgid "Preparing for restore"
919
+ msgstr ""
920
+
921
+ #: views/restore.php:220
922
+ msgid "Unzipping backup set"
923
+ msgstr ""
924
+
925
+ #: views/restore.php:221
926
+ msgid "Validating backup file"
927
+ msgstr ""
928
+
929
+ #: views/restore.php:222
930
+ msgid "Deactivating plugins"
931
+ msgstr ""
932
+
933
+ #: views/restore.php:223
934
+ msgid "Creating database restore point"
935
+ msgstr ""
936
+
937
+ #: views/restore.php:224
938
+ msgid "Staging content files"
939
+ msgstr ""
940
+
941
+ #: views/restore.php:225
942
+ msgid "Restoring content files"
943
+ msgstr ""
944
+
945
+ #: views/restore.php:226
946
+ msgid "Restoring database"
947
+ msgstr ""
948
+
949
+ #: views/restore.php:227
950
+ msgid "Updating current user info"
951
+ msgstr ""
952
+
953
+ #: views/restore.php:228
954
+ msgid "Updating site URL"
955
+ msgstr ""
956
+
957
+ #: views/restore.php:230
958
+ msgid "Updating permalinks"
959
+ msgstr ""
960
+
961
+ #: views/restore.php:236
962
+ msgid "Error 201: No file selected"
963
+ msgstr ""
964
+
965
+ #: views/restore.php:237
966
+ msgid "Error 202: Your file could not be uploaded"
967
+ msgstr ""
968
+
969
+ #: views/restore.php:238
970
+ msgid "Error 203: Your backup could not be unzipped"
971
+ msgstr ""
972
+
973
+ #: views/restore.php:239
974
+ msgid ""
975
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
976
+ "valid backup"
977
+ msgstr ""
978
+
979
+ #: views/restore.php:240
980
+ msgid "Error 205: Cannot create restore point"
981
+ msgstr ""
982
+
983
+ #: views/restore.php:241
984
+ msgid "Error 206: Unable to connect to your database"
985
+ msgstr ""
986
+
987
+ #: views/restore.php:242
988
+ msgid ""
989
+ "Error 207: Unable to get current site URL from database. Please try again"
990
+ msgstr ""
991
+
992
+ #: views/restore.php:243
993
+ msgid ""
994
+ "Error 208: Unable to get current home URL from database. Please try again"
995
+ msgstr ""
996
+
997
+ #: views/restore.php:244
998
+ msgid ""
999
+ "Error 209: Unable to get current user ID from database. Please try again"
1000
+ msgstr ""
1001
+
1002
+ #: views/restore.php:245
1003
+ msgid ""
1004
+ "Error 210: Unable to get current user password from database. Please try "
1005
+ "again"
1006
+ msgstr ""
1007
+
1008
+ #: views/restore.php:246
1009
+ msgid ""
1010
+ "Error 211: Unable to get current user email from database. Please try again"
1011
+ msgstr ""
1012
+
1013
+ #: views/restore.php:247
1014
+ msgid ""
1015
+ "Error 212: Unable to import your database. This may require importing the "
1016
+ "file manually"
1017
+ msgstr ""
1018
+
1019
+ #: views/restore.php:248
1020
+ msgid ""
1021
+ "Warning 213: Unable to update your site URL value. Please check your "
1022
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1023
+ "correct"
1024
+ msgstr ""
1025
+
1026
+ #: views/restore.php:249
1027
+ msgid ""
1028
+ "Warning 214: Unable to update your home URL value. Please check your "
1029
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1030
+ "correct"
1031
+ msgstr ""
1032
+
1033
+ #: views/restore.php:250
1034
+ msgid ""
1035
+ "Warning 215: Unable to update your user information. This may require you to "
1036
+ "login with the admin username and password that was used when the backup was "
1037
+ "created"
1038
+ msgstr ""
1039
+
1040
+ #: views/restore.php:251
1041
+ msgid "Error 216: Database not found in backup"
1042
+ msgstr ""
1043
+
1044
+ #: views/restore.php:252
1045
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1046
+ msgstr ""
1047
+
1048
+ #: views/restore.php:253
1049
+ msgid ""
1050
+ "Error 218: Unable to create new wp-content directory. Please check your "
1051
+ "CHMOD settings in /wp-content/"
1052
+ msgstr ""
1053
+
1054
+ #: views/restore.php:254
1055
+ msgid "Error 219: Unable to import wp-content. Please try again"
1056
+ msgstr ""
1057
+
1058
+ #: views/restore.php:255
1059
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1060
+ msgstr ""
1061
+
1062
+ #: views/restore.php:256
1063
+ #, php-format
1064
+ msgid ""
1065
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1066
+ "This MUST be changed in your wp-config.php file before you will be able to "
1067
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1068
+ "> FAQs</a> for more info."
1069
+ msgstr ""
1070
+
1071
+ #: views/restore.php:257
1072
+ msgid "Error 222: Unable to create restore folder"
1073
+ msgstr ""
1074
+
1075
+ #: views/restore.php:258
1076
+ msgid ""
1077
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1078
+ "restore the database to its previous state but were unsuccessful. Please "
1079
+ "contact WP BackItUp customer support and do not attempt to perform any "
1080
+ "further restores"
1081
+ msgstr ""
1082
+
1083
+ #: views/restore.php:259
1084
+ msgid ""
1085
+ "Error 224: An error occurred during the restore, however, we have "
1086
+ "successfully restored your database to the previous state"
1087
+ msgstr ""
1088
+
1089
+ #: views/restore.php:260
1090
+ msgid ""
1091
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1092
+ msgstr ""
1093
+
1094
+ #: views/restore.php:261
1095
+ msgid ""
1096
+ "Error 226: Restore cannot proceed because your backup was created using a "
1097
+ "different version of WordPress"
1098
+ msgstr ""
1099
+
1100
+ #: views/restore.php:262
1101
+ msgid ""
1102
+ "Error 227: Restore cannot proceed because your backup was created using a "
1103
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1104
+ "help convert this backup to the current version"
1105
+ msgstr ""
1106
+
1107
+ #: views/restore.php:263
1108
+ msgid ""
1109
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1110
+ "restore. However, we were able to successfully revert the database back to "
1111
+ "its original state . This error may require importing the database manually"
1112
+ msgstr ""
1113
+
1114
+ #: views/restore.php:264
1115
+ msgid ""
1116
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1117
+ "utility available. Please contact support"
1118
+ msgstr ""
1119
+
1120
+ #: views/restore.php:265
1121
+ msgid ""
1122
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1123
+ "running. Please wait for the backup to complete and then try again"
1124
+ msgstr ""
1125
+
1126
+ #: views/restore.php:267
1127
+ msgid ""
1128
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1129
+ "manifest is empty"
1130
+ msgstr ""
1131
+
1132
+ #: views/restore.php:268
1133
+ msgid ""
1134
+ "Error 252: At least one zip file is missing from your backup set. Please "
1135
+ "make sure to upload all zip files that were part of this backup"
1136
+ msgstr ""
1137
+
1138
+ #: views/restore.php:269
1139
+ msgid ""
1140
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1141
+ "Please make sure to upload only zip files that were part of this backup"
1142
+ msgstr ""
1143
+
1144
+ #: views/restore.php:271
1145
+ msgid ""
1146
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1147
+ "restore logs to see what WP BackItUp was unable to restore"
1148
+ msgstr ""
1149
+
1150
+ #: views/restore.php:272
1151
+ msgid ""
1152
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1153
+ "to see what WP BackItUp was unable to restore"
1154
+ msgstr ""
1155
+
1156
+ #: views/restore.php:274
1157
+ msgid "Error 2001: Unable to prepare site for restore"
1158
+ msgstr ""
1159
+
1160
+ #: views/restore.php:275
1161
+ msgid "Error 2002: Unable to unzip backup"
1162
+ msgstr ""
1163
+
1164
+ #: views/restore.php:276
1165
+ msgid "Error 2003: Unable to validate backup"
1166
+ msgstr ""
1167
+
1168
+ #: views/restore.php:277
1169
+ msgid "Error 2004: Unable to create restore point"
1170
+ msgstr ""
1171
+
1172
+ #: views/restore.php:278
1173
+ msgid "Error 2005: Unable to stage wp-content"
1174
+ msgstr ""
1175
+
1176
+ #: views/restore.php:279
1177
+ msgid "Error 2006: Unable to restore content files"
1178
+ msgstr ""
1179
+
1180
+ #: views/restore.php:280
1181
+ msgid "Error 2007: Unable to restore database"
1182
+ msgstr ""
1183
+
1184
+ #: views/restore.php:281
1185
+ msgid "Error 2999: Unexpected error encountered"
1186
+ msgstr ""
1187
+
1188
+ #: views/restore.php:288
1189
+ msgid ""
1190
+ "Restore completed successfully. If you are prompted to login please do so "
1191
+ "with your current username and password"
1192
+ msgstr ""
1193
+
1194
+ #: views/settings.php:16
1195
+ #, php-format
1196
+ msgid "%s Settings"
1197
+ msgstr ""
1198
+
1199
+ #: views/settings.php:43
1200
+ msgid "Email Notifications"
1201
+ msgstr ""
1202
+
1203
+ #: views/settings.php:44
1204
+ msgid ""
1205
+ "Please enter your email address if you would like to receive backup email "
1206
+ "notifications."
1207
+ msgstr ""
1208
+
1209
+ #: views/settings.php:45
1210
+ msgid ""
1211
+ "Backup email notifications will be sent for every backup and will contain "
1212
+ "status information related to the backup."
1213
+ msgstr ""
1214
+
1215
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1216
+ #: views/settings.php:114
1217
+ msgid "Save"
1218
+ msgstr ""
1219
+
1220
+ #: views/settings.php:63
1221
+ msgid "Backup Retention"
1222
+ msgstr ""
1223
+
1224
+ #: views/settings.php:64
1225
+ msgid ""
1226
+ "Enter the number of backup archives that you would like to remain on the "
1227
+ "server."
1228
+ msgstr ""
1229
+
1230
+ #: views/settings.php:65
1231
+ msgid ""
1232
+ "Many hosts limit the amount of space that you can take up on their servers. "
1233
+ "This option tells WP BackItUp the maximum number of backup archives that "
1234
+ "should remain on your hosts server. Don't worry, we will always remove the "
1235
+ "oldest backup archives first."
1236
+ msgstr ""
1237
+
1238
+ #: views/settings.php:84
1239
+ msgid "Turn on logging?"
1240
+ msgstr ""
1241
+
1242
+ #: views/settings.php:85
1243
+ msgid "Yes"
1244
+ msgstr ""
1245
+
1246
+ #: views/settings.php:86
1247
+ msgid "No"
1248
+ msgstr ""
1249
+
1250
+ #: views/settings.php:87
1251
+ msgid ""
1252
+ "This option should only be turned on when troubleshooting issues with "
1253
+ "WPBackItUp support."
1254
+ msgstr ""
1255
+
1256
+ #: views/settings.php:92
1257
+ msgid "Advanced Settings"
1258
+ msgstr ""
1259
+
1260
+ #: views/settings.php:93
1261
+ msgid ""
1262
+ "These options should only be changed when working with WP BackItUp support."
1263
+ msgstr ""
1264
+
1265
+ #: views/settings.php:96
1266
+ msgid "Plugins Batch Size"
1267
+ msgstr ""
1268
+
1269
+ #: views/settings.php:101
1270
+ msgid "Themes Batch Size"
1271
+ msgstr ""
1272
+
1273
+ #: views/settings.php:106
1274
+ msgid "Uploads Batch Size"
1275
+ msgstr ""
1276
+
1277
+ #: views/settings.php:111
1278
+ msgid "Others Batch Size"
1279
+ msgstr ""
1280
+
1281
+ #: views/support.php:16
1282
+ #, php-format
1283
+ msgid "%s Support"
1284
+ msgstr ""
1285
+
1286
+ #: views/support.php:35
1287
+ msgid "Support email sent successfully!"
1288
+ msgstr ""
1289
+
1290
+ #: views/support.php:48
1291
+ msgid "Email Logs to Support"
1292
+ msgstr ""
1293
+
1294
+ #: views/support.php:49
1295
+ msgid "This form should be used to send log files to support only."
1296
+ msgstr ""
1297
+
1298
+ #: views/support.php:50
1299
+ msgid ""
1300
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1301
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1302
+ "using this form."
1303
+ msgstr ""
1304
+
1305
+ #: views/support.php:51
1306
+ msgid ""
1307
+ "The ticket id you receive from your support request should be entered in the "
1308
+ "ticket id field below."
1309
+ msgstr ""
1310
+
1311
+ #: views/support.php:52
1312
+ msgid "your email address"
1313
+ msgstr ""
1314
+
1315
+ #: views/support.php:62
1316
+ msgid "support ticket id"
1317
+ msgstr ""
1318
+
1319
+ #: views/support.php:72
1320
+ msgid "problem description or additional information"
1321
+ msgstr ""
1322
+
1323
+ #: views/support.php:83
1324
+ msgid "Send"
1325
+ msgstr ""
1326
+
1327
+ #: views/support.php:86
1328
+ msgid "Please register your version of WP BackItUp for access to support."
1329
+ msgstr ""
1330
+
1331
+ #: views/support.php:90
1332
+ msgid "Premium customers receive priority support."
1333
+ msgstr ""
1334
+
1335
+ #: wp-backitup.php:97 wp-backitup.php:98
1336
+ #, php-format
1337
+ msgid "Every %s hours"
1338
+ msgstr ""
languages/wp-backitup-tl.mo ADDED
Binary file
languages/wp-backitup-tl.po ADDED
@@ -0,0 +1,1540 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ # sheisjeremy, 2015
4
+ # sheisjeremy, 2015
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: WP BackItUp\n"
8
+ "POT-Creation-Date: 2015-08-14 10:30-0400\n"
9
+ "PO-Revision-Date: 2015-08-14 10:30-0400\n"
10
+ "Last-Translator: sheisjeremy\n"
11
+ "Language-Team: Tagalog (http://www.transifex.com/wp-translations/wp-backitup/"
12
+ "language/tl/)\n"
13
+ "Language: tl\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
18
+ "X-Generator: Poedit 1.8.4\n"
19
+ "X-Poedit-Basepath: ..\n"
20
+ "X-Poedit-KeywordsList: _;__;_e\n"
21
+ "X-Poedit-SearchPath-0: .\n"
22
+
23
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
24
+ #: views/backup.php:179
25
+ msgid "Backup"
26
+ msgstr "Backup"
27
+
28
+ #: lib/includes/class-wpbackitup-admin.php:175
29
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
30
+ msgid "Restore"
31
+ msgstr "Ibalik sa orihinal"
32
+
33
+ #: lib/includes/class-wpbackitup-admin.php:179
34
+ msgid "Support"
35
+ msgstr "Suport"
36
+
37
+ #: lib/includes/class-wpbackitup-admin.php:182
38
+ msgid "Settings"
39
+ msgstr "Mga Setting"
40
+
41
+ #: lib/includes/class-wpbackitup-admin.php:203
42
+ msgid ""
43
+ "The backup you have selected exceeds what your host allows you to upload."
44
+ msgstr ""
45
+ "Ang iyong pinili na mga backup ay lumampas sa pinapayagan ng iyong host na "
46
+ "dapat i-upload."
47
+
48
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
49
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
50
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
51
+ #: views/backup.php:312 views/backup.php:313
52
+ msgid "Warning"
53
+ msgstr "Babala"
54
+
55
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
56
+ msgid "Error"
57
+ msgstr "Pagkakamali"
58
+
59
+ #: lib/includes/class-wpbackitup-admin.php:206
60
+ msgid "Response"
61
+ msgstr "Tugon"
62
+
63
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
64
+ #: views/restore.php:205
65
+ msgid "Status"
66
+ msgstr "Kalagayan o Katayuan"
67
+
68
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
69
+ msgid "Download"
70
+ msgstr "Download"
71
+
72
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
73
+ #: views/restore.php:111
74
+ msgid "Delete"
75
+ msgstr "Burahin"
76
+
77
+ #: lib/includes/class-wpbackitup-admin.php:211
78
+ msgid "(JS997) Unexpected error"
79
+ msgstr "(JS997) hindi inaasahang pagkakamali o hindi inaasahang error"
80
+
81
+ #: lib/includes/class-wpbackitup-admin.php:212
82
+ msgid "(JS998) Unexpected error"
83
+ msgstr "(JS998) hindi inaasahang pagkakamali o hindi inaasahang error"
84
+
85
+ #: lib/includes/class-wpbackitup-admin.php:213
86
+ msgid "(JS999) An unexpected error has occurred"
87
+ msgstr ""
88
+ "(JS999) Nangyari ang hindi inaasahang pagkakamali o Nangyari ang hindi "
89
+ "inaasahang error"
90
+
91
+ #: lib/includes/class-wpbackitup-admin.php:214
92
+ msgid "Scheduled has been saved."
93
+ msgstr "Ang schedule ay naka-save."
94
+
95
+ #: lib/includes/class-wpbackitup-admin.php:215
96
+ msgid "Scheduled was not saved."
97
+ msgstr "Ang schedule ay hindi naka - save. "
98
+
99
+ #: lib/includes/class-wpbackitup-admin.php:216
100
+ msgid "Are you sure you want to restore your site?"
101
+ msgstr ""
102
+ "Ikaw ba ay nakasisiguro na dapat ibalik sa orihinal ang iyong website? "
103
+
104
+ #: lib/includes/class-wpbackitup-admin.php:217
105
+ msgid "Are you sure ?"
106
+ msgstr "Ikaw ba ay nakasisiguro?"
107
+
108
+ #: lib/includes/class-wpbackitup-admin.php:218
109
+ msgid "This file cannot be delete!"
110
+ msgstr "Ang file na ito ay hindi maaaring tanggalin!"
111
+
112
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
113
+ msgid "View Log"
114
+ msgstr "Tignan ang log files. "
115
+
116
+ #: lib/includes/class-wpbackitup-admin.php:220
117
+ msgid "New Backup!"
118
+ msgstr "Bagong backup!"
119
+
120
+ #: lib/includes/class-wpbackitup-admin.php:221
121
+ msgid "Uploaded Backup"
122
+ msgstr "Na upload na backup"
123
+
124
+ #: lib/includes/class-wpbackitup-admin.php:480
125
+ msgid "Backup Queued"
126
+ msgstr "Mga naka linya para sa backup."
127
+
128
+ #: lib/includes/class-wpbackitup-admin.php:482
129
+ msgid "Backup could not be queued"
130
+ msgstr "Ang backup ay hindi maaaring isama sa mga naka linya"
131
+
132
+ #: lib/includes/class-wpbackitup-admin.php:485
133
+ msgid "Backup already in queue"
134
+ msgstr "Ang backup ay nasa linya na"
135
+
136
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
137
+ msgid "Backup Cancelled"
138
+ msgstr "Nakansela na backup "
139
+
140
+ #: lib/includes/class-wpbackitup-admin.php:535
141
+ msgid "No backup file selected."
142
+ msgstr "Walang backup file na napili"
143
+
144
+ #: lib/includes/class-wpbackitup-admin.php:542
145
+ msgid "No user id found."
146
+ msgstr "Walang matagpuan na user id"
147
+
148
+ #: lib/includes/class-wpbackitup-admin.php:553
149
+ msgid "Restore Queued"
150
+ msgstr "Mga naka linya na ibabalik sa orihinal"
151
+
152
+ #: lib/includes/class-wpbackitup-admin.php:555
153
+ msgid "Restore could not be queued"
154
+ msgstr "Hindi maaaring isama sa mga naka linya na ibabalik sa orihinal. "
155
+
156
+ #: lib/includes/class-wpbackitup-admin.php:558
157
+ msgid "Restore already in queue"
158
+ msgstr "Ang mga dapat ibalik sa orihinal ay nakalinya na. "
159
+
160
+ #: lib/includes/class-wpbackitup-admin.php:743
161
+ msgid "No response log found."
162
+ msgstr "Walang makita na response log."
163
+
164
+ #: lib/includes/class-wpbackitup-admin.php:836
165
+ #: lib/includes/class-wpbackitup-admin.php:844
166
+ #: lib/includes/class-wpbackitup-admin.php:873
167
+ #: lib/includes/class-wpbackitup-admin.php:880
168
+ #: lib/includes/class-wpbackitup-admin.php:887
169
+ #: lib/includes/class-wpbackitup-admin.php:894
170
+ msgid "Please enter a number"
171
+ msgstr "Maglagay ng numero "
172
+
173
+ #: lib/includes/class-wpbackitup-admin.php:865
174
+ #: lib/includes/class-wpbackitup-admin.php:972
175
+ msgid "Please enter a valid email"
176
+ msgstr "Ilagay ang tamang email."
177
+
178
+ #: lib/includes/class-wpbackitup-admin.php:979
179
+ msgid "Please enter your support ticket id"
180
+ msgstr "Ilagay ang iyong suport ticket id"
181
+
182
+ #: lib/includes/class-wpbackitup-admin.php:984
183
+ msgid "Please only enter numbers in this field"
184
+ msgstr "Ilagay lamang ang numero"
185
+
186
+ #: lib/includes/class-wpbackitup-admin.php:1645
187
+ msgid "License is invalid."
188
+ msgstr "Ang lisensya ay hindi wasto"
189
+
190
+ #: lib/includes/class-wpbackitup-admin.php:1650
191
+ msgid "License has expired."
192
+ msgstr "Ang lisensya ay wala ng bisa."
193
+
194
+ #: lib/includes/class-wpbackitup-admin.php:1655
195
+ msgid "Activation limit has been reached."
196
+ msgstr "Ang pagtatakda ng aktibasyon ay umabot na sa limitasyon "
197
+
198
+ #: lib/includes/handler_upload.php:29
199
+ msgid "Invalid Nonce"
200
+ msgstr "Hindi wastong nonces"
201
+
202
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
203
+ msgid "Upload directory is not writable, or does not exist."
204
+ msgstr ""
205
+ "Ang direktoryo para sa mga upload ay hindi naman writable o hindi umiiral."
206
+
207
+ #: lib/includes/handler_upload.php:80
208
+ #, php-format
209
+ msgid "Error: %s"
210
+ msgstr "Error: %s"
211
+
212
+ #: lib/includes/handler_upload.php:80
213
+ msgid "File could not be uploaded"
214
+ msgstr "Hindi ma i -upload ang file. "
215
+
216
+ #: lib/includes/handler_upload.php:141
217
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
218
+ msgstr "Ang upload ay mistulang hindi WP BackItUp backup archive file."
219
+
220
+ #: lib/includes/handler_upload.php:161
221
+ msgid "Could not import file into WP BackItUp backup set."
222
+ msgstr "Hindi ma -import ang file sa backup set ng WP BackItUp"
223
+
224
+ #: lib/includes/job_backup.php:851
225
+ msgid "Preparing for backup...Done"
226
+ msgstr "Paghahanda para sa backup.....Tapos na"
227
+
228
+ #: lib/includes/job_backup.php:852
229
+ msgid "Backing up database...Done"
230
+ msgstr "Pag backup ng database...Tapos na"
231
+
232
+ #: lib/includes/job_backup.php:853
233
+ msgid "Creating backup information file...Done"
234
+ msgstr "Paggawa ng backup information file...Tapos na"
235
+
236
+ #: lib/includes/job_backup.php:854
237
+ msgid "Backing up themes...Done"
238
+ msgstr "Pag backup ng tema ...Tapos na"
239
+
240
+ #: lib/includes/job_backup.php:855
241
+ msgid "Backing up plugins...Done"
242
+ msgstr "Pag backup ng plugins...Tapos na"
243
+
244
+ #: lib/includes/job_backup.php:856
245
+ msgid "Backing up uploads...Done"
246
+ msgstr "Pag backup ng uploads...Tapos na"
247
+
248
+ #: lib/includes/job_backup.php:857
249
+ msgid "Backing up miscellaneous files...Done"
250
+ msgstr "Pag backup ng sari- sari na files...Tapos na"
251
+
252
+ #: lib/includes/job_backup.php:858
253
+ msgid "Finalizing backup...Done"
254
+ msgstr "Pag kumpleto ng backup...Tapos na"
255
+
256
+ #: lib/includes/job_backup.php:859
257
+ msgid "Validating backup...Done"
258
+ msgstr "Pagbibigay bisa sa mga backup...Tapos na"
259
+
260
+ #: lib/includes/job_backup.php:860
261
+ msgid "Cleaning up...Done"
262
+ msgstr "Paglilinis ...Tapos na"
263
+
264
+ #: lib/includes/job_backup.php:870
265
+ #, php-format
266
+ msgid "%s - Backup completed successfully."
267
+ msgstr "%s Matagumpay na nakumpleto ang back up "
268
+
269
+ #: lib/includes/job_backup.php:871
270
+ msgid "Your backup completed successfully."
271
+ msgstr "Matagumpay na nakumpleto ang iyong backup"
272
+
273
+ #: lib/includes/job_backup.php:874
274
+ #, php-format
275
+ msgid "%s - Backup did not complete successfully."
276
+ msgstr "%s - Ang backup ay hindi matagumpay na nakumpleto"
277
+
278
+ #: lib/includes/job_backup.php:875
279
+ msgid "Your backup did not complete successfully."
280
+ msgstr "Ang iyong backup ay hindi matagumpay na nakumpleto"
281
+
282
+ #: lib/includes/job_backup.php:880
283
+ #, php-format
284
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
285
+ msgstr "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
286
+
287
+ #: lib/includes/job_backup.php:881
288
+ msgid "Backup date:"
289
+ msgstr "Petsa ng backup"
290
+
291
+ #: lib/includes/job_backup.php:882
292
+ msgid "Number of backups completed with WP BackItUp:"
293
+ msgstr "Bilang ng mga nakumpleto na backup sa WP BackItUp "
294
+
295
+ #: lib/includes/job_backup.php:884
296
+ msgid "Completion Code:"
297
+ msgstr "Completion Code:"
298
+
299
+ #: lib/includes/job_backup.php:885
300
+ msgid "WP BackItUp Version:"
301
+ msgstr "Bersyon ng WP BackItUp "
302
+
303
+ #: lib/includes/job_backup.php:891
304
+ msgid "Steps Completed"
305
+ msgstr "Nakumpleto ang bawat hakbang "
306
+
307
+ #: lib/includes/job_backup.php:912
308
+ #, php-format
309
+ msgid "Checkout %s for info about WP BackItUp and our other products."
310
+ msgstr ""
311
+ "Siyasatin ang %s para sa impormasyon tungkol sa WP BackItUp at ang aming iba "
312
+ "pang mga produkto."
313
+
314
+ #: lib/includes/job_backup.php:1088
315
+ msgid ""
316
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
317
+ "settings of your wp-backitup backup directory"
318
+ msgstr ""
319
+ "(101) Hindi makalikha ng isang bagong direktoryo para sa backup. Mangyaring "
320
+ "suriin ang setting ng CHMOD ng iyong direktoryo para sa backup ng wp-"
321
+ "backitup "
322
+
323
+ #: lib/includes/job_backup.php:1089
324
+ msgid ""
325
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
326
+ "your wp-backitup plugin directory"
327
+ msgstr ""
328
+ "(102) Hindi makalikha ng direktoryo para sa backup. Mangyaring suriin ang "
329
+ "setting ng CHMOD sa iyong direktoryo ng plugin ng wp-backitup "
330
+
331
+ #: lib/includes/job_backup.php:1090
332
+ msgid "(103) Unable to backup your files. Please try again"
333
+ msgstr "(103) Hindi ma-backup ang iyong mga files. Mangyaring subukan muli"
334
+
335
+ #: lib/includes/job_backup.php:1091
336
+ msgid "(104) Unable to export your database. Please try again"
337
+ msgstr "(104) Hindi ma-export ang iyong database. Mangyaring subukan muli"
338
+
339
+ #: lib/includes/job_backup.php:1092
340
+ msgid "(105) Unable to export site information file. Please try again"
341
+ msgstr ""
342
+ "(105) Hindi ma -export ang site information file. Mangyaring subukan muli"
343
+
344
+ #: lib/includes/job_backup.php:1093
345
+ msgid "(106) Unable to cleanup your backup directory"
346
+ msgstr "(106) Hindi malinisan ang iyong direktoryo ng backup"
347
+
348
+ #: lib/includes/job_backup.php:1094
349
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
350
+ msgstr "(107) Hindi masiksik ang iyong backup. Mangyaring subukan muli"
351
+
352
+ #: lib/includes/job_backup.php:1095
353
+ msgid "(108) Unable to backup your site data files. Please try again"
354
+ msgstr ""
355
+ "(108) Hindi ma-backup ang iyong site data files .Mangyaring subukan muli"
356
+
357
+ #: lib/includes/job_backup.php:1096
358
+ msgid "(109) Unable to finalize backup. Please try again"
359
+ msgstr "(109) Hindi ma-kumpleto ang backup. Mangyaring subukan muli"
360
+
361
+ #: lib/includes/job_backup.php:1097
362
+ msgid ""
363
+ "(114) Your database was accessible but an export could not be created. "
364
+ "Please contact support by clicking the get support link on the right. Please "
365
+ "let us know who your host is when you submit the request"
366
+ msgstr ""
367
+ "(114) Ang iyong database ay maaring ma- access ngunit hindi makakalikha ng "
368
+ "export . Mangyaring makipag-ugnayan sa suport para sa tulong sa "
369
+ "pamamagitan ng pag-click sa link na ito get suport link . Mangyaring "
370
+ "ipaalam sa amin kung sino ang iyong host kung kayo ay magpapadala ng "
371
+ "kahilingan."
372
+
373
+ #: lib/includes/job_backup.php:1098
374
+ msgid "(120) Unable to backup your themes. Please try again"
375
+ msgstr "(120) Hindi ma-backup ang iyong tema. Mangyaring subukan muli"
376
+
377
+ #: lib/includes/job_backup.php:1099
378
+ msgid "(121) Unable to backup your plugins. Please try again"
379
+ msgstr "(121) Hindi ma-backup ang iyong mga plugins. Mangyaring subukan muli"
380
+
381
+ #: lib/includes/job_backup.php:1100
382
+ msgid "(122) Unable to backup your uploads. Please try again"
383
+ msgstr "(122) Hindi ma-backup ang iyong mga uploads. Mangyaring subukan muli"
384
+
385
+ #: lib/includes/job_backup.php:1101
386
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
387
+ msgstr ""
388
+ "(123) Hindi ma-backup ang iyong sari-sari na mga file. Mangyaring subukan "
389
+ "muli"
390
+
391
+ #: lib/includes/job_backup.php:1102
392
+ msgid ""
393
+ "(125) Unable to compress your backup because there is no zip utility "
394
+ "available. Please contact support"
395
+ msgstr ""
396
+ "(125) Hindi ma- siksik ang iyong backup dahil walang available na zip "
397
+ "utility. Mangyaring makipag-ugnayan sa support para sa tulong. "
398
+
399
+ #: lib/includes/job_backup.php:1103
400
+ msgid "(126) Unable to validate your backup. Please try again"
401
+ msgstr "(126) Hindi ma-validate ang iyong backup. Mangyaring subukan muli"
402
+
403
+ #: lib/includes/job_backup.php:1104
404
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
405
+ msgstr ""
406
+ "(127) Hindi makalikha ng imbentaryo ng mga files na dapat i- backup. "
407
+ "Mangyaring subukan muli"
408
+
409
+ #: lib/includes/job_backup.php:1105
410
+ msgid "(128) Unable to create job control record. Please try again"
411
+ msgstr "(128) Hindi makalikha ng job control record. Mangyaring subukan muli"
412
+
413
+ #: lib/includes/job_backup.php:1107
414
+ msgid ""
415
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
416
+ "settings of your wp-backitup backup directory"
417
+ msgstr ""
418
+ "(2101) Hindi makalikha ng isang bagong direktoryo para sa backup. Mangyaring "
419
+ "suriin ang setting ng CHMOD ng iyong direktoryo para sa backup ng wp-"
420
+ "backitup "
421
+
422
+ #: lib/includes/job_backup.php:1108
423
+ msgid ""
424
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
425
+ "your wp-backitup plugin directory"
426
+ msgstr ""
427
+ "(2102) Hindi makalikha ng direktoryo ng backup. Mangyaring suriin ang mga "
428
+ "setting ng CHMOD ng inyong direktoryo ng plugin ng wp-backitup "
429
+
430
+ #: lib/includes/job_backup.php:1109
431
+ msgid "(2103) Unable to backup your files. Please try again"
432
+ msgstr "(2103) Hindi ma-backup ang iyong mga files. Mangyaring subukan muli"
433
+
434
+ #: lib/includes/job_backup.php:1110
435
+ msgid "(2104) Unable to export your database. Please try again"
436
+ msgstr "(2104) Hindi ma-export ang iyong database. Mangyaring subukan muli"
437
+
438
+ #: lib/includes/job_backup.php:1111
439
+ msgid "(2105) Unable to export site information file. Please try again"
440
+ msgstr ""
441
+ "(2105) Hindi ma-export and site information file. Mangyaring subukan muli"
442
+
443
+ #: lib/includes/job_backup.php:1112
444
+ msgid "(2106) Unable to cleanup your backup directory"
445
+ msgstr "(2106) Hindi malinisan ang iyong direktoryo ng backup"
446
+
447
+ #: lib/includes/job_backup.php:1113
448
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
449
+ msgstr ""
450
+ "(2107) Hindi ma-siksik sa (zip) ang iyong backup. Mangyaring subukan muli"
451
+
452
+ #: lib/includes/job_backup.php:1114
453
+ msgid "(2108) Unable to backup your site data files. Please try again"
454
+ msgstr ""
455
+ "(2108) Hindi ma-backup ang iyong site data files. Mangyaring subukan muli"
456
+
457
+ #: lib/includes/job_backup.php:1115
458
+ msgid "(2109) Unable to finalize backup. Please try again"
459
+ msgstr "(2109) Hindi ma-kumpleto ang backup. Mangyaring subukan muli"
460
+
461
+ #: lib/includes/job_backup.php:1116
462
+ msgid ""
463
+ "(2114) Your database was accessible but an export could not be created. "
464
+ "Please contact support by clicking the get support link on the right. Please "
465
+ "let us know who your host is when you submit the request"
466
+ msgstr ""
467
+ "(2114) Ang iyong database ay maaring ma- access ngunit hindi makakalikha ng "
468
+ "export . Mangyaring makipag-ugnayan sa suport para sa tulong sa "
469
+ "pamamagitan ng pag-click sa link na ito get support link . Mangyaring "
470
+ "ipaalam sa amin kung sino ang iyong host kung kayo ay magpapadala ng "
471
+ "kahilingan."
472
+
473
+ #: lib/includes/job_backup.php:1117
474
+ msgid "(2120) Unable to backup your themes. Please try again"
475
+ msgstr "(2120) Hindi ma-backup ang iyong tema. Mangyaring subukan muli"
476
+
477
+ #: lib/includes/job_backup.php:1118
478
+ msgid "(2121) Unable to backup your plugins. Please try again"
479
+ msgstr "(2121) Hindi ma-backup ang iyong mga plugins. Mangyaring subukan muli"
480
+
481
+ #: lib/includes/job_backup.php:1119
482
+ msgid "(2122) Unable to backup your uploads. Please try again"
483
+ msgstr "(2122) Hindi ma-backup ang iyong mga upload. Mangyaring subukan muli"
484
+
485
+ #: lib/includes/job_backup.php:1120
486
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
487
+ msgstr ""
488
+ "(2123) Hindi ma-backup ang iyong mga sari-sari na mga file. Mangyaring "
489
+ "subukan muli"
490
+
491
+ #: lib/includes/job_backup.php:1121
492
+ msgid ""
493
+ "(2125) Unable to compress your backup because there is no zip utility "
494
+ "available. Please contact support"
495
+ msgstr ""
496
+ "(2125) Hindi ma-isiksik ang iyong backup dahil walang magagamit na zip "
497
+ "utility. Mangyaring makipag-ugnayan sa suport para sa tulong"
498
+
499
+ #: lib/includes/job_backup.php:1122
500
+ msgid "(2126) Unable to validate your backup. Please try again"
501
+ msgstr "(2126) Hindi ma-validate ang iyong backup. Mangyaring subukan muli"
502
+
503
+ #: lib/includes/job_backup.php:1123
504
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
505
+ msgstr ""
506
+ "(2127) Hindi makalikha ng imbentaryo ng mga files na dapat i- backup. "
507
+ "Mangyaring subukan muli"
508
+
509
+ #: lib/includes/job_backup.php:1124
510
+ msgid "(2128) Unable to create job control record. Please try again"
511
+ msgstr "(2128) Hindi makalikha ng job control record. Mangyaring subukan muli"
512
+
513
+ #: lib/includes/job_backup.php:1127
514
+ msgid "(999) Unexpected error"
515
+ msgstr "(999) Hindi inaasahang error o hindi inaasahang pagkakamali"
516
+
517
+ #. TRANSLATORS: %s = plugin name.
518
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
519
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
520
+ #: views/backup.php:20
521
+ #, php-format
522
+ msgid "%s Dashboard"
523
+ msgstr "%s Dashboard"
524
+
525
+ #: views/backup.php:150
526
+ #, php-format
527
+ msgid "Backup folder does not exist. Please contact %s for assistance."
528
+ msgstr ""
529
+ "Ang backup folder ay hindi umiiral. Makipagugnayan sa %s suport para sa "
530
+ "tulong. "
531
+
532
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
533
+ msgid "support"
534
+ msgstr "Suport"
535
+
536
+ #: views/backup.php:153 views/backup.php:159
537
+ msgid "Close"
538
+ msgstr "Isara"
539
+
540
+ #: views/backup.php:174
541
+ msgid ""
542
+ "Click the backup button to create a zipped backup file of this site's "
543
+ "database, plugins, themes and settings."
544
+ msgstr ""
545
+ "I-click ang buton na backup upang lumikha ng zip backup file ng database, "
546
+ "plugins, mga tema at mga setting ng site database"
547
+
548
+ #: views/backup.php:175
549
+ msgid ""
550
+ "Once your backup file has been created it will appear in the available "
551
+ "backups section below. This file may remain on your hosting providers server "
552
+ "but we recommend that you download and save it somewhere safe."
553
+ msgstr ""
554
+ "Kapag ang iyong mga backup file ay nagawa na, ito ay lilitaw sa seksyon ng "
555
+ "mga magagamit na backups Ang file na ito ay maaaring manatili sa iyong "
556
+ "hosting provider server ngunit inirerekumenda namin na iyong i-download at i-"
557
+ "save . "
558
+
559
+ #: views/backup.php:176
560
+ msgid ""
561
+ "WP BackItUp premium customers can use these backup files to perform an "
562
+ "automated restore of their site."
563
+ msgstr ""
564
+ "Ang mga premium customer ng WP BackItUp ay maaaring gamitin ang mga backup "
565
+ "files upang magsagawa ng awtomatikong pagbalik sa orihinal ng kanilang "
566
+ "site. "
567
+
568
+ #: views/backup.php:180
569
+ msgid "Cancel"
570
+ msgstr "Ikansela"
571
+
572
+ #: views/backup.php:187
573
+ #, php-format
574
+ msgid ""
575
+ "WP BackItUp lite customers may use these backup files to manually restore "
576
+ "their site. Please visit %s for manual restore instructions."
577
+ msgstr ""
578
+ "Maaaring gamitin ng lite customer ng WP BackItUp ang mga backup file "
579
+ "para mano-manong ibalik sa orihinal ang kanilang site. Mangyaring bisitahin "
580
+ "ang %s para sa mga tagubilin."
581
+
582
+ #: views/backup.php:194
583
+ msgid "Backup Schedule"
584
+ msgstr "Backup Iskedyul"
585
+
586
+ #: views/backup.php:196
587
+ msgid "Select the days of the week you would like your backup to run."
588
+ msgstr "Piliin ang mga araw na nais mong magsimula ang iyong backup "
589
+
590
+ #: views/backup.php:198
591
+ msgid ""
592
+ "Backup your site once per week or every day, it's up to you. If you have "
593
+ "email notifications turned on we'll even send you an email when it's done. "
594
+ "Once your backup file has been created it will appear in the available "
595
+ "backups section below. This file may remain on your hosting providers server "
596
+ "but we recommend that you download and save it somewhere safe."
597
+ msgstr ""
598
+ "i-backup ang iyong site ng isang beses sa isang linggo o bawat araw. ito "
599
+ "ay nasa sa'yo. Kung ikaw ay may notipikasyon sa email kami ay magpapadala "
600
+ "ng email kapag ang iyong backup ay tapos na. Kapag ang iyong mga backup "
601
+ "file ay nagawa na, ito ay lilitaw sa seksyon ng mga magagamit na mga backup. "
602
+ "Ang file na ito ay maaaring manatili sa iyong hosting provider server ngunit "
603
+ "inirerekumenda namin na iyong i-download at i-save."
604
+
605
+ #: views/backup.php:200
606
+ msgid "Please make sure to schedule your backup for at least once per week."
607
+ msgstr ""
608
+ "Mangyaring siguraduhin na mag-iskedyul ng iyong mga backup , isang beses sa "
609
+ "isang linggo."
610
+
611
+ #: views/backup.php:204
612
+ msgid "Monday"
613
+ msgstr "Lunes"
614
+
615
+ #: views/backup.php:205
616
+ msgid "Tuesday"
617
+ msgstr "Martes"
618
+
619
+ #: views/backup.php:206
620
+ msgid "Wednesday"
621
+ msgstr "Miyerkules"
622
+
623
+ #: views/backup.php:207
624
+ msgid "Thursday"
625
+ msgstr "Huwebes"
626
+
627
+ #: views/backup.php:208
628
+ msgid "Friday"
629
+ msgstr "Biyernes"
630
+
631
+ #: views/backup.php:209
632
+ msgid "Saturday"
633
+ msgstr "Sabado"
634
+
635
+ #: views/backup.php:210
636
+ msgid "Sunday"
637
+ msgstr "Linggo"
638
+
639
+ #: views/backup.php:213
640
+ msgid "Save Schedule"
641
+ msgstr "I-save ang iskedyul "
642
+
643
+ #: views/backup.php:218
644
+ #, php-format
645
+ msgid ""
646
+ "Scheduled backups are only available to WP BackItUp premium customers. "
647
+ "Please visit %s to get WP BackItUp risk free for 30 days."
648
+ msgstr ""
649
+ "Ang pag iskedyul ng backup ay magagamit lamang ng WP BackItUp premium "
650
+ "customer. Mangyaring bisitahin ang %s upang makakuha ng WP BackItUp risk "
651
+ "free para sa 30 araw. "
652
+
653
+ #: views/backup.php:225 views/restore.php:94
654
+ msgid "Available Backups"
655
+ msgstr "Mayroong Backups "
656
+
657
+ #: views/backup.php:283 views/restore.php:125
658
+ msgid "No backup archives found."
659
+ msgstr "Walang nahanap na backup archive"
660
+
661
+ #: views/backup.php:291
662
+ #, php-format
663
+ msgid ""
664
+ "The automated restore feature is only available to WP BackItUp premium "
665
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
666
+ msgstr ""
667
+ "Ang awtomatikong pagbabalik sa orihinal ay magagamit lamang ng WP BackItUp "
668
+ "premium customer. Mangyaring bisitahin ang %s upang makakuha ng WP BackItUp "
669
+ "risk free para sa 30 araw."
670
+
671
+ #: views/backup.php:300 views/restore.php:209
672
+ msgid "Nothing to report"
673
+ msgstr "Walang maiulat"
674
+
675
+ #: views/backup.php:305
676
+ msgid "Preparing for backup"
677
+ msgstr "Paghahanda para sa backup"
678
+
679
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
680
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
681
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
682
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
683
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
684
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
685
+ #: views/restore.php:228 views/restore.php:230
686
+ msgid "Done"
687
+ msgstr "Tapos na "
688
+
689
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
690
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
691
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
692
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
693
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
694
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
695
+ #: views/restore.php:228 views/restore.php:230
696
+ msgid "Failed"
697
+ msgstr "Hindi napagtagumpayan "
698
+
699
+ #: views/backup.php:306
700
+ msgid "Backing up database"
701
+ msgstr "Pag-back up ng database"
702
+
703
+ #: views/backup.php:307
704
+ msgid "Creating backup information file"
705
+ msgstr "Paglikha ng backup information file "
706
+
707
+ #: views/backup.php:308
708
+ msgid "Backing up themes"
709
+ msgstr "Pag-back up ng tema"
710
+
711
+ #: views/backup.php:309
712
+ msgid "Backing up plugins"
713
+ msgstr "Pag-back up plugins"
714
+
715
+ #: views/backup.php:310
716
+ msgid "Backing up uploads"
717
+ msgstr "Pag-back up uploads"
718
+
719
+ #: views/backup.php:311
720
+ msgid "Backing up everything else"
721
+ msgstr "Pag back up ng lahat ng iba pa"
722
+
723
+ #: views/backup.php:312
724
+ msgid "Validating backup"
725
+ msgstr "Pagpapatunay sa backup "
726
+
727
+ #: views/backup.php:313
728
+ msgid "Finalizing backup"
729
+ msgstr "Pag kumpleto ng backup"
730
+
731
+ #: views/backup.php:323
732
+ msgid "Backup completed successfully"
733
+ msgstr "Matagumpay na nakumpleto ang backup"
734
+
735
+ #: views/backup.php:344
736
+ msgid "Backups"
737
+ msgstr "Backups"
738
+
739
+ #: views/backup.php:344
740
+ msgid "Version "
741
+ msgstr "Bersyon "
742
+
743
+ #: views/backup.php:346
744
+ msgid "Welcome to WP BackItUp!"
745
+ msgstr "Maligayang pagdating sa WP BackItUp!"
746
+
747
+ #: views/backup.php:346
748
+ msgid "The simplest way to backup your WordPress site."
749
+ msgstr "Ang pinakasimpleng paraan upang i- backup ang iyong WordPress site."
750
+
751
+ #: views/backup.php:347
752
+ msgid ""
753
+ "Getting started is easy, just click the backup button on the left side of "
754
+ "this page."
755
+ msgstr ""
756
+ "Ang pagsisimula ay madali, i-click lamang ang buton ng backup sa kaliwang "
757
+ "bahagi ng pahinang ito."
758
+
759
+ #: views/backup.php:351
760
+ #, php-format
761
+ msgid ""
762
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
763
+ "medium;color: green\">%s</span> successful backups."
764
+ msgstr ""
765
+ "Pagbati! Ikaw ay nagsagawa ng <span style=\"font-weight:bold;font-size:"
766
+ "medium;color: green\">%s</span> matagumpay na backups "
767
+
768
+ #: views/backup.php:352
769
+ msgid "Tips"
770
+ msgstr "Tips"
771
+
772
+ #: views/backup.php:353
773
+ msgid "Backup your site at least once per week"
774
+ msgstr "Mag backup ng iyong site isang beses sa isang linggo"
775
+
776
+ #: views/backup.php:354
777
+ msgid "Download all your backups and store them somewhere safe"
778
+ msgstr "I-download ang lahat ng iyong mga backup at itago saan man ligtas"
779
+
780
+ #: views/backup.php:355
781
+ msgid "Verify your backup files are good by taking a look at what's inside"
782
+ msgstr ""
783
+ "Upang mapatunayan na maayos ang iyong mga backup tignan ang nilalaman nito "
784
+
785
+ #: views/backup.php:360
786
+ #, php-format
787
+ msgid "Why not %s and schedule your backups!"
788
+ msgstr "Bakit hindi %s at i-iskedyul ang iyong mga backup!"
789
+
790
+ #: views/backup.php:360
791
+ msgid "upgrade"
792
+ msgstr "Upgrade"
793
+
794
+ #: views/backup.php:369
795
+ msgid "Register WP BackItUp"
796
+ msgstr "Magrehistro ng WP BackItUp"
797
+
798
+ #: views/backup.php:372
799
+ msgid ""
800
+ "Enter your name and email address below to receive <b>special offers</b> and "
801
+ "access to our world class <b>support</b> team. <br />\n"
802
+ " <br />Enter your license key below to activate it on this "
803
+ "site."
804
+ msgstr ""
805
+ "Ilagay ang iyong pangalan at email address upang makatanggap ng <b>special "
806
+ "offers </ b> at access sa aming pinakamahusay na <b> suport </ b> team. <br/"
807
+ "> \n"
808
+ "Ilagay ang iyong license key upang ma-activate sa site na ito."
809
+
810
+ #: views/backup.php:374
811
+ msgid "name"
812
+ msgstr "Pangalan"
813
+
814
+ #: views/backup.php:375
815
+ msgid "email address"
816
+ msgstr "email address"
817
+
818
+ #: views/backup.php:376
819
+ msgid "license key"
820
+ msgstr "license key"
821
+
822
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
823
+ #, php-format
824
+ msgid "%s"
825
+ msgstr "%s"
826
+
827
+ #: views/backup.php:377
828
+ msgid "Free plugin customers do not need to enter license key."
829
+ msgstr ""
830
+ "Ang mga free plugin customers ay hindi na kailangang maglagay ng license "
831
+ "key "
832
+
833
+ #: views/backup.php:378
834
+ msgid "Register"
835
+ msgstr "Mag-rehistro"
836
+
837
+ #: views/backup.php:387
838
+ msgid "License Info"
839
+ msgstr "Impormasyon ng Lisensya"
840
+
841
+ #: views/backup.php:409
842
+ msgid "Name"
843
+ msgstr "Pangalan"
844
+
845
+ #: views/backup.php:410
846
+ msgid "Email"
847
+ msgstr "Email"
848
+
849
+ #: views/backup.php:411
850
+ msgid "License Type"
851
+ msgstr "Uri ng Lisensya"
852
+
853
+ #: views/backup.php:412
854
+ msgid "Expires"
855
+ msgstr "Lumipas na"
856
+
857
+ #: views/backup.php:415
858
+ msgid "Enter license key to activate on this site."
859
+ msgstr "Ilagay ang lisensya upang ma-activate sa site na ito"
860
+
861
+ #: views/backup.php:422
862
+ msgid "License Active"
863
+ msgstr "Aktibong Lisensya "
864
+
865
+ #: views/backup.php:430
866
+ msgid "License expired"
867
+ msgstr "Wala ng bisa ang lisensya"
868
+
869
+ #: views/backup.php:434
870
+ msgid "Update"
871
+ msgstr "Update"
872
+
873
+ #: views/backup.php:438
874
+ msgid "Activate"
875
+ msgstr "I-activate"
876
+
877
+ #: views/backup.php:442
878
+ #, php-format
879
+ msgid "Purchase a %s license using the purchase link above."
880
+ msgstr "Bumili ng %s lisensiya gamit ang link na nasa itaas. "
881
+
882
+ #: views/backup.php:442
883
+ msgid "no-risk"
884
+ msgstr "no risk "
885
+
886
+ #: views/backup.php:448
887
+ #, php-format
888
+ msgid ""
889
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
890
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
891
+ msgstr ""
892
+ "<a href=\"%s\" target=\"blank\"> i-renew </a> ang iyong lisensya ngayon "
893
+ "para sa isa pang taon ng mga update <strong> ng produkto </strong> at "
894
+ "<strong> priority suport. </strong>"
895
+
896
+ #: views/backup.php:459
897
+ msgid "Useful Links"
898
+ msgstr "Kapaki-pakinabang na mga Link"
899
+
900
+ #: views/backup.php:462 views/backup.php:466
901
+ msgid "Your account"
902
+ msgstr "Ang iyong account"
903
+
904
+ #: views/backup.php:469
905
+ msgid "Documentation"
906
+ msgstr "Dokumentasyon"
907
+
908
+ #: views/backup.php:472
909
+ msgid "Get support"
910
+ msgstr "Makipagugnayan sa suport para sa tulong"
911
+
912
+ #: views/backup.php:475
913
+ msgid "Feature request"
914
+ msgstr "Feature request"
915
+
916
+ #: views/backup.php:477
917
+ msgid "Contact"
918
+ msgstr "Contact"
919
+
920
+ #: views/backup.php:497 views/backup.php:518
921
+ msgid "WP BackItUp Backup Set"
922
+ msgstr "WP BackItUp BackUp Set"
923
+
924
+ #: views/backup.php:499
925
+ msgid ""
926
+ "Below are the archive files included in this backup set. Click the link to "
927
+ "download."
928
+ msgstr ""
929
+ "Sa ibaba ay ang mga archive files na kasama sa backup set. I-click ang link "
930
+ "upang i-download."
931
+
932
+ #: views/backup.php:519
933
+ msgid "Please refresh this page to download your new backup files."
934
+ msgstr ""
935
+ "Mangyaring i-refresh ang pahinang ito upang i-download ang iyong bagong "
936
+ "backup file."
937
+
938
+ #: views/restore.php:16
939
+ #, php-format
940
+ msgid "%s Restore"
941
+ msgstr "%s Ibalik sa orihinal"
942
+
943
+ #: views/restore.php:59
944
+ msgid "Zip Files"
945
+ msgstr "Zip Files"
946
+
947
+ #: views/restore.php:74
948
+ #, php-format
949
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
950
+ msgstr ""
951
+ "Error: Ang backup folder ay hindi umiiral. Mangyaring makipag-ugnayan sa %s "
952
+ "para sa tulong."
953
+
954
+ #: views/restore.php:81
955
+ #, php-format
956
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
957
+ msgstr ""
958
+ "Error: Ang restore folder ay hindi umiiral. Mangyaring makipag- ugnayan sa "
959
+ "%s para sa tulong"
960
+
961
+ #: views/restore.php:141
962
+ #, php-format
963
+ msgid ""
964
+ "<p>* The automated restore feature is only available to licensed customers. "
965
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
966
+ "BackItUp risk free for 30 days.</p>"
967
+ msgstr ""
968
+ "<p>* Ang feature na awtomatikong pagbalik sa orihinal na site ay para lamang "
969
+ "sa mga customers na may lisensya. Mangyaring bisitahin <a href=\"%s\" "
970
+ "target=\"_blank\">%s</a> upang makakuha ng lisensiya ng WP BackItUp risk "
971
+ "free para sa 30 araw</p>"
972
+
973
+ #: views/restore.php:153
974
+ msgid "Upload"
975
+ msgstr "Upload"
976
+
977
+ #: views/restore.php:156
978
+ msgid ""
979
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
980
+ "backups."
981
+ msgstr ""
982
+ "Mag-upload ng WP BackItUp archive (zip) file upang idagdag sa iyong listahan "
983
+ "ng mga magagamit backup. "
984
+
985
+ #: views/restore.php:173
986
+ msgid "WP BackItUp - Upload backup files"
987
+ msgstr "WP BackItUp - Mag-upload ng backup file"
988
+
989
+ #: views/restore.php:174
990
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
991
+ msgstr ""
992
+ "Ang Backup file ay maaaring ma-i -upload sa WP BackItUp sa pamamagitan ng "
993
+ "form na ito"
994
+
995
+ #: views/restore.php:174
996
+ msgid ""
997
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
998
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
999
+ "refresh this page."
1000
+ msgstr ""
1001
+ "Ang mga ito ay maaari ding mano-mano na ma-i-upload sa direktoryo ng WP "
1002
+ "BackItUp (wp-content / wp backitup backup) gamit ang FTP. Kapag tapos na ang "
1003
+ "pag-upload ng lahat ng backup file, i - refresh ang pahinang ito."
1004
+
1005
+ #: views/restore.php:178
1006
+ #, php-format
1007
+ msgid "This feature requires %s version %s or later"
1008
+ msgstr ""
1009
+ "Ang feature na ito ay nangangailangan ng %s bersyon %s o mas nauna pang "
1010
+ "bersyon "
1011
+
1012
+ #: views/restore.php:184
1013
+ msgid "Drop backup files here"
1014
+ msgstr "Ilagay ang backup files dito"
1015
+
1016
+ #: views/restore.php:190
1017
+ msgid ""
1018
+ "* Reload this page when done uploading to see new backups appear in the "
1019
+ "Available Backups section above. "
1020
+ msgstr ""
1021
+ "I-reload ang pahinang ito kapag tapos na ang pag-upload upang makita ang "
1022
+ "mga bagong backup sa available section ng backups na nasa itaas. "
1023
+
1024
+ #: views/restore.php:219
1025
+ msgid "Preparing for restore"
1026
+ msgstr "Paghahanda para maibalik sa orihinal "
1027
+
1028
+ #: views/restore.php:220
1029
+ msgid "Unzipping backup set"
1030
+ msgstr "Pag unzip ng backup set"
1031
+
1032
+ #: views/restore.php:221
1033
+ msgid "Validating backup file"
1034
+ msgstr "Pagpapatunay sa backup file"
1035
+
1036
+ #: views/restore.php:222
1037
+ msgid "Deactivating plugins"
1038
+ msgstr "Tanggalin ang pagka-aktibo ng plugin"
1039
+
1040
+ #: views/restore.php:223
1041
+ msgid "Creating database restore point"
1042
+ msgstr "Paglikha ng database restore point"
1043
+
1044
+ #: views/restore.php:224
1045
+ msgid "Staging content files"
1046
+ msgstr "Pagsasaayos ng mga nilalaman na files "
1047
+
1048
+ #: views/restore.php:225
1049
+ msgid "Restoring content files"
1050
+ msgstr "Ipinapanumbalik ang nilalaman na mga file"
1051
+
1052
+ #: views/restore.php:226
1053
+ msgid "Restoring database"
1054
+ msgstr "Ipinapanumbalik ang database"
1055
+
1056
+ #: views/restore.php:227
1057
+ msgid "Updating current user info"
1058
+ msgstr "Ina-update ang mga kasalukuyang impormasyon ng user"
1059
+
1060
+ #: views/restore.php:228
1061
+ msgid "Updating site URL"
1062
+ msgstr "Ina- update ang site URL "
1063
+
1064
+ #: views/restore.php:230
1065
+ msgid "Updating permalinks"
1066
+ msgstr "Ina-update ang permalinks"
1067
+
1068
+ #: views/restore.php:236
1069
+ msgid "Error 201: No file selected"
1070
+ msgstr "Error 201: Walang napiling file"
1071
+
1072
+ #: views/restore.php:237
1073
+ msgid "Error 202: Your file could not be uploaded"
1074
+ msgstr "Error 202: Hindi ma-i- upload ang iyong file"
1075
+
1076
+ #: views/restore.php:238
1077
+ msgid "Error 203: Your backup could not be unzipped"
1078
+ msgstr "Error 203: Ang iyong backup ay hindi mai-unzipped"
1079
+
1080
+ #: views/restore.php:239
1081
+ msgid ""
1082
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
1083
+ "valid backup"
1084
+ msgstr ""
1085
+ "Error 204: Ang iyong backup ay hindi wasto. Mangyaring siguraduhin na "
1086
+ "pinili mo ang isang tunay na backup."
1087
+
1088
+ #: views/restore.php:240
1089
+ msgid "Error 205: Cannot create restore point"
1090
+ msgstr "Error 205: Hindi makalikha ng restore point"
1091
+
1092
+ #: views/restore.php:241
1093
+ msgid "Error 206: Unable to connect to your database"
1094
+ msgstr "Error 206: Hindi makakonekta sa iyong database"
1095
+
1096
+ #: views/restore.php:242
1097
+ msgid ""
1098
+ "Error 207: Unable to get current site URL from database. Please try again"
1099
+ msgstr ""
1100
+ "Error 207: Hindi makuha ang kasalukuyang URL site mula sa database. "
1101
+ "Mangyaring subukan muli"
1102
+
1103
+ #: views/restore.php:243
1104
+ msgid ""
1105
+ "Error 208: Unable to get current home URL from database. Please try again"
1106
+ msgstr ""
1107
+ "Error 208: Hindi makuha ang kasalukuyang home URL mula sa database. "
1108
+ "Mangyaring subukan muli"
1109
+
1110
+ #: views/restore.php:244
1111
+ msgid ""
1112
+ "Error 209: Unable to get current user ID from database. Please try again"
1113
+ msgstr ""
1114
+ "Error 209: Hindi makuha ang kasalukuyang user ID mula sa database. "
1115
+ "Mangyaring subukan muli"
1116
+
1117
+ #: views/restore.php:245
1118
+ msgid ""
1119
+ "Error 210: Unable to get current user password from database. Please try "
1120
+ "again"
1121
+ msgstr ""
1122
+ "Error 210: Hindi makuha ang kasalukuyang user password mula sa database. "
1123
+ "Mangyaring subukan muli"
1124
+
1125
+ #: views/restore.php:246
1126
+ msgid ""
1127
+ "Error 211: Unable to get current user email from database. Please try again"
1128
+ msgstr ""
1129
+ "Error 211: Hindi makuha ang kasalukuyang user email mula sa database. "
1130
+ "Mangyaring subukan muli"
1131
+
1132
+ #: views/restore.php:247
1133
+ msgid ""
1134
+ "Error 212: Unable to import your database. This may require importing the "
1135
+ "file manually"
1136
+ msgstr ""
1137
+ "Error 212: Hindi ma-import ang iyong database. Maaaring mangailangan ng mano "
1138
+ "-mano na pag-import ng file"
1139
+
1140
+ #: views/restore.php:248
1141
+ msgid ""
1142
+ "Warning 213: Unable to update your site URL value. Please check your "
1143
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1144
+ "correct"
1145
+ msgstr ""
1146
+ "Babala 213: Hindi ma-update ang iyong site URL value. Mangyaring suriin ang "
1147
+ "pangkalahatang mga setting ng WordPress upang matiyak na ang iyong site at "
1148
+ "WordPress URL ay tama"
1149
+
1150
+ #: views/restore.php:249
1151
+ msgid ""
1152
+ "Warning 214: Unable to update your home URL value. Please check your "
1153
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1154
+ "correct"
1155
+ msgstr ""
1156
+ "Babala 214: Hindi ma-update ang iyong home URL value. Mangyaring suriin ang "
1157
+ "pangkalahatang mga setting ng iyong WordPress upang matiyak na ang iyong "
1158
+ "site at WordPress URL ay tama"
1159
+
1160
+ #: views/restore.php:250
1161
+ msgid ""
1162
+ "Warning 215: Unable to update your user information. This may require you to "
1163
+ "login with the admin username and password that was used when the backup was "
1164
+ "created"
1165
+ msgstr ""
1166
+ "Babala 215: Hindi ma-update ang iyong impormasyon bilang user. Kinakailangan "
1167
+ "na ikaw ay mag-login gamit ang admin username at password na ginagamit "
1168
+ "kapag nagsasagawa ng backup. "
1169
+
1170
+ #: views/restore.php:251
1171
+ msgid "Error 216: Database not found in backup"
1172
+ msgstr "Error 216: Ang database ay hindi matagpuan sa backup"
1173
+
1174
+ #: views/restore.php:252
1175
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1176
+ msgstr "Babala 217: Hindi matanggal ang umiiral na direktoryo ng wp-content"
1177
+
1178
+ #: views/restore.php:253
1179
+ msgid ""
1180
+ "Error 218: Unable to create new wp-content directory. Please check your "
1181
+ "CHMOD settings in /wp-content/"
1182
+ msgstr ""
1183
+ "Error 218: Hindi makalikha ng mga bagong direktoryo ng wp-content. "
1184
+ "Mangyaring suriin ang mga setting ng CHMOD sa / wp-content / "
1185
+
1186
+ #: views/restore.php:254
1187
+ msgid "Error 219: Unable to import wp-content. Please try again"
1188
+ msgstr "Error 219: Hindi ma - import ang wp-content. Mangyaring subukan muli "
1189
+
1190
+ #: views/restore.php:255
1191
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1192
+ msgstr ""
1193
+ "Babala 220: Hindi malinisan ang import direktoryo Walang kinakailangang "
1194
+ "aksyon"
1195
+
1196
+ #: views/restore.php:256
1197
+ #, php-format
1198
+ msgid ""
1199
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1200
+ "This MUST be changed in your wp-config.php file before you will be able to "
1201
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1202
+ "> FAQs</a> for more info."
1203
+ msgstr ""
1204
+ "Error 221: Ang Table prefix value sa wp-config.php ay naiiba mula sa backup. "
1205
+ "Ito ay dapat na mabago sa iyong wp-config.php file bago mo magagawang ibalik "
1206
+ "ang iyong site. Tignan ang www.wpbackitup.com <a href =\"%s\" target="
1207
+ "\"_blank\"> FAQs </a> para sa karagdagang impormasyon."
1208
+
1209
+ #: views/restore.php:257
1210
+ msgid "Error 222: Unable to create restore folder"
1211
+ msgstr "Error 222: Hindi makalikha ng restore folder"
1212
+
1213
+ #: views/restore.php:258
1214
+ msgid ""
1215
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1216
+ "restore the database to its previous state but were unsuccessful. Please "
1217
+ "contact WP BackItUp customer support and do not attempt to perform any "
1218
+ "further restores"
1219
+ msgstr ""
1220
+ "Error 223: May naganap na error habang isinasagawa ang pagbabalik sa "
1221
+ "orihinal ng database . Ang WP BackItUp ay sumubok na ibalik sa orihinal "
1222
+ "ang database sa kanyang dating estado ngunit ito ay hindi matagumpay. "
1223
+ "Mangyaring makipag-ugnayan sa WP BackItUp customer suport para sa tulong at "
1224
+ "wag subukin na magsagawa ng anumang karagdagang restores"
1225
+
1226
+ #: views/restore.php:259
1227
+ msgid ""
1228
+ "Error 224: An error occurred during the restore, however, we have "
1229
+ "successfully restored your database to the previous state"
1230
+ msgstr ""
1231
+ "Error 224: May naganap na error habang ibinabalik sa orihinal ang database, "
1232
+ "gayunpaman, matagumpay na naipanumbalik ang iyong database sa dating estado "
1233
+ "nito"
1234
+
1235
+ #: views/restore.php:260
1236
+ msgid ""
1237
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1238
+ msgstr ""
1239
+ "Error 225: Ang opsyon na pagbabalik sa orihinal ay magagamit lamang ng mga "
1240
+ "lisensiyadong mga gumagamit WP BackItUp"
1241
+
1242
+ #: views/restore.php:261
1243
+ msgid ""
1244
+ "Error 226: Restore cannot proceed because your backup was created using a "
1245
+ "different version of WordPress"
1246
+ msgstr ""
1247
+ "Error 226: Ang pagbabalik sa orihinal ay hindi maaaring magpatuloy dahil ang "
1248
+ "iyong backup ay nilikha gamit ang ibang bersyon ng WordPress"
1249
+
1250
+ #: views/restore.php:262
1251
+ msgid ""
1252
+ "Error 227: Restore cannot proceed because your backup was created using a "
1253
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1254
+ "help convert this backup to the current version"
1255
+ msgstr ""
1256
+ "Error 227: Hindi maaaring magpatuloy ang restore dahil ang iyong backup ay "
1257
+ "nilikha gamit ang ibang bersyon ng WP BackItUp. Mangyaring makipag-ugnayan "
1258
+ "sa WP BackItUp suport upang matulungan kayo na ma-i- convert ang backup "
1259
+ "na ito sa kasalukuyang bersyon"
1260
+
1261
+ #: views/restore.php:263
1262
+ msgid ""
1263
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1264
+ "restore. However, we were able to successfully revert the database back to "
1265
+ "its original state . This error may require importing the database manually"
1266
+ msgstr ""
1267
+ "Error 230: Ang WP BackItUp ay nagkaroon ng hindi inaasahang error habang "
1268
+ "ibinabalik sa orihinal ang database. Gayunman, matagumpay na nanumbalik "
1269
+ "ang database sa orihinal na katayuan nito. Maaaring mangailangan na mano-"
1270
+ "mano na mag -import ng database"
1271
+
1272
+ #: views/restore.php:264
1273
+ msgid ""
1274
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1275
+ "utility available. Please contact support"
1276
+ msgstr ""
1277
+ "Error 235: Ang WP BackItUp ay hindi magagawang magpatuloy dahil walang "
1278
+ "available na zip utility. Mangyaring makipag-ugnayan sa suport para sa "
1279
+ "tulong"
1280
+
1281
+ #: views/restore.php:265
1282
+ msgid ""
1283
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1284
+ "running. Please wait for the backup to complete and then try again"
1285
+ msgstr ""
1286
+ "Error 250: Hindi maaaring simulan ng WP BackItUp ang pagbabalik sa "
1287
+ "orihinal dahil my kasalukuyang backup na nangyayari. Mangyaring maghintay "
1288
+ "na makumpleto ang backup at pagkatapos ay subukan ulit"
1289
+
1290
+ #: views/restore.php:267
1291
+ msgid ""
1292
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1293
+ "manifest is empty"
1294
+ msgstr ""
1295
+ "Error 251: Hindi maaaring simulan ng WP BackItUp ang pagbabalik sa "
1296
+ "orihinal dahil ang backup manifest ay walang laman"
1297
+
1298
+ #: views/restore.php:268
1299
+ msgid ""
1300
+ "Error 252: At least one zip file is missing from your backup set. Please "
1301
+ "make sure to upload all zip files that were part of this backup"
1302
+ msgstr ""
1303
+ "Error 252: Hindi bababa sa isang zip file ay nawawala mula sa iyong backup "
1304
+ "set. Pakitiyak na i-upload ang lahat ng zip file na bahagi ng backup na ito"
1305
+
1306
+ #: views/restore.php:269
1307
+ msgid ""
1308
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1309
+ "Please make sure to upload only zip files that were part of this backup"
1310
+ msgstr ""
1311
+ "Error 253: Ang backup set ay naglalaman ng isang zip file na wala sa "
1312
+ "manifest. Pakitiyak na i-upload lamang ang zip file na bahagi ng backup na "
1313
+ "ito "
1314
+
1315
+ #: views/restore.php:271
1316
+ msgid ""
1317
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1318
+ "restore logs to see what WP BackItUp was unable to restore"
1319
+ msgstr ""
1320
+ "Babala 300: Hindi maibalik ang lahat ng nilalaman ng WordPress. Mangyaring "
1321
+ "suriin ang iyong logs ng restore para makita kung ano ang hindi nagawang "
1322
+ "ibalik sa orihinal ng WP BackItUp . "
1323
+
1324
+ #: views/restore.php:272
1325
+ msgid ""
1326
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1327
+ "to see what WP BackItUp was unable to restore"
1328
+ msgstr ""
1329
+ "Babala 305: Hindi maibalik ang lahat ng mga plugin. Mangyaring suriin ang "
1330
+ "iyong logs sa pagbabalik sa orihinal para makita kung ano ang hindi "
1331
+ "nagawang ibalik ng WP BackItUp"
1332
+
1333
+ #: views/restore.php:274
1334
+ msgid "Error 2001: Unable to prepare site for restore"
1335
+ msgstr "Error 2001: Hindi maihanda ang site para maibalik sa orihinal "
1336
+
1337
+ #: views/restore.php:275
1338
+ msgid "Error 2002: Unable to unzip backup"
1339
+ msgstr "Error 2002: Hindi magawang i-unzip ang backup"
1340
+
1341
+ #: views/restore.php:276
1342
+ msgid "Error 2003: Unable to validate backup"
1343
+ msgstr "Error 2003: Hindi ma-validate ang backup"
1344
+
1345
+ #: views/restore.php:277
1346
+ msgid "Error 2004: Unable to create restore point"
1347
+ msgstr "Error 2004: Hindi makalikha ng restore point"
1348
+
1349
+ #: views/restore.php:278
1350
+ msgid "Error 2005: Unable to stage wp-content"
1351
+ msgstr "Error 2005: Hindi magawang mahanda ang wp-content"
1352
+
1353
+ #: views/restore.php:279
1354
+ msgid "Error 2006: Unable to restore content files"
1355
+ msgstr "Error 2006: Hindi maibabalik sa orihinal ang nilalaman na file "
1356
+
1357
+ #: views/restore.php:280
1358
+ msgid "Error 2007: Unable to restore database"
1359
+ msgstr "Error 2007: Hindi nagawang ibalik ang database"
1360
+
1361
+ #: views/restore.php:281
1362
+ msgid "Error 2999: Unexpected error encountered"
1363
+ msgstr "Error 2999: Hindi inaasahang error ang naganap "
1364
+
1365
+ #: views/restore.php:288
1366
+ msgid ""
1367
+ "Restore completed successfully. If you are prompted to login please do so "
1368
+ "with your current username and password"
1369
+ msgstr ""
1370
+ "Matagumpay na nakumpleto ang pagbabalik sa orihinal. Kung ikaw ay nadiktahan "
1371
+ "na mag-login mangyaring gawin ito gamit ang iyong kasalukuyang username at "
1372
+ "password"
1373
+
1374
+ #: views/settings.php:16
1375
+ #, php-format
1376
+ msgid "%s Settings"
1377
+ msgstr "%s Mga Setting"
1378
+
1379
+ #: views/settings.php:43
1380
+ msgid "Email Notifications"
1381
+ msgstr "Abiso mula sa Email"
1382
+
1383
+ #: views/settings.php:44
1384
+ msgid ""
1385
+ "Please enter your email address if you would like to receive backup email "
1386
+ "notifications."
1387
+ msgstr ""
1388
+ "Pakilagay ang iyong email address kung nais mong makatanggap ng mga abiso "
1389
+ "sa email tungkol sa backup. "
1390
+
1391
+ #: views/settings.php:45
1392
+ msgid ""
1393
+ "Backup email notifications will be sent for every backup and will contain "
1394
+ "status information related to the backup."
1395
+ msgstr ""
1396
+ "Magpapadala ng abiso sa email sa bawat backup at naglalaman ito ng "
1397
+ "impormasyon na may kaugnayan sa backup."
1398
+
1399
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1400
+ #: views/settings.php:114
1401
+ msgid "Save"
1402
+ msgstr "I-save"
1403
+
1404
+ #: views/settings.php:63
1405
+ msgid "Backup Retention"
1406
+ msgstr "Backup Retention"
1407
+
1408
+ #: views/settings.php:64
1409
+ msgid ""
1410
+ "Enter the number of backup archives that you would like to remain on the "
1411
+ "server."
1412
+ msgstr "Ilagay ang bilang ng backup archive na nais mong manatili sa server."
1413
+
1414
+ #: views/settings.php:65
1415
+ msgid ""
1416
+ "Many hosts limit the amount of space that you can take up on their servers. "
1417
+ "This option tells WP BackItUp the maximum number of backup archives that "
1418
+ "should remain on your hosts server. Don't worry, we will always remove the "
1419
+ "oldest backup archives first."
1420
+ msgstr ""
1421
+ "Maraming mga host ang nililimitahan ang puwang na maaari mong kunin sa "
1422
+ "kanilang server. Ang opsyon na ito ay nagsasabi sa WP BackItUp ng "
1423
+ "pinakamataas na bilang ng mga backup archives na dapat manatili sa iyong mga "
1424
+ "host server. Huwag mag-alala, kami ay palaging nagtatangal muna ng "
1425
+ "pinakaluma na backup archives. "
1426
+
1427
+ #: views/settings.php:84
1428
+ msgid "Turn on logging?"
1429
+ msgstr "Mangyaring i -on ang logging ?"
1430
+
1431
+ #: views/settings.php:85
1432
+ msgid "Yes"
1433
+ msgstr "Oo"
1434
+
1435
+ #: views/settings.php:86
1436
+ msgid "No"
1437
+ msgstr "Hindi"
1438
+
1439
+ #: views/settings.php:87
1440
+ msgid ""
1441
+ "This option should only be turned on when troubleshooting issues with "
1442
+ "WPBackItUp support."
1443
+ msgstr ""
1444
+ "Ang opsyon na ito ay dapat i- on kapag nag -troubleshoot ng mga isyu sa "
1445
+ "WPBackItUp. "
1446
+
1447
+ #: views/settings.php:92
1448
+ msgid "Advanced Settings"
1449
+ msgstr "Advanced na Mga Setting"
1450
+
1451
+ #: views/settings.php:93
1452
+ msgid ""
1453
+ "These options should only be changed when working with WP BackItUp support."
1454
+ msgstr ""
1455
+ "Ang opsyon na ito ay babaguhin lamang sa tuwing nakikipagugnayan sa WP "
1456
+ "BackItUp support."
1457
+
1458
+ #: views/settings.php:96
1459
+ msgid "Plugins Batch Size"
1460
+ msgstr "Sukat ng Pangkat ng Plugins "
1461
+
1462
+ #: views/settings.php:101
1463
+ msgid "Themes Batch Size"
1464
+ msgstr "Sukat ng Pangkat ng Tema"
1465
+
1466
+ #: views/settings.php:106
1467
+ msgid "Uploads Batch Size"
1468
+ msgstr "Sukat ng Pangkat ng Uploads "
1469
+
1470
+ #: views/settings.php:111
1471
+ msgid "Others Batch Size"
1472
+ msgstr "Sukat ng Iba pang Pangkat "
1473
+
1474
+ #: views/support.php:16
1475
+ #, php-format
1476
+ msgid "%s Support"
1477
+ msgstr "%s Support"
1478
+
1479
+ #: views/support.php:35
1480
+ msgid "Support email sent successfully!"
1481
+ msgstr "Matagumpay na naipadala ang email sa suport . "
1482
+
1483
+ #: views/support.php:48
1484
+ msgid "Email Logs to Support"
1485
+ msgstr "Mag email ng logs sa suport para sa tulong"
1486
+
1487
+ #: views/support.php:49
1488
+ msgid "This form should be used to send log files to support only."
1489
+ msgstr ""
1490
+ "Ang form na ito ay dapat gamitin upang magpadala ng log files sa suport para "
1491
+ "sa tulong. "
1492
+
1493
+ #: views/support.php:50
1494
+ msgid ""
1495
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1496
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1497
+ "using this form."
1498
+ msgstr ""
1499
+ "Mangyaring siguraduhin na magbukas ng support ticket sa pamamagitan ng WP "
1500
+ "BackItUp <a href=\"https://www.wpbackitup.com/support\" target=\"_blank\"> "
1501
+ "suport portal. </a> Bago gamitin ang form na ito."
1502
+
1503
+ #: views/support.php:51
1504
+ msgid ""
1505
+ "The ticket id you receive from your support request should be entered in the "
1506
+ "ticket id field below."
1507
+ msgstr ""
1508
+ "Ang mga ticket id na natanggap mo mula sa suport ay dapat na ilagay sa "
1509
+ "patlang ng ticket id ."
1510
+
1511
+ #: views/support.php:52
1512
+ msgid "your email address"
1513
+ msgstr "ang iyong email address"
1514
+
1515
+ #: views/support.php:62
1516
+ msgid "support ticket id"
1517
+ msgstr "Suport ticket id"
1518
+
1519
+ #: views/support.php:72
1520
+ msgid "problem description or additional information"
1521
+ msgstr "paglalarawan ng problema o karagdagang impormasyon"
1522
+
1523
+ #: views/support.php:83
1524
+ msgid "Send"
1525
+ msgstr "Ipadala"
1526
+
1527
+ #: views/support.php:86
1528
+ msgid "Please register your version of WP BackItUp for access to support."
1529
+ msgstr ""
1530
+ "Mangyaring magrehistro ng iyong bersyon ng WP BackItUp upang ma-access ang "
1531
+ "suport para sa tulong."
1532
+
1533
+ #: views/support.php:90
1534
+ msgid "Premium customers receive priority support."
1535
+ msgstr "Ang mga premium customer ay bibigyan ng unang tulong "
1536
+
1537
+ #: wp-backitup.php:97 wp-backitup.php:98
1538
+ #, php-format
1539
+ msgid "Every %s hours"
1540
+ msgstr "Kada %s oras "
languages/wp-backitup.pot ADDED
@@ -0,0 +1,1331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Project-Id-Version: WPBackItUp\n"
5
+ "POT-Creation-Date: 2015-08-14 10:28-0400\n"
6
+ "PO-Revision-Date: 2015-08-04 16:26-0400\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: WPBackItUp <translations@wpbackitup.com>\n"
9
+ "Language: en_US\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 1.8.4\n"
14
+ "X-Poedit-Basepath: ..\n"
15
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
+ "X-Poedit-KeywordsList: _;__;_e\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
20
+ #: views/backup.php:179
21
+ msgid "Backup"
22
+ msgstr ""
23
+
24
+ #: lib/includes/class-wpbackitup-admin.php:175
25
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
26
+ msgid "Restore"
27
+ msgstr ""
28
+
29
+ #: lib/includes/class-wpbackitup-admin.php:179
30
+ msgid "Support"
31
+ msgstr ""
32
+
33
+ #: lib/includes/class-wpbackitup-admin.php:182
34
+ msgid "Settings"
35
+ msgstr ""
36
+
37
+ #: lib/includes/class-wpbackitup-admin.php:203
38
+ msgid ""
39
+ "The backup you have selected exceeds what your host allows you to upload."
40
+ msgstr ""
41
+
42
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
43
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
44
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
45
+ #: views/backup.php:312 views/backup.php:313
46
+ msgid "Warning"
47
+ msgstr ""
48
+
49
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
50
+ msgid "Error"
51
+ msgstr ""
52
+
53
+ #: lib/includes/class-wpbackitup-admin.php:206
54
+ msgid "Response"
55
+ msgstr ""
56
+
57
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
58
+ #: views/restore.php:205
59
+ msgid "Status"
60
+ msgstr ""
61
+
62
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
63
+ msgid "Download"
64
+ msgstr ""
65
+
66
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
67
+ #: views/restore.php:111
68
+ msgid "Delete"
69
+ msgstr ""
70
+
71
+ #: lib/includes/class-wpbackitup-admin.php:211
72
+ msgid "(JS997) Unexpected error"
73
+ msgstr ""
74
+
75
+ #: lib/includes/class-wpbackitup-admin.php:212
76
+ msgid "(JS998) Unexpected error"
77
+ msgstr ""
78
+
79
+ #: lib/includes/class-wpbackitup-admin.php:213
80
+ msgid "(JS999) An unexpected error has occurred"
81
+ msgstr ""
82
+
83
+ #: lib/includes/class-wpbackitup-admin.php:214
84
+ msgid "Scheduled has been saved."
85
+ msgstr ""
86
+
87
+ #: lib/includes/class-wpbackitup-admin.php:215
88
+ msgid "Scheduled was not saved."
89
+ msgstr ""
90
+
91
+ #: lib/includes/class-wpbackitup-admin.php:216
92
+ msgid "Are you sure you want to restore your site?"
93
+ msgstr ""
94
+
95
+ #: lib/includes/class-wpbackitup-admin.php:217
96
+ msgid "Are you sure ?"
97
+ msgstr ""
98
+
99
+ #: lib/includes/class-wpbackitup-admin.php:218
100
+ msgid "This file cannot be delete!"
101
+ msgstr ""
102
+
103
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
104
+ msgid "View Log"
105
+ msgstr ""
106
+
107
+ #: lib/includes/class-wpbackitup-admin.php:220
108
+ msgid "New Backup!"
109
+ msgstr ""
110
+
111
+ #: lib/includes/class-wpbackitup-admin.php:221
112
+ msgid "Uploaded Backup"
113
+ msgstr ""
114
+
115
+ #: lib/includes/class-wpbackitup-admin.php:480
116
+ msgid "Backup Queued"
117
+ msgstr ""
118
+
119
+ #: lib/includes/class-wpbackitup-admin.php:482
120
+ msgid "Backup could not be queued"
121
+ msgstr ""
122
+
123
+ #: lib/includes/class-wpbackitup-admin.php:485
124
+ msgid "Backup already in queue"
125
+ msgstr ""
126
+
127
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
128
+ msgid "Backup Cancelled"
129
+ msgstr ""
130
+
131
+ #: lib/includes/class-wpbackitup-admin.php:535
132
+ msgid "No backup file selected."
133
+ msgstr ""
134
+
135
+ #: lib/includes/class-wpbackitup-admin.php:542
136
+ msgid "No user id found."
137
+ msgstr ""
138
+
139
+ #: lib/includes/class-wpbackitup-admin.php:553
140
+ msgid "Restore Queued"
141
+ msgstr ""
142
+
143
+ #: lib/includes/class-wpbackitup-admin.php:555
144
+ msgid "Restore could not be queued"
145
+ msgstr ""
146
+
147
+ #: lib/includes/class-wpbackitup-admin.php:558
148
+ msgid "Restore already in queue"
149
+ msgstr ""
150
+
151
+ #: lib/includes/class-wpbackitup-admin.php:743
152
+ msgid "No response log found."
153
+ msgstr ""
154
+
155
+ #: lib/includes/class-wpbackitup-admin.php:836
156
+ #: lib/includes/class-wpbackitup-admin.php:844
157
+ #: lib/includes/class-wpbackitup-admin.php:873
158
+ #: lib/includes/class-wpbackitup-admin.php:880
159
+ #: lib/includes/class-wpbackitup-admin.php:887
160
+ #: lib/includes/class-wpbackitup-admin.php:894
161
+ msgid "Please enter a number"
162
+ msgstr ""
163
+
164
+ #: lib/includes/class-wpbackitup-admin.php:865
165
+ #: lib/includes/class-wpbackitup-admin.php:972
166
+ msgid "Please enter a valid email"
167
+ msgstr ""
168
+
169
+ #: lib/includes/class-wpbackitup-admin.php:979
170
+ msgid "Please enter your support ticket id"
171
+ msgstr ""
172
+
173
+ #: lib/includes/class-wpbackitup-admin.php:984
174
+ msgid "Please only enter numbers in this field"
175
+ msgstr ""
176
+
177
+ #: lib/includes/class-wpbackitup-admin.php:1645
178
+ msgid "License is invalid."
179
+ msgstr ""
180
+
181
+ #: lib/includes/class-wpbackitup-admin.php:1650
182
+ msgid "License has expired."
183
+ msgstr ""
184
+
185
+ #: lib/includes/class-wpbackitup-admin.php:1655
186
+ msgid "Activation limit has been reached."
187
+ msgstr ""
188
+
189
+ #: lib/includes/handler_upload.php:29
190
+ msgid "Invalid Nonce"
191
+ msgstr ""
192
+
193
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
194
+ msgid "Upload directory is not writable, or does not exist."
195
+ msgstr ""
196
+
197
+ #: lib/includes/handler_upload.php:80
198
+ #, php-format
199
+ msgid "Error: %s"
200
+ msgstr ""
201
+
202
+ #: lib/includes/handler_upload.php:80
203
+ msgid "File could not be uploaded"
204
+ msgstr ""
205
+
206
+ #: lib/includes/handler_upload.php:141
207
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
208
+ msgstr ""
209
+
210
+ #: lib/includes/handler_upload.php:161
211
+ msgid "Could not import file into WP BackItUp backup set."
212
+ msgstr ""
213
+
214
+ #: lib/includes/job_backup.php:851
215
+ msgid "Preparing for backup...Done"
216
+ msgstr ""
217
+
218
+ #: lib/includes/job_backup.php:852
219
+ msgid "Backing up database...Done"
220
+ msgstr ""
221
+
222
+ #: lib/includes/job_backup.php:853
223
+ msgid "Creating backup information file...Done"
224
+ msgstr ""
225
+
226
+ #: lib/includes/job_backup.php:854
227
+ msgid "Backing up themes...Done"
228
+ msgstr ""
229
+
230
+ #: lib/includes/job_backup.php:855
231
+ msgid "Backing up plugins...Done"
232
+ msgstr ""
233
+
234
+ #: lib/includes/job_backup.php:856
235
+ msgid "Backing up uploads...Done"
236
+ msgstr ""
237
+
238
+ #: lib/includes/job_backup.php:857
239
+ msgid "Backing up miscellaneous files...Done"
240
+ msgstr ""
241
+
242
+ #: lib/includes/job_backup.php:858
243
+ msgid "Finalizing backup...Done"
244
+ msgstr ""
245
+
246
+ #: lib/includes/job_backup.php:859
247
+ msgid "Validating backup...Done"
248
+ msgstr ""
249
+
250
+ #: lib/includes/job_backup.php:860
251
+ msgid "Cleaning up...Done"
252
+ msgstr ""
253
+
254
+ #: lib/includes/job_backup.php:870
255
+ #, php-format
256
+ msgid "%s - Backup completed successfully."
257
+ msgstr ""
258
+
259
+ #: lib/includes/job_backup.php:871
260
+ msgid "Your backup completed successfully."
261
+ msgstr ""
262
+
263
+ #: lib/includes/job_backup.php:874
264
+ #, php-format
265
+ msgid "%s - Backup did not complete successfully."
266
+ msgstr ""
267
+
268
+ #: lib/includes/job_backup.php:875
269
+ msgid "Your backup did not complete successfully."
270
+ msgstr ""
271
+
272
+ #: lib/includes/job_backup.php:880
273
+ #, php-format
274
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
275
+ msgstr ""
276
+
277
+ #: lib/includes/job_backup.php:881
278
+ msgid "Backup date:"
279
+ msgstr ""
280
+
281
+ #: lib/includes/job_backup.php:882
282
+ msgid "Number of backups completed with WP BackItUp:"
283
+ msgstr ""
284
+
285
+ #: lib/includes/job_backup.php:884
286
+ msgid "Completion Code:"
287
+ msgstr ""
288
+
289
+ #: lib/includes/job_backup.php:885
290
+ msgid "WP BackItUp Version:"
291
+ msgstr ""
292
+
293
+ #: lib/includes/job_backup.php:891
294
+ msgid "Steps Completed"
295
+ msgstr ""
296
+
297
+ #: lib/includes/job_backup.php:912
298
+ #, php-format
299
+ msgid "Checkout %s for info about WP BackItUp and our other products."
300
+ msgstr ""
301
+
302
+ #: lib/includes/job_backup.php:1088
303
+ msgid ""
304
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
305
+ "settings of your wp-backitup backup directory"
306
+ msgstr ""
307
+
308
+ #: lib/includes/job_backup.php:1089
309
+ msgid ""
310
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
311
+ "your wp-backitup plugin directory"
312
+ msgstr ""
313
+
314
+ #: lib/includes/job_backup.php:1090
315
+ msgid "(103) Unable to backup your files. Please try again"
316
+ msgstr ""
317
+
318
+ #: lib/includes/job_backup.php:1091
319
+ msgid "(104) Unable to export your database. Please try again"
320
+ msgstr ""
321
+
322
+ #: lib/includes/job_backup.php:1092
323
+ msgid "(105) Unable to export site information file. Please try again"
324
+ msgstr ""
325
+
326
+ #: lib/includes/job_backup.php:1093
327
+ msgid "(106) Unable to cleanup your backup directory"
328
+ msgstr ""
329
+
330
+ #: lib/includes/job_backup.php:1094
331
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
332
+ msgstr ""
333
+
334
+ #: lib/includes/job_backup.php:1095
335
+ msgid "(108) Unable to backup your site data files. Please try again"
336
+ msgstr ""
337
+
338
+ #: lib/includes/job_backup.php:1096
339
+ msgid "(109) Unable to finalize backup. Please try again"
340
+ msgstr ""
341
+
342
+ #: lib/includes/job_backup.php:1097
343
+ msgid ""
344
+ "(114) Your database was accessible but an export could not be created. "
345
+ "Please contact support by clicking the get support link on the right. Please "
346
+ "let us know who your host is when you submit the request"
347
+ msgstr ""
348
+
349
+ #: lib/includes/job_backup.php:1098
350
+ msgid "(120) Unable to backup your themes. Please try again"
351
+ msgstr ""
352
+
353
+ #: lib/includes/job_backup.php:1099
354
+ msgid "(121) Unable to backup your plugins. Please try again"
355
+ msgstr ""
356
+
357
+ #: lib/includes/job_backup.php:1100
358
+ msgid "(122) Unable to backup your uploads. Please try again"
359
+ msgstr ""
360
+
361
+ #: lib/includes/job_backup.php:1101
362
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
363
+ msgstr ""
364
+
365
+ #: lib/includes/job_backup.php:1102
366
+ msgid ""
367
+ "(125) Unable to compress your backup because there is no zip utility "
368
+ "available. Please contact support"
369
+ msgstr ""
370
+
371
+ #: lib/includes/job_backup.php:1103
372
+ msgid "(126) Unable to validate your backup. Please try again"
373
+ msgstr ""
374
+
375
+ #: lib/includes/job_backup.php:1104
376
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
377
+ msgstr ""
378
+
379
+ #: lib/includes/job_backup.php:1105
380
+ msgid "(128) Unable to create job control record. Please try again"
381
+ msgstr ""
382
+
383
+ #: lib/includes/job_backup.php:1107
384
+ msgid ""
385
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
386
+ "settings of your wp-backitup backup directory"
387
+ msgstr ""
388
+
389
+ #: lib/includes/job_backup.php:1108
390
+ msgid ""
391
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
392
+ "your wp-backitup plugin directory"
393
+ msgstr ""
394
+
395
+ #: lib/includes/job_backup.php:1109
396
+ msgid "(2103) Unable to backup your files. Please try again"
397
+ msgstr ""
398
+
399
+ #: lib/includes/job_backup.php:1110
400
+ msgid "(2104) Unable to export your database. Please try again"
401
+ msgstr ""
402
+
403
+ #: lib/includes/job_backup.php:1111
404
+ msgid "(2105) Unable to export site information file. Please try again"
405
+ msgstr ""
406
+
407
+ #: lib/includes/job_backup.php:1112
408
+ msgid "(2106) Unable to cleanup your backup directory"
409
+ msgstr ""
410
+
411
+ #: lib/includes/job_backup.php:1113
412
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
413
+ msgstr ""
414
+
415
+ #: lib/includes/job_backup.php:1114
416
+ msgid "(2108) Unable to backup your site data files. Please try again"
417
+ msgstr ""
418
+
419
+ #: lib/includes/job_backup.php:1115
420
+ msgid "(2109) Unable to finalize backup. Please try again"
421
+ msgstr ""
422
+
423
+ #: lib/includes/job_backup.php:1116
424
+ msgid ""
425
+ "(2114) Your database was accessible but an export could not be created. "
426
+ "Please contact support by clicking the get support link on the right. Please "
427
+ "let us know who your host is when you submit the request"
428
+ msgstr ""
429
+
430
+ #: lib/includes/job_backup.php:1117
431
+ msgid "(2120) Unable to backup your themes. Please try again"
432
+ msgstr ""
433
+
434
+ #: lib/includes/job_backup.php:1118
435
+ msgid "(2121) Unable to backup your plugins. Please try again"
436
+ msgstr ""
437
+
438
+ #: lib/includes/job_backup.php:1119
439
+ msgid "(2122) Unable to backup your uploads. Please try again"
440
+ msgstr ""
441
+
442
+ #: lib/includes/job_backup.php:1120
443
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
444
+ msgstr ""
445
+
446
+ #: lib/includes/job_backup.php:1121
447
+ msgid ""
448
+ "(2125) Unable to compress your backup because there is no zip utility "
449
+ "available. Please contact support"
450
+ msgstr ""
451
+
452
+ #: lib/includes/job_backup.php:1122
453
+ msgid "(2126) Unable to validate your backup. Please try again"
454
+ msgstr ""
455
+
456
+ #: lib/includes/job_backup.php:1123
457
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
458
+ msgstr ""
459
+
460
+ #: lib/includes/job_backup.php:1124
461
+ msgid "(2128) Unable to create job control record. Please try again"
462
+ msgstr ""
463
+
464
+ #: lib/includes/job_backup.php:1127
465
+ msgid "(999) Unexpected error"
466
+ msgstr ""
467
+
468
+ #. TRANSLATORS: %s = plugin name.
469
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
470
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
471
+ #: views/backup.php:20
472
+ #, php-format
473
+ msgid "%s Dashboard"
474
+ msgstr ""
475
+
476
+ #: views/backup.php:150
477
+ #, php-format
478
+ msgid "Backup folder does not exist. Please contact %s for assistance."
479
+ msgstr ""
480
+
481
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
482
+ msgid "support"
483
+ msgstr ""
484
+
485
+ #: views/backup.php:153 views/backup.php:159
486
+ msgid "Close"
487
+ msgstr ""
488
+
489
+ #: views/backup.php:174
490
+ msgid ""
491
+ "Click the backup button to create a zipped backup file of this site's "
492
+ "database, plugins, themes and settings."
493
+ msgstr ""
494
+
495
+ #: views/backup.php:175
496
+ msgid ""
497
+ "Once your backup file has been created it will appear in the available "
498
+ "backups section below. This file may remain on your hosting providers server "
499
+ "but we recommend that you download and save it somewhere safe."
500
+ msgstr ""
501
+
502
+ #: views/backup.php:176
503
+ msgid ""
504
+ "WP BackItUp premium customers can use these backup files to perform an "
505
+ "automated restore of their site."
506
+ msgstr ""
507
+
508
+ #: views/backup.php:180
509
+ msgid "Cancel"
510
+ msgstr ""
511
+
512
+ #: views/backup.php:187
513
+ #, php-format
514
+ msgid ""
515
+ "WP BackItUp lite customers may use these backup files to manually restore "
516
+ "their site. Please visit %s for manual restore instructions."
517
+ msgstr ""
518
+
519
+ #: views/backup.php:194
520
+ msgid "Backup Schedule"
521
+ msgstr ""
522
+
523
+ #: views/backup.php:196
524
+ msgid "Select the days of the week you would like your backup to run."
525
+ msgstr ""
526
+
527
+ #: views/backup.php:198
528
+ msgid ""
529
+ "Backup your site once per week or every day, it's up to you. If you have "
530
+ "email notifications turned on we'll even send you an email when it's done. "
531
+ "Once your backup file has been created it will appear in the available "
532
+ "backups section below. This file may remain on your hosting providers server "
533
+ "but we recommend that you download and save it somewhere safe."
534
+ msgstr ""
535
+
536
+ #: views/backup.php:200
537
+ msgid "Please make sure to schedule your backup for at least once per week."
538
+ msgstr ""
539
+
540
+ #: views/backup.php:204
541
+ msgid "Monday"
542
+ msgstr ""
543
+
544
+ #: views/backup.php:205
545
+ msgid "Tuesday"
546
+ msgstr ""
547
+
548
+ #: views/backup.php:206
549
+ msgid "Wednesday"
550
+ msgstr ""
551
+
552
+ #: views/backup.php:207
553
+ msgid "Thursday"
554
+ msgstr ""
555
+
556
+ #: views/backup.php:208
557
+ msgid "Friday"
558
+ msgstr ""
559
+
560
+ #: views/backup.php:209
561
+ msgid "Saturday"
562
+ msgstr ""
563
+
564
+ #: views/backup.php:210
565
+ msgid "Sunday"
566
+ msgstr ""
567
+
568
+ #: views/backup.php:213
569
+ msgid "Save Schedule"
570
+ msgstr ""
571
+
572
+ #: views/backup.php:218
573
+ #, php-format
574
+ msgid ""
575
+ "Scheduled backups are only available to WP BackItUp premium customers. "
576
+ "Please visit %s to get WP BackItUp risk free for 30 days."
577
+ msgstr ""
578
+
579
+ #: views/backup.php:225 views/restore.php:94
580
+ msgid "Available Backups"
581
+ msgstr ""
582
+
583
+ #: views/backup.php:283 views/restore.php:125
584
+ msgid "No backup archives found."
585
+ msgstr ""
586
+
587
+ #: views/backup.php:291
588
+ #, php-format
589
+ msgid ""
590
+ "The automated restore feature is only available to WP BackItUp premium "
591
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
592
+ msgstr ""
593
+
594
+ #: views/backup.php:300 views/restore.php:209
595
+ msgid "Nothing to report"
596
+ msgstr ""
597
+
598
+ #: views/backup.php:305
599
+ msgid "Preparing for backup"
600
+ msgstr ""
601
+
602
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
603
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
604
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
605
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
606
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
607
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
608
+ #: views/restore.php:228 views/restore.php:230
609
+ msgid "Done"
610
+ msgstr ""
611
+
612
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
613
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
614
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
615
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
616
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
617
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
618
+ #: views/restore.php:228 views/restore.php:230
619
+ msgid "Failed"
620
+ msgstr ""
621
+
622
+ #: views/backup.php:306
623
+ msgid "Backing up database"
624
+ msgstr ""
625
+
626
+ #: views/backup.php:307
627
+ msgid "Creating backup information file"
628
+ msgstr ""
629
+
630
+ #: views/backup.php:308
631
+ msgid "Backing up themes"
632
+ msgstr ""
633
+
634
+ #: views/backup.php:309
635
+ msgid "Backing up plugins"
636
+ msgstr ""
637
+
638
+ #: views/backup.php:310
639
+ msgid "Backing up uploads"
640
+ msgstr ""
641
+
642
+ #: views/backup.php:311
643
+ msgid "Backing up everything else"
644
+ msgstr ""
645
+
646
+ #: views/backup.php:312
647
+ msgid "Validating backup"
648
+ msgstr ""
649
+
650
+ #: views/backup.php:313
651
+ msgid "Finalizing backup"
652
+ msgstr ""
653
+
654
+ #: views/backup.php:323
655
+ msgid "Backup completed successfully"
656
+ msgstr ""
657
+
658
+ #: views/backup.php:344
659
+ msgid "Backups"
660
+ msgstr ""
661
+
662
+ #: views/backup.php:344
663
+ msgid "Version "
664
+ msgstr ""
665
+
666
+ #: views/backup.php:346
667
+ msgid "Welcome to WP BackItUp!"
668
+ msgstr ""
669
+
670
+ #: views/backup.php:346
671
+ msgid "The simplest way to backup your WordPress site."
672
+ msgstr ""
673
+
674
+ #: views/backup.php:347
675
+ msgid ""
676
+ "Getting started is easy, just click the backup button on the left side of "
677
+ "this page."
678
+ msgstr ""
679
+
680
+ #: views/backup.php:351
681
+ #, php-format
682
+ msgid ""
683
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
684
+ "medium;color: green\">%s</span> successful backups."
685
+ msgstr ""
686
+
687
+ #: views/backup.php:352
688
+ msgid "Tips"
689
+ msgstr ""
690
+
691
+ #: views/backup.php:353
692
+ msgid "Backup your site at least once per week"
693
+ msgstr ""
694
+
695
+ #: views/backup.php:354
696
+ msgid "Download all your backups and store them somewhere safe"
697
+ msgstr ""
698
+
699
+ #: views/backup.php:355
700
+ msgid "Verify your backup files are good by taking a look at what's inside"
701
+ msgstr ""
702
+
703
+ #: views/backup.php:360
704
+ #, php-format
705
+ msgid "Why not %s and schedule your backups!"
706
+ msgstr ""
707
+
708
+ #: views/backup.php:360
709
+ msgid "upgrade"
710
+ msgstr ""
711
+
712
+ #: views/backup.php:369
713
+ msgid "Register WP BackItUp"
714
+ msgstr ""
715
+
716
+ #: views/backup.php:372
717
+ msgid ""
718
+ "Enter your name and email address below to receive <b>special offers</b> and "
719
+ "access to our world class <b>support</b> team. <br />\n"
720
+ " <br />Enter your license key below to activate it on this "
721
+ "site."
722
+ msgstr ""
723
+
724
+ #: views/backup.php:374
725
+ msgid "name"
726
+ msgstr ""
727
+
728
+ #: views/backup.php:375
729
+ msgid "email address"
730
+ msgstr ""
731
+
732
+ #: views/backup.php:376
733
+ msgid "license key"
734
+ msgstr ""
735
+
736
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
737
+ #, php-format
738
+ msgid "%s"
739
+ msgstr ""
740
+
741
+ #: views/backup.php:377
742
+ msgid "Free plugin customers do not need to enter license key."
743
+ msgstr ""
744
+
745
+ #: views/backup.php:378
746
+ msgid "Register"
747
+ msgstr ""
748
+
749
+ #: views/backup.php:387
750
+ msgid "License Info"
751
+ msgstr ""
752
+
753
+ #: views/backup.php:409
754
+ msgid "Name"
755
+ msgstr ""
756
+
757
+ #: views/backup.php:410
758
+ msgid "Email"
759
+ msgstr ""
760
+
761
+ #: views/backup.php:411
762
+ msgid "License Type"
763
+ msgstr ""
764
+
765
+ #: views/backup.php:412
766
+ msgid "Expires"
767
+ msgstr ""
768
+
769
+ #: views/backup.php:415
770
+ msgid "Enter license key to activate on this site."
771
+ msgstr ""
772
+
773
+ #: views/backup.php:422
774
+ msgid "License Active"
775
+ msgstr ""
776
+
777
+ #: views/backup.php:430
778
+ msgid "License expired"
779
+ msgstr ""
780
+
781
+ #: views/backup.php:434
782
+ msgid "Update"
783
+ msgstr ""
784
+
785
+ #: views/backup.php:438
786
+ msgid "Activate"
787
+ msgstr ""
788
+
789
+ #: views/backup.php:442
790
+ #, php-format
791
+ msgid "Purchase a %s license using the purchase link above."
792
+ msgstr ""
793
+
794
+ #: views/backup.php:442
795
+ msgid "no-risk"
796
+ msgstr ""
797
+
798
+ #: views/backup.php:448
799
+ #, php-format
800
+ msgid ""
801
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
802
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
803
+ msgstr ""
804
+
805
+ #: views/backup.php:459
806
+ msgid "Useful Links"
807
+ msgstr ""
808
+
809
+ #: views/backup.php:462 views/backup.php:466
810
+ msgid "Your account"
811
+ msgstr ""
812
+
813
+ #: views/backup.php:469
814
+ msgid "Documentation"
815
+ msgstr ""
816
+
817
+ #: views/backup.php:472
818
+ msgid "Get support"
819
+ msgstr ""
820
+
821
+ #: views/backup.php:475
822
+ msgid "Feature request"
823
+ msgstr ""
824
+
825
+ #: views/backup.php:477
826
+ msgid "Contact"
827
+ msgstr ""
828
+
829
+ #: views/backup.php:497 views/backup.php:518
830
+ msgid "WP BackItUp Backup Set"
831
+ msgstr ""
832
+
833
+ #: views/backup.php:499
834
+ msgid ""
835
+ "Below are the archive files included in this backup set. Click the link to "
836
+ "download."
837
+ msgstr ""
838
+
839
+ #: views/backup.php:519
840
+ msgid "Please refresh this page to download your new backup files."
841
+ msgstr ""
842
+
843
+ #: views/restore.php:16
844
+ #, php-format
845
+ msgid "%s Restore"
846
+ msgstr ""
847
+
848
+ #: views/restore.php:59
849
+ msgid "Zip Files"
850
+ msgstr ""
851
+
852
+ #: views/restore.php:74
853
+ #, php-format
854
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
855
+ msgstr ""
856
+
857
+ #: views/restore.php:81
858
+ #, php-format
859
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
860
+ msgstr ""
861
+
862
+ #: views/restore.php:141
863
+ #, php-format
864
+ msgid ""
865
+ "<p>* The automated restore feature is only available to licensed customers. "
866
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
867
+ "BackItUp risk free for 30 days.</p>"
868
+ msgstr ""
869
+
870
+ #: views/restore.php:153
871
+ msgid "Upload"
872
+ msgstr ""
873
+
874
+ #: views/restore.php:156
875
+ msgid ""
876
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
877
+ "backups."
878
+ msgstr ""
879
+
880
+ #: views/restore.php:173
881
+ msgid "WP BackItUp - Upload backup files"
882
+ msgstr ""
883
+
884
+ #: views/restore.php:174
885
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
886
+ msgstr ""
887
+
888
+ #: views/restore.php:174
889
+ msgid ""
890
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
891
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
892
+ "refresh this page."
893
+ msgstr ""
894
+
895
+ #: views/restore.php:178
896
+ #, php-format
897
+ msgid "This feature requires %s version %s or later"
898
+ msgstr ""
899
+
900
+ #: views/restore.php:184
901
+ msgid "Drop backup files here"
902
+ msgstr ""
903
+
904
+ #: views/restore.php:190
905
+ msgid ""
906
+ "* Reload this page when done uploading to see new backups appear in the "
907
+ "Available Backups section above. "
908
+ msgstr ""
909
+
910
+ #: views/restore.php:219
911
+ msgid "Preparing for restore"
912
+ msgstr ""
913
+
914
+ #: views/restore.php:220
915
+ msgid "Unzipping backup set"
916
+ msgstr ""
917
+
918
+ #: views/restore.php:221
919
+ msgid "Validating backup file"
920
+ msgstr ""
921
+
922
+ #: views/restore.php:222
923
+ msgid "Deactivating plugins"
924
+ msgstr ""
925
+
926
+ #: views/restore.php:223
927
+ msgid "Creating database restore point"
928
+ msgstr ""
929
+
930
+ #: views/restore.php:224
931
+ msgid "Staging content files"
932
+ msgstr ""
933
+
934
+ #: views/restore.php:225
935
+ msgid "Restoring content files"
936
+ msgstr ""
937
+
938
+ #: views/restore.php:226
939
+ msgid "Restoring database"
940
+ msgstr ""
941
+
942
+ #: views/restore.php:227
943
+ msgid "Updating current user info"
944
+ msgstr ""
945
+
946
+ #: views/restore.php:228
947
+ msgid "Updating site URL"
948
+ msgstr ""
949
+
950
+ #: views/restore.php:230
951
+ msgid "Updating permalinks"
952
+ msgstr ""
953
+
954
+ #: views/restore.php:236
955
+ msgid "Error 201: No file selected"
956
+ msgstr ""
957
+
958
+ #: views/restore.php:237
959
+ msgid "Error 202: Your file could not be uploaded"
960
+ msgstr ""
961
+
962
+ #: views/restore.php:238
963
+ msgid "Error 203: Your backup could not be unzipped"
964
+ msgstr ""
965
+
966
+ #: views/restore.php:239
967
+ msgid ""
968
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
969
+ "valid backup"
970
+ msgstr ""
971
+
972
+ #: views/restore.php:240
973
+ msgid "Error 205: Cannot create restore point"
974
+ msgstr ""
975
+
976
+ #: views/restore.php:241
977
+ msgid "Error 206: Unable to connect to your database"
978
+ msgstr ""
979
+
980
+ #: views/restore.php:242
981
+ msgid ""
982
+ "Error 207: Unable to get current site URL from database. Please try again"
983
+ msgstr ""
984
+
985
+ #: views/restore.php:243
986
+ msgid ""
987
+ "Error 208: Unable to get current home URL from database. Please try again"
988
+ msgstr ""
989
+
990
+ #: views/restore.php:244
991
+ msgid ""
992
+ "Error 209: Unable to get current user ID from database. Please try again"
993
+ msgstr ""
994
+
995
+ #: views/restore.php:245
996
+ msgid ""
997
+ "Error 210: Unable to get current user password from database. Please try "
998
+ "again"
999
+ msgstr ""
1000
+
1001
+ #: views/restore.php:246
1002
+ msgid ""
1003
+ "Error 211: Unable to get current user email from database. Please try again"
1004
+ msgstr ""
1005
+
1006
+ #: views/restore.php:247
1007
+ msgid ""
1008
+ "Error 212: Unable to import your database. This may require importing the "
1009
+ "file manually"
1010
+ msgstr ""
1011
+
1012
+ #: views/restore.php:248
1013
+ msgid ""
1014
+ "Warning 213: Unable to update your site URL value. Please check your "
1015
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1016
+ "correct"
1017
+ msgstr ""
1018
+
1019
+ #: views/restore.php:249
1020
+ msgid ""
1021
+ "Warning 214: Unable to update your home URL value. Please check your "
1022
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1023
+ "correct"
1024
+ msgstr ""
1025
+
1026
+ #: views/restore.php:250
1027
+ msgid ""
1028
+ "Warning 215: Unable to update your user information. This may require you to "
1029
+ "login with the admin username and password that was used when the backup was "
1030
+ "created"
1031
+ msgstr ""
1032
+
1033
+ #: views/restore.php:251
1034
+ msgid "Error 216: Database not found in backup"
1035
+ msgstr ""
1036
+
1037
+ #: views/restore.php:252
1038
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1039
+ msgstr ""
1040
+
1041
+ #: views/restore.php:253
1042
+ msgid ""
1043
+ "Error 218: Unable to create new wp-content directory. Please check your "
1044
+ "CHMOD settings in /wp-content/"
1045
+ msgstr ""
1046
+
1047
+ #: views/restore.php:254
1048
+ msgid "Error 219: Unable to import wp-content. Please try again"
1049
+ msgstr ""
1050
+
1051
+ #: views/restore.php:255
1052
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1053
+ msgstr ""
1054
+
1055
+ #: views/restore.php:256
1056
+ #, php-format
1057
+ msgid ""
1058
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1059
+ "This MUST be changed in your wp-config.php file before you will be able to "
1060
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1061
+ "> FAQs</a> for more info."
1062
+ msgstr ""
1063
+
1064
+ #: views/restore.php:257
1065
+ msgid "Error 222: Unable to create restore folder"
1066
+ msgstr ""
1067
+
1068
+ #: views/restore.php:258
1069
+ msgid ""
1070
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1071
+ "restore the database to its previous state but were unsuccessful. Please "
1072
+ "contact WP BackItUp customer support and do not attempt to perform any "
1073
+ "further restores"
1074
+ msgstr ""
1075
+
1076
+ #: views/restore.php:259
1077
+ msgid ""
1078
+ "Error 224: An error occurred during the restore, however, we have "
1079
+ "successfully restored your database to the previous state"
1080
+ msgstr ""
1081
+
1082
+ #: views/restore.php:260
1083
+ msgid ""
1084
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1085
+ msgstr ""
1086
+
1087
+ #: views/restore.php:261
1088
+ msgid ""
1089
+ "Error 226: Restore cannot proceed because your backup was created using a "
1090
+ "different version of WordPress"
1091
+ msgstr ""
1092
+
1093
+ #: views/restore.php:262
1094
+ msgid ""
1095
+ "Error 227: Restore cannot proceed because your backup was created using a "
1096
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1097
+ "help convert this backup to the current version"
1098
+ msgstr ""
1099
+
1100
+ #: views/restore.php:263
1101
+ msgid ""
1102
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1103
+ "restore. However, we were able to successfully revert the database back to "
1104
+ "its original state . This error may require importing the database manually"
1105
+ msgstr ""
1106
+
1107
+ #: views/restore.php:264
1108
+ msgid ""
1109
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1110
+ "utility available. Please contact support"
1111
+ msgstr ""
1112
+
1113
+ #: views/restore.php:265
1114
+ msgid ""
1115
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1116
+ "running. Please wait for the backup to complete and then try again"
1117
+ msgstr ""
1118
+
1119
+ #: views/restore.php:267
1120
+ msgid ""
1121
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1122
+ "manifest is empty"
1123
+ msgstr ""
1124
+
1125
+ #: views/restore.php:268
1126
+ msgid ""
1127
+ "Error 252: At least one zip file is missing from your backup set. Please "
1128
+ "make sure to upload all zip files that were part of this backup"
1129
+ msgstr ""
1130
+
1131
+ #: views/restore.php:269
1132
+ msgid ""
1133
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1134
+ "Please make sure to upload only zip files that were part of this backup"
1135
+ msgstr ""
1136
+
1137
+ #: views/restore.php:271
1138
+ msgid ""
1139
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1140
+ "restore logs to see what WP BackItUp was unable to restore"
1141
+ msgstr ""
1142
+
1143
+ #: views/restore.php:272
1144
+ msgid ""
1145
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1146
+ "to see what WP BackItUp was unable to restore"
1147
+ msgstr ""
1148
+
1149
+ #: views/restore.php:274
1150
+ msgid "Error 2001: Unable to prepare site for restore"
1151
+ msgstr ""
1152
+
1153
+ #: views/restore.php:275
1154
+ msgid "Error 2002: Unable to unzip backup"
1155
+ msgstr ""
1156
+
1157
+ #: views/restore.php:276
1158
+ msgid "Error 2003: Unable to validate backup"
1159
+ msgstr ""
1160
+
1161
+ #: views/restore.php:277
1162
+ msgid "Error 2004: Unable to create restore point"
1163
+ msgstr ""
1164
+
1165
+ #: views/restore.php:278
1166
+ msgid "Error 2005: Unable to stage wp-content"
1167
+ msgstr ""
1168
+
1169
+ #: views/restore.php:279
1170
+ msgid "Error 2006: Unable to restore content files"
1171
+ msgstr ""
1172
+
1173
+ #: views/restore.php:280
1174
+ msgid "Error 2007: Unable to restore database"
1175
+ msgstr ""
1176
+
1177
+ #: views/restore.php:281
1178
+ msgid "Error 2999: Unexpected error encountered"
1179
+ msgstr ""
1180
+
1181
+ #: views/restore.php:288
1182
+ msgid ""
1183
+ "Restore completed successfully. If you are prompted to login please do so "
1184
+ "with your current username and password"
1185
+ msgstr ""
1186
+
1187
+ #: views/settings.php:16
1188
+ #, php-format
1189
+ msgid "%s Settings"
1190
+ msgstr ""
1191
+
1192
+ #: views/settings.php:43
1193
+ msgid "Email Notifications"
1194
+ msgstr ""
1195
+
1196
+ #: views/settings.php:44
1197
+ msgid ""
1198
+ "Please enter your email address if you would like to receive backup email "
1199
+ "notifications."
1200
+ msgstr ""
1201
+
1202
+ #: views/settings.php:45
1203
+ msgid ""
1204
+ "Backup email notifications will be sent for every backup and will contain "
1205
+ "status information related to the backup."
1206
+ msgstr ""
1207
+
1208
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1209
+ #: views/settings.php:114
1210
+ msgid "Save"
1211
+ msgstr ""
1212
+
1213
+ #: views/settings.php:63
1214
+ msgid "Backup Retention"
1215
+ msgstr ""
1216
+
1217
+ #: views/settings.php:64
1218
+ msgid ""
1219
+ "Enter the number of backup archives that you would like to remain on the "
1220
+ "server."
1221
+ msgstr ""
1222
+
1223
+ #: views/settings.php:65
1224
+ msgid ""
1225
+ "Many hosts limit the amount of space that you can take up on their servers. "
1226
+ "This option tells WP BackItUp the maximum number of backup archives that "
1227
+ "should remain on your hosts server. Don't worry, we will always remove the "
1228
+ "oldest backup archives first."
1229
+ msgstr ""
1230
+
1231
+ #: views/settings.php:84
1232
+ msgid "Turn on logging?"
1233
+ msgstr ""
1234
+
1235
+ #: views/settings.php:85
1236
+ msgid "Yes"
1237
+ msgstr ""
1238
+
1239
+ #: views/settings.php:86
1240
+ msgid "No"
1241
+ msgstr ""
1242
+
1243
+ #: views/settings.php:87
1244
+ msgid ""
1245
+ "This option should only be turned on when troubleshooting issues with "
1246
+ "WPBackItUp support."
1247
+ msgstr ""
1248
+
1249
+ #: views/settings.php:92
1250
+ msgid "Advanced Settings"
1251
+ msgstr ""
1252
+
1253
+ #: views/settings.php:93
1254
+ msgid ""
1255
+ "These options should only be changed when working with WP BackItUp support."
1256
+ msgstr ""
1257
+
1258
+ #: views/settings.php:96
1259
+ msgid "Plugins Batch Size"
1260
+ msgstr ""
1261
+
1262
+ #: views/settings.php:101
1263
+ msgid "Themes Batch Size"
1264
+ msgstr ""
1265
+
1266
+ #: views/settings.php:106
1267
+ msgid "Uploads Batch Size"
1268
+ msgstr ""
1269
+
1270
+ #: views/settings.php:111
1271
+ msgid "Others Batch Size"
1272
+ msgstr ""
1273
+
1274
+ #: views/support.php:16
1275
+ #, php-format
1276
+ msgid "%s Support"
1277
+ msgstr ""
1278
+
1279
+ #: views/support.php:35
1280
+ msgid "Support email sent successfully!"
1281
+ msgstr ""
1282
+
1283
+ #: views/support.php:48
1284
+ msgid "Email Logs to Support"
1285
+ msgstr ""
1286
+
1287
+ #: views/support.php:49
1288
+ msgid "This form should be used to send log files to support only."
1289
+ msgstr ""
1290
+
1291
+ #: views/support.php:50
1292
+ msgid ""
1293
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1294
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1295
+ "using this form."
1296
+ msgstr ""
1297
+
1298
+ #: views/support.php:51
1299
+ msgid ""
1300
+ "The ticket id you receive from your support request should be entered in the "
1301
+ "ticket id field below."
1302
+ msgstr ""
1303
+
1304
+ #: views/support.php:52
1305
+ msgid "your email address"
1306
+ msgstr ""
1307
+
1308
+ #: views/support.php:62
1309
+ msgid "support ticket id"
1310
+ msgstr ""
1311
+
1312
+ #: views/support.php:72
1313
+ msgid "problem description or additional information"
1314
+ msgstr ""
1315
+
1316
+ #: views/support.php:83
1317
+ msgid "Send"
1318
+ msgstr ""
1319
+
1320
+ #: views/support.php:86
1321
+ msgid "Please register your version of WP BackItUp for access to support."
1322
+ msgstr ""
1323
+
1324
+ #: views/support.php:90
1325
+ msgid "Premium customers receive priority support."
1326
+ msgstr ""
1327
+
1328
+ #: wp-backitup.php:97 wp-backitup.php:98
1329
+ #, php-format
1330
+ msgid "Every %s hours"
1331
+ msgstr ""
languages/wp-backitup_it_IT.mo ADDED
Binary file
languages/wp-backitup_it_IT.po ADDED
@@ -0,0 +1,1333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # Translators:
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: WP BackItUp\n"
6
+ "POT-Creation-Date: 2015-08-14 10:31-0400\n"
7
+ "PO-Revision-Date: 2015-08-14 10:31-0400\n"
8
+ "Last-Translator: Chris Simmons <chris.simmons01@gmail.com>\n"
9
+ "Language-Team: Italian (Italy) (http://www.transifex.com/wp-translations/wp-"
10
+ "backitup/language/it_IT/)\n"
11
+ "Language: it_IT\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
+ "X-Generator: Poedit 1.8.4\n"
17
+ "X-Poedit-Basepath: ..\n"
18
+ "X-Poedit-KeywordsList: _;__;_e\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: lib/includes/class-wpbackitup-admin.php:171 views/backup.php:173
22
+ #: views/backup.php:179
23
+ msgid "Backup"
24
+ msgstr ""
25
+
26
+ #: lib/includes/class-wpbackitup-admin.php:175
27
+ #: lib/includes/class-wpbackitup-admin.php:210 views/restore.php:115
28
+ msgid "Restore"
29
+ msgstr ""
30
+
31
+ #: lib/includes/class-wpbackitup-admin.php:179
32
+ msgid "Support"
33
+ msgstr ""
34
+
35
+ #: lib/includes/class-wpbackitup-admin.php:182
36
+ msgid "Settings"
37
+ msgstr "Impostazioni"
38
+
39
+ #: lib/includes/class-wpbackitup-admin.php:203
40
+ msgid ""
41
+ "The backup you have selected exceeds what your host allows you to upload."
42
+ msgstr ""
43
+
44
+ #: lib/includes/class-wpbackitup-admin.php:204 views/backup.php:305
45
+ #: views/backup.php:306 views/backup.php:307 views/backup.php:308
46
+ #: views/backup.php:309 views/backup.php:310 views/backup.php:311
47
+ #: views/backup.php:312 views/backup.php:313
48
+ msgid "Warning"
49
+ msgstr ""
50
+
51
+ #: lib/includes/class-wpbackitup-admin.php:205 views/backup.php:149
52
+ msgid "Error"
53
+ msgstr "Errore"
54
+
55
+ #: lib/includes/class-wpbackitup-admin.php:206
56
+ msgid "Response"
57
+ msgstr ""
58
+
59
+ #: lib/includes/class-wpbackitup-admin.php:207 views/backup.php:296
60
+ #: views/restore.php:205
61
+ msgid "Status"
62
+ msgstr "Stato"
63
+
64
+ #: lib/includes/class-wpbackitup-admin.php:208 views/backup.php:265
65
+ msgid "Download"
66
+ msgstr ""
67
+
68
+ #: lib/includes/class-wpbackitup-admin.php:209 views/backup.php:274
69
+ #: views/restore.php:111
70
+ msgid "Delete"
71
+ msgstr "Cancella"
72
+
73
+ #: lib/includes/class-wpbackitup-admin.php:211
74
+ msgid "(JS997) Unexpected error"
75
+ msgstr ""
76
+
77
+ #: lib/includes/class-wpbackitup-admin.php:212
78
+ msgid "(JS998) Unexpected error"
79
+ msgstr ""
80
+
81
+ #: lib/includes/class-wpbackitup-admin.php:213
82
+ msgid "(JS999) An unexpected error has occurred"
83
+ msgstr ""
84
+
85
+ #: lib/includes/class-wpbackitup-admin.php:214
86
+ msgid "Scheduled has been saved."
87
+ msgstr ""
88
+
89
+ #: lib/includes/class-wpbackitup-admin.php:215
90
+ msgid "Scheduled was not saved."
91
+ msgstr ""
92
+
93
+ #: lib/includes/class-wpbackitup-admin.php:216
94
+ msgid "Are you sure you want to restore your site?"
95
+ msgstr ""
96
+
97
+ #: lib/includes/class-wpbackitup-admin.php:217
98
+ msgid "Are you sure ?"
99
+ msgstr ""
100
+
101
+ #: lib/includes/class-wpbackitup-admin.php:218
102
+ msgid "This file cannot be delete!"
103
+ msgstr ""
104
+
105
+ #: lib/includes/class-wpbackitup-admin.php:219 views/backup.php:269
106
+ msgid "View Log"
107
+ msgstr ""
108
+
109
+ #: lib/includes/class-wpbackitup-admin.php:220
110
+ msgid "New Backup!"
111
+ msgstr ""
112
+
113
+ #: lib/includes/class-wpbackitup-admin.php:221
114
+ msgid "Uploaded Backup"
115
+ msgstr ""
116
+
117
+ #: lib/includes/class-wpbackitup-admin.php:480
118
+ msgid "Backup Queued"
119
+ msgstr ""
120
+
121
+ #: lib/includes/class-wpbackitup-admin.php:482
122
+ msgid "Backup could not be queued"
123
+ msgstr ""
124
+
125
+ #: lib/includes/class-wpbackitup-admin.php:485
126
+ msgid "Backup already in queue"
127
+ msgstr ""
128
+
129
+ #: lib/includes/class-wpbackitup-admin.php:508 views/backup.php:332
130
+ msgid "Backup Cancelled"
131
+ msgstr ""
132
+
133
+ #: lib/includes/class-wpbackitup-admin.php:535
134
+ msgid "No backup file selected."
135
+ msgstr ""
136
+
137
+ #: lib/includes/class-wpbackitup-admin.php:542
138
+ msgid "No user id found."
139
+ msgstr ""
140
+
141
+ #: lib/includes/class-wpbackitup-admin.php:553
142
+ msgid "Restore Queued"
143
+ msgstr ""
144
+
145
+ #: lib/includes/class-wpbackitup-admin.php:555
146
+ msgid "Restore could not be queued"
147
+ msgstr ""
148
+
149
+ #: lib/includes/class-wpbackitup-admin.php:558
150
+ msgid "Restore already in queue"
151
+ msgstr ""
152
+
153
+ #: lib/includes/class-wpbackitup-admin.php:743
154
+ msgid "No response log found."
155
+ msgstr ""
156
+
157
+ #: lib/includes/class-wpbackitup-admin.php:836
158
+ #: lib/includes/class-wpbackitup-admin.php:844
159
+ #: lib/includes/class-wpbackitup-admin.php:873
160
+ #: lib/includes/class-wpbackitup-admin.php:880
161
+ #: lib/includes/class-wpbackitup-admin.php:887
162
+ #: lib/includes/class-wpbackitup-admin.php:894
163
+ msgid "Please enter a number"
164
+ msgstr ""
165
+
166
+ #: lib/includes/class-wpbackitup-admin.php:865
167
+ #: lib/includes/class-wpbackitup-admin.php:972
168
+ msgid "Please enter a valid email"
169
+ msgstr ""
170
+
171
+ #: lib/includes/class-wpbackitup-admin.php:979
172
+ msgid "Please enter your support ticket id"
173
+ msgstr ""
174
+
175
+ #: lib/includes/class-wpbackitup-admin.php:984
176
+ msgid "Please only enter numbers in this field"
177
+ msgstr ""
178
+
179
+ #: lib/includes/class-wpbackitup-admin.php:1645
180
+ msgid "License is invalid."
181
+ msgstr ""
182
+
183
+ #: lib/includes/class-wpbackitup-admin.php:1650
184
+ msgid "License has expired."
185
+ msgstr ""
186
+
187
+ #: lib/includes/class-wpbackitup-admin.php:1655
188
+ msgid "Activation limit has been reached."
189
+ msgstr ""
190
+
191
+ #: lib/includes/handler_upload.php:29
192
+ msgid "Invalid Nonce"
193
+ msgstr ""
194
+
195
+ #: lib/includes/handler_upload.php:39 lib/includes/handler_upload.php:151
196
+ msgid "Upload directory is not writable, or does not exist."
197
+ msgstr ""
198
+
199
+ #: lib/includes/handler_upload.php:80
200
+ #, php-format
201
+ msgid "Error: %s"
202
+ msgstr ""
203
+
204
+ #: lib/includes/handler_upload.php:80
205
+ msgid "File could not be uploaded"
206
+ msgstr ""
207
+
208
+ #: lib/includes/handler_upload.php:141
209
+ msgid "Upload does not appear to be a WP BackItUp backup archive file."
210
+ msgstr ""
211
+
212
+ #: lib/includes/handler_upload.php:161
213
+ msgid "Could not import file into WP BackItUp backup set."
214
+ msgstr ""
215
+
216
+ #: lib/includes/job_backup.php:851
217
+ msgid "Preparing for backup...Done"
218
+ msgstr ""
219
+
220
+ #: lib/includes/job_backup.php:852
221
+ msgid "Backing up database...Done"
222
+ msgstr ""
223
+
224
+ #: lib/includes/job_backup.php:853
225
+ msgid "Creating backup information file...Done"
226
+ msgstr ""
227
+
228
+ #: lib/includes/job_backup.php:854
229
+ msgid "Backing up themes...Done"
230
+ msgstr ""
231
+
232
+ #: lib/includes/job_backup.php:855
233
+ msgid "Backing up plugins...Done"
234
+ msgstr ""
235
+
236
+ #: lib/includes/job_backup.php:856
237
+ msgid "Backing up uploads...Done"
238
+ msgstr ""
239
+
240
+ #: lib/includes/job_backup.php:857
241
+ msgid "Backing up miscellaneous files...Done"
242
+ msgstr ""
243
+
244
+ #: lib/includes/job_backup.php:858
245
+ msgid "Finalizing backup...Done"
246
+ msgstr ""
247
+
248
+ #: lib/includes/job_backup.php:859
249
+ msgid "Validating backup...Done"
250
+ msgstr ""
251
+
252
+ #: lib/includes/job_backup.php:860
253
+ msgid "Cleaning up...Done"
254
+ msgstr ""
255
+
256
+ #: lib/includes/job_backup.php:870
257
+ #, php-format
258
+ msgid "%s - Backup completed successfully."
259
+ msgstr ""
260
+
261
+ #: lib/includes/job_backup.php:871
262
+ msgid "Your backup completed successfully."
263
+ msgstr ""
264
+
265
+ #: lib/includes/job_backup.php:874
266
+ #, php-format
267
+ msgid "%s - Backup did not complete successfully."
268
+ msgstr ""
269
+
270
+ #: lib/includes/job_backup.php:875
271
+ msgid "Your backup did not complete successfully."
272
+ msgstr ""
273
+
274
+ #: lib/includes/job_backup.php:880
275
+ #, php-format
276
+ msgid "WordPress Site: <a href=\"%s\" target=\"_blank\"> %s </a><br/>"
277
+ msgstr ""
278
+
279
+ #: lib/includes/job_backup.php:881
280
+ msgid "Backup date:"
281
+ msgstr ""
282
+
283
+ #: lib/includes/job_backup.php:882
284
+ msgid "Number of backups completed with WP BackItUp:"
285
+ msgstr ""
286
+
287
+ #: lib/includes/job_backup.php:884
288
+ msgid "Completion Code:"
289
+ msgstr ""
290
+
291
+ #: lib/includes/job_backup.php:885
292
+ msgid "WP BackItUp Version:"
293
+ msgstr ""
294
+
295
+ #: lib/includes/job_backup.php:891
296
+ msgid "Steps Completed"
297
+ msgstr ""
298
+
299
+ #: lib/includes/job_backup.php:912
300
+ #, php-format
301
+ msgid "Checkout %s for info about WP BackItUp and our other products."
302
+ msgstr ""
303
+
304
+ #: lib/includes/job_backup.php:1088
305
+ msgid ""
306
+ "(101) Unable to create a new directory for backup. Please check your CHMOD "
307
+ "settings of your wp-backitup backup directory"
308
+ msgstr ""
309
+
310
+ #: lib/includes/job_backup.php:1089
311
+ msgid ""
312
+ "(102) Cannot create backup directory. Please check the CHMOD settings of "
313
+ "your wp-backitup plugin directory"
314
+ msgstr ""
315
+
316
+ #: lib/includes/job_backup.php:1090
317
+ msgid "(103) Unable to backup your files. Please try again"
318
+ msgstr ""
319
+
320
+ #: lib/includes/job_backup.php:1091
321
+ msgid "(104) Unable to export your database. Please try again"
322
+ msgstr ""
323
+
324
+ #: lib/includes/job_backup.php:1092
325
+ msgid "(105) Unable to export site information file. Please try again"
326
+ msgstr ""
327
+
328
+ #: lib/includes/job_backup.php:1093
329
+ msgid "(106) Unable to cleanup your backup directory"
330
+ msgstr ""
331
+
332
+ #: lib/includes/job_backup.php:1094
333
+ msgid "(107) Unable to compress(zip) your backup. Please try again"
334
+ msgstr ""
335
+
336
+ #: lib/includes/job_backup.php:1095
337
+ msgid "(108) Unable to backup your site data files. Please try again"
338
+ msgstr ""
339
+
340
+ #: lib/includes/job_backup.php:1096
341
+ msgid "(109) Unable to finalize backup. Please try again"
342
+ msgstr ""
343
+
344
+ #: lib/includes/job_backup.php:1097
345
+ msgid ""
346
+ "(114) Your database was accessible but an export could not be created. "
347
+ "Please contact support by clicking the get support link on the right. Please "
348
+ "let us know who your host is when you submit the request"
349
+ msgstr ""
350
+
351
+ #: lib/includes/job_backup.php:1098
352
+ msgid "(120) Unable to backup your themes. Please try again"
353
+ msgstr ""
354
+
355
+ #: lib/includes/job_backup.php:1099
356
+ msgid "(121) Unable to backup your plugins. Please try again"
357
+ msgstr ""
358
+
359
+ #: lib/includes/job_backup.php:1100
360
+ msgid "(122) Unable to backup your uploads. Please try again"
361
+ msgstr ""
362
+
363
+ #: lib/includes/job_backup.php:1101
364
+ msgid "(123) Unable to backup your miscellaneous files. Please try again"
365
+ msgstr ""
366
+
367
+ #: lib/includes/job_backup.php:1102
368
+ msgid ""
369
+ "(125) Unable to compress your backup because there is no zip utility "
370
+ "available. Please contact support"
371
+ msgstr ""
372
+
373
+ #: lib/includes/job_backup.php:1103
374
+ msgid "(126) Unable to validate your backup. Please try again"
375
+ msgstr ""
376
+
377
+ #: lib/includes/job_backup.php:1104
378
+ msgid "(127) Unable to create inventory of files to backup. Please try again"
379
+ msgstr ""
380
+
381
+ #: lib/includes/job_backup.php:1105
382
+ msgid "(128) Unable to create job control record. Please try again"
383
+ msgstr ""
384
+
385
+ #: lib/includes/job_backup.php:1107
386
+ msgid ""
387
+ "(2101) Unable to create a new directory for backup. Please check your CHMOD "
388
+ "settings of your wp-backitup backup directory"
389
+ msgstr ""
390
+
391
+ #: lib/includes/job_backup.php:1108
392
+ msgid ""
393
+ "(2102) Cannot create backup directory. Please check the CHMOD settings of "
394
+ "your wp-backitup plugin directory"
395
+ msgstr ""
396
+
397
+ #: lib/includes/job_backup.php:1109
398
+ msgid "(2103) Unable to backup your files. Please try again"
399
+ msgstr ""
400
+
401
+ #: lib/includes/job_backup.php:1110
402
+ msgid "(2104) Unable to export your database. Please try again"
403
+ msgstr ""
404
+
405
+ #: lib/includes/job_backup.php:1111
406
+ msgid "(2105) Unable to export site information file. Please try again"
407
+ msgstr ""
408
+
409
+ #: lib/includes/job_backup.php:1112
410
+ msgid "(2106) Unable to cleanup your backup directory"
411
+ msgstr ""
412
+
413
+ #: lib/includes/job_backup.php:1113
414
+ msgid "(2107) Unable to compress(zip) your backup. Please try again"
415
+ msgstr ""
416
+
417
+ #: lib/includes/job_backup.php:1114
418
+ msgid "(2108) Unable to backup your site data files. Please try again"
419
+ msgstr ""
420
+
421
+ #: lib/includes/job_backup.php:1115
422
+ msgid "(2109) Unable to finalize backup. Please try again"
423
+ msgstr ""
424
+
425
+ #: lib/includes/job_backup.php:1116
426
+ msgid ""
427
+ "(2114) Your database was accessible but an export could not be created. "
428
+ "Please contact support by clicking the get support link on the right. Please "
429
+ "let us know who your host is when you submit the request"
430
+ msgstr ""
431
+
432
+ #: lib/includes/job_backup.php:1117
433
+ msgid "(2120) Unable to backup your themes. Please try again"
434
+ msgstr ""
435
+
436
+ #: lib/includes/job_backup.php:1118
437
+ msgid "(2121) Unable to backup your plugins. Please try again"
438
+ msgstr ""
439
+
440
+ #: lib/includes/job_backup.php:1119
441
+ msgid "(2122) Unable to backup your uploads. Please try again"
442
+ msgstr ""
443
+
444
+ #: lib/includes/job_backup.php:1120
445
+ msgid "(2123) Unable to backup your miscellaneous files. Please try again"
446
+ msgstr ""
447
+
448
+ #: lib/includes/job_backup.php:1121
449
+ msgid ""
450
+ "(2125) Unable to compress your backup because there is no zip utility "
451
+ "available. Please contact support"
452
+ msgstr ""
453
+
454
+ #: lib/includes/job_backup.php:1122
455
+ msgid "(2126) Unable to validate your backup. Please try again"
456
+ msgstr ""
457
+
458
+ #: lib/includes/job_backup.php:1123
459
+ msgid "(2127) Unable to create inventory of files to backup. Please try again"
460
+ msgstr ""
461
+
462
+ #: lib/includes/job_backup.php:1124
463
+ msgid "(2128) Unable to create job control record. Please try again"
464
+ msgstr ""
465
+
466
+ #: lib/includes/job_backup.php:1127
467
+ msgid "(999) Unexpected error"
468
+ msgstr ""
469
+
470
+ #. TRANSLATORS: %s = plugin name.
471
+ #. This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
472
+ #. Similar to how WordPress uses the word dashboard at the in the left navigation.
473
+ #: views/backup.php:20
474
+ #, php-format
475
+ msgid "%s Dashboard"
476
+ msgstr ""
477
+
478
+ #: views/backup.php:150
479
+ #, php-format
480
+ msgid "Backup folder does not exist. Please contact %s for assistance."
481
+ msgstr ""
482
+
483
+ #: views/backup.php:150 views/restore.php:74 views/restore.php:81
484
+ msgid "support"
485
+ msgstr ""
486
+
487
+ #: views/backup.php:153 views/backup.php:159
488
+ msgid "Close"
489
+ msgstr ""
490
+
491
+ #: views/backup.php:174
492
+ msgid ""
493
+ "Click the backup button to create a zipped backup file of this site's "
494
+ "database, plugins, themes and settings."
495
+ msgstr ""
496
+
497
+ #: views/backup.php:175
498
+ msgid ""
499
+ "Once your backup file has been created it will appear in the available "
500
+ "backups section below. This file may remain on your hosting providers server "
501
+ "but we recommend that you download and save it somewhere safe."
502
+ msgstr ""
503
+
504
+ #: views/backup.php:176
505
+ msgid ""
506
+ "WP BackItUp premium customers can use these backup files to perform an "
507
+ "automated restore of their site."
508
+ msgstr ""
509
+
510
+ #: views/backup.php:180
511
+ msgid "Cancel"
512
+ msgstr "Annulla"
513
+
514
+ #: views/backup.php:187
515
+ #, php-format
516
+ msgid ""
517
+ "WP BackItUp lite customers may use these backup files to manually restore "
518
+ "their site. Please visit %s for manual restore instructions."
519
+ msgstr ""
520
+
521
+ #: views/backup.php:194
522
+ msgid "Backup Schedule"
523
+ msgstr ""
524
+
525
+ #: views/backup.php:196
526
+ msgid "Select the days of the week you would like your backup to run."
527
+ msgstr ""
528
+
529
+ #: views/backup.php:198
530
+ msgid ""
531
+ "Backup your site once per week or every day, it's up to you. If you have "
532
+ "email notifications turned on we'll even send you an email when it's done. "
533
+ "Once your backup file has been created it will appear in the available "
534
+ "backups section below. This file may remain on your hosting providers server "
535
+ "but we recommend that you download and save it somewhere safe."
536
+ msgstr ""
537
+
538
+ #: views/backup.php:200
539
+ msgid "Please make sure to schedule your backup for at least once per week."
540
+ msgstr ""
541
+
542
+ #: views/backup.php:204
543
+ msgid "Monday"
544
+ msgstr ""
545
+
546
+ #: views/backup.php:205
547
+ msgid "Tuesday"
548
+ msgstr ""
549
+
550
+ #: views/backup.php:206
551
+ msgid "Wednesday"
552
+ msgstr ""
553
+
554
+ #: views/backup.php:207
555
+ msgid "Thursday"
556
+ msgstr ""
557
+
558
+ #: views/backup.php:208
559
+ msgid "Friday"
560
+ msgstr ""
561
+
562
+ #: views/backup.php:209
563
+ msgid "Saturday"
564
+ msgstr ""
565
+
566
+ #: views/backup.php:210
567
+ msgid "Sunday"
568
+ msgstr ""
569
+
570
+ #: views/backup.php:213
571
+ msgid "Save Schedule"
572
+ msgstr ""
573
+
574
+ #: views/backup.php:218
575
+ #, php-format
576
+ msgid ""
577
+ "Scheduled backups are only available to WP BackItUp premium customers. "
578
+ "Please visit %s to get WP BackItUp risk free for 30 days."
579
+ msgstr ""
580
+
581
+ #: views/backup.php:225 views/restore.php:94
582
+ msgid "Available Backups"
583
+ msgstr ""
584
+
585
+ #: views/backup.php:283 views/restore.php:125
586
+ msgid "No backup archives found."
587
+ msgstr ""
588
+
589
+ #: views/backup.php:291
590
+ #, php-format
591
+ msgid ""
592
+ "The automated restore feature is only available to WP BackItUp premium "
593
+ "customers. Please visit %s to get WP BackItUp risk free for 30 days."
594
+ msgstr ""
595
+
596
+ #: views/backup.php:300 views/restore.php:209
597
+ msgid "Nothing to report"
598
+ msgstr ""
599
+
600
+ #: views/backup.php:305
601
+ msgid "Preparing for backup"
602
+ msgstr ""
603
+
604
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
605
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
606
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
607
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
608
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
609
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
610
+ #: views/restore.php:228 views/restore.php:230
611
+ msgid "Done"
612
+ msgstr ""
613
+
614
+ #: views/backup.php:305 views/backup.php:306 views/backup.php:307
615
+ #: views/backup.php:308 views/backup.php:309 views/backup.php:310
616
+ #: views/backup.php:311 views/backup.php:312 views/backup.php:313
617
+ #: views/restore.php:219 views/restore.php:220 views/restore.php:221
618
+ #: views/restore.php:222 views/restore.php:223 views/restore.php:224
619
+ #: views/restore.php:225 views/restore.php:226 views/restore.php:227
620
+ #: views/restore.php:228 views/restore.php:230
621
+ msgid "Failed"
622
+ msgstr ""
623
+
624
+ #: views/backup.php:306
625
+ msgid "Backing up database"
626
+ msgstr ""
627
+
628
+ #: views/backup.php:307
629
+ msgid "Creating backup information file"
630
+ msgstr ""
631
+
632
+ #: views/backup.php:308
633
+ msgid "Backing up themes"
634
+ msgstr ""
635
+
636
+ #: views/backup.php:309
637
+ msgid "Backing up plugins"
638
+ msgstr ""
639
+
640
+ #: views/backup.php:310
641
+ msgid "Backing up uploads"
642
+ msgstr ""
643
+
644
+ #: views/backup.php:311
645
+ msgid "Backing up everything else"
646
+ msgstr ""
647
+
648
+ #: views/backup.php:312
649
+ msgid "Validating backup"
650
+ msgstr ""
651
+
652
+ #: views/backup.php:313
653
+ msgid "Finalizing backup"
654
+ msgstr ""
655
+
656
+ #: views/backup.php:323
657
+ msgid "Backup completed successfully"
658
+ msgstr ""
659
+
660
+ #: views/backup.php:344
661
+ msgid "Backups"
662
+ msgstr ""
663
+
664
+ #: views/backup.php:344
665
+ msgid "Version "
666
+ msgstr ""
667
+
668
+ #: views/backup.php:346
669
+ msgid "Welcome to WP BackItUp!"
670
+ msgstr ""
671
+
672
+ #: views/backup.php:346
673
+ msgid "The simplest way to backup your WordPress site."
674
+ msgstr ""
675
+
676
+ #: views/backup.php:347
677
+ msgid ""
678
+ "Getting started is easy, just click the backup button on the left side of "
679
+ "this page."
680
+ msgstr ""
681
+
682
+ #: views/backup.php:351
683
+ #, php-format
684
+ msgid ""
685
+ "Congratulations! You have performed <span style=\"font-weight:bold;font-size:"
686
+ "medium;color: green\">%s</span> successful backups."
687
+ msgstr ""
688
+
689
+ #: views/backup.php:352
690
+ msgid "Tips"
691
+ msgstr ""
692
+
693
+ #: views/backup.php:353
694
+ msgid "Backup your site at least once per week"
695
+ msgstr ""
696
+
697
+ #: views/backup.php:354
698
+ msgid "Download all your backups and store them somewhere safe"
699
+ msgstr ""
700
+
701
+ #: views/backup.php:355
702
+ msgid "Verify your backup files are good by taking a look at what's inside"
703
+ msgstr ""
704
+
705
+ #: views/backup.php:360
706
+ #, php-format
707
+ msgid "Why not %s and schedule your backups!"
708
+ msgstr ""
709
+
710
+ #: views/backup.php:360
711
+ msgid "upgrade"
712
+ msgstr ""
713
+
714
+ #: views/backup.php:369
715
+ msgid "Register WP BackItUp"
716
+ msgstr ""
717
+
718
+ #: views/backup.php:372
719
+ msgid ""
720
+ "Enter your name and email address below to receive <b>special offers</b> and "
721
+ "access to our world class <b>support</b> team. <br />\n"
722
+ " <br />Enter your license key below to activate it on this "
723
+ "site."
724
+ msgstr ""
725
+
726
+ #: views/backup.php:374
727
+ msgid "name"
728
+ msgstr ""
729
+
730
+ #: views/backup.php:375
731
+ msgid "email address"
732
+ msgstr ""
733
+
734
+ #: views/backup.php:376
735
+ msgid "license key"
736
+ msgstr ""
737
+
738
+ #: views/backup.php:376 views/backup.php:426 views/backup.php:430
739
+ #, php-format
740
+ msgid "%s"
741
+ msgstr ""
742
+
743
+ #: views/backup.php:377
744
+ msgid "Free plugin customers do not need to enter license key."
745
+ msgstr ""
746
+
747
+ #: views/backup.php:378
748
+ msgid "Register"
749
+ msgstr ""
750
+
751
+ #: views/backup.php:387
752
+ msgid "License Info"
753
+ msgstr ""
754
+
755
+ #: views/backup.php:409
756
+ msgid "Name"
757
+ msgstr "Nome"
758
+
759
+ #: views/backup.php:410
760
+ msgid "Email"
761
+ msgstr "Email"
762
+
763
+ #: views/backup.php:411
764
+ msgid "License Type"
765
+ msgstr ""
766
+
767
+ #: views/backup.php:412
768
+ msgid "Expires"
769
+ msgstr ""
770
+
771
+ #: views/backup.php:415
772
+ msgid "Enter license key to activate on this site."
773
+ msgstr ""
774
+
775
+ #: views/backup.php:422
776
+ msgid "License Active"
777
+ msgstr ""
778
+
779
+ #: views/backup.php:430
780
+ msgid "License expired"
781
+ msgstr ""
782
+
783
+ #: views/backup.php:434
784
+ msgid "Update"
785
+ msgstr "Aggiorna"
786
+
787
+ #: views/backup.php:438
788
+ msgid "Activate"
789
+ msgstr "Attivo"
790
+
791
+ #: views/backup.php:442
792
+ #, php-format
793
+ msgid "Purchase a %s license using the purchase link above."
794
+ msgstr ""
795
+
796
+ #: views/backup.php:442
797
+ msgid "no-risk"
798
+ msgstr ""
799
+
800
+ #: views/backup.php:448
801
+ #, php-format
802
+ msgid ""
803
+ "<a href=\"%s\" target=\"blank\">Renew</a> your license now for another year "
804
+ "of <strong>product updates</strong> and <strong>priority support.</strong>"
805
+ msgstr ""
806
+
807
+ #: views/backup.php:459
808
+ msgid "Useful Links"
809
+ msgstr ""
810
+
811
+ #: views/backup.php:462 views/backup.php:466
812
+ msgid "Your account"
813
+ msgstr ""
814
+
815
+ #: views/backup.php:469
816
+ msgid "Documentation"
817
+ msgstr "Documentazione"
818
+
819
+ #: views/backup.php:472
820
+ msgid "Get support"
821
+ msgstr ""
822
+
823
+ #: views/backup.php:475
824
+ msgid "Feature request"
825
+ msgstr ""
826
+
827
+ #: views/backup.php:477
828
+ msgid "Contact"
829
+ msgstr ""
830
+
831
+ #: views/backup.php:497 views/backup.php:518
832
+ msgid "WP BackItUp Backup Set"
833
+ msgstr ""
834
+
835
+ #: views/backup.php:499
836
+ msgid ""
837
+ "Below are the archive files included in this backup set. Click the link to "
838
+ "download."
839
+ msgstr ""
840
+
841
+ #: views/backup.php:519
842
+ msgid "Please refresh this page to download your new backup files."
843
+ msgstr ""
844
+
845
+ #: views/restore.php:16
846
+ #, php-format
847
+ msgid "%s Restore"
848
+ msgstr ""
849
+
850
+ #: views/restore.php:59
851
+ msgid "Zip Files"
852
+ msgstr ""
853
+
854
+ #: views/restore.php:74
855
+ #, php-format
856
+ msgid "Error: Backup folder does not exist. Please contact %s for assistance."
857
+ msgstr ""
858
+
859
+ #: views/restore.php:81
860
+ #, php-format
861
+ msgid "Error: Restore folder does not exist. Please contact %s for assistance."
862
+ msgstr ""
863
+
864
+ #: views/restore.php:141
865
+ #, php-format
866
+ msgid ""
867
+ "<p>* The automated restore feature is only available to licensed customers. "
868
+ "Please visit <a href=\"%s\" target=\"_blank\">%s</a> to get license WP "
869
+ "BackItUp risk free for 30 days.</p>"
870
+ msgstr ""
871
+
872
+ #: views/restore.php:153
873
+ msgid "Upload"
874
+ msgstr ""
875
+
876
+ #: views/restore.php:156
877
+ msgid ""
878
+ "Upload WP BackItUp archive(zip) files to add to your list of available "
879
+ "backups."
880
+ msgstr ""
881
+
882
+ #: views/restore.php:173
883
+ msgid "WP BackItUp - Upload backup files"
884
+ msgstr ""
885
+
886
+ #: views/restore.php:174
887
+ msgid "Backup files may be uploaded into WP BackItUp with this form."
888
+ msgstr ""
889
+
890
+ #: views/restore.php:174
891
+ msgid ""
892
+ "They may also be uploaded manually into the WP BackItUp directory (wp-"
893
+ "content/wpbackitup_backups) using FTP. When done uploading all backup files "
894
+ "refresh this page."
895
+ msgstr ""
896
+
897
+ #: views/restore.php:178
898
+ #, php-format
899
+ msgid "This feature requires %s version %s or later"
900
+ msgstr ""
901
+
902
+ #: views/restore.php:184
903
+ msgid "Drop backup files here"
904
+ msgstr ""
905
+
906
+ #: views/restore.php:190
907
+ msgid ""
908
+ "* Reload this page when done uploading to see new backups appear in the "
909
+ "Available Backups section above. "
910
+ msgstr ""
911
+
912
+ #: views/restore.php:219
913
+ msgid "Preparing for restore"
914
+ msgstr ""
915
+
916
+ #: views/restore.php:220
917
+ msgid "Unzipping backup set"
918
+ msgstr ""
919
+
920
+ #: views/restore.php:221
921
+ msgid "Validating backup file"
922
+ msgstr ""
923
+
924
+ #: views/restore.php:222
925
+ msgid "Deactivating plugins"
926
+ msgstr ""
927
+
928
+ #: views/restore.php:223
929
+ msgid "Creating database restore point"
930
+ msgstr ""
931
+
932
+ #: views/restore.php:224
933
+ msgid "Staging content files"
934
+ msgstr ""
935
+
936
+ #: views/restore.php:225
937
+ msgid "Restoring content files"
938
+ msgstr ""
939
+
940
+ #: views/restore.php:226
941
+ msgid "Restoring database"
942
+ msgstr ""
943
+
944
+ #: views/restore.php:227
945
+ msgid "Updating current user info"
946
+ msgstr ""
947
+
948
+ #: views/restore.php:228
949
+ msgid "Updating site URL"
950
+ msgstr ""
951
+
952
+ #: views/restore.php:230
953
+ msgid "Updating permalinks"
954
+ msgstr ""
955
+
956
+ #: views/restore.php:236
957
+ msgid "Error 201: No file selected"
958
+ msgstr ""
959
+
960
+ #: views/restore.php:237
961
+ msgid "Error 202: Your file could not be uploaded"
962
+ msgstr ""
963
+
964
+ #: views/restore.php:238
965
+ msgid "Error 203: Your backup could not be unzipped"
966
+ msgstr ""
967
+
968
+ #: views/restore.php:239
969
+ msgid ""
970
+ "Error 204: Your backup appears to be invalid. Please ensure you selected a "
971
+ "valid backup"
972
+ msgstr ""
973
+
974
+ #: views/restore.php:240
975
+ msgid "Error 205: Cannot create restore point"
976
+ msgstr ""
977
+
978
+ #: views/restore.php:241
979
+ msgid "Error 206: Unable to connect to your database"
980
+ msgstr ""
981
+
982
+ #: views/restore.php:242
983
+ msgid ""
984
+ "Error 207: Unable to get current site URL from database. Please try again"
985
+ msgstr ""
986
+
987
+ #: views/restore.php:243
988
+ msgid ""
989
+ "Error 208: Unable to get current home URL from database. Please try again"
990
+ msgstr ""
991
+
992
+ #: views/restore.php:244
993
+ msgid ""
994
+ "Error 209: Unable to get current user ID from database. Please try again"
995
+ msgstr ""
996
+
997
+ #: views/restore.php:245
998
+ msgid ""
999
+ "Error 210: Unable to get current user password from database. Please try "
1000
+ "again"
1001
+ msgstr ""
1002
+
1003
+ #: views/restore.php:246
1004
+ msgid ""
1005
+ "Error 211: Unable to get current user email from database. Please try again"
1006
+ msgstr ""
1007
+
1008
+ #: views/restore.php:247
1009
+ msgid ""
1010
+ "Error 212: Unable to import your database. This may require importing the "
1011
+ "file manually"
1012
+ msgstr ""
1013
+
1014
+ #: views/restore.php:248
1015
+ msgid ""
1016
+ "Warning 213: Unable to update your site URL value. Please check your "
1017
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1018
+ "correct"
1019
+ msgstr ""
1020
+
1021
+ #: views/restore.php:249
1022
+ msgid ""
1023
+ "Warning 214: Unable to update your home URL value. Please check your "
1024
+ "WordPress general settings to make sure your Site and WordPress URLs are "
1025
+ "correct"
1026
+ msgstr ""
1027
+
1028
+ #: views/restore.php:250
1029
+ msgid ""
1030
+ "Warning 215: Unable to update your user information. This may require you to "
1031
+ "login with the admin username and password that was used when the backup was "
1032
+ "created"
1033
+ msgstr ""
1034
+
1035
+ #: views/restore.php:251
1036
+ msgid "Error 216: Database not found in backup"
1037
+ msgstr ""
1038
+
1039
+ #: views/restore.php:252
1040
+ msgid "Warning 217: Unable to remove existing wp-content directory"
1041
+ msgstr ""
1042
+
1043
+ #: views/restore.php:253
1044
+ msgid ""
1045
+ "Error 218: Unable to create new wp-content directory. Please check your "
1046
+ "CHMOD settings in /wp-content/"
1047
+ msgstr ""
1048
+
1049
+ #: views/restore.php:254
1050
+ msgid "Error 219: Unable to import wp-content. Please try again"
1051
+ msgstr ""
1052
+
1053
+ #: views/restore.php:255
1054
+ msgid "Warning 220: Unable to cleanup import directory. No action is required"
1055
+ msgstr ""
1056
+
1057
+ #: views/restore.php:256
1058
+ #, php-format
1059
+ msgid ""
1060
+ "Error 221: Table prefix value in wp-config.php is different from backup. "
1061
+ "This MUST be changed in your wp-config.php file before you will be able to "
1062
+ "restore your site. See www.wpbackitup.com <a href =\"%s\" target=\"_blank\" "
1063
+ "> FAQs</a> for more info."
1064
+ msgstr ""
1065
+
1066
+ #: views/restore.php:257
1067
+ msgid "Error 222: Unable to create restore folder"
1068
+ msgstr ""
1069
+
1070
+ #: views/restore.php:258
1071
+ msgid ""
1072
+ "Error 223: An error occurred during the restore. WP BackItUp attempted to "
1073
+ "restore the database to its previous state but were unsuccessful. Please "
1074
+ "contact WP BackItUp customer support and do not attempt to perform any "
1075
+ "further restores"
1076
+ msgstr ""
1077
+
1078
+ #: views/restore.php:259
1079
+ msgid ""
1080
+ "Error 224: An error occurred during the restore, however, we have "
1081
+ "successfully restored your database to the previous state"
1082
+ msgstr ""
1083
+
1084
+ #: views/restore.php:260
1085
+ msgid ""
1086
+ "Error 225: Restore option is only available to licensed WP BackItUp users"
1087
+ msgstr ""
1088
+
1089
+ #: views/restore.php:261
1090
+ msgid ""
1091
+ "Error 226: Restore cannot proceed because your backup was created using a "
1092
+ "different version of WordPress"
1093
+ msgstr ""
1094
+
1095
+ #: views/restore.php:262
1096
+ msgid ""
1097
+ "Error 227: Restore cannot proceed because your backup was created using a "
1098
+ "different version of WP BackItUp. Please contact WP BackItUp support to "
1099
+ "help convert this backup to the current version"
1100
+ msgstr ""
1101
+
1102
+ #: views/restore.php:263
1103
+ msgid ""
1104
+ "Error 230: WP BackItUp ran into unexpected errors during the database "
1105
+ "restore. However, we were able to successfully revert the database back to "
1106
+ "its original state . This error may require importing the database manually"
1107
+ msgstr ""
1108
+
1109
+ #: views/restore.php:264
1110
+ msgid ""
1111
+ "Error 235: WP BackItUp is not able to proceed because there is no zip "
1112
+ "utility available. Please contact support"
1113
+ msgstr ""
1114
+
1115
+ #: views/restore.php:265
1116
+ msgid ""
1117
+ "Error 250: WP BackItUp is unable to begin the restore because a backup is "
1118
+ "running. Please wait for the backup to complete and then try again"
1119
+ msgstr ""
1120
+
1121
+ #: views/restore.php:267
1122
+ msgid ""
1123
+ "Error 251: WP BackItUp is unable to begin the restore because the backup "
1124
+ "manifest is empty"
1125
+ msgstr ""
1126
+
1127
+ #: views/restore.php:268
1128
+ msgid ""
1129
+ "Error 252: At least one zip file is missing from your backup set. Please "
1130
+ "make sure to upload all zip files that were part of this backup"
1131
+ msgstr ""
1132
+
1133
+ #: views/restore.php:269
1134
+ msgid ""
1135
+ "Error 253: Backup set contains a zip file that is not in the manifest. "
1136
+ "Please make sure to upload only zip files that were part of this backup"
1137
+ msgstr ""
1138
+
1139
+ #: views/restore.php:271
1140
+ msgid ""
1141
+ "Warning 300: Unable to restore all WordPress content. Please review your "
1142
+ "restore logs to see what WP BackItUp was unable to restore"
1143
+ msgstr ""
1144
+
1145
+ #: views/restore.php:272
1146
+ msgid ""
1147
+ "Warning 305: Unable to restore all plugins. Please review your restore logs "
1148
+ "to see what WP BackItUp was unable to restore"
1149
+ msgstr ""
1150
+
1151
+ #: views/restore.php:274
1152
+ msgid "Error 2001: Unable to prepare site for restore"
1153
+ msgstr ""
1154
+
1155
+ #: views/restore.php:275
1156
+ msgid "Error 2002: Unable to unzip backup"
1157
+ msgstr ""
1158
+
1159
+ #: views/restore.php:276
1160
+ msgid "Error 2003: Unable to validate backup"
1161
+ msgstr ""
1162
+
1163
+ #: views/restore.php:277
1164
+ msgid "Error 2004: Unable to create restore point"
1165
+ msgstr ""
1166
+
1167
+ #: views/restore.php:278
1168
+ msgid "Error 2005: Unable to stage wp-content"
1169
+ msgstr ""
1170
+
1171
+ #: views/restore.php:279
1172
+ msgid "Error 2006: Unable to restore content files"
1173
+ msgstr ""
1174
+
1175
+ #: views/restore.php:280
1176
+ msgid "Error 2007: Unable to restore database"
1177
+ msgstr ""
1178
+
1179
+ #: views/restore.php:281
1180
+ msgid "Error 2999: Unexpected error encountered"
1181
+ msgstr ""
1182
+
1183
+ #: views/restore.php:288
1184
+ msgid ""
1185
+ "Restore completed successfully. If you are prompted to login please do so "
1186
+ "with your current username and password"
1187
+ msgstr ""
1188
+
1189
+ #: views/settings.php:16
1190
+ #, php-format
1191
+ msgid "%s Settings"
1192
+ msgstr ""
1193
+
1194
+ #: views/settings.php:43
1195
+ msgid "Email Notifications"
1196
+ msgstr ""
1197
+
1198
+ #: views/settings.php:44
1199
+ msgid ""
1200
+ "Please enter your email address if you would like to receive backup email "
1201
+ "notifications."
1202
+ msgstr ""
1203
+
1204
+ #: views/settings.php:45
1205
+ msgid ""
1206
+ "Backup email notifications will be sent for every backup and will contain "
1207
+ "status information related to the backup."
1208
+ msgstr ""
1209
+
1210
+ #: views/settings.php:47 views/settings.php:67 views/settings.php:88
1211
+ #: views/settings.php:114
1212
+ msgid "Save"
1213
+ msgstr ""
1214
+
1215
+ #: views/settings.php:63
1216
+ msgid "Backup Retention"
1217
+ msgstr ""
1218
+
1219
+ #: views/settings.php:64
1220
+ msgid ""
1221
+ "Enter the number of backup archives that you would like to remain on the "
1222
+ "server."
1223
+ msgstr ""
1224
+
1225
+ #: views/settings.php:65
1226
+ msgid ""
1227
+ "Many hosts limit the amount of space that you can take up on their servers. "
1228
+ "This option tells WP BackItUp the maximum number of backup archives that "
1229
+ "should remain on your hosts server. Don't worry, we will always remove the "
1230
+ "oldest backup archives first."
1231
+ msgstr ""
1232
+
1233
+ #: views/settings.php:84
1234
+ msgid "Turn on logging?"
1235
+ msgstr ""
1236
+
1237
+ #: views/settings.php:85
1238
+ msgid "Yes"
1239
+ msgstr "Si"
1240
+
1241
+ #: views/settings.php:86
1242
+ msgid "No"
1243
+ msgstr "No"
1244
+
1245
+ #: views/settings.php:87
1246
+ msgid ""
1247
+ "This option should only be turned on when troubleshooting issues with "
1248
+ "WPBackItUp support."
1249
+ msgstr ""
1250
+
1251
+ #: views/settings.php:92
1252
+ msgid "Advanced Settings"
1253
+ msgstr ""
1254
+
1255
+ #: views/settings.php:93
1256
+ msgid ""
1257
+ "These options should only be changed when working with WP BackItUp support."
1258
+ msgstr ""
1259
+
1260
+ #: views/settings.php:96
1261
+ msgid "Plugins Batch Size"
1262
+ msgstr ""
1263
+
1264
+ #: views/settings.php:101
1265
+ msgid "Themes Batch Size"
1266
+ msgstr ""
1267
+
1268
+ #: views/settings.php:106
1269
+ msgid "Uploads Batch Size"
1270
+ msgstr ""
1271
+
1272
+ #: views/settings.php:111
1273
+ msgid "Others Batch Size"
1274
+ msgstr ""
1275
+
1276
+ #: views/support.php:16
1277
+ #, php-format
1278
+ msgid "%s Support"
1279
+ msgstr ""
1280
+
1281
+ #: views/support.php:35
1282
+ msgid "Support email sent successfully!"
1283
+ msgstr ""
1284
+
1285
+ #: views/support.php:48
1286
+ msgid "Email Logs to Support"
1287
+ msgstr ""
1288
+
1289
+ #: views/support.php:49
1290
+ msgid "This form should be used to send log files to support only."
1291
+ msgstr ""
1292
+
1293
+ #: views/support.php:50
1294
+ msgid ""
1295
+ "Please make sure to open a support ticket via WP BackItUp <a href=\"https://"
1296
+ "www.wpbackitup.com/support\" target=\"_blank\">support portal.</a> before "
1297
+ "using this form."
1298
+ msgstr ""
1299
+
1300
+ #: views/support.php:51
1301
+ msgid ""
1302
+ "The ticket id you receive from your support request should be entered in the "
1303
+ "ticket id field below."
1304
+ msgstr ""
1305
+
1306
+ #: views/support.php:52
1307
+ msgid "your email address"
1308
+ msgstr ""
1309
+
1310
+ #: views/support.php:62
1311
+ msgid "support ticket id"
1312
+ msgstr ""
1313
+
1314
+ #: views/support.php:72
1315
+ msgid "problem description or additional information"
1316
+ msgstr ""
1317
+
1318
+ #: views/support.php:83
1319
+ msgid "Send"
1320
+ msgstr ""
1321
+
1322
+ #: views/support.php:86
1323
+ msgid "Please register your version of WP BackItUp for access to support."
1324
+ msgstr ""
1325
+
1326
+ #: views/support.php:90
1327
+ msgid "Premium customers receive priority support."
1328
+ msgstr ""
1329
+
1330
+ #: wp-backitup.php:97 wp-backitup.php:98
1331
+ #, php-format
1332
+ msgid "Every %s hours"
1333
+ msgstr ""
lib/includes/class-backup.php CHANGED
@@ -19,17 +19,16 @@ if( !class_exists( 'WPBackItUp_Filesystem' ) ) {
19
 
20
  class WPBackItUp_Backup {
21
 
22
- private $logger;
23
 
24
  //Public Properties
25
  public $backup_name;
26
- public $backup_filename;
27
  public $backup_project_path;
28
  public $backup_folder_root;
29
  public $restore_folder_root;
30
  public $backup_retained_number;
31
  public $backup_retained_days;
32
- public $backup_batch_size;
33
 
34
  //scheduled,manual,none
35
  public $backup_type;
@@ -44,19 +43,24 @@ class WPBackItUp_Backup {
44
 
45
  //-------------END STATIC FUNCTIONS-------------------//
46
 
47
- function __construct($logger,$backup_name, $backup_type) {
48
  global $WPBackitup;
49
  try {
50
- $this->logger = $logger;
 
 
 
 
 
 
 
 
51
 
52
  $this->backup_type=$backup_type;
53
 
54
- $this->backup_batch_size=1; //manual backups
55
- if ('scheduled'==$this->backup_type){
56
- $this->backup_batch_size=$WPBackitup->backup_batch_size(); //Scheduled
57
- }
58
  $this->backup_name=$backup_name;
59
- $this->backup_filename=$backup_name . '.tmp';
60
 
61
  $backup_project_path = WPBACKITUP__BACKUP_PATH .'/TMP_'. $backup_name .'/';
62
 
@@ -71,7 +75,8 @@ class WPBackItUp_Backup {
71
  $this->backup_retained_days = WPBACKITUP__BACKUP_RETAINED_DAYS; //Prob need to move this to main propery
72
 
73
  } catch(Exception $e) {
74
- $this->logger->log_error(__METHOD__,'Constructor Exception: ' .$e);
 
75
  throw $e;
76
  }
77
  }
@@ -87,22 +92,23 @@ class WPBackItUp_Backup {
87
  * @return bool
88
  */
89
  public static function start (){
90
- $logger = new WPBackItUp_Logger(false,null,'debug_lock');
 
91
  try {
92
  self::$lockFileName = WPBACKITUP__PLUGIN_PATH .'logs/wpbackitup_lock.lock';
93
- $logger->log_info(__METHOD__,'Begin - Lock File:' . self::$lockFileName);
94
 
95
  self::$lockFile = fopen(self::$lockFileName ,"w"); // open it for WRITING ("w")
96
  if (flock( self::$lockFile, LOCK_EX | LOCK_NB)) {
97
- $logger->log_info(__METHOD__,'Process LOCK acquired');
98
  return true;
99
  } else {
100
- $logger->log_info(__METHOD__,'Process LOCK failed');
101
  return false;
102
  }
103
 
104
  } catch(Exception $e) {
105
- $logger->log_info(__METHOD__,'Process Lock error: ' .$e);
106
  return false;
107
  }
108
  }
@@ -112,15 +118,15 @@ class WPBackItUp_Backup {
112
  * @return bool
113
  */
114
  public static function end (){
115
- //$this->logger->log_info(__METHOD__,'Begin - Unlock File:' . $this->lockFileName);
116
 
117
  try{
118
- //$this->logger->log_info(__METHOD__,'LOCK released - backup ending');
119
  flock( self::$lockFile, LOCK_UN); // unlock the file
120
  return true;
121
 
122
  }catch(Exception $e) {
123
- //$this->logger->log_error(__METHOD__,'Cant unlock file: ' .$e);
124
  return false;
125
  }
126
  }
@@ -149,37 +155,37 @@ class WPBackItUp_Backup {
149
  }
150
 
151
  public function cleanup_backups_by_prefix($prefix) {
152
- $this->logger->log_info( __METHOD__, 'Begin' );
153
  $backup_root_path=$this->backup_folder_root;
154
 
155
  //get a list of all the temps
156
  $work_folder_list = glob($backup_root_path. $prefix .'*', GLOB_ONLYDIR);
157
- $file_system = new WPBackItUp_FileSystem($this->logger);
158
  foreach($work_folder_list as $folder) {
159
  $file_system->recursive_delete($folder);
160
  }
161
 
162
- $this->logger->log_info( __METHOD__, 'End' );
163
  }
164
 
165
  public function cleanup_old_backups() {
166
- $this->logger->log_info( __METHOD__, 'Begin' );
167
 
168
  // --PURGE BACKUP FOLDER
169
  //Purge logs in backup older than N days
170
  $backup_root_path=$this->backup_folder_root;
171
- $file_system = new WPBackItUp_FileSystem($this->logger);
172
 
173
  //check retention limits
174
  $file_system->purge_folders($backup_root_path,'*',$this->backup_retained_number);
175
 
176
- $this->logger->log_info( __METHOD__, 'End' );
177
  }
178
 
179
 
180
  public function cleanup_unfinished_backups_OLD(){
181
  $dir=$this->backup_folder_root;
182
- $this->logger->log_info(__METHOD__,'Begin:'.$dir);
183
  $ignore = array('cgi-bin','.','..','._');
184
  if( is_dir($dir) ){
185
  if($dh = opendir($dir)) {
@@ -189,7 +195,7 @@ class WPBackItUp_Backup {
189
  if(!is_dir($dir .'/'. $file)) {
190
  unlink($dir .'/'. $file);
191
  } else {
192
- $fileSystem = new WPBackItUp_FileSystem($this->logger);
193
  $fileSystem->recursive_delete($dir.'/'. $file, $ignore);
194
  }
195
  }
@@ -197,29 +203,29 @@ class WPBackItUp_Backup {
197
  }
198
  closedir($dh);
199
  }
200
- $this->logger->log_info(__METHOD__,'End');
201
  return true;
202
  }
203
 
204
  public function cleanup_current_backup(){
205
  $path = $this->backup_project_path;
206
- $this->logger->log_info(__METHOD__, 'Begin - Cleanup Backup Folder:' . $path);
207
 
208
- $fileSystem = new WPBackItUp_FileSystem($this->logger);
209
  $work_files = $fileSystem->get_fileonly_list($path, 'txt|sql');
210
 
211
  if(!$fileSystem ->delete_files($work_files)) {
212
- $this->logger->log_error(__METHOD__,'Work files could not be deleted');
213
  return false;
214
  }
215
 
216
- $this->logger->log_info(__METHOD__,'End - Work Files Deleted');
217
  return true;
218
  }
219
 
220
  public function purge_old_files(){
221
- $this->logger->log_info(__METHOD__,'Begin');
222
- $fileSystem = new WPBackItUp_FileSystem( $this->logger);
223
 
224
  //Check the retention
225
  $fileSystem->purge_FilesByDate($this->backup_retained_number,$this->backup_folder_root);
@@ -259,16 +265,16 @@ class WPBackItUp_Backup {
259
  // //Purge restore logs in logs older than 5 days
260
  // $fileSystem->purge_files($logs_path,'*restore*.log',$this->backup_retained_days);
261
 
262
- $this->logger->log_info(__METHOD__,'End');
263
 
264
  }
265
 
266
  //Make sure the root backup folder wpbackitup_backups exists
267
  public function backup_root_folder_exists(){
268
- $this->logger->log_info(__METHOD__,'Begin: ' .$this->backup_folder_root);
269
- $fileSystem = new WPBackItUp_FileSystem($this->logger);
270
  if(!$fileSystem->create_dir($this->backup_folder_root)) {
271
- $this->logger->log_error(__METHOD__,' Cant create backup folder :'. $this->backup_folder_root);
272
  return false;
273
  }
274
 
@@ -279,61 +285,61 @@ class WPBackItUp_Backup {
279
  $fileSystem->secure_folder( $logs_dir);
280
 
281
 
282
- $this->logger->log_info(__METHOD__,'End');
283
  return true;
284
  }
285
 
286
  //Create the root folder for the current backup
287
  public function create_current_backup_folder(){
288
- $this->logger->log_info(__METHOD__,'Begin: ' .$this->backup_project_path);
289
- $fileSystem = new WPBackItUp_FileSystem($this->logger);
290
  if(!$fileSystem->create_dir($this->backup_project_path)) {
291
- $this->logger->log_error(__METHOD__,'Cant create backup folder :'. $this->backup_project_path);
292
  return false;
293
  }
294
 
295
- $this->logger->log_info(__METHOD__,'End');
296
  return true;
297
  }
298
 
299
  //Check to see if the directory exists and is writeable
300
  public function backup_folder_exists(){
301
  $path=$this->backup_project_path;
302
- $this->logger->log_info(__METHOD__,'Is folder writeable: ' .$path);
303
  if(is_writeable($path)) {
304
- $this->logger->log_info(__METHOD__,'Folder IS writeable');
305
- return true;
306
  }
307
 
308
- $this->logger->log_error(__METHOD__,'Folder NOT writeable');
309
  return false;
310
  }
311
 
312
  //Export the SQL database
313
  public function export_database(){
314
  $sql_file_name=$this->backup_project_path . WPBACKITUP__SQL_DBBACKUP_FILENAME;
315
- $sqlUtil = new WPBackItUp_SQL($this->logger);
316
- $this->logger->log_info(__METHOD__,'Begin - Export Database: ' .$sql_file_name);
317
 
318
  //log database size
319
  $db_size = $sqlUtil->get_table_rows();
320
- $this->logger->log_info(__METHOD__,$db_size,"Table Size");
321
 
322
  //Try SQLDump First
323
- $this->logger->log_info(__METHOD__,'Export DB with MYSQLDUMP');
324
  if(!$sqlUtil->mysqldump_export($sql_file_name) ) {
325
 
326
- $this->logger->log_info(__METHOD__,'Export DB with MYSQLDUMP/PATH');
327
  if(!$sqlUtil->mysqldump_export($sql_file_name,true) ) {
328
 
329
- $this->logger->log_info(__METHOD__,'Export DB with Manual SQL EXPORT');
330
  if(!$sqlUtil->manual_export($sql_file_name) ) {
331
- $this->logger->log_error(__METHOD__,'SQL EXPORT FAILED');
332
  return false;
333
  }
334
  }
335
  }
336
- $this->logger->log_info(__METHOD__,'Database Exported successfully');
337
  return true;
338
  }
339
 
@@ -343,11 +349,11 @@ class WPBackItUp_Backup {
343
  $path=$this->backup_project_path;
344
  $siteinfo = $path ."backupsiteinfo.txt";
345
 
346
- $this->logger->log_info(__METHOD__,'Create Site Info File:'.$siteinfo);
347
  try {
348
  $handle = fopen($siteinfo, 'w+');
349
  if (false===$handle){
350
- $this->logger->log_error(__METHOD__,'Cant open file.');
351
  return false;
352
  }
353
 
@@ -373,25 +379,25 @@ class WPBackItUp_Backup {
373
 
374
 
375
  if (file_exists($siteinfo)){
376
- $this->logger->log_info(__METHOD__,'File created successfully.');
377
  return true;
378
  }
379
 
380
  }catch(Exception $e) {
381
- $this->this->logger->log_error(__METHOD__,' Exception: ' .$e);
382
  }
383
 
384
- $this->logger->log_error(__METHOD__,'Site Info File NOT Created.');
385
  return false;
386
  }
387
 
388
  public function get_plugins_file_list() {
389
- $this->logger->log_info( __METHOD__, 'Begin' );
390
 
391
- $file_system = new WPBackItUp_FileSystem($this->logger);
392
  $plugins_file_list = $file_system->get_recursive_file_list(WPBACKITUP__PLUGINS_ROOT_PATH. '/*' );
393
  $file_system=null;//release resources.
394
- $this->logger->log_info( __METHOD__, 'Plugin File Count: ' .count($plugins_file_list));
395
 
396
  return $plugins_file_list;
397
  }
@@ -407,109 +413,29 @@ class WPBackItUp_Backup {
407
  return false;
408
  }
409
 
410
-
411
- public function save_inventory_files($batch_insert_size,$job_id,$group_id,$root_path,$exclude=null) {
412
- $this->logger->log_info( __METHOD__, 'Begin:' .$group_id);
413
-
414
- //create a separate log file for inventory
415
- $logger_inventory = new WPBackItUp_Logger(true,null,'debug_inventory_'.$group_id);
416
- $logger_inventory->log_info( __METHOD__, 'Root Path: ' .$root_path);
417
- $logger_inventory->log_info( __METHOD__, 'Exclude: ' .var_export($exclude,true));
418
- $logger_inventory->log_info( __METHOD__, '***');
419
- try {
420
- $batch_counter = 0;
421
- $total_counter=0;
422
- $directory_iterator=new RecursiveDirectoryIterator($root_path, 4096 | 8192 | RecursiveIteratorIterator::CATCH_GET_CHILD);
423
- $item_iterator = new RecursiveIteratorIterator($directory_iterator,RecursiveIteratorIterator::SELF_FIRST);
424
-
425
- $datetime1 = new DateTime('now');
426
- $sql="";
427
- while ($item_iterator->valid()) {
428
- //Skip the item if its in the exclude array
429
- //This is a string compare starting in position 1
430
- $file_path = $item_iterator->getSubPathname();
431
- if ($this->strposa0($file_path, $exclude)===true) {
432
- $logger_inventory->log_info( __METHOD__, 'Skip: ' .$file_path);
433
- } else {
434
- if ( $item_iterator->isFile()) {
435
- if ($batch_counter>=$batch_insert_size){
436
- if (! $this->save_inventory_db($sql,$logger_inventory)) {
437
- return false;
438
- }
439
- $sql="";
440
- $batch_counter=0;
441
- }
442
- $total_counter++;
443
- $batch_counter++;
444
- $file_size=ceil($item_iterator->getSize()/1024);//round up
445
- $logger_inventory->log_info( __METHOD__, 'Add File: ' .$batch_counter . ' ' .$file_path);
446
- $sql.= "(".$job_id .", '" .$group_id."', '" .$file_path ."', ".$file_size ."),";
447
- }
448
- }
449
- $item_iterator->next();
450
- }
451
-
452
- if ($batch_counter>0) {
453
- if (! $this->save_inventory_db($sql,$logger_inventory)) {
454
- return false;
455
- }
456
- }
457
-
458
- $datetime2 = new DateTime('now');
459
-
460
- if(method_exists($datetime2, 'diff')) {
461
- $interval = $datetime1->diff($datetime2);
462
- $this->logger->log_info( __METHOD__, 'File Count/Time: ' .$total_counter . '-' . $interval->format('%s seconds'));
463
- } else {
464
- $util = new WPBackItUp_Utility($this->logger);
465
- $interval = $util->date_diff_array($datetime1, $datetime2);
466
- $this->logger->log_info(__METHOD__, 'File Count/Time: ' . $total_counter . '-' . $interval['second'] . ' seconds');
467
- }
468
-
469
- return true;
470
-
471
- } catch(Exception $e) {
472
- $this->logger->log_error( __METHOD__, 'Exception: ' .$e);
473
- return false;
474
- }
475
- }
476
-
477
-
478
  public function create_job_control($job_id) {
479
- $this->logger->log_info( __METHOD__, 'Begin' );
480
 
481
- //create a separate log file for inventory
482
- $logger_inventory = new WPBackItUp_Logger( true, null, 'debug_inventory_' . $job_id );
483
- $logger_inventory->log_info( __METHOD__, '***' );
484
  try {
485
-
486
  $db = new WPBackItUp_DataAccess();
487
  return $db->create_job_control($job_id);
488
 
489
  } catch ( Exception $e ) {
490
- $this->logger->log_error( __METHOD__, 'Exception: ' . $e );
491
-
492
  return false;
493
-
494
  }
495
  }
496
 
497
  public function update_job_control_complete($job_id) {
498
- $this->logger->log_info( __METHOD__, 'Begin' );
499
 
500
- //create a separate log file for inventory
501
- $logger_inventory = new WPBackItUp_Logger( true, null, 'debug_inventory_' . $job_id );
502
- $logger_inventory->log_info( __METHOD__, '***' );
503
  try {
504
-
505
  $db = new WPBackItUp_DataAccess();
506
  return $db->update_job_control_complete($job_id);
507
 
508
  } catch ( Exception $e ) {
509
- $this->logger->log_error( __METHOD__, 'Exception: ' . $e );
510
-
511
  return false;
512
-
513
  }
514
  }
515
 
@@ -526,14 +452,14 @@ class WPBackItUp_Backup {
526
  * @return bool
527
  */
528
  public function save_folder_inventory($batch_insert_size,$job_id,$group_id,$root_path,$exclude=null) {
529
- $this->logger->log_info( __METHOD__, 'Begin:' .$group_id);
530
 
531
  //create a separate log file for inventory
532
- $logger_inventory = new WPBackItUp_Logger(false,null,sprintf('debug_inventory_%s_%s',$group_id,$job_id));
533
- $logger_inventory->log_info( __METHOD__, '**BEGIN**');
534
- $logger_inventory->log_info( __METHOD__, 'Root Path: ' .$root_path);
535
- $logger_inventory->log_info( __METHOD__, 'Exclude: ' .var_export($exclude,true));
536
- $logger_inventory->log_info( __METHOD__, '***');
537
  try {
538
  $batch_counter = 0;
539
  $total_counter=0;
@@ -555,22 +481,22 @@ class WPBackItUp_Backup {
555
  $file_path = esc_sql($file_path);
556
 
557
  if ($this->strposa0($file_path, $exclude)===true) {
558
- $logger_inventory->log_info( __METHOD__, 'Skip: ' .$file_path);
559
  } else {
560
  if ( $item_iterator->isFile()) {
561
  if ($batch_counter>=$batch_insert_size){
562
- $logger_inventory->log_info( __METHOD__, '*Try Write Batch*');
563
- if (! $db->insert_job_items($sql,$logger_inventory)) {
564
  return false;
565
  }
566
- $logger_inventory->log_info( __METHOD__, '*Write Batch SUCCESS*');
567
  $sql="";
568
  $batch_counter=0;
569
  }
570
  $total_counter++;
571
  $batch_counter++;
572
  $file_size=ceil($item_iterator->getSize()/1024);//round up
573
- $logger_inventory->log_info( __METHOD__, 'Add File: ' .$batch_counter . ' ' .$file_path);
574
  $sql.= "(".$job_id .", '" .$group_id."', '" .utf8_encode($file_path) ."', ".$file_size .",now() ),";
575
  }
576
  }
@@ -578,31 +504,31 @@ class WPBackItUp_Backup {
578
  }
579
 
580
  if ($batch_counter>0) {
581
- $logger_inventory->log_info( __METHOD__, '*Try Write Batch*');
582
- if (! $db->insert_job_items($sql,$logger_inventory)) {
583
  return false;
584
  }
585
- $logger_inventory->log_info( __METHOD__, '*Write Batch SUCCESS*');
586
  }
587
 
588
  $datetime2 = new DateTime('now');
589
 
590
- $logger_inventory->log_info( __METHOD__, '**END**');
591
 
592
  if(method_exists($datetime2, 'diff')) {
593
  $interval = $datetime1->diff($datetime2);
594
- $this->logger->log_info( __METHOD__, 'File Count/Time: ' .$total_counter . '-' . $interval->format('%s seconds'));
595
  } else {
596
- $util = new WPBackItUp_Utility($this->logger);
597
  $interval = $util->date_diff_array($datetime1, $datetime2);
598
- $this->logger->log_info( __METHOD__, 'File Count/Time: ' .$total_counter . '-' . $interval['second'] . ' seconds');
599
  }
600
 
601
 
602
  return true;
603
 
604
  } catch(Exception $e) {
605
- $this->logger->log_error( __METHOD__, 'Exception: ' .$e);
606
  return false;
607
  }
608
  }
@@ -619,17 +545,14 @@ class WPBackItUp_Backup {
619
  * @internal param $root_path
620
  */
621
  public function save_file_list_inventory($batch_insert_size,$job_id,$group_id,$root_path,$file_list) {
622
- $this->logger->log_info( __METHOD__, 'Begin:' .var_export($file_list,true));
623
 
624
  //check is array list
625
  if (! is_array($file_list)) {
626
- $this->logger->log_error(__METHOD__,'Array expected in file list:');
627
  return false;
628
  }
629
 
630
- //create a separate log file for inventory
631
- $logger_inventory = new WPBackItUp_Logger(true,null,'debug_inventory_'.$group_id);
632
- $logger_inventory->log_info( __METHOD__, '***');
633
  try {
634
  $batch_counter = 0;
635
  $total_counter=0;
@@ -641,13 +564,13 @@ class WPBackItUp_Backup {
641
 
642
  //skip if folder
643
  if ( is_dir( $file_path ) ) {
644
- $this->logger->log_info( __METHOD__, 'Skip folder:' . $file_path );
645
  continue;
646
  }
647
 
648
 
649
  if ($batch_counter>=$batch_insert_size){
650
- if (! $db->insert_job_items($sql,$logger_inventory)) {
651
  return false;
652
  }
653
  $sql="";
@@ -660,12 +583,12 @@ class WPBackItUp_Backup {
660
  //get rid of root path and utf8 encode
661
  $file_path = utf8_encode(str_replace($root_path,'',$file_path));
662
 
663
- $logger_inventory->log_info( __METHOD__, 'Add File: ' .$batch_counter . ' ' .$file_path);
664
  $sql.= "(".$job_id .", '" .$group_id."', '" .$file_path ."', ".$file_size .",now() ),";
665
  }
666
 
667
  if ($batch_counter>0) {
668
- if (! $db->insert_job_items($sql,$logger_inventory)) {
669
  return false;
670
  }
671
  }
@@ -674,35 +597,35 @@ class WPBackItUp_Backup {
674
 
675
  if(method_exists($datetime2, 'diff')) {
676
  $interval = $datetime1->diff($datetime2);
677
- $this->logger->log_info( __METHOD__, 'File Count/Time: ' .$total_counter . '-' . $interval->format('%s seconds'));
678
  } else {
679
- $util = new WPBackItUp_Utility($this->logger);
680
  $interval = $util->date_diff_array($datetime1, $datetime2);
681
- $this->logger->log_info( __METHOD__, 'File Count/Time: ' .$total_counter . '-' . $interval['second'] . ' seconds');
682
  }
683
 
684
  return true;
685
 
686
  } catch(Exception $e) {
687
- $this->logger->log_error( __METHOD__, 'Exception: ' .$e);
688
  return false;
689
  }
690
  }
691
 
692
  public function get_themes_file_list() {
693
- $this->logger->log_info( __METHOD__, 'Begin' );
694
 
695
- $file_system = new WPBackItUp_FileSystem($this->logger);
696
  $themes_root_path = WPBACKITUP__THEMES_ROOT_PATH;
697
  $themes_file_list = $file_system->get_recursive_file_list($themes_root_path. '/*' );
698
  $file_system=null;//release resources.
699
- $this->logger->log_info( __METHOD__, 'Themes File Count: ' .count($themes_file_list));
700
 
701
  return $themes_file_list;
702
  }
703
 
704
  public function get_uploads_file_list() {
705
- $this->logger->log_info( __METHOD__, 'Begin' );
706
 
707
  $upload_array = wp_upload_dir();
708
  $uploads_root_path = $upload_array['basedir'];
@@ -713,7 +636,7 @@ class WPBackItUp_Backup {
713
  $uploads_folderlist = glob($uploads_root_path. '/*',GLOB_ONLYDIR|GLOB_NOSORT);
714
  $uploads_file_list=array();
715
 
716
- $file_system = new WPBackItUp_FileSystem($this->logger);
717
  foreach ( $uploads_folderlist as $folder ) {
718
  if (! $this->strposa(basename($folder), $ignore)){
719
  array_push($uploads_file_list,$folder);
@@ -731,13 +654,13 @@ class WPBackItUp_Backup {
731
  $uploads_file_list = array_merge($uploads_file_list,$files_only);
732
  }
733
 
734
- $this->logger->log_info( __METHOD__, 'Uploads File Count: ' .count($uploads_file_list));
735
 
736
  return $uploads_file_list;
737
  }
738
 
739
  public function get_other_file_list() {
740
- $this->logger->log_info( __METHOD__, 'Begin' );
741
 
742
  $wpcontent_path = WPBACKITUP__CONTENT_PATH;
743
 
@@ -754,7 +677,7 @@ class WPBackItUp_Backup {
754
  $wpcontent_folderlist = glob($wpcontent_path. '/*',GLOB_ONLYDIR|GLOB_NOSORT);
755
 
756
  $other_file_list=array();
757
- $file_system = new WPBackItUp_FileSystem($this->logger);
758
  foreach ( $wpcontent_folderlist as $folder ) {
759
  if (!$this->strposa(basename($folder), $ignore)){
760
  array_push($other_file_list,$folder);
@@ -781,7 +704,7 @@ class WPBackItUp_Backup {
781
  }
782
  }
783
 
784
- $this->logger->log_info( __METHOD__, 'Other File Count: ' .count($other_file_list));
785
 
786
  return $other_file_list;
787
  }
@@ -799,7 +722,8 @@ class WPBackItUp_Backup {
799
  * @return bool|mixed
800
  */
801
  public function backup_files($job_id,$source_root,$content_type){
802
- $this->logger->log_info(__METHOD__,'Begin ');
 
803
 
804
  //get files to backup
805
  $db = new WPBackItUp_DataAccess();
@@ -808,35 +732,27 @@ class WPBackItUp_Backup {
808
  {
809
  case 'themes';
810
  $target_root='wp-content-themes';
811
- $batch_size=WPBACKITUP__THEMES_BATCH_SIZE;
812
  break;
813
  case 'plugins';
814
  $target_root='wp-content-plugins';
815
- $batch_size=WPBACKITUP__PLUGINS_BATCH_SIZE;
816
  break;
817
  case 'uploads';
818
  $target_root='wp-content-uploads';
819
- $batch_size=WPBACKITUP__UPLOADS_BATCH_SIZE;
820
  break;
821
  case 'others';
822
  $target_root='wp-content-other';
823
- $batch_size=WPBACKITUP__OTHERS_BATCH_SIZE;
824
  break;
825
- // case 'combined';
826
- // $batch_size=4;
827
- // break;
828
  default:
829
- $this->logger->log_error(__METHOD__,'Content type not recognized:'.$content_type);
830
  return false;
831
 
832
  }
833
 
834
- //If default batch size is not 500 then override defaults
835
- // $default_batch_size = get_option('wp-backitup_backup_batch_size');
836
- // if ($default_batch_size!=500){
837
- // $this->logger->log_info(__METHOD__,'Default batch size overridden:'.$default_batch_size);
838
- // $batch_size=$default_batch_size;
839
- // }
840
 
841
  //get a timestamp for the batch id
842
  $batch_id=current_time( 'timestamp' );
@@ -845,38 +761,28 @@ class WPBackItUp_Backup {
845
  //It is possible that there are no file to backup so return count or false
846
  if($file_list == false || $file_list==0) return $file_list;
847
 
848
- $zip_file_path = $this->backup_project_path . $this->backup_name .'-'.$content_type .'.tmp';
 
 
849
  if (! $this->backup_files_to_zip($source_root,$target_root,$file_list,$zip_file_path)){
850
  return false;
851
  }
852
 
853
- // checking zip file path.
854
- $this->logger->log_info(__METHOD__,'Begin:: Checking Zip file Existance');
855
- $this->logger->log_info(__METHOD__,'Tmp file path: '. $zip_file_path);
856
-
857
  // Clears file status cache
858
  clearstatcache();
859
 
860
- //if there are no more files to add then rename the zip
861
  //Check to see if the file exists, it is possible that it does not if only empty folders were contained
862
- if(file_exists($zip_file_path) ) {
863
- $this->logger->log_info(__METHOD__,'Tmp File exist');
864
- if ( ! $this->add_zip_suffix( $batch_id,$zip_file_path ) ) {
865
- $this->logger->log_info(__METHOD__,'Adding Zip Suffix Failed');
866
- return false;
867
- }else{
868
- $this->logger->log_info(__METHOD__,'Adding Zip Suffix Successful');
869
- }
870
- }else{
871
- $this->logger->log_info(__METHOD__,'Tmp File Not exist - file_exists() not working.');
872
- // Scanning Temp Directory.
873
- $files_on_temp_directory = scandir($this->backup_project_path);
874
- $this->logger->log_info(__METHOD__,'Begin::Files on TMP Directory');
875
- $this->logger->log_info(__METHOD__,$files_on_temp_directory);
876
- $this->logger->log_info(__METHOD__,'End::Files on TMP Directory');
877
  }
878
 
879
- $this->logger->log_info(__METHOD__,'End:: Checking Zip file Existance');
880
 
881
  //update the batch as done.
882
  $db->update_batch_complete($job_id,$batch_id);
@@ -899,84 +805,164 @@ class WPBackItUp_Backup {
899
  *
900
  * @return bool|mixed
901
  */
902
- public function validate_backup_files($job_id,$content_type){
903
- $this->logger->log_info(__METHOD__,'Begin: '.$content_type);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
 
905
- //get files to backup
906
- $db = new WPBackItUp_DataAccess();
907
 
908
- switch($content_type)
909
- {
910
- case 'themes';
911
- $target_root='wp-content-themes';
912
- break;
913
- case 'plugins';
914
- $target_root='wp-content-plugins';
915
- break;
916
- case 'uploads';
917
- $target_root='wp-content-uploads';
918
- break;
919
- case 'others';
920
- $target_root='wp-content-other';
921
- break;
922
- //ADD exception when other
923
- }
924
 
925
- $file_list = $db->get_completed_tasks($job_id,$content_type);
926
 
927
- //It is possible that there were no files backed up
928
- if($file_list == false || $file_list==0) {
929
- $this->logger->log_info(__METHOD__,'No files found to validate.');
930
- return true;
931
- }
932
 
933
- $current_zip_file=null;
934
- $zip=null;
935
- $file_counter=0;
936
 
937
- // Checking zip file existance
938
- $this->logger->log_info(__METHOD__,'All Zip files Path');
 
939
 
940
- foreach($file_list as $file) {
941
- $batch_id = $file->batch_id;
942
- $item = $target_root .'/' .utf8_decode( $file->item );
943
-
944
- //get zip path
945
- $zip_file_path = sprintf('%s-%s-%s.zip',$this->backup_project_path . $this->backup_name, $content_type,$batch_id);
946
-
947
- // loging zip file path.
948
- $this->logger->log_info(__METHOD__,'zip file path: '. $zip_file_path);
949
-
950
- if ($current_zip_file!=$zip_file_path){
951
- //$this->logger->log_info( __METHOD__, 'Zip File:' . $zip_file_path );
952
- if (! file_exists($zip_file_path)){
953
- $this->logger->log_error( __METHOD__, 'Zip File not found:' . $zip_file_path );
954
- // Scanning Temp Directory.
955
- $files_on_temp_directory = scandir($this->backup_project_path);
956
- $this->logger->log_info(__METHOD__,'Begin::Files on TMP Directory');
957
- $this->logger->log_info(__METHOD__,$files_on_temp_directory);
958
- $this->logger->log_info(__METHOD__,'End::Files on TMP Directory');
959
- return false;
960
- }
961
- $current_zip_file = $zip_file_path;
962
- if (null!=$zip) $zip->close();
963
- $zip = new WPBackItUp_Zip($this->logger,$current_zip_file);
964
- $this->logger->log_info( __METHOD__, 'Current Zip File:' . $current_zip_file );
965
- }
966
 
967
- //validate file exists in zip
968
- if (false===$zip->validate_file($item)) {
969
- $this->logger->log_error( __METHOD__, 'File NOT found in zip :' . $item );
970
- $zip->close();
971
- return false;
972
- }
973
- $file_counter++;
974
- }
975
 
976
- $this->logger->log_info( __METHOD__, 'Validation Successful:'.$content_type . '(' .$file_counter .')');
977
- if (null!=$zip) $zip->close();
978
- return true;
979
- }
 
 
 
 
 
 
 
 
 
 
 
 
980
 
981
  /**
982
  *
@@ -991,24 +977,25 @@ class WPBackItUp_Backup {
991
  * @return bool
992
  */
993
  private function backup_files_to_zip($source_root,$target_root,$file_list, $zip_file_path){
994
- $this->logger->log_info(__METHOD__,'Begin ');
995
 
996
  if (empty($file_list) || !isset($file_list)) {
997
- $this->logger->log_error(__METHOD__,'File list is not valid:');
998
- $this->logger->log(var_export($file_list,true));
999
  return false;
1000
  }
1001
 
1002
- $this->logger->log_info(__METHOD__,'Begin - Item Count: '. count($file_list));
1003
- $zip = new WPBackItUp_Zip($this->logger,$zip_file_path);
1004
 
 
1005
  foreach($file_list as $file) {
1006
  $item = $source_root. '/' .utf8_decode($file->item);
1007
- $this->logger->log_info( __METHOD__, 'File:' .$item);
1008
 
1009
  //skip it if folder
1010
  if ( is_dir( $item ) ) {
1011
- $this->logger->log_info( __METHOD__, 'Skip folder:' . $item );
1012
  continue;
1013
  }
1014
 
@@ -1017,19 +1004,22 @@ class WPBackItUp_Backup {
1017
  $target_item_path= str_replace('//','/',$target_item_path);
1018
  $target_item_path= str_replace('\\','/',$target_item_path);
1019
 
1020
- $this->logger->log_info( __METHOD__, 'Add File:' .$target_item_path );
1021
  if ( $zip->add_file($item,$target_item_path)) {
1022
- $this->logger->log_info( __METHOD__, 'File Added:' . $target_item_path );
1023
  } else {
1024
- $this->logger->log_error( __METHOD__, 'File NOT added:' . $target_item_path );
1025
  return false;
1026
  }
1027
  }
1028
 
1029
  //if we get here then close the zip
1030
- $zip->close();//close the zip
1031
- $this->logger->log_info(__METHOD__,'End');
1032
- return true;
 
 
 
1033
  }
1034
 
1035
 
@@ -1046,43 +1036,44 @@ class WPBackItUp_Backup {
1046
  * @return array|bool
1047
  */
1048
  public function backup_file_list($source_root,$target_root,$suffix,$file_list,$batch_size){
1049
- $this->logger->log_info(__METHOD__,'Begin');
1050
 
1051
  if (! is_array($file_list)) {
1052
- $this->logger->log_error(__METHOD__,'Array expected in file list:');
1053
- $this->logger->log(var_export($file_list,true));
1054
  return false;
1055
  }
1056
 
1057
  $batch_id=current_time( 'timestamp' );
1058
 
1059
- $zip_file_path = $this->backup_project_path . $this->backup_name .'-'.$suffix .'.tmp';
1060
- $zip = new WPBackItUp_Zip($this->logger,$zip_file_path);
 
1061
  foreach($file_list as $item) {
1062
  $item = utf8_decode($item);
1063
- $this->logger->log_info( __METHOD__, 'File:' . $item );
1064
 
1065
  //skip it if folder
1066
  if ( is_dir( $item ) ) {
1067
- $this->logger->log_info( __METHOD__, 'Skip folder:' . $item );
1068
  array_shift( $file_list ); //remove from list
1069
  continue;
1070
  }
1071
 
1072
  //replace the source path with the target
1073
  $target_item_path = str_replace(rtrim($source_root, '/'),rtrim($target_root,'/'),$item);
1074
- $this->logger->log_info( __METHOD__, 'Add File:' .$target_item_path );
1075
  if ( $zip->add_file($item,$target_item_path)) {
1076
  array_shift($file_list);
1077
- $this->logger->log_info( __METHOD__, 'File Added:' . $target_item_path );
1078
  //If we have added X# of files or hit the size limit then lets close the zip and finish on the next pass
1079
  if( $zip->get_zip_file_count()>=$batch_size){
1080
  $zip->close();//close the zip
1081
- $this->logger->log_info(__METHOD__,'End - Item Count:' . count($file_list));
1082
  return $file_list;
1083
  }
1084
  } else {
1085
- $this->logger->log_error( __METHOD__, 'File NOT added:' . $target_item_path );
1086
  return false;
1087
  }
1088
  }
@@ -1092,13 +1083,13 @@ class WPBackItUp_Backup {
1092
 
1093
  //if there are no more files to add then rename the zip
1094
  //Check to see if the file exists, it is possible that it does not if only empty folders were contained
1095
- if(count($file_list)==0 && file_exists($zip_file_path) ){
1096
- if (! $this->add_zip_suffix($batch_id,$zip_file_path)){
1097
  return false;
1098
- }
1099
  }
1100
 
1101
- $this->logger->log_info(__METHOD__,'End - Item Count:' . count($file_list));
1102
  return $file_list;
1103
  }
1104
 
@@ -1119,15 +1110,15 @@ class WPBackItUp_Backup {
1119
  }
1120
 
1121
  private function add_zip_suffix($batch_id,$zip_file_path){
1122
- $this->logger->log_info(__METHOD__,'Begin');
1123
 
1124
  $file_extension = pathinfo($zip_file_path, PATHINFO_EXTENSION);
1125
- $this->logger->log_info(__METHOD__,'File Extension:'.$file_extension);
1126
  if ($file_extension!='zip'){
1127
- $file_system = new WPBackItUp_FileSystem($this->logger);
1128
  $new_zip_name = str_replace('.' . $file_extension,'-'.$batch_id .'.zip',$zip_file_path);
1129
  if ( !$file_system->rename_file($zip_file_path,$new_zip_name)){
1130
- $this->logger->log_error(__METHOD__,'Zip could not be renamed.');
1131
  return false;
1132
  }
1133
  }
@@ -1136,43 +1127,43 @@ class WPBackItUp_Backup {
1136
  return true;
1137
  }
1138
 
1139
- public function finalize_zip_file() {
1140
- $this->logger->log_info(__METHOD__,'Begin - Finalize the zip.');
1141
-
1142
- $zip_file_path = $this->backup_folder_root . $this->backup_filename;
1143
- $new_zip_name = str_replace('.tmp','.zip',$zip_file_path);
1144
-
1145
- $file_system = new WPBackItUp_FileSystem($this->logger);
1146
- if (! $file_system->rename_file($zip_file_path,$new_zip_name)){
1147
- $this->logger->log_error(__METHOD__,'Zip could not be finalized.');
1148
- return false;
1149
- }
1150
-
1151
- //Change the file name property moving forward
1152
- $this->set_zip_extension();
1153
-
1154
- $this->logger->log_info(__METHOD__,'End - Zip Finalized successfully.');
1155
- return true;
1156
- }
1157
 
1158
  //Set zip extension to zip
1159
- public function set_zip_extension() {
1160
- $this->logger->log_info(__METHOD__,'Begin - change zip extension to zip');
1161
-
1162
- $this->backup_filename = substr_replace($this->backup_filename, '.zip', -4);
1163
- //$this->backup_filename=str_replace('.tmp','.zip',$this->backup_filename);
1164
-
1165
- $this->logger->log_info(__METHOD__,'End - Zip extension changed:' . $this->backup_filename);
1166
-
1167
- }
1168
 
1169
  //Create manifest file
1170
  public function create_backup_manifest(){
1171
- $this->logger->log_info(__METHOD__,'Begin');
1172
 
1173
  //get a list of all the zips
1174
  $backup_files_path = array_filter(glob($this->backup_project_path. '*.zip'), 'is_file');
1175
- $this->logger->log_info(__METHOD__,'Zip files found:'. var_export($backup_files_path,true));
1176
  if (is_array($backup_files_path) && count($backup_files_path)>0){
1177
  //get rid of the path.
1178
  $backup_files = str_replace($this->backup_project_path,'',$backup_files_path);
@@ -1185,19 +1176,19 @@ class WPBackItUp_Backup {
1185
  //add it to the main zip file
1186
  if ($main_zip_index!==false){
1187
  $zip_file_path = $backup_files_path[$main_zip_index];
1188
- $zip = new WPBackItUp_Zip($this->logger,$zip_file_path);
1189
  $target_item_path = str_replace(rtrim($this->backup_project_path, '/'),rtrim('site-data','/'),$manifest_file);
1190
  if ($zip->add_file($manifest_file,$target_item_path)) {
1191
  $zip->close();//close the zip
1192
- $this->logger->log_info(__METHOD__,'End - Manifest created.');
1193
  return true;
1194
  }
1195
  }else{
1196
- $this->logger->log_error(__METHOD__,'Main zip not found.');
1197
  }
1198
  }
1199
 
1200
- $this->logger->log_error(__METHOD__,'End - Manifest not created.');
1201
  return false;
1202
  }
1203
 
@@ -1215,27 +1206,27 @@ class WPBackItUp_Backup {
1215
 
1216
 
1217
  public function rename_backup_folder() {
1218
- $this->logger->log_info(__METHOD__,'Begin');
1219
 
1220
  $backup_project_path = $this->backup_project_path;
1221
  //remove the 4 character prefix
1222
  $new_backup_path = str_replace('TMP_','',$backup_project_path);
1223
 
1224
- $file_system = new WPBackItUp_FileSystem($this->logger);
1225
  if (! $file_system->rename_file($backup_project_path,$new_backup_path)){
1226
- $this->logger->log_error(__METHOD__,'Folder could not be renamed');
1227
  return false;
1228
  }
1229
 
1230
  $this->set_final_backup_path();
1231
 
1232
- $this->logger->log_info(__METHOD__,'End');
1233
  return true;
1234
  }
1235
 
1236
  //this is needed because it is set to TMP until finalization then needed a way to know where the current path is
1237
  public function set_final_backup_path(){
1238
- $this->logger->log_info(__METHOD__,'Begin');
1239
 
1240
  $backup_project_path = $this->backup_project_path;
1241
  $new_backup_path = str_replace('TMP_','',$backup_project_path);
@@ -1243,7 +1234,7 @@ class WPBackItUp_Backup {
1243
  //set the path to the new path
1244
  $this->backup_project_path=$new_backup_path;
1245
 
1246
- $this->logger->log_info(__METHOD__,'End');
1247
  }
1248
 
1249
  }
19
 
20
  class WPBackItUp_Backup {
21
 
22
+ private $log_name;
23
 
24
  //Public Properties
25
  public $backup_name;
26
+ //public $backup_filename;
27
  public $backup_project_path;
28
  public $backup_folder_root;
29
  public $restore_folder_root;
30
  public $backup_retained_number;
31
  public $backup_retained_days;
 
32
 
33
  //scheduled,manual,none
34
  public $backup_type;
43
 
44
  //-------------END STATIC FUNCTIONS-------------------//
45
 
46
+ function __construct($log_name,$backup_name, $backup_type) {
47
  global $WPBackitup;
48
  try {
49
+ $this->log_name = 'debug_backup';//default log name
50
+ if (is_object($log_name)){
51
+ //This is for the old logger
52
+ $this->log_name = $log_name->getLogFileName();
53
+ } else{
54
+ if (is_string($log_name) && isset($log_name)){
55
+ $this->log_name = $log_name;
56
+ }
57
+ }
58
 
59
  $this->backup_type=$backup_type;
60
 
61
+
 
 
 
62
  $this->backup_name=$backup_name;
63
+ //$this->backup_filename=$backup_name . '.tmp';
64
 
65
  $backup_project_path = WPBACKITUP__BACKUP_PATH .'/TMP_'. $backup_name .'/';
66
 
75
  $this->backup_retained_days = WPBACKITUP__BACKUP_RETAINED_DAYS; //Prob need to move this to main propery
76
 
77
  } catch(Exception $e) {
78
+ error_log($e);
79
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
80
  throw $e;
81
  }
82
  }
92
  * @return bool
93
  */
94
  public static function start (){
95
+ $lockfile_logname='debug_lock';
96
+
97
  try {
98
  self::$lockFileName = WPBACKITUP__PLUGIN_PATH .'logs/wpbackitup_lock.lock';
99
+ WPBackItUp_LoggerV2::log_info($lockfile_logname,__METHOD__,'Begin - Lock File:' . self::$lockFileName);
100
 
101
  self::$lockFile = fopen(self::$lockFileName ,"w"); // open it for WRITING ("w")
102
  if (flock( self::$lockFile, LOCK_EX | LOCK_NB)) {
103
+ WPBackItUp_LoggerV2::log_info($lockfile_logname,__METHOD__,'Process LOCK acquired');
104
  return true;
105
  } else {
106
+ WPBackItUp_LoggerV2::log_info($lockfile_logname,__METHOD__,'Process LOCK failed');
107
  return false;
108
  }
109
 
110
  } catch(Exception $e) {
111
+ WPBackItUp_LoggerV2::log_error($lockfile_logname,__METHOD__,'Process Lock error: ' .$e);
112
  return false;
113
  }
114
  }
118
  * @return bool
119
  */
120
  public static function end (){
121
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Unlock File:' . $this->lockFileName);
122
 
123
  try{
124
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'LOCK released - backup ending');
125
  flock( self::$lockFile, LOCK_UN); // unlock the file
126
  return true;
127
 
128
  }catch(Exception $e) {
129
+ //WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant unlock file: ' .$e);
130
  return false;
131
  }
132
  }
155
  }
156
 
157
  public function cleanup_backups_by_prefix($prefix) {
158
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
159
  $backup_root_path=$this->backup_folder_root;
160
 
161
  //get a list of all the temps
162
  $work_folder_list = glob($backup_root_path. $prefix .'*', GLOB_ONLYDIR);
163
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
164
  foreach($work_folder_list as $folder) {
165
  $file_system->recursive_delete($folder);
166
  }
167
 
168
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End' );
169
  }
170
 
171
  public function cleanup_old_backups() {
172
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
173
 
174
  // --PURGE BACKUP FOLDER
175
  //Purge logs in backup older than N days
176
  $backup_root_path=$this->backup_folder_root;
177
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
178
 
179
  //check retention limits
180
  $file_system->purge_folders($backup_root_path,'*',$this->backup_retained_number);
181
 
182
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End' );
183
  }
184
 
185
 
186
  public function cleanup_unfinished_backups_OLD(){
187
  $dir=$this->backup_folder_root;
188
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:'.$dir);
189
  $ignore = array('cgi-bin','.','..','._');
190
  if( is_dir($dir) ){
191
  if($dh = opendir($dir)) {
195
  if(!is_dir($dir .'/'. $file)) {
196
  unlink($dir .'/'. $file);
197
  } else {
198
+ $fileSystem = new WPBackItUp_FileSystem($this->log_name);
199
  $fileSystem->recursive_delete($dir.'/'. $file, $ignore);
200
  }
201
  }
203
  }
204
  closedir($dh);
205
  }
206
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
207
  return true;
208
  }
209
 
210
  public function cleanup_current_backup(){
211
  $path = $this->backup_project_path;
212
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Cleanup Backup Folder:' . $path);
213
 
214
+ $fileSystem = new WPBackItUp_FileSystem($this->log_name);
215
  $work_files = $fileSystem->get_fileonly_list($path, 'txt|sql');
216
 
217
  if(!$fileSystem ->delete_files($work_files)) {
218
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Work files could not be deleted');
219
  return false;
220
  }
221
 
222
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Work Files Deleted');
223
  return true;
224
  }
225
 
226
  public function purge_old_files(){
227
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
228
+ $fileSystem = new WPBackItUp_FileSystem( $this->log_name);
229
 
230
  //Check the retention
231
  $fileSystem->purge_FilesByDate($this->backup_retained_number,$this->backup_folder_root);
265
  // //Purge restore logs in logs older than 5 days
266
  // $fileSystem->purge_files($logs_path,'*restore*.log',$this->backup_retained_days);
267
 
268
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
269
 
270
  }
271
 
272
  //Make sure the root backup folder wpbackitup_backups exists
273
  public function backup_root_folder_exists(){
274
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin: ' .$this->backup_folder_root);
275
+ $fileSystem = new WPBackItUp_FileSystem($this->log_name);
276
  if(!$fileSystem->create_dir($this->backup_folder_root)) {
277
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant create backup folder :'. $this->backup_folder_root);
278
  return false;
279
  }
280
 
285
  $fileSystem->secure_folder( $logs_dir);
286
 
287
 
288
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
289
  return true;
290
  }
291
 
292
  //Create the root folder for the current backup
293
  public function create_current_backup_folder(){
294
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin: ' .$this->backup_project_path);
295
+ $fileSystem = new WPBackItUp_FileSystem($this->log_name);
296
  if(!$fileSystem->create_dir($this->backup_project_path)) {
297
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant create backup folder :'. $this->backup_project_path);
298
  return false;
299
  }
300
 
301
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
302
  return true;
303
  }
304
 
305
  //Check to see if the directory exists and is writeable
306
  public function backup_folder_exists(){
307
  $path=$this->backup_project_path;
308
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Is folder writeable: ' .$path);
309
  if(is_writeable($path)) {
310
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder IS writeable');
311
+ return true;
312
  }
313
 
314
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Folder NOT writeable');
315
  return false;
316
  }
317
 
318
  //Export the SQL database
319
  public function export_database(){
320
  $sql_file_name=$this->backup_project_path . WPBACKITUP__SQL_DBBACKUP_FILENAME;
321
+ $sqlUtil = new WPBackItUp_SQL($this->log_name);
322
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Export Database: ' .$sql_file_name);
323
 
324
  //log database size
325
  $db_size = $sqlUtil->get_table_rows();
326
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$db_size,"Table Size");
327
 
328
  //Try SQLDump First
329
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with MYSQLDUMP');
330
  if(!$sqlUtil->mysqldump_export($sql_file_name) ) {
331
 
332
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with MYSQLDUMP/PATH');
333
  if(!$sqlUtil->mysqldump_export($sql_file_name,true) ) {
334
 
335
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with Manual SQL EXPORT');
336
  if(!$sqlUtil->manual_export($sql_file_name) ) {
337
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'SQL EXPORT FAILED');
338
  return false;
339
  }
340
  }
341
  }
342
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Database Exported successfully');
343
  return true;
344
  }
345
 
349
  $path=$this->backup_project_path;
350
  $siteinfo = $path ."backupsiteinfo.txt";
351
 
352
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Create Site Info File:'.$siteinfo);
353
  try {
354
  $handle = fopen($siteinfo, 'w+');
355
  if (false===$handle){
356
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant open file.');
357
  return false;
358
  }
359
 
379
 
380
 
381
  if (file_exists($siteinfo)){
382
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File created successfully.');
383
  return true;
384
  }
385
 
386
  }catch(Exception $e) {
387
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,' Exception: ' .$e);
388
  }
389
 
390
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Site Info File NOT Created.');
391
  return false;
392
  }
393
 
394
  public function get_plugins_file_list() {
395
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
396
 
397
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
398
  $plugins_file_list = $file_system->get_recursive_file_list(WPBACKITUP__PLUGINS_ROOT_PATH. '/*' );
399
  $file_system=null;//release resources.
400
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Plugin File Count: ' .count($plugins_file_list));
401
 
402
  return $plugins_file_list;
403
  }
413
  return false;
414
  }
415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  public function create_job_control($job_id) {
417
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
418
 
 
 
 
419
  try {
 
420
  $db = new WPBackItUp_DataAccess();
421
  return $db->create_job_control($job_id);
422
 
423
  } catch ( Exception $e ) {
424
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' . $e );
 
425
  return false;
 
426
  }
427
  }
428
 
429
  public function update_job_control_complete($job_id) {
430
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
431
 
 
 
 
432
  try {
 
433
  $db = new WPBackItUp_DataAccess();
434
  return $db->update_job_control_complete($job_id);
435
 
436
  } catch ( Exception $e ) {
437
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' . $e );
 
438
  return false;
 
439
  }
440
  }
441
 
452
  * @return bool
453
  */
454
  public function save_folder_inventory($batch_insert_size,$job_id,$group_id,$root_path,$exclude=null) {
455
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:' .$group_id);
456
 
457
  //create a separate log file for inventory
458
+ $inventory_logname = sprintf('debug_inventory_%s_%s',$group_id,$job_id);
459
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '**BEGIN**');
460
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, 'Root Path: ' .$root_path);
461
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, 'Exclude: ' .var_export($exclude,true));
462
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '***');
463
  try {
464
  $batch_counter = 0;
465
  $total_counter=0;
481
  $file_path = esc_sql($file_path);
482
 
483
  if ($this->strposa0($file_path, $exclude)===true) {
484
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, 'Skip: ' .$file_path);
485
  } else {
486
  if ( $item_iterator->isFile()) {
487
  if ($batch_counter>=$batch_insert_size){
488
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '*Try Write Batch*');
489
+ if (! $db->insert_job_items($sql)) {
490
  return false;
491
  }
492
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '*Write Batch SUCCESS*');
493
  $sql="";
494
  $batch_counter=0;
495
  }
496
  $total_counter++;
497
  $batch_counter++;
498
  $file_size=ceil($item_iterator->getSize()/1024);//round up
499
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, 'Add File: ' .$batch_counter . ' ' .$file_path);
500
  $sql.= "(".$job_id .", '" .$group_id."', '" .utf8_encode($file_path) ."', ".$file_size .",now() ),";
501
  }
502
  }
504
  }
505
 
506
  if ($batch_counter>0) {
507
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '*Try Write Batch*');
508
+ if (! $db->insert_job_items($sql)) {
509
  return false;
510
  }
511
+ WPBackItUp_LoggerV2::log_info($inventory_logname,__METHOD__, '*Write Batch SUCCESS*');
512
  }
513
 
514
  $datetime2 = new DateTime('now');
515
 
516
+ WPBackItUp_LoggerV2::log_info($inventory_logname, __METHOD__, '**END**');
517
 
518
  if(method_exists($datetime2, 'diff')) {
519
  $interval = $datetime1->diff($datetime2);
520
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Count/Time: ' .$total_counter . '-' . $interval->format('%s seconds'));
521
  } else {
522
+ $util = new WPBackItUp_Utility($this->log_name);
523
  $interval = $util->date_diff_array($datetime1, $datetime2);
524
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Count/Time: ' .$total_counter . '-' . $interval['second'] . ' seconds');
525
  }
526
 
527
 
528
  return true;
529
 
530
  } catch(Exception $e) {
531
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
532
  return false;
533
  }
534
  }
545
  * @internal param $root_path
546
  */
547
  public function save_file_list_inventory($batch_insert_size,$job_id,$group_id,$root_path,$file_list) {
548
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:' .var_export($file_list,true));
549
 
550
  //check is array list
551
  if (! is_array($file_list)) {
552
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Array expected in file list:');
553
  return false;
554
  }
555
 
 
 
 
556
  try {
557
  $batch_counter = 0;
558
  $total_counter=0;
564
 
565
  //skip if folder
566
  if ( is_dir( $file_path ) ) {
567
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Skip folder:' . $file_path );
568
  continue;
569
  }
570
 
571
 
572
  if ($batch_counter>=$batch_insert_size){
573
+ if (! $db->insert_job_items($sql)) {
574
  return false;
575
  }
576
  $sql="";
583
  //get rid of root path and utf8 encode
584
  $file_path = utf8_encode(str_replace($root_path,'',$file_path));
585
 
586
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Add File: ' .$batch_counter . ' ' .$file_path);
587
  $sql.= "(".$job_id .", '" .$group_id."', '" .$file_path ."', ".$file_size .",now() ),";
588
  }
589
 
590
  if ($batch_counter>0) {
591
+ if (! $db->insert_job_items($sql)) {
592
  return false;
593
  }
594
  }
597
 
598
  if(method_exists($datetime2, 'diff')) {
599
  $interval = $datetime1->diff($datetime2);
600
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Count/Time: ' .$total_counter . '-' . $interval->format('%s seconds'));
601
  } else {
602
+ $util = new WPBackItUp_Utility($this->log_name);
603
  $interval = $util->date_diff_array($datetime1, $datetime2);
604
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Count/Time: ' .$total_counter . '-' . $interval['second'] . ' seconds');
605
  }
606
 
607
  return true;
608
 
609
  } catch(Exception $e) {
610
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
611
  return false;
612
  }
613
  }
614
 
615
  public function get_themes_file_list() {
616
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
617
 
618
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
619
  $themes_root_path = WPBACKITUP__THEMES_ROOT_PATH;
620
  $themes_file_list = $file_system->get_recursive_file_list($themes_root_path. '/*' );
621
  $file_system=null;//release resources.
622
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Themes File Count: ' .count($themes_file_list));
623
 
624
  return $themes_file_list;
625
  }
626
 
627
  public function get_uploads_file_list() {
628
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
629
 
630
  $upload_array = wp_upload_dir();
631
  $uploads_root_path = $upload_array['basedir'];
636
  $uploads_folderlist = glob($uploads_root_path. '/*',GLOB_ONLYDIR|GLOB_NOSORT);
637
  $uploads_file_list=array();
638
 
639
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
640
  foreach ( $uploads_folderlist as $folder ) {
641
  if (! $this->strposa(basename($folder), $ignore)){
642
  array_push($uploads_file_list,$folder);
654
  $uploads_file_list = array_merge($uploads_file_list,$files_only);
655
  }
656
 
657
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Uploads File Count: ' .count($uploads_file_list));
658
 
659
  return $uploads_file_list;
660
  }
661
 
662
  public function get_other_file_list() {
663
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
664
 
665
  $wpcontent_path = WPBACKITUP__CONTENT_PATH;
666
 
677
  $wpcontent_folderlist = glob($wpcontent_path. '/*',GLOB_ONLYDIR|GLOB_NOSORT);
678
 
679
  $other_file_list=array();
680
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
681
  foreach ( $wpcontent_folderlist as $folder ) {
682
  if (!$this->strposa(basename($folder), $ignore)){
683
  array_push($other_file_list,$folder);
704
  }
705
  }
706
 
707
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Other File Count: ' .count($other_file_list));
708
 
709
  return $other_file_list;
710
  }
722
  * @return bool|mixed
723
  */
724
  public function backup_files($job_id,$source_root,$content_type){
725
+ global $WPBackitup;
726
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin ');
727
 
728
  //get files to backup
729
  $db = new WPBackItUp_DataAccess();
732
  {
733
  case 'themes';
734
  $target_root='wp-content-themes';
735
+ $batch_size=$WPBackitup->backup_themes_batch_size();
736
  break;
737
  case 'plugins';
738
  $target_root='wp-content-plugins';
739
+ $batch_size=$WPBackitup->backup_plugins_batch_size();
740
  break;
741
  case 'uploads';
742
  $target_root='wp-content-uploads';
743
+ $batch_size=$WPBackitup->backup_uploads_batch_size();
744
  break;
745
  case 'others';
746
  $target_root='wp-content-other';
747
+ $batch_size=$WPBackitup->backup_others_batch_size();
748
  break;
 
 
 
749
  default:
750
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Content type not recognized:'.$content_type);
751
  return false;
752
 
753
  }
754
 
755
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Batch Size: '. $batch_size);
 
 
 
 
 
756
 
757
  //get a timestamp for the batch id
758
  $batch_id=current_time( 'timestamp' );
761
  //It is possible that there are no file to backup so return count or false
762
  if($file_list == false || $file_list==0) return $file_list;
763
 
764
+ //$zip_file_path = $this->backup_project_path . $this->backup_name .'-'.$content_type .'.zip';
765
+ $zip_file_path = sprintf('%s%s-%s-%s.zip',$this->backup_project_path,$this->backup_name,$content_type,$batch_id);
766
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Zip file path: '. $zip_file_path);
767
  if (! $this->backup_files_to_zip($source_root,$target_root,$file_list,$zip_file_path)){
768
  return false;
769
  }
770
 
 
 
 
 
771
  // Clears file status cache
772
  clearstatcache();
773
 
 
774
  //Check to see if the file exists, it is possible that it does not if only empty folders were contained
775
+ if(! file_exists($zip_file_path) ) {
776
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip File NOT found:'.$zip_file_path);
777
+
778
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
779
+ $files_in_temp_directory = $file_system->get_fileonly_list($this->backup_project_path, 'zip');
780
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Files In Temp Folder:');
781
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,$files_in_temp_directory);
782
+ return false;
 
 
 
 
 
 
 
783
  }
784
 
785
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Zip file FOUND:'.$zip_file_path);
786
 
787
  //update the batch as done.
788
  $db->update_batch_complete($job_id,$batch_id);
805
  *
806
  * @return bool|mixed
807
  */
808
+ // public function validate_backup_files($job_id,$content_type){
809
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin: '.$content_type);
810
+ //
811
+ // //get files to backup
812
+ // $db = new WPBackItUp_DataAccess();
813
+ //
814
+ // switch($content_type)
815
+ // {
816
+ // case 'themes';
817
+ // $target_root='wp-content-themes';
818
+ // break;
819
+ // case 'plugins';
820
+ // $target_root='wp-content-plugins';
821
+ // break;
822
+ // case 'uploads';
823
+ // $target_root='wp-content-uploads';
824
+ // break;
825
+ // case 'others';
826
+ // $target_root='wp-content-other';
827
+ // break;
828
+ // //ADD exception when other
829
+ // }
830
+ //
831
+ // $file_list = $db->get_completed_tasks($job_id,$content_type);
832
+ //
833
+ // //It is possible that there were no files backed up
834
+ // if($file_list == false || $file_list==0) {
835
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'No files found to validate.');
836
+ // return true;
837
+ // }
838
+ //
839
+ // $current_zip_file=null;
840
+ // $zip=null;
841
+ // $file_counter=0;
842
+ //
843
+ // // Checking zip file existance
844
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'All Zip files Path');
845
+ //
846
+ // foreach($file_list as $file) {
847
+ // $batch_id = $file->batch_id;
848
+ // $item = $target_root .'/' .utf8_decode( $file->item );
849
+ //
850
+ // //get zip path
851
+ // $zip_file_path = sprintf('%s-%s-%s.zip',$this->backup_project_path . $this->backup_name, $content_type,$batch_id);
852
+ //
853
+ // // logging zip file path.
854
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'zip file path: '. $zip_file_path);
855
+ //
856
+ // if ($current_zip_file!=$zip_file_path){
857
+ // //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Zip File:' . $zip_file_path );
858
+ // if (! file_exists($zip_file_path)){
859
+ // WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip File not found:' . $zip_file_path );
860
+ // // Scanning Temp Directory.
861
+ // $files_on_temp_directory = scandir($this->backup_project_path);
862
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin::Files on TMP Directory');
863
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$files_on_temp_directory);
864
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End::Files on TMP Directory');
865
+ // return false;
866
+ // }
867
+ // $current_zip_file = $zip_file_path;
868
+ // if (null!=$zip) $zip->close();
869
+ // $zip = new WPBackItUp_Zip($this->log_name,$current_zip_file);
870
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Current Zip File:' . $current_zip_file );
871
+ // }
872
+ //
873
+ // //validate file exists in zip
874
+ // if (false===$zip->validate_file($item)) {
875
+ // WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File NOT found in zip :' . $item );
876
+ // $zip->close();
877
+ // return false;
878
+ // }
879
+ // $file_counter++;
880
+ // }
881
+ //
882
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Validation Successful:'.$content_type . '(' .$file_counter .')');
883
+ // if (null!=$zip) $zip->close();
884
+ // return true;
885
+ // }
886
+
887
+ /**
888
+ * Validate backup files by batch ID
889
+ * A batch will typically be one zip file.
890
+ *
891
+ * @param $job_id
892
+ * @param $content_type
893
+ * @param $batch_id
894
+ *
895
+ * @return bool
896
+ */
897
+ public function validate_backup_files_by_batch_id($job_id,$content_type,$batch_id){
898
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin: '.$content_type . ' Batch ID: ' . $batch_id);
899
 
900
+ //get files to backup
901
+ $db = new WPBackItUp_DataAccess();
902
 
903
+ switch($content_type)
904
+ {
905
+ case 'themes';
906
+ $target_root='wp-content-themes';
907
+ break;
908
+ case 'plugins';
909
+ $target_root='wp-content-plugins';
910
+ break;
911
+ case 'uploads';
912
+ $target_root='wp-content-uploads';
913
+ break;
914
+ case 'others';
915
+ $target_root='wp-content-other';
916
+ break;
917
+ //ADD exception when other
918
+ }
919
 
920
+ $file_list = $db->get_completed_tasks_by_batch_id($job_id,$content_type,$batch_id);
921
 
922
+ //It is possible that there were no files backed up
923
+ if( $file_list == false || $file_list==0 ) {
924
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__, 'No files found to validate.');
925
+ return true;
926
+ }
927
 
928
+ $current_zip_file=null;
929
+ $zip=null;
930
+ $file_counter=0;
931
 
932
+ //get zip path
933
+ $zip_file_path = sprintf('%s-%s-%s.zip',$this->backup_project_path . $this->backup_name, $content_type,$batch_id);
934
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Zip file: '. $zip_file_path);
935
 
936
+ if ( ! file_exists($zip_file_path) ) {
937
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip File not found:' . $zip_file_path );
938
+ // Scanning Temp Directory.
939
+ $files_on_temp_directory = scandir($this->backup_project_path);
940
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin::Files on TMP Directory');
941
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$files_on_temp_directory);
942
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End::Files on TMP Directory');
943
+ return false;
944
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
945
 
946
+ $current_zip_file = $zip_file_path;
947
+ $zip = new WPBackItUp_Zip($this->log_name,$current_zip_file);
948
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Current Zip File:' . $current_zip_file );
 
 
 
 
 
949
 
950
+ foreach($file_list as $file) {
951
+ $item = $target_root .'/' .utf8_decode( $file->item );
952
+
953
+ //validate file exists in zip
954
+ if (false===$zip->validate_file($item)) {
955
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File NOT found in zip :' . $item );
956
+ $zip->close();
957
+ return false;
958
+ }
959
+ $file_counter++;
960
+ }
961
+
962
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Validation Successful:'.$content_type . '-' .$file_counter);
963
+ if (null!=$zip) $zip->close();
964
+ return true;
965
+ }
966
 
967
  /**
968
  *
977
  * @return bool
978
  */
979
  private function backup_files_to_zip($source_root,$target_root,$file_list, $zip_file_path){
980
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin ');
981
 
982
  if (empty($file_list) || !isset($file_list)) {
983
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File list is not valid:');
984
+ WPBackItUp_LoggerV2::log($this->log_name,var_export($file_list,true));
985
  return false;
986
  }
987
 
988
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Item Count: '. count($file_list));
989
+ $zip = new WPBackItUp_Zip($this->log_name,$zip_file_path);
990
 
991
+ $file_count=0;
992
  foreach($file_list as $file) {
993
  $item = $source_root. '/' .utf8_decode($file->item);
994
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File:' .$item);
995
 
996
  //skip it if folder
997
  if ( is_dir( $item ) ) {
998
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Skip folder:' . $item );
999
  continue;
1000
  }
1001
 
1004
  $target_item_path= str_replace('//','/',$target_item_path);
1005
  $target_item_path= str_replace('\\','/',$target_item_path);
1006
 
1007
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Add File:' .$target_item_path );
1008
  if ( $zip->add_file($item,$target_item_path)) {
1009
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,sprintf('(%s)File Added:%s', $zip->get_zip_file_count(),$target_item_path));
1010
  } else {
1011
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File NOT added:' . $target_item_path );
1012
  return false;
1013
  }
1014
  }
1015
 
1016
  //if we get here then close the zip
1017
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,sprintf('Zip File Status before Close:%s', $zip->get_zip_status()));
1018
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,sprintf('Number of files in zip:%s', $zip->get_files_in_zip()));
1019
+ $rtn_value = $zip->close();//close the zip & return the status
1020
+
1021
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
1022
+ return $rtn_value;
1023
  }
1024
 
1025
 
1036
  * @return array|bool
1037
  */
1038
  public function backup_file_list($source_root,$target_root,$suffix,$file_list,$batch_size){
1039
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1040
 
1041
  if (! is_array($file_list)) {
1042
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Array expected in file list:');
1043
+ WPBackItUp_LoggerV2::log($this->log_name,var_export($file_list,true));
1044
  return false;
1045
  }
1046
 
1047
  $batch_id=current_time( 'timestamp' );
1048
 
1049
+ //$zip_file_path = $this->backup_project_path . $this->backup_name .'-'.$suffix .'.tmp';
1050
+ $zip_file_path = sprintf('%s%s-%s-%s.zip',$this->backup_project_path,$this->backup_name,$suffix,$batch_id);
1051
+ $zip = new WPBackItUp_Zip($this->log_name,$zip_file_path);
1052
  foreach($file_list as $item) {
1053
  $item = utf8_decode($item);
1054
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File:' . $item );
1055
 
1056
  //skip it if folder
1057
  if ( is_dir( $item ) ) {
1058
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Skip folder:' . $item );
1059
  array_shift( $file_list ); //remove from list
1060
  continue;
1061
  }
1062
 
1063
  //replace the source path with the target
1064
  $target_item_path = str_replace(rtrim($source_root, '/'),rtrim($target_root,'/'),$item);
1065
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Add File:' .$target_item_path );
1066
  if ( $zip->add_file($item,$target_item_path)) {
1067
  array_shift($file_list);
1068
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Added:' . $target_item_path );
1069
  //If we have added X# of files or hit the size limit then lets close the zip and finish on the next pass
1070
  if( $zip->get_zip_file_count()>=$batch_size){
1071
  $zip->close();//close the zip
1072
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Item Count:' . count($file_list));
1073
  return $file_list;
1074
  }
1075
  } else {
1076
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File NOT added:' . $target_item_path );
1077
  return false;
1078
  }
1079
  }
1083
 
1084
  //if there are no more files to add then rename the zip
1085
  //Check to see if the file exists, it is possible that it does not if only empty folders were contained
1086
+ if(count($file_list)==0 || ! file_exists($zip_file_path) ){
1087
+ //if (! $this->add_zip_suffix($batch_id,$zip_file_path)){
1088
  return false;
1089
+ //}
1090
  }
1091
 
1092
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Item Count:' . count($file_list));
1093
  return $file_list;
1094
  }
1095
 
1110
  }
1111
 
1112
  private function add_zip_suffix($batch_id,$zip_file_path){
1113
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1114
 
1115
  $file_extension = pathinfo($zip_file_path, PATHINFO_EXTENSION);
1116
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Extension:'.$file_extension);
1117
  if ($file_extension!='zip'){
1118
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
1119
  $new_zip_name = str_replace('.' . $file_extension,'-'.$batch_id .'.zip',$zip_file_path);
1120
  if ( !$file_system->rename_file($zip_file_path,$new_zip_name)){
1121
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip could not be renamed.');
1122
  return false;
1123
  }
1124
  }
1127
  return true;
1128
  }
1129
 
1130
+ // public function finalize_zip_file() {
1131
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Finalize the zip.');
1132
+ //
1133
+ // $zip_file_path = $this->backup_folder_root . $this->backup_filename;
1134
+ // $new_zip_name = str_replace('.tmp','.zip',$zip_file_path);
1135
+ //
1136
+ // $file_system = new WPBackItUp_FileSystem($this->log_name);
1137
+ // if (! $file_system->rename_file($zip_file_path,$new_zip_name)){
1138
+ // WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip could not be finalized.');
1139
+ // return false;
1140
+ // }
1141
+ //
1142
+ // //Change the file name property moving forward
1143
+ // $this->set_zip_extension();
1144
+ //
1145
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Zip Finalized successfully.');
1146
+ // return true;
1147
+ // }
1148
 
1149
  //Set zip extension to zip
1150
+ // public function set_zip_extension() {
1151
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - change zip extension to zip');
1152
+ //
1153
+ // $this->backup_filename = substr_replace($this->backup_filename, '.zip', -4);
1154
+ // //$this->backup_filename=str_replace('.tmp','.zip',$this->backup_filename);
1155
+ //
1156
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Zip extension changed:' . $this->backup_filename);
1157
+ //
1158
+ // }
1159
 
1160
  //Create manifest file
1161
  public function create_backup_manifest(){
1162
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1163
 
1164
  //get a list of all the zips
1165
  $backup_files_path = array_filter(glob($this->backup_project_path. '*.zip'), 'is_file');
1166
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Zip files found:'. var_export($backup_files_path,true));
1167
  if (is_array($backup_files_path) && count($backup_files_path)>0){
1168
  //get rid of the path.
1169
  $backup_files = str_replace($this->backup_project_path,'',$backup_files_path);
1176
  //add it to the main zip file
1177
  if ($main_zip_index!==false){
1178
  $zip_file_path = $backup_files_path[$main_zip_index];
1179
+ $zip = new WPBackItUp_Zip($this->log_name,$zip_file_path);
1180
  $target_item_path = str_replace(rtrim($this->backup_project_path, '/'),rtrim('site-data','/'),$manifest_file);
1181
  if ($zip->add_file($manifest_file,$target_item_path)) {
1182
  $zip->close();//close the zip
1183
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Manifest created.');
1184
  return true;
1185
  }
1186
  }else{
1187
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Main zip not found.');
1188
  }
1189
  }
1190
 
1191
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Manifest not created.');
1192
  return false;
1193
  }
1194
 
1206
 
1207
 
1208
  public function rename_backup_folder() {
1209
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1210
 
1211
  $backup_project_path = $this->backup_project_path;
1212
  //remove the 4 character prefix
1213
  $new_backup_path = str_replace('TMP_','',$backup_project_path);
1214
 
1215
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
1216
  if (! $file_system->rename_file($backup_project_path,$new_backup_path)){
1217
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Folder could not be renamed');
1218
  return false;
1219
  }
1220
 
1221
  $this->set_final_backup_path();
1222
 
1223
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
1224
  return true;
1225
  }
1226
 
1227
  //this is needed because it is set to TMP until finalization then needed a way to know where the current path is
1228
  public function set_final_backup_path(){
1229
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1230
 
1231
  $backup_project_path = $this->backup_project_path;
1232
  $new_backup_path = str_replace('TMP_','',$backup_project_path);
1234
  //set the path to the new path
1235
  $this->backup_project_path=$new_backup_path;
1236
 
1237
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
1238
  }
1239
 
1240
  }
lib/includes/class-database.php CHANGED
@@ -20,7 +20,7 @@ class WPBackItUp_DataAccess {
20
  const JOB_CONTROL_RECORD = "J";
21
  const JOB_ITEM_RECORD ="I";
22
 
23
- private $logger;
24
 
25
  /**
26
  * Class constructor.
@@ -29,17 +29,17 @@ class WPBackItUp_DataAccess {
29
  * @param $batch_id
30
  */
31
  function __construct() {
 
32
  global $wpdb,$table_prefix;
 
33
 
34
  try {
35
- $this->logger = new WPBackItUp_Logger(false,null,'debug_database');
36
-
37
  //Add tables to WPDB
38
  $wpdb->wpbackitup_job = $table_prefix . 'wpbackitup_job';
39
 
40
-
41
  } catch(Exception $e) {
42
- error_log($e); //Log to debug
 
43
  }
44
  }
45
 
@@ -50,7 +50,7 @@ class WPBackItUp_DataAccess {
50
  * @return bool
51
  */
52
  public function insert_job_items($sql_values) {
53
- $this->logger->log_info(__METHOD__,'Begin');
54
  global $wpdb;
55
 
56
  $sql_insert = "INSERT INTO $wpdb->wpbackitup_job
@@ -75,7 +75,7 @@ class WPBackItUp_DataAccess {
75
  * @return bool
76
  */
77
  public function create_job_control($job_id) {
78
- $this->logger->log_info(__METHOD__,'Begin');
79
  global $wpdb;
80
 
81
  $sql = $wpdb->prepare(
@@ -98,7 +98,7 @@ class WPBackItUp_DataAccess {
98
  * @return bool
99
  */
100
  public function update_job_control_complete($job_id) {
101
- $this->logger->log_info(__METHOD__,'Begin');
102
 
103
  return $this->update_job_control_status($job_id,self::BATCH_COMPLETE);
104
 
@@ -114,7 +114,7 @@ class WPBackItUp_DataAccess {
114
  * @return bool
115
  */
116
  private function update_job_control_status($job_id,$status) {
117
- $this->logger->log_info(__METHOD__,'Begin');
118
  global $wpdb;
119
 
120
  $sql = $wpdb->prepare(
@@ -142,7 +142,7 @@ class WPBackItUp_DataAccess {
142
  */
143
  function get_old_batch_control($days){
144
  global $wpdb;
145
- $this->logger->log_info(__METHOD__,'Begin');
146
 
147
  $sql_select = $wpdb->prepare(
148
  "SELECT * FROM $wpdb->wpbackitup_job
@@ -168,7 +168,7 @@ class WPBackItUp_DataAccess {
168
  */
169
  function get_batch_open_tasks($batch_id,$batch_size,$job_id,$group_id){
170
  global $wpdb;
171
- $this->logger->log_info(__METHOD__,'Begin');
172
 
173
  $sql_update = $wpdb->prepare(
174
  "UPDATE $wpdb->wpbackitup_job
@@ -209,9 +209,35 @@ class WPBackItUp_DataAccess {
209
  *
210
  * @return mixed
211
  */
212
- function get_completed_tasks($job_id,$group_id){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  global $wpdb;
214
- $this->logger->log_info(__METHOD__,'Begin');
215
 
216
  $sql_select = $wpdb->prepare(
217
  "SELECT * FROM $wpdb->wpbackitup_job
@@ -220,12 +246,42 @@ class WPBackItUp_DataAccess {
220
  && job_id=%d
221
  && group_id=%s
222
  && status=%d
 
223
  ORDER BY id
224
- ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_COMPLETE);
225
 
226
  return $this->get_rows($sql_select);
227
  }
228
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  /**
230
  *
231
  * delete all job records by job id
@@ -236,7 +292,7 @@ class WPBackItUp_DataAccess {
236
  */
237
  function delete_job_records($job_id){
238
  global $wpdb;
239
- $this->logger->log_info(__METHOD__,'Begin');
240
 
241
  $sql_update = $wpdb->prepare(
242
  "DELETE FROM $wpdb->wpbackitup_job
@@ -261,7 +317,7 @@ class WPBackItUp_DataAccess {
261
  */
262
  function get_open_task_count($job_id,$group_id){
263
  global $wpdb;
264
- $this->logger->log_info(__METHOD__,'Begin');
265
 
266
  $sql = $wpdb->prepare(
267
  "SELECT count(*) as task_count FROM $wpdb->wpbackitup_job
@@ -274,7 +330,7 @@ class WPBackItUp_DataAccess {
274
  ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_ACTIVE,self::BATCH_ERROR);
275
 
276
  $row=$this->get_row($sql);
277
- $this->logger->log_info(__METHOD__,'Results:'.var_export($row,true));
278
 
279
  return $row->task_count;
280
  }
@@ -289,7 +345,7 @@ class WPBackItUp_DataAccess {
289
  */
290
  function update_batch_complete($job_id,$batch_id){
291
  global $wpdb;
292
- $this->logger->log_info(__METHOD__,'Begin');
293
 
294
  $sql = $wpdb->prepare(
295
  "UPDATE $wpdb->wpbackitup_job
@@ -321,17 +377,18 @@ class WPBackItUp_DataAccess {
321
  */
322
  private function query($sql){
323
  global $wpdb;
324
- $this->logger->log_info(__METHOD__,'Begin');
325
 
 
326
  $wpdb_result = $wpdb->query($sql);
327
- $last_query = $wpdb->last_query;
328
  $last_error = $wpdb->last_error;
329
 
330
- $this->logger->log_info(__METHOD__,'Last Query:' .var_export( $last_query,true ) );
331
- $this->logger->log_info(__METHOD__,'Query Result: ' .($wpdb_result=== FALSE?'Query Error': $wpdb_result));
332
 
333
  if ($wpdb_result === FALSE && !empty($last_error)) {
334
- $this->logger->log_error(__METHOD__,'Last Error:' .var_export( $last_error,true ) );
335
  }
336
 
337
  return $wpdb_result;
@@ -345,17 +402,44 @@ class WPBackItUp_DataAccess {
345
  */
346
  private function get_row($sql){
347
  global $wpdb;
348
- $this->logger->log_info(__METHOD__,'Begin');
349
 
 
350
  $wpdb_result = $wpdb->get_row($sql);
351
- $last_query = $wpdb->last_query;
352
  $last_error = $wpdb->last_error;
353
 
354
- $this->logger->log_info(__METHOD__,'Last Query:' .var_export( $last_query,true ));
355
- $this->logger->log_info(__METHOD__,'Query Result: ' .($wpdb_result==null?'NULL': $wpdb->num_rows));
356
 
357
  if (null == $wpdb_result && !empty($last_error)) {
358
- $this->logger->log_error(__METHOD__,'Last Error:' .var_export( $last_query,true ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  }
360
 
361
  return $wpdb_result;
@@ -363,24 +447,23 @@ class WPBackItUp_DataAccess {
363
  }
364
 
365
  /**
366
- * Get multiple rows
367
  *
368
  * @param $sql
369
  * @return mixed
370
  */
371
- private function get_rows($sql){
372
  global $wpdb;
373
- $this->logger->log_info(__METHOD__,'Begin');
374
 
375
- $wpdb_result = $wpdb->get_results($sql);
376
- $last_query = $wpdb->last_query;
377
  $last_error = $wpdb->last_error;
378
 
379
- $this->logger->log_info(__METHOD__,'Last Query:' .var_export( $last_query,true ));
380
- $this->logger->log_info(__METHOD__,'Query Result: ' .($wpdb_result==null?'NULL': $wpdb->num_rows));
381
 
382
  if (null == $wpdb_result && ! empty($last_error)) {
383
- $this->logger->log_error(__METHOD__,'Last Error:' .var_export( $last_error,true ));
384
  }
385
 
386
  return $wpdb_result;
20
  const JOB_CONTROL_RECORD = "J";
21
  const JOB_ITEM_RECORD ="I";
22
 
23
+ private $log_name;
24
 
25
  /**
26
  * Class constructor.
29
  * @param $batch_id
30
  */
31
  function __construct() {
32
+
33
  global $wpdb,$table_prefix;
34
+ $this->log_name='debug_database';
35
 
36
  try {
 
 
37
  //Add tables to WPDB
38
  $wpdb->wpbackitup_job = $table_prefix . 'wpbackitup_job';
39
 
 
40
  } catch(Exception $e) {
41
+ error_log($e);
42
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
43
  }
44
  }
45
 
50
  * @return bool
51
  */
52
  public function insert_job_items($sql_values) {
53
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
54
  global $wpdb;
55
 
56
  $sql_insert = "INSERT INTO $wpdb->wpbackitup_job
75
  * @return bool
76
  */
77
  public function create_job_control($job_id) {
78
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
79
  global $wpdb;
80
 
81
  $sql = $wpdb->prepare(
98
  * @return bool
99
  */
100
  public function update_job_control_complete($job_id) {
101
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
102
 
103
  return $this->update_job_control_status($job_id,self::BATCH_COMPLETE);
104
 
114
  * @return bool
115
  */
116
  private function update_job_control_status($job_id,$status) {
117
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
118
  global $wpdb;
119
 
120
  $sql = $wpdb->prepare(
142
  */
143
  function get_old_batch_control($days){
144
  global $wpdb;
145
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
146
 
147
  $sql_select = $wpdb->prepare(
148
  "SELECT * FROM $wpdb->wpbackitup_job
168
  */
169
  function get_batch_open_tasks($batch_id,$batch_size,$job_id,$group_id){
170
  global $wpdb;
171
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
172
 
173
  $sql_update = $wpdb->prepare(
174
  "UPDATE $wpdb->wpbackitup_job
209
  *
210
  * @return mixed
211
  */
212
+ // function get_completed_tasks($job_id,$group_id){
213
+ // global $wpdb;
214
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
215
+ //
216
+ // $sql_select = $wpdb->prepare(
217
+ // "SELECT * FROM $wpdb->wpbackitup_job
218
+ // WHERE
219
+ // record_type=%s
220
+ // && job_id=%d
221
+ // && group_id=%s
222
+ // && status=%d
223
+ // ORDER BY id
224
+ // ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_COMPLETE);
225
+ //
226
+ // return $this->get_rows($sql_select);
227
+ // }
228
+
229
+ /**
230
+ * Get all completed tasks by job, group and batch ID
231
+ *
232
+ * @param $job_id
233
+ * @param $group_id
234
+ * @param $batch_id
235
+ *
236
+ * @return mixed
237
+ */
238
+ function get_completed_tasks_by_batch_id($job_id,$group_id,$batch_id){
239
  global $wpdb;
240
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
241
 
242
  $sql_select = $wpdb->prepare(
243
  "SELECT * FROM $wpdb->wpbackitup_job
246
  && job_id=%d
247
  && group_id=%s
248
  && status=%d
249
+ && batch_id=%d
250
  ORDER BY id
251
+ ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_COMPLETE,$batch_id);
252
 
253
  return $this->get_rows($sql_select);
254
  }
255
 
256
+ /**
257
+ * Get array of batch ids for a job and group
258
+ * Group example; Plugin, Theme, Upload
259
+ *
260
+ * @param $job_id
261
+ * @param $group_id
262
+ *
263
+ * @return mixed
264
+ */
265
+ function get_batch_ids($job_id,$group_id) {
266
+ global $wpdb;
267
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
268
+
269
+ $sql_select = $wpdb->prepare(
270
+ "SELECT DISTINCT batch_id FROM $wpdb->wpbackitup_job
271
+ WHERE
272
+ record_type=%s
273
+ && job_id=%d
274
+ && group_id=%s
275
+ && status=%d
276
+ && batch_id != ''
277
+ ORDER BY batch_id
278
+ ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_COMPLETE);
279
+
280
+ // get_col Returns an empty array if no result is found.
281
+ return $this->get_col($sql_select);
282
+
283
+ }
284
+
285
  /**
286
  *
287
  * delete all job records by job id
292
  */
293
  function delete_job_records($job_id){
294
  global $wpdb;
295
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
296
 
297
  $sql_update = $wpdb->prepare(
298
  "DELETE FROM $wpdb->wpbackitup_job
317
  */
318
  function get_open_task_count($job_id,$group_id){
319
  global $wpdb;
320
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
321
 
322
  $sql = $wpdb->prepare(
323
  "SELECT count(*) as task_count FROM $wpdb->wpbackitup_job
330
  ",self::JOB_ITEM_RECORD,$job_id,$group_id,self::BATCH_ACTIVE,self::BATCH_ERROR);
331
 
332
  $row=$this->get_row($sql);
333
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Results:'.var_export($row,true));
334
 
335
  return $row->task_count;
336
  }
345
  */
346
  function update_batch_complete($job_id,$batch_id){
347
  global $wpdb;
348
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
349
 
350
  $sql = $wpdb->prepare(
351
  "UPDATE $wpdb->wpbackitup_job
377
  */
378
  private function query($sql){
379
  global $wpdb;
380
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
381
 
382
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$sql);
383
  $wpdb_result = $wpdb->query($sql);
384
+ //$last_query = $wpdb->last_query;
385
  $last_error = $wpdb->last_error;
386
 
387
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Query:' .var_export( $last_query,true ) );
388
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Result: ' .($wpdb_result=== FALSE?'Query Error': $wpdb_result));
389
 
390
  if ($wpdb_result === FALSE && !empty($last_error)) {
391
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Last Error:' .var_export( $last_error,true ) );
392
  }
393
 
394
  return $wpdb_result;
402
  */
403
  private function get_row($sql){
404
  global $wpdb;
405
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
406
 
407
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$sql);
408
  $wpdb_result = $wpdb->get_row($sql);
409
+ //$last_query = $wpdb->last_query;
410
  $last_error = $wpdb->last_error;
411
 
412
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Query:' .var_export( $last_query,true ));
413
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Result: ' .($wpdb_result==null?'NULL': $wpdb->num_rows));
414
 
415
  if (null == $wpdb_result && !empty($last_error)) {
416
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Last Error:' .var_export( $last_query,true ));
417
+ }
418
+
419
+ return $wpdb_result;
420
+
421
+ }
422
+
423
+ /**
424
+ * Get multiple rows
425
+ *
426
+ * @param $sql
427
+ * @return mixed
428
+ */
429
+ private function get_rows($sql,$output=OBJECT){
430
+ global $wpdb;
431
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
432
+
433
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$sql);
434
+ $wpdb_result = $wpdb->get_results($sql,$output);
435
+ //$last_query = $wpdb->last_query;
436
+ $last_error = $wpdb->last_error;
437
+
438
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Query:' .var_export( $last_query,true ));
439
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Result: ' .($wpdb_result==null?'NULL': $wpdb->num_rows));
440
+
441
+ if (null == $wpdb_result && ! empty($last_error)) {
442
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Last Error:' .var_export( $last_error,true ));
443
  }
444
 
445
  return $wpdb_result;
447
  }
448
 
449
  /**
450
+ * Retrieve rows for one column from the database.
451
  *
452
  * @param $sql
453
  * @return mixed
454
  */
455
+ private function get_col($sql,$column_index=0){
456
  global $wpdb;
457
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
458
 
459
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$sql);
460
+ $wpdb_result = $wpdb->get_col($sql,$column_index);
461
  $last_error = $wpdb->last_error;
462
 
463
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Result: ' .($wpdb_result==null?'NULL': $wpdb->num_rows));
 
464
 
465
  if (null == $wpdb_result && ! empty($last_error)) {
466
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Last Error:' .var_export( $last_error,true ));
467
  }
468
 
469
  return $wpdb_result;
lib/includes/class-filesystem.php CHANGED
@@ -10,25 +10,28 @@
10
  */
11
 
12
  /*** Includes ***/
13
- // include backup class
14
- if( !class_exists( 'WPBackItUp_RecursiveFilter_Iterator' ) ) {
15
- include_once 'class-recursiveFilter_Iterator.php';
16
- }
17
 
18
  class WPBackItUp_FileSystem {
19
 
20
- private $logger;
 
21
 
22
- function __construct($logger=null) {
23
  try {
24
- if (null==$logger){
25
- $this->logger = new WPBackItUp_Logger(true,null,'debug_filesystem');
 
 
 
26
  } else{
27
- $this->logger = $logger;
 
 
28
  }
 
29
  } catch(Exception $e) {
30
- //Dont do anything
31
- print $e;
32
  }
33
  }
34
 
@@ -37,19 +40,18 @@ class WPBackItUp_FileSystem {
37
  }
38
 
39
  public function create_dir($dir) {
40
- $this->logger->log('(FileSytem.create_dir) Create Directory: ' .$dir);
41
  if( !is_dir($dir) ) {
42
  @mkdir($dir, 0755);
43
  }
44
- $this->logger->log('(FileSytem.create_dir) Directory created: ' .$dir);
45
  return true;
46
  }
47
 
48
  public function recursive_delete($dir, $ignore = array('') ){
49
- $this->logger->log('(FileSystem.recursive_delete) Recursively Delete: ' .$dir);
50
-
51
- $this->logger->log('(FileSystem.recursive_delete) Ignore:');
52
- $this->logger->log($ignore);
53
 
54
  if( is_dir($dir) ){
55
  //Make sure the folder is not in the ignore array
@@ -59,7 +61,7 @@ class WPBackItUp_FileSystem {
59
  if (!$this->delete_ignore($file,$ignore)) { //Check the file is not in the ignore array
60
  if(!is_dir($dir .'/'. $file)) {
61
  unlink($dir .'/'. $file); //delete the file
62
- $this->logger->log('(FileSytem.recursive_delete) File Deleted:' .$dir .'/'. $file);
63
  } else {
64
  //This is a dir so delete the files first
65
  $this->recursive_delete($dir.'/'. $file, $ignore);
@@ -69,19 +71,19 @@ class WPBackItUp_FileSystem {
69
  }
70
  //Remove the directory
71
  @rmdir($dir);
72
- $this->logger->log('(FileSystem.recursive_delete) Folder Deleted:' .$dir);
73
  closedir($dh);
74
  }
75
  }
76
- $this->logger->log('(FileSystem.recursive_delete) Recursive Delete Completed.');
77
  return true;
78
  }
79
 
80
  public function recursive_copy($dir, $target_path, $ignore = array('') ) {
81
- $this->logger->log('(FileSystem.recursive_copy) Recursive copy FROM: ' .$dir);
82
- $this->logger->log('(FileSystem.recursive_copy) Recursive Copy TO: '.$target_path);
83
- $this->logger->log('(FileSystem.recursive_copy) IGNORE:');
84
- $this->logger->log($ignore);
85
 
86
  if( is_dir($dir) ) { //If the directory exists
87
  //Exclude all the OTHER backup folders under wp-content
@@ -98,17 +100,17 @@ class WPBackItUp_FileSystem {
98
  fclose($fsrc);
99
  fclose($fdest);
100
  } catch(Exception $e) {
101
- $this->logger->log('(FileSystem.recursive_copy) File Copy Exception: ' .$e);
102
  return false;
103
  }
104
  } else { //If $file is a directory
105
  $destdir = $target_path .$file; //Modify the destination dir
106
  if(!is_dir($destdir)) { //Create the destdir if it doesn't exist
107
- $this->logger->log('(FileSytem.recursive_copy) Create Folder: ' .$destdir);
108
  try {
109
  @mkdir($destdir, 0755);
110
  } catch(Exception $e) {
111
- $this->logger->log('(FileSystem.recursive_copy)Create Folder Exception: ' .$e);
112
  return false;
113
  }
114
  }
@@ -121,15 +123,11 @@ class WPBackItUp_FileSystem {
121
  }
122
  }
123
 
124
- $this->logger->log('(FileSystem.recursive_copy) Completed');
125
  return true;
126
  }
127
 
128
  public function recursive_validate($source_path, $target_path, $ignore = array('') ) {
129
- // $this->logger->log('(FileSystem.recursive_validate) Recursive validate FROM: ' .$source_path);
130
- // $this->logger->log('(FileSystem.recursive_validate) Recursive validate TO: '.$target_path);
131
- // $this->logger->log('(FileSystem.recursive_validate) IGNORE:');
132
- // $this->logger->log($ignore);
133
 
134
  $rtnVal=true;
135
  if( is_dir($source_path) ) { //If the directory exists
@@ -143,7 +141,7 @@ class WPBackItUp_FileSystem {
143
  $target_file = $target_path .$file;
144
 
145
  if (!file_exists($target_file)) {
146
- $this->logger->log('(FileSystem.recursive_validate) Files DIFF - Target file doesnt exist:' . $target_file);
147
  $rtnVal=false;
148
  continue;
149
  }
@@ -152,21 +150,21 @@ class WPBackItUp_FileSystem {
152
  $target_file_size = filesize ($target_file);
153
 
154
  if ($source_file_size != $target_file_size){
155
- $this->logger->log('(FileSystem.recursive_validate) Files DIFF Source:' . $source_file);
156
- $this->logger->log('(FileSystem.recursive_validate) Files DIFF Target:' . $target_file);
157
- $this->logger->log('(FileSystem.recursive_validate) Files DIFF Size:' . $source_file_size .':' . $target_file_size);
158
  $rtnVal=false;
159
  continue;
160
  }
161
 
162
  } catch(Exception $e) {
163
- $this->logger->log('(FileSystem.recursive_validate) Exception: ' .$e);
164
  return false;
165
  }
166
  } else { //If $file is a directory
167
  $destdir = $target_path .$file; //Modify the destination dir
168
  if(!is_dir($destdir)) {
169
- $this->logger->log('(FileSytem.recursive_validate) DIFF Folder doesnt exist: ' .$destdir);
170
  $rtnVal= false;
171
  }else{
172
  $dir_rtnVal=$this->recursive_validate($source_path .$file .'/', $target_path .$file .'/', $ignore);
@@ -181,7 +179,6 @@ class WPBackItUp_FileSystem {
181
  }
182
  }
183
 
184
- //$this->logger->log('(FileSystem.recursive_validate) Completed:' . ($rtnVal ? 'true' : 'false'));
185
  return $rtnVal;
186
  }
187
 
@@ -195,7 +192,6 @@ class WPBackItUp_FileSystem {
195
  ($file == "._" ) ||
196
  ($file == "cgi-bin" )) {
197
 
198
- //$this->logger->log('(FileSystem.ignore) IGNORE:'.$file);
199
  return true;
200
  }
201
 
@@ -212,7 +208,6 @@ class WPBackItUp_FileSystem {
212
  //($file == "._" )
213
  //($file == "cgi-bin" ))
214
  {
215
- //$this->logger->log('(FileSystem.ignore) IGNORE:'.$file);
216
  return true;
217
  }
218
 
@@ -229,7 +224,7 @@ class WPBackItUp_FileSystem {
229
  strpos(strtolower($dir),'/wp-content/uploads/backupwordpress')!== false
230
  ){
231
 
232
- $this->logger->log('(FileSystem.is_backup_folder) SKIP Backup Folder: ' .$dir);
233
  return true;
234
 
235
  }else{
@@ -238,46 +233,9 @@ class WPBackItUp_FileSystem {
238
 
239
  }
240
 
241
-
242
- // function delete_children_recursive($path, $ignore = array('cgi-bin','._'))
243
- // { //The filters are not working on this method
244
- // return false;
245
- // if (is_dir($path))
246
- // {
247
- // $this->logger->log('(FileSystem_delete_children_recursive) Ignore:');
248
- // $this->logger->log($ignore);
249
- //
250
- // $iterator = new RecursiveDirectoryIterator($path);
251
- // $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
252
- // $filter = new WPBackItUp_RecursiveFilter_Iterator($iterator);
253
- // $filter->set_filter($ignore);
254
- //
255
- // $all_files = new RecursiveIteratorIterator($filter,RecursiveIteratorIterator::CHILD_FIRST);
256
- //
257
- // foreach ($all_files as $file)
258
- // {
259
- // if ($file->isDir())
260
- // {
261
- // $this->logger->log('(delete_recursive_new) delete folder:'.$file);
262
- // rmdir($file->getPathname());
263
- // }
264
- // else
265
- // {
266
- // $this->logger->log('(delete_recursive_new) delete file:'.$file);
267
- // unlink($file->getPathname());
268
- //
269
- // }
270
- //
271
- // $this->logger->log('(FileSystem_delete_children_recursive) Deleted:' . $file);
272
- // }
273
- // }
274
- // return true;
275
- // }
276
-
277
-
278
  public function purge_FilesByDate($number_Files_Allowed,$path)
279
  {
280
- $this->logger->log('(FileSytem.purge_FilesByDate) Purge files by date:' .$number_Files_Allowed .':'.$path);
281
 
282
  if (is_numeric($number_Files_Allowed) && $number_Files_Allowed> 0){
283
  $FileList = glob($path . "*.zip");
@@ -288,8 +246,8 @@ class WPBackItUp_FileSystem {
288
  $i = 1;
289
  foreach ($FileList as $key => $val)
290
  {
291
- $this->logger->log_info(__METHOD__,' File:'.$val);
292
- $this->logger->log_info(__METHOD__,' File Date Time:'.filemtime($val));
293
 
294
  if($i <= $number_Files_Allowed)
295
  {
@@ -300,23 +258,23 @@ class WPBackItUp_FileSystem {
300
  $log_file_path = str_replace('.zip','.log',$val);
301
  if (file_exists($val)) unlink($val);
302
  if (file_exists($log_file_path)) unlink($log_file_path);
303
- $this->logger->log('(FileSytem.purge_FilesByDate) Delete File:)' .$val);
304
 
305
  }
306
  }
307
  }
308
- $this->logger->log('(FileSytem.purge_FilesByDate) Completed.');
309
  }
310
 
311
  public function purge_files($path, $file_pattern, $days)
312
  {
313
- $this->logger->log('(FileSytem.purge_files) Purge files days:' . $days);
314
- $this->logger->log('(FileSytem.purge_files) Purge files path:' . $path);
315
- $this->logger->log('(FileSytem.purge_files) Purge files extension:' . $file_pattern);
316
 
317
  //Check Parms
318
  if (empty($path) || empty($file_pattern) || !is_numeric($days)){
319
- $this->logger->log('(FileSytem.purge_files) Invalid Parm values');
320
  return false;
321
  }
322
 
@@ -327,8 +285,8 @@ class WPBackItUp_FileSystem {
327
 
328
  foreach ($FileList as $key => $file)
329
  {
330
- $this->logger->log_info(__METHOD__,' File:'.$file);
331
- $this->logger->log_info(__METHOD__,' File Date Time:'.filemtime($file));
332
 
333
  $current_date = new DateTime('now');
334
  $file_mod_date = new DateTime(date('Y-m-d',filemtime($file)));
@@ -337,18 +295,18 @@ class WPBackItUp_FileSystem {
337
  //$date_diff = $current_date->diff($file_mod_date);
338
  //$date_diff_days = $date_diff->days;
339
 
340
- $util = new WPBackItUp_Utility( $this->logger);
341
  $date_diff_days=$util->date_diff_days($file_mod_date,$current_date);
342
 
343
  if($date_diff_days>=$days){
344
  if (file_exists($file)) unlink($file);
345
- $this->logger->log('Delete:' . $file);
346
  }
347
  else{
348
  break; //Exit for
349
  }
350
  }
351
- $this->logger->log('(FileSytem.purge_files) Completed.');
352
  return true;
353
  }
354
 
@@ -364,13 +322,13 @@ class WPBackItUp_FileSystem {
364
  */
365
  public function purge_folders($path, $pattern, $retention_limit)
366
  {
367
- $this->logger->log_info(__METHOD__,' Purge folders retained number:' . $retention_limit);
368
- $this->logger->log_info(__METHOD__,' Purge folder path:' . $path);
369
- $this->logger->log_info(__METHOD__,' Purge pattern:' . $pattern);
370
 
371
  //Check Parms
372
  if (empty($path) || empty($pattern) || !is_numeric($retention_limit)){
373
- $this->logger->log_error(__METHOD__,' Invalid Parm values');
374
  return false;
375
  }
376
 
@@ -382,8 +340,8 @@ class WPBackItUp_FileSystem {
382
  $backup_count=0;
383
  foreach (array_reverse($folder_list) as $key => $folder)
384
  {
385
- $this->logger->log_info(__METHOD__,' Folder:'.$folder);
386
- $this->logger->log_info(__METHOD__,' Folder Date Time:'.filemtime($folder));
387
 
388
  ++$backup_count;
389
  if($backup_count>$retention_limit){
@@ -392,52 +350,52 @@ class WPBackItUp_FileSystem {
392
  }
393
  }
394
  }
395
- $this->logger->log_info(__METHOD__,'End');
396
  return true;
397
  }
398
 
399
  public function delete_files($file_list)
400
  {
401
- $this->logger->log_info(__METHOD__,'Begin');
402
 
403
  foreach ($file_list as $key => $file)
404
  {
405
  if (file_exists($file)){
406
  unlink($file);
407
- $this->logger->log('Deleted:' . $file);
408
  }
409
  }
410
- $this->logger->log_info(__METHOD__,'End');
411
  return true;
412
  }
413
 
414
 
415
  function get_file_handle($path,$newFile=false) {
416
- $this->logger->log('(FileSytem.get_file_handle) Path:' . $path);
417
 
418
  try {
419
 
420
  if ($newFile && file_exists($path)){
421
  if (unlink($path)){
422
- $this->logger->log('(FileSytem.get_file_handle) Deleted:' . $path);
423
  }
424
  else{
425
- $this->logger->log('(FileSytem.get_file_handle) File could not be deleted:');
426
- $this->logger->log(error_get_last());
427
  }
428
  }
429
 
430
  $fh= fopen($path, 'w');
431
  if (false===$fh){
432
- $this->logger->log('(FileSytem.get_file_handle) File could not be opened:');
433
- $this->logger->log(error_get_last());
434
  return false;
435
  }
436
 
437
  return $fh;
438
 
439
  } catch(Exception $e) {
440
- $this->logger->log('(FileSytem.get_file_handle) Exception:' . $e);
441
  return false;
442
  }
443
  }
@@ -450,28 +408,28 @@ class WPBackItUp_FileSystem {
450
  * @return bool
451
  */
452
  function copy_file($from_file,$to_file) {
453
- $this->logger->log('(FileSystem.copy_file) FROM Path:' . $from_file);
454
- $this->logger->log('(FileSystem.copy_file) TO Path:' . $to_file);
455
 
456
  try {
457
  if (file_exists($from_file)){
458
  if (copy($from_file,$to_file)){
459
- $this->logger->log('(FileSystem.copy_file) File copied successfully.');
460
  return true;
461
  }
462
  else{
463
- $this->logger->log('(FileSystem.copy_file) File could not be copied:');
464
- $this->logger->log(error_get_last());
465
  return false;
466
  }
467
  }
468
  else{
469
- $this->logger->log('(FileSystem.copy_file) FROM File doesnt exist');
470
  return false;
471
  }
472
 
473
  } catch(Exception $e) {
474
- $this->logger->log('(FileSystem.copy_file) Exception:' . $e);
475
  return false;
476
  }
477
  }
@@ -484,28 +442,28 @@ class WPBackItUp_FileSystem {
484
  * @return bool
485
  */
486
  function rename_file($from_file,$to_file_name) {
487
- $this->logger->log_info(__METHOD__,' FROM Path:' . $from_file);
488
- $this->logger->log_info(__METHOD__,' TO Path:' . $to_file_name);
489
 
490
  try {
491
  if (file_exists($from_file)){
492
  if (rename($from_file,$to_file_name)){
493
- $this->logger->log_info(__METHOD__,'File renamed successfully.');
494
  return true;
495
  }
496
  else{
497
- $this->logger->log_error(__METHOD__,'File could not be renamed:');
498
- $this->logger->log(error_get_last());
499
  return false;
500
  }
501
  }
502
  else{
503
- $this->logger->log_error(__METHOD__,'FROM File doesnt exist');
504
  return false;
505
  }
506
 
507
  } catch(Exception $e) {
508
- $this->logger->log_error(__METHOD__,' Exception:' . $e);
509
  return false;
510
  }
511
  }
@@ -516,37 +474,33 @@ class WPBackItUp_FileSystem {
516
  * @param $path
517
  */
518
  function secure_folder($path){
519
- $this->logger->log_info(__METHOD__,'Begin');
520
 
521
  $path = rtrim($path,"/");
522
 
523
  if( !is_dir($path) ) {
524
  @mkdir($path, 0755);
525
- $this->logger->log_info(__METHOD__,'Folder Created:' .$path);
526
  }
527
 
528
  if (!is_file($path.'/index.html')) @file_put_contents($path.'/index.html',"<html><body><a href=\"http://www.wpbackitup.com\">WP BackItUp - The simplest way to backup WordPress</a></body></html>");
529
  if (!is_file($path.'/.htaccess')) @file_put_contents($path.'/.htaccess','deny from all');
530
  if (!is_file($path.'/web.config')) @file_put_contents($path.'/web.config', "<configuration>\n<system.webServer>\n<authorization>\n<deny users=\"*\" />\n</authorization>\n</system.webServer>\n</configuration>\n");
531
- $this->logger->log_info(__METHOD__,'Secure files exist or were created.');
532
 
533
 
534
- $this->logger->log_info(__METHOD__,'End');
535
  }
536
 
537
 
538
  public function get_recursive_file_list($pattern) {
539
- //$this->logger->log_info( __METHOD__, 'Begin: ' .$pattern );
540
-
541
  return $this->glob_recursive($pattern);
542
  }
543
 
544
  private function glob_recursive($pattern, $flags = 0) {
545
- //$this->logger->log_info( __METHOD__, 'Begin' );
546
 
547
  //The order here is important because the folders must be in the list before the files.
548
  $files = glob($pattern, $flags); //everything in the root
549
- //$this->logger->log_info( __METHOD__, 'Files Count:' . count($files));
550
 
551
  //Get the folders and append all the files in the folder
552
  foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR) as $dir)
@@ -574,16 +528,16 @@ class WPBackItUp_FileSystem {
574
  * @return array Array of files
575
  */
576
  function get_fileonly_list($path,$extensions=null){
577
- $this->logger->log_info(__METHOD__,"Begin:" .$path);
578
- $this->logger->log_info(__METHOD__,"Pattern:" .$extensions);//txt|sql'
579
 
580
  //Remove trailing slashes
581
  $path = rtrim($path,"\\");
582
  $path = rtrim($path,"/");
583
- $this->logger->log_info(__METHOD__,"Path:" .$path);
584
 
585
  $all_files = glob($path .'/*.*');
586
- $this->logger->log_info(__METHOD__,"All Files:" .var_export($all_files,true));
587
 
588
  //If a file pattern is passed then filter
589
  if(isset($extensions)){
@@ -593,10 +547,52 @@ class WPBackItUp_FileSystem {
593
  $filtered_files =array_filter($all_files, 'is_file');
594
  }
595
 
596
- $this->logger->log_info(__METHOD__,"Filtered Files:" .var_export($filtered_files,true));
597
  return $filtered_files;
598
  }
599
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
600
 
601
  }
602
 
10
  */
11
 
12
  /*** Includes ***/
 
 
 
 
13
 
14
  class WPBackItUp_FileSystem {
15
 
16
+ const FILESYSTEM_LOG_NAME = 'debug_filesystem';
17
+ private $log_name;
18
 
19
+ function __construct($log_name=null) {
20
  try {
21
+
22
+ $this->log_name = self::FILESYSTEM_LOG_NAME;//default log name
23
+ if (is_object($log_name)){
24
+ //This is for the old logger
25
+ $this->log_name = $log_name->getLogFileName();
26
  } else{
27
+ if (is_string($log_name) && isset($log_name)){
28
+ $this->log_name = $log_name;
29
+ }
30
  }
31
+
32
  } catch(Exception $e) {
33
+ error_log($e);
34
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
35
  }
36
  }
37
 
40
  }
41
 
42
  public function create_dir($dir) {
43
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Create Directory: ' .$dir);
44
  if( !is_dir($dir) ) {
45
  @mkdir($dir, 0755);
46
  }
47
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Directory created: ' .$dir);
48
  return true;
49
  }
50
 
51
  public function recursive_delete($dir, $ignore = array('') ){
52
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Recursively Delete: ' .$dir);
53
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Ignore:');
54
+ WPBackItUp_LoggerV2::log($this->log_name,$ignore);
 
55
 
56
  if( is_dir($dir) ){
57
  //Make sure the folder is not in the ignore array
61
  if (!$this->delete_ignore($file,$ignore)) { //Check the file is not in the ignore array
62
  if(!is_dir($dir .'/'. $file)) {
63
  unlink($dir .'/'. $file); //delete the file
64
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Deleted:' .$dir .'/'. $file);
65
  } else {
66
  //This is a dir so delete the files first
67
  $this->recursive_delete($dir.'/'. $file, $ignore);
71
  }
72
  //Remove the directory
73
  @rmdir($dir);
74
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder Deleted:' .$dir);
75
  closedir($dh);
76
  }
77
  }
78
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Recursive Delete Completed.');
79
  return true;
80
  }
81
 
82
  public function recursive_copy($dir, $target_path, $ignore = array('') ) {
83
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Recursive copy FROM: ' .$dir);
84
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Recursive Copy TO: '.$target_path);
85
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'IGNORE:');
86
+ WPBackItUp_LoggerV2::log($this->log_name,$ignore);
87
 
88
  if( is_dir($dir) ) { //If the directory exists
89
  //Exclude all the OTHER backup folders under wp-content
100
  fclose($fsrc);
101
  fclose($fdest);
102
  } catch(Exception $e) {
103
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File Copy Exception: ' .$e);
104
  return false;
105
  }
106
  } else { //If $file is a directory
107
  $destdir = $target_path .$file; //Modify the destination dir
108
  if(!is_dir($destdir)) { //Create the destdir if it doesn't exist
109
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Create Folder: ' .$destdir);
110
  try {
111
  @mkdir($destdir, 0755);
112
  } catch(Exception $e) {
113
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Create Folder Exception: ' .$e);
114
  return false;
115
  }
116
  }
123
  }
124
  }
125
 
126
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Completed');
127
  return true;
128
  }
129
 
130
  public function recursive_validate($source_path, $target_path, $ignore = array('') ) {
 
 
 
 
131
 
132
  $rtnVal=true;
133
  if( is_dir($source_path) ) { //If the directory exists
141
  $target_file = $target_path .$file;
142
 
143
  if (!file_exists($target_file)) {
144
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Files DIFF - Target file doesnt exist:' . $target_file);
145
  $rtnVal=false;
146
  continue;
147
  }
150
  $target_file_size = filesize ($target_file);
151
 
152
  if ($source_file_size != $target_file_size){
153
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Files DIFF Source:' . $source_file);
154
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Files DIFF Target:' . $target_file);
155
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Files DIFF Size:' . $source_file_size .':' . $target_file_size);
156
  $rtnVal=false;
157
  continue;
158
  }
159
 
160
  } catch(Exception $e) {
161
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
162
  return false;
163
  }
164
  } else { //If $file is a directory
165
  $destdir = $target_path .$file; //Modify the destination dir
166
  if(!is_dir($destdir)) {
167
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'DIFF Folder doesnt exist: ' .$destdir);
168
  $rtnVal= false;
169
  }else{
170
  $dir_rtnVal=$this->recursive_validate($source_path .$file .'/', $target_path .$file .'/', $ignore);
179
  }
180
  }
181
 
 
182
  return $rtnVal;
183
  }
184
 
192
  ($file == "._" ) ||
193
  ($file == "cgi-bin" )) {
194
 
 
195
  return true;
196
  }
197
 
208
  //($file == "._" )
209
  //($file == "cgi-bin" ))
210
  {
 
211
  return true;
212
  }
213
 
224
  strpos(strtolower($dir),'/wp-content/uploads/backupwordpress')!== false
225
  ){
226
 
227
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SKIP Backup Folder: ' .$dir);
228
  return true;
229
 
230
  }else{
233
 
234
  }
235
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  public function purge_FilesByDate($number_Files_Allowed,$path)
237
  {
238
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge files by date:' .$number_Files_Allowed .':'.$path);
239
 
240
  if (is_numeric($number_Files_Allowed) && $number_Files_Allowed> 0){
241
  $FileList = glob($path . "*.zip");
246
  $i = 1;
247
  foreach ($FileList as $key => $val)
248
  {
249
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,' File:'.$val);
250
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,' File Date Time:'.filemtime($val));
251
 
252
  if($i <= $number_Files_Allowed)
253
  {
258
  $log_file_path = str_replace('.zip','.log',$val);
259
  if (file_exists($val)) unlink($val);
260
  if (file_exists($log_file_path)) unlink($log_file_path);
261
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Delete File:)' .$val);
262
 
263
  }
264
  }
265
  }
266
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Completed.');
267
  }
268
 
269
  public function purge_files($path, $file_pattern, $days)
270
  {
271
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge files days:' . $days);
272
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge files path:' . $path);
273
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge files extension:' . $file_pattern);
274
 
275
  //Check Parms
276
  if (empty($path) || empty($file_pattern) || !is_numeric($days)){
277
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Invalid Parm values');
278
  return false;
279
  }
280
 
285
 
286
  foreach ($FileList as $key => $file)
287
  {
288
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File:'.$file);
289
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Date Time:'.filemtime($file));
290
 
291
  $current_date = new DateTime('now');
292
  $file_mod_date = new DateTime(date('Y-m-d',filemtime($file)));
295
  //$date_diff = $current_date->diff($file_mod_date);
296
  //$date_diff_days = $date_diff->days;
297
 
298
+ $util = new WPBackItUp_Utility($this->log_name);
299
  $date_diff_days=$util->date_diff_days($file_mod_date,$current_date);
300
 
301
  if($date_diff_days>=$days){
302
  if (file_exists($file)) unlink($file);
303
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Delete:' . $file);
304
  }
305
  else{
306
  break; //Exit for
307
  }
308
  }
309
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Completed.');
310
  return true;
311
  }
312
 
322
  */
323
  public function purge_folders($path, $pattern, $retention_limit)
324
  {
325
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge folders retained number:' . $retention_limit);
326
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge folder path:' . $path);
327
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Purge pattern:' . $pattern);
328
 
329
  //Check Parms
330
  if (empty($path) || empty($pattern) || !is_numeric($retention_limit)){
331
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Invalid Parm values');
332
  return false;
333
  }
334
 
340
  $backup_count=0;
341
  foreach (array_reverse($folder_list) as $key => $folder)
342
  {
343
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder:'.$folder);
344
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder Date Time:'.filemtime($folder));
345
 
346
  ++$backup_count;
347
  if($backup_count>$retention_limit){
350
  }
351
  }
352
  }
353
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
354
  return true;
355
  }
356
 
357
  public function delete_files($file_list)
358
  {
359
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
360
 
361
  foreach ($file_list as $key => $file)
362
  {
363
  if (file_exists($file)){
364
  unlink($file);
365
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Deleted:' . $file);
366
  }
367
  }
368
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
369
  return true;
370
  }
371
 
372
 
373
  function get_file_handle($path,$newFile=false) {
374
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Path:' . $path);
375
 
376
  try {
377
 
378
  if ($newFile && file_exists($path)){
379
  if (unlink($path)){
380
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Deleted:' . $path);
381
  }
382
  else{
383
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File could not be deleted:');
384
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,var_export(error_get_last(),true));
385
  }
386
  }
387
 
388
  $fh= fopen($path, 'w');
389
  if (false===$fh){
390
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File could not be opened:');
391
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,var_export(error_get_last(),true));
392
  return false;
393
  }
394
 
395
  return $fh;
396
 
397
  } catch(Exception $e) {
398
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception:' . $e);
399
  return false;
400
  }
401
  }
408
  * @return bool
409
  */
410
  function copy_file($from_file,$to_file) {
411
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'FROM Path:' . $from_file);
412
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'TO Path:' . $to_file);
413
 
414
  try {
415
  if (file_exists($from_file)){
416
  if (copy($from_file,$to_file)){
417
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File copied successfully.');
418
  return true;
419
  }
420
  else{
421
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File could not be copied:');
422
+ WPBackItUp_LoggerV2::error($this->log_name,__METHOD__,var_export(error_get_last(),true));
423
  return false;
424
  }
425
  }
426
  else{
427
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'FROM File doesnt exist');
428
  return false;
429
  }
430
 
431
  } catch(Exception $e) {
432
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception:' . $e);
433
  return false;
434
  }
435
  }
442
  * @return bool
443
  */
444
  function rename_file($from_file,$to_file_name) {
445
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'FROM Path:' . $from_file);
446
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'TO Path:' . $to_file_name);
447
 
448
  try {
449
  if (file_exists($from_file)){
450
  if (rename($from_file,$to_file_name)){
451
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File renamed successfully.');
452
  return true;
453
  }
454
  else{
455
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File could not be renamed:');
456
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,var_export(error_get_last(),true));
457
  return false;
458
  }
459
  }
460
  else{
461
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'FROM File doesnt exist');
462
  return false;
463
  }
464
 
465
  } catch(Exception $e) {
466
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception:' . $e);
467
  return false;
468
  }
469
  }
474
  * @param $path
475
  */
476
  function secure_folder($path){
477
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
478
 
479
  $path = rtrim($path,"/");
480
 
481
  if( !is_dir($path) ) {
482
  @mkdir($path, 0755);
483
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder Created:' .$path);
484
  }
485
 
486
  if (!is_file($path.'/index.html')) @file_put_contents($path.'/index.html',"<html><body><a href=\"http://www.wpbackitup.com\">WP BackItUp - The simplest way to backup WordPress</a></body></html>");
487
  if (!is_file($path.'/.htaccess')) @file_put_contents($path.'/.htaccess','deny from all');
488
  if (!is_file($path.'/web.config')) @file_put_contents($path.'/web.config', "<configuration>\n<system.webServer>\n<authorization>\n<deny users=\"*\" />\n</authorization>\n</system.webServer>\n</configuration>\n");
489
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Secure files exist or were created.');
490
 
491
 
492
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
493
  }
494
 
495
 
496
  public function get_recursive_file_list($pattern) {
 
 
497
  return $this->glob_recursive($pattern);
498
  }
499
 
500
  private function glob_recursive($pattern, $flags = 0) {
 
501
 
502
  //The order here is important because the folders must be in the list before the files.
503
  $files = glob($pattern, $flags); //everything in the root
 
504
 
505
  //Get the folders and append all the files in the folder
506
  foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR) as $dir)
528
  * @return array Array of files
529
  */
530
  function get_fileonly_list($path,$extensions=null){
531
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,"Begin:" .$path);
532
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,"Pattern:" .$extensions);//txt|sql'
533
 
534
  //Remove trailing slashes
535
  $path = rtrim($path,"\\");
536
  $path = rtrim($path,"/");
537
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,"Path:" .$path);
538
 
539
  $all_files = glob($path .'/*.*');
540
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,"All Files:" .var_export($all_files,true));
541
 
542
  //If a file pattern is passed then filter
543
  if(isset($extensions)){
547
  $filtered_files =array_filter($all_files, 'is_file');
548
  }
549
 
550
+ //WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,"Filtered Files:" .var_export($filtered_files,true));
551
  return $filtered_files;
552
  }
553
 
554
+ /**
555
+ * Human readable file size
556
+ * @param $bytes
557
+ *
558
+ * @return string
559
+ */
560
+ static function format_file_size($bytes)
561
+ {
562
+ try {
563
+ if ($bytes >= 1073741824)
564
+ {
565
+ $bytes = number_format($bytes / 1073741824, 2) . ' GB';
566
+ }
567
+ elseif ($bytes >= 1048576)
568
+ {
569
+ $bytes = number_format($bytes / 1048576, 2) . ' MB';
570
+ }
571
+ elseif ($bytes >= 1024)
572
+ {
573
+ $bytes = number_format($bytes / 1024, 2) . ' KB';
574
+ }
575
+ elseif ($bytes > 1)
576
+ {
577
+ $bytes = $bytes . ' bytes';
578
+ }
579
+ elseif ($bytes == 1)
580
+ {
581
+ $bytes = $bytes . ' byte';
582
+ }
583
+ else
584
+ {
585
+ $bytes = '0 bytes';
586
+ }
587
+
588
+ return $bytes;
589
+
590
+ } catch(Exception $e) {
591
+ WPBackItUp_LoggerV2::log_error(self::FILESYSTEM_LOG_NAME,__METHOD__,'Exception:' . $e);
592
+ return '0 bytes';
593
+ }
594
+
595
+ }
596
 
597
  }
598
 
lib/includes/class-job-v2.php CHANGED
@@ -37,7 +37,7 @@ class WPBackItUp_Job_v2 {
37
  const QUEUED = 'queued';
38
  const RESUME = 'resume';
39
 
40
- private $logger;
41
  private $job_id; //post ID
42
  private $instance_id;
43
  private $allocated_task;
@@ -57,7 +57,7 @@ class WPBackItUp_Job_v2 {
57
 
58
  private function __construct($job) {
59
  try {
60
- $this->logger = new WPBackItUp_Logger(false,null,'debug_job');
61
 
62
  //Load of the class properties from the post object(see wp_post)
63
  $this->job_id=$job->ID;
@@ -79,11 +79,12 @@ class WPBackItUp_Job_v2 {
79
 
80
  } catch(Exception $e) {
81
  error_log($e); //Log to debug
 
82
  }
83
  }
84
 
85
  function __destruct() {
86
- $this->logger->log_info( __METHOD__,'Begin');
87
  $this->release_lock();
88
  }
89
 
@@ -96,24 +97,24 @@ class WPBackItUp_Job_v2 {
96
  *
97
  */
98
  public function get_lock ($lock_name){
99
- $this->logger->log_info( __METHOD__,'Begin:'.$lock_name);
100
 
101
  try {
102
  $lock_file_path = WPBACKITUP__PLUGIN_PATH .'/logs';
103
  $this->mutex = new WPBackItUp_Mutex($lock_name,$lock_file_path);
104
  if ($this->mutex->lock(false)) {
105
- $this->logger->log_info( __METHOD__,'Process LOCK acquired');
106
  $this->locked=true;
107
  } else {
108
  //This is not an error, just means another process has it allocated
109
- $this->logger->log_info( __METHOD__,'Process LOCK Failed');
110
  $this->locked=false;
111
  }
112
 
113
  return $this->locked;
114
 
115
  } catch(Exception $e) {
116
- $this->logger->log_error( __METHOD__,'Process Lock error: ' .$e);
117
  $this->locked=false;
118
  return $this->locked;
119
  }
@@ -125,7 +126,7 @@ class WPBackItUp_Job_v2 {
125
  * @return bool
126
  */
127
  public function release_lock (){
128
- $this->logger->log_info( __METHOD__,'Begin');
129
 
130
  try{
131
 
@@ -134,15 +135,15 @@ class WPBackItUp_Job_v2 {
134
  $this->mutex = null;
135
  }
136
 
137
- $this->logger->log_info( __METHOD__,'Lock released');
138
  $this->locked=false;
139
  }catch(Exception $e) {
140
- $this->logger->log_error( __METHOD__,'Process UNLOCK error: ' .$e);
141
  }
142
  }
143
 
144
  public function is_job_complete() {
145
- $this->logger->log_info( __METHOD__, 'Begin' );
146
 
147
  $tasks = get_post_meta( $this->job_id);
148
  foreach($tasks as $key=>$value) {
@@ -158,19 +159,19 @@ class WPBackItUp_Job_v2 {
158
  // $task_last_updated = $task[0]['task_last_updated'];
159
 
160
  if (self::QUEUED==$task_status || self::ACTIVE==$task_status){
161
- $this->logger->log_info( __METHOD__, 'Active or Queued Task found:' . $key );
162
  return false;
163
  }
164
  }
165
 
166
  //No active or queued tasks were found
167
- $this->logger->log_info( __METHOD__, 'End - No Active or Queued Tasks found' );
168
  return true;
169
 
170
  }
171
  //What is the next task in the stack
172
  public function get_next_task(){
173
- $this->logger->log_info(__METHOD__,'Begin');
174
 
175
  $this->allocated_task=null; //Set the current task to null;
176
 
@@ -188,9 +189,9 @@ class WPBackItUp_Job_v2 {
188
  //Get Task Properties
189
  $task_id = $task[0]['task_id'];
190
  $task_status = $task[0]['task_status'];
191
- $task_allocated_id = $task[0]['task_allocated_id'];
192
  $task_last_updated = $task[0]['task_last_updated'];
193
- $task_retry_count = $task[0]['task_retry_count'];
194
 
195
  //if next task in stack is queued then its time to get to work
196
  switch ($task_status) {
@@ -245,7 +246,7 @@ class WPBackItUp_Job_v2 {
245
 
246
  }else {
247
 
248
- $this->logger->log_info( __METHOD__, 'Job:' . $key . ' is still active' );
249
  //if its been less than 3 minutes then wait
250
  return false;
251
  }
@@ -274,12 +275,12 @@ class WPBackItUp_Job_v2 {
274
  //If no more tasks then job must be done
275
  $this->set_job_status_complete();
276
 
277
- $this->logger->log_info(__METHOD__,'End - no tasks to allocate');
278
  return false; //no tasks to allocate now but job should be complete next time
279
  }
280
 
281
  public function peek_current_task(){
282
- $this->logger->log_info(__METHOD__,'Begin');
283
 
284
  //$this->allocated_task=null; //Set the current task to null;
285
 
@@ -316,7 +317,7 @@ class WPBackItUp_Job_v2 {
316
  }
317
  }
318
 
319
- $this->logger->log_info(__METHOD__,'End - no tasks to allocate');
320
  return false; //nothing active
321
  }
322
 
@@ -331,7 +332,7 @@ class WPBackItUp_Job_v2 {
331
  * @return bool
332
  */
333
  private function allocate_task($job_id, $key,$task_id){
334
- $this->logger->log_info(__METHOD__,'Begin');
335
 
336
  //Allocate the task to this process
337
  $process_uid = uniqid();
@@ -343,11 +344,11 @@ class WPBackItUp_Job_v2 {
343
  if ($process_uid==$updated_task_allocated_id) {
344
  $this->allocated_task=$updated_task; // set the jobs allocated task
345
 
346
- $this->logger->log_info(__METHOD__,'End - Task allocated');
347
  return $updated_task;
348
  }else{
349
  $this->allocated_task=null;
350
- $this->logger->log_info(__METHOD__,'End - Task was not allocated');
351
  return false;
352
  }
353
  }
@@ -356,16 +357,16 @@ class WPBackItUp_Job_v2 {
356
  * Set the allocated task status to queued
357
  */
358
  public function set_task_queued(){
359
- $this->logger->log_info(__METHOD__,'Begin');
360
 
361
- $this->logger->log_info(__METHOD__, 'Task Info:');
362
- $this->logger->log($this->allocated_task);
363
 
364
  //Get allocated task Properties
365
  $task_id = $this->allocated_task[0]['task_id'];
366
  $this->update_task_status($this->job_id, $task_id,$task_id,self::QUEUED);
367
 
368
- $this->logger->log_info(__METHOD__,'End');
369
  }
370
 
371
  /**
@@ -374,14 +375,14 @@ class WPBackItUp_Job_v2 {
374
  * @param $task_id
375
  */
376
  public function set_task_queued_by_id($task_id){
377
- $this->logger->log_info(__METHOD__,'Begin');
378
 
379
- $this->logger->log_info(__METHOD__, 'Task Info:');
380
- $this->logger->log($task_id);
381
 
382
  $this->update_task_status($this->job_id, $task_id,$task_id,self::QUEUED);
383
 
384
- $this->logger->log_info(__METHOD__,'End');
385
  }
386
 
387
  /**
@@ -391,24 +392,24 @@ class WPBackItUp_Job_v2 {
391
  * @param $status
392
  */
393
  public function set_task_status_by_id($task_id, $status){
394
- $this->logger->log_info(__METHOD__,'Begin');
395
 
396
- $this->logger->log_info(__METHOD__, 'Task Info:');
397
- $this->logger->log($task_id);
398
 
399
  $this->update_task_status($this->job_id, $task_id,$task_id,$status);
400
 
401
- $this->logger->log_info(__METHOD__,'End');
402
  }
403
 
404
  /**
405
  * Set the allocated task status to complete
406
  */
407
  public function set_task_complete(){
408
- $this->logger->log_info(__METHOD__,'Begin');
409
 
410
- $this->logger->log_info(__METHOD__, 'Task Info:');
411
- $this->logger->log($this->allocated_task);
412
 
413
  //Get allocated task Properties
414
  $task_id = $this->allocated_task[0]['task_id'];
@@ -420,7 +421,7 @@ class WPBackItUp_Job_v2 {
420
  $this->set_job_status_complete();
421
  }
422
 
423
- $this->logger->log_info(__METHOD__,'End');
424
  }
425
 
426
 
@@ -428,10 +429,10 @@ class WPBackItUp_Job_v2 {
428
  * Set the allocated task status to error
429
  */
430
  public function set_task_error($error_code){
431
- $this->logger->log_info(__METHOD__,'Begin');
432
 
433
- $this->logger->log_info(__METHOD__, 'Task Info:');
434
- $this->logger->log($this->allocated_task);
435
 
436
  //Get allocated task Properties
437
  $task_id = $this->allocated_task[0]['task_id'];
@@ -439,12 +440,12 @@ class WPBackItUp_Job_v2 {
439
 
440
  $this->set_job_status_error();
441
 
442
- $this->logger->log_info(__METHOD__,'End');
443
  }
444
 
445
 
446
  private function update_task_status($job_id,$task_name,$task_id, $task_status, $task_allocated_id='', $task_error_code=''){
447
- $this->logger->log_info(__METHOD__,'Begin');
448
 
449
  $meta_value = array(
450
  'task_id' => $task_id,
@@ -454,12 +455,12 @@ class WPBackItUp_Job_v2 {
454
  'task_last_updated' => time()
455
  );
456
 
457
- $this->logger->log_info(__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
458
  return update_post_meta( $job_id, $task_name, $meta_value );
459
  }
460
 
461
  // private function update_task_retry_count($job_id,$task_name,$task_id, $task_allocated_id='', $task_error_code=''){
462
- // $this->logger->log_info(__METHOD__,'Begin');
463
  //
464
  // $meta_value = array(
465
  // 'task_id' => $task_id,
@@ -469,13 +470,13 @@ class WPBackItUp_Job_v2 {
469
  // 'task_last_updated' => time()
470
  // );
471
  //
472
- // $this->logger->log_info(__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
473
  // return update_post_meta( $job_id, $task_name, $meta_value );
474
  // }
475
 
476
 
477
  public function update_job_meta($meta_name,$meta_value){
478
- $this->logger->log_info(__METHOD__,'Begin - Update job meta:' .$this->job_id .'-'. $meta_name);
479
 
480
  //Encode the array values
481
  if (is_array($meta_value)){
@@ -536,7 +537,7 @@ class WPBackItUp_Job_v2 {
536
  }
537
 
538
  public function get_job_meta($meta_name){
539
- $this->logger->log_info(__METHOD__,'Begin:' .$this->job_id .'-'. $meta_name);
540
 
541
  $job_meta = get_post_meta($this->job_id,$meta_name,true);
542
 
@@ -612,7 +613,7 @@ class WPBackItUp_Job_v2 {
612
  * @return bool
613
  */
614
  private function update_job_status($status) {
615
- $this->logger->log_info(__METHOD__,'Begin');
616
 
617
  $job = array(
618
  'ID' => $this->job_id,
@@ -623,10 +624,10 @@ class WPBackItUp_Job_v2 {
623
  $job_id = wp_update_post($job );
624
 
625
  if (0!=$job_id) {
626
- $this->logger->log_info(__METHOD__,'End - Backup Job status set to:' .$job_id .'-' . $status );
627
  return true;
628
  } else{
629
- $this->logger->log_error(__METHOD__,'End - Backup Job status NOT set.');
630
  return false;
631
  }
632
 
@@ -638,7 +639,7 @@ class WPBackItUp_Job_v2 {
638
  * @return bool
639
  */
640
  private function set_job_start_time() {
641
- $this->logger->log_info(__METHOD__,'Begin');
642
 
643
  $this->job_start_time= time();
644
  $job_info = array(
@@ -654,10 +655,10 @@ class WPBackItUp_Job_v2 {
654
  $job_id = wp_update_post($job );
655
 
656
  if (0!=$job_id) {
657
- $this->logger->log_info(__METHOD__,'End - Backup Job start time set');
658
  return true;
659
  } else{
660
- $this->logger->log_error(__METHOD__,'End - Backup Job start time NOT set.');
661
  return false;
662
  }
663
 
@@ -669,7 +670,7 @@ class WPBackItUp_Job_v2 {
669
  * @return bool
670
  */
671
  private function set_job_end_time() {
672
- $this->logger->log_info(__METHOD__,'Begin');
673
 
674
  $this->job_end_time=time();
675
  $job_info = array(
@@ -686,10 +687,10 @@ class WPBackItUp_Job_v2 {
686
  $job_id = wp_update_post($job );
687
 
688
  if (0!=$job_id) {
689
- $this->logger->log_info(__METHOD__,'End - Backup Job end time set');
690
  return true;
691
  } else{
692
- $this->logger->log_error(__METHOD__,'End - Backup Job end time NOT set.');
693
  return false;
694
  }
695
 
@@ -705,8 +706,8 @@ class WPBackItUp_Job_v2 {
705
  * @return bool
706
  */
707
  public static function is_job_queued($job_name) {
708
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
709
- $logger->log_info(__METHOD__,'Begin - Check Job Queue:' . $job_name);
710
 
711
  //Get top 1
712
  $args = array(
@@ -718,15 +719,15 @@ class WPBackItUp_Job_v2 {
718
  'suppress_filters' => true
719
  );
720
  $jobs = get_posts( $args );
721
- $logger->log($jobs);
722
 
723
  if (is_array($jobs) && count($jobs)>0) {
724
- $logger->log_info(__METHOD__,'Jobs found:' . count($jobs) );
725
  return true;
726
  }
727
 
728
- $logger->log_info(__METHOD__,'No jobs found:' . $job_name);
729
- $logger->log_info(__METHOD__,'End');
730
  return false;
731
  }
732
 
@@ -740,8 +741,8 @@ class WPBackItUp_Job_v2 {
740
  * @return bool
741
  */
742
  public static function get_completed_jobs($job_name) {
743
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
744
- $logger->log_info(__METHOD__,'Begin');
745
 
746
  $args = array(
747
  'posts_per_page' => -1,
@@ -752,14 +753,14 @@ class WPBackItUp_Job_v2 {
752
  'suppress_filters' => true
753
  );
754
  $jobs = get_posts( $args );
755
- $logger->log_info(__METHOD__,'Jobs found:' . count($jobs));
756
 
757
  if (is_array($jobs) && count($jobs)>0) {
758
  return $jobs;
759
  }
760
 
761
- $logger->log_info(__METHOD__,'No jobs found:' . $job_name);
762
- $logger->log_info(__METHOD__,'End');
763
  return false;
764
  }
765
 
@@ -771,18 +772,18 @@ class WPBackItUp_Job_v2 {
771
  * @return bool
772
  */
773
  public static function cancel_all_jobs($job_name) {
774
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
775
- $logger->log_info(__METHOD__,'Begin - Cancel all jobs:'.$job_name);
776
 
777
  while (self::is_job_queued($job_name)){
778
  $job = self::get_current_job($job_name);
779
  if (false!== $job) {
780
  $job->set_job_status_cancelled();
781
- $logger->log_info(__METHOD__,'Job Cancelled:' . $job->get_job_id());
782
  }
783
  }
784
 
785
- $logger->log_info(__METHOD__,'End - All jobs cancelled');
786
  }
787
 
788
  /**
@@ -797,8 +798,8 @@ class WPBackItUp_Job_v2 {
797
  * @internal param int $count
798
  */
799
  public static function purge_completed_jobs($job_name,$dont_purge=10) {
800
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
801
- $logger->log_info(__METHOD__,'Begin - Purge Jobs.');
802
 
803
  $jobs_purged=0;
804
  $jobs = self::get_completed_jobs($job_name);
@@ -813,27 +814,27 @@ class WPBackItUp_Job_v2 {
813
  }
814
 
815
  $purge_count=$job_count-$dont_purge;
816
- $logger->log_info(__METHOD__,'Jobs to be purged:' .$purge_count);
817
  //Leave the last n and purge the remaining
818
  for ($i = $start; $i < $job_count; $i++) {
819
  $job= $jobs[$i];
820
- $logger->log_info(__METHOD__,'Delete Job:'.$i .':' .$job->ID .':' .$job->post_name .':' .$job->post_type .":" .$job->post_title .':' .$job->post_date);
821
 
822
  //delete job records
823
  $job_id=$job->post_name;
824
  $db = new WPBackItUp_DataAccess();
825
 
826
  if ($db->delete_job_records($job_id)){
827
- $logger->log_error(__METHOD__,'Job records purged.');
828
  }else {
829
- $logger->log_error(__METHOD__,'Job records NOT purged.');
830
  }
831
 
832
  wp_delete_post( $job->ID, true );
833
  $jobs_purged+=1;
834
  }
835
  }
836
- $logger->log_info(__METHOD__,'End - job purge complete:' .$jobs_purged);
837
  return $jobs_purged;
838
  }
839
 
@@ -846,8 +847,8 @@ class WPBackItUp_Job_v2 {
846
  * @return bool|WPBackItUp_Job
847
  */
848
  public static function get_current_job($job_name) {
849
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
850
- $logger->log_info(__METHOD__,'Begin - Job Name: ' .$job_name);
851
 
852
  //Get backup on top
853
  $args = array(
@@ -858,10 +859,10 @@ class WPBackItUp_Job_v2 {
858
  'order' => 'ASC',
859
  );
860
  $jobs = get_posts( $args );
861
- $logger->log($jobs);
862
 
863
  if (is_array($jobs) && count($jobs)>0) {
864
- $logger->log_info(__METHOD__,'Job found:' . count($jobs));
865
 
866
  $backup_job = new WPBackItUp_Job_v2($jobs[0]);
867
  if (self::QUEUED==$backup_job->job_status){
@@ -870,8 +871,8 @@ class WPBackItUp_Job_v2 {
870
  return $backup_job;
871
  }
872
 
873
- $logger->log_info(__METHOD__,'No jobs found.');
874
- $logger->log_info(__METHOD__,'End');
875
  return false;
876
  }
877
 
@@ -883,19 +884,19 @@ class WPBackItUp_Job_v2 {
883
  * @return bool|WPBackItUp_Job
884
  */
885
  public static function get_job_by_id($id) {
886
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
887
- $logger->log_info(__METHOD__,'Begin');
888
 
889
  $job = get_post( $id, 'OBJECT');
890
- $logger->log($job);
891
 
892
  if (null!=$job) {
893
- $logger->log_info(__METHOD__,'Job found:' .$id);
894
  return new WPBackItUp_Job_v2($job);
895
  }
896
 
897
- $logger->log_info(__METHOD__,'No job found with id.' . $id);
898
- $logger->log_info(__METHOD__,'End');
899
  return false;
900
  }
901
 
@@ -911,8 +912,8 @@ class WPBackItUp_Job_v2 {
911
  * @return bool|WPBackItUp_Job
912
  */
913
  public static function queue_job($job_name,$tasks,$job_info=null){
914
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
915
- $logger->log_info(__METHOD__,'Begin - Job:'. $job_name);
916
 
917
  $new_job = array(
918
  'post_title' => self::JOB_TITLE,
@@ -923,7 +924,7 @@ class WPBackItUp_Job_v2 {
923
 
924
  // Insert the post into the database
925
  $job_id = wp_insert_post($new_job );
926
- $logger->log_info(__METHOD__,'Job Created:' .$job_id);
927
 
928
  //Add job info is available
929
  if (null!= $job_info){
@@ -932,12 +933,12 @@ class WPBackItUp_Job_v2 {
932
 
933
  //add the tasks
934
  if ( false === self::create_tasks( $job_id,$tasks ) ) {
935
- $logger->log_info( __METHOD__, 'Job tasks not Created - deleting job:' . $job_id );
936
  wp_delete_post( $job_id, true );
937
  return false;
938
  }
939
 
940
- $logger->log_info(__METHOD__,'End');
941
  return self::get_job_by_id($job_id);
942
  }
943
 
@@ -951,8 +952,8 @@ class WPBackItUp_Job_v2 {
951
  * @return bool
952
  */
953
  private static function create_tasks($job_id, $tasks){
954
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
955
- $logger->log_info(__METHOD__,'Begin');
956
 
957
  //Create the job tasks
958
  $last_updated_time=time();
@@ -967,13 +968,13 @@ class WPBackItUp_Job_v2 {
967
  $task_created = update_post_meta( $job_id, $task_name, $task_data );
968
 
969
  if (false===$task_created){
970
- $logger->log_error( __METHOD__, 'Tasks NOT created');
971
  return false;
972
  }
973
- $logger->log_info( __METHOD__, 'task created:' . $task_created .':'. $task_name);
974
  }
975
 
976
- $logger->log_info(__METHOD__,'End');
977
  return true;
978
 
979
  }
37
  const QUEUED = 'queued';
38
  const RESUME = 'resume';
39
 
40
+ private $log_name;
41
  private $job_id; //post ID
42
  private $instance_id;
43
  private $allocated_task;
57
 
58
  private function __construct($job) {
59
  try {
60
+ $this->log_name = 'debug_jobV2';//default log name
61
 
62
  //Load of the class properties from the post object(see wp_post)
63
  $this->job_id=$job->ID;
79
 
80
  } catch(Exception $e) {
81
  error_log($e); //Log to debug
82
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
83
  }
84
  }
85
 
86
  function __destruct() {
87
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
88
  $this->release_lock();
89
  }
90
 
97
  *
98
  */
99
  public function get_lock ($lock_name){
100
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:'.$lock_name);
101
 
102
  try {
103
  $lock_file_path = WPBACKITUP__PLUGIN_PATH .'/logs';
104
  $this->mutex = new WPBackItUp_Mutex($lock_name,$lock_file_path);
105
  if ($this->mutex->lock(false)) {
106
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Process LOCK acquired');
107
  $this->locked=true;
108
  } else {
109
  //This is not an error, just means another process has it allocated
110
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Process LOCK Failed');
111
  $this->locked=false;
112
  }
113
 
114
  return $this->locked;
115
 
116
  } catch(Exception $e) {
117
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Process Lock error: ' .$e);
118
  $this->locked=false;
119
  return $this->locked;
120
  }
126
  * @return bool
127
  */
128
  public function release_lock (){
129
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
130
 
131
  try{
132
 
135
  $this->mutex = null;
136
  }
137
 
138
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Lock released');
139
  $this->locked=false;
140
  }catch(Exception $e) {
141
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Process UNLOCK error: ' .$e);
142
  }
143
  }
144
 
145
  public function is_job_complete() {
146
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
147
 
148
  $tasks = get_post_meta( $this->job_id);
149
  foreach($tasks as $key=>$value) {
159
  // $task_last_updated = $task[0]['task_last_updated'];
160
 
161
  if (self::QUEUED==$task_status || self::ACTIVE==$task_status){
162
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Active or Queued Task found:' . $key );
163
  return false;
164
  }
165
  }
166
 
167
  //No active or queued tasks were found
168
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - No Active or Queued Tasks found' );
169
  return true;
170
 
171
  }
172
  //What is the next task in the stack
173
  public function get_next_task(){
174
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
175
 
176
  $this->allocated_task=null; //Set the current task to null;
177
 
189
  //Get Task Properties
190
  $task_id = $task[0]['task_id'];
191
  $task_status = $task[0]['task_status'];
192
+ //$task_allocated_id = $task[0]['task_allocated_id'];
193
  $task_last_updated = $task[0]['task_last_updated'];
194
+ //$task_retry_count = $task[0]['task_retry_count'];
195
 
196
  //if next task in stack is queued then its time to get to work
197
  switch ($task_status) {
246
 
247
  }else {
248
 
249
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Job:' . $key . ' is still active' );
250
  //if its been less than 3 minutes then wait
251
  return false;
252
  }
275
  //If no more tasks then job must be done
276
  $this->set_job_status_complete();
277
 
278
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - no tasks to allocate');
279
  return false; //no tasks to allocate now but job should be complete next time
280
  }
281
 
282
  public function peek_current_task(){
283
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
284
 
285
  //$this->allocated_task=null; //Set the current task to null;
286
 
317
  }
318
  }
319
 
320
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - no tasks to allocate');
321
  return false; //nothing active
322
  }
323
 
332
  * @return bool
333
  */
334
  private function allocate_task($job_id, $key,$task_id){
335
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
336
 
337
  //Allocate the task to this process
338
  $process_uid = uniqid();
344
  if ($process_uid==$updated_task_allocated_id) {
345
  $this->allocated_task=$updated_task; // set the jobs allocated task
346
 
347
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task allocated');
348
  return $updated_task;
349
  }else{
350
  $this->allocated_task=null;
351
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task was not allocated');
352
  return false;
353
  }
354
  }
357
  * Set the allocated task status to queued
358
  */
359
  public function set_task_queued(){
360
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
361
 
362
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
363
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
364
 
365
  //Get allocated task Properties
366
  $task_id = $this->allocated_task[0]['task_id'];
367
  $this->update_task_status($this->job_id, $task_id,$task_id,self::QUEUED);
368
 
369
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
370
  }
371
 
372
  /**
375
  * @param $task_id
376
  */
377
  public function set_task_queued_by_id($task_id){
378
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
379
 
380
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
381
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$task_id);
382
 
383
  $this->update_task_status($this->job_id, $task_id,$task_id,self::QUEUED);
384
 
385
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
386
  }
387
 
388
  /**
392
  * @param $status
393
  */
394
  public function set_task_status_by_id($task_id, $status){
395
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
396
 
397
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
398
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,$task_id);
399
 
400
  $this->update_task_status($this->job_id, $task_id,$task_id,$status);
401
 
402
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
403
  }
404
 
405
  /**
406
  * Set the allocated task status to complete
407
  */
408
  public function set_task_complete(){
409
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
410
 
411
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
412
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
413
 
414
  //Get allocated task Properties
415
  $task_id = $this->allocated_task[0]['task_id'];
421
  $this->set_job_status_complete();
422
  }
423
 
424
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
425
  }
426
 
427
 
429
  * Set the allocated task status to error
430
  */
431
  public function set_task_error($error_code){
432
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
433
 
434
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
435
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
436
 
437
  //Get allocated task Properties
438
  $task_id = $this->allocated_task[0]['task_id'];
440
 
441
  $this->set_job_status_error();
442
 
443
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
444
  }
445
 
446
 
447
  private function update_task_status($job_id,$task_name,$task_id, $task_status, $task_allocated_id='', $task_error_code=''){
448
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
449
 
450
  $meta_value = array(
451
  'task_id' => $task_id,
455
  'task_last_updated' => time()
456
  );
457
 
458
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
459
  return update_post_meta( $job_id, $task_name, $meta_value );
460
  }
461
 
462
  // private function update_task_retry_count($job_id,$task_name,$task_id, $task_allocated_id='', $task_error_code=''){
463
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
464
  //
465
  // $meta_value = array(
466
  // 'task_id' => $task_id,
470
  // 'task_last_updated' => time()
471
  // );
472
  //
473
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
474
  // return update_post_meta( $job_id, $task_name, $meta_value );
475
  // }
476
 
477
 
478
  public function update_job_meta($meta_name,$meta_value){
479
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Update job meta:' .$this->job_id .'-'. $meta_name);
480
 
481
  //Encode the array values
482
  if (is_array($meta_value)){
537
  }
538
 
539
  public function get_job_meta($meta_name){
540
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:' .$this->job_id .'-'. $meta_name);
541
 
542
  $job_meta = get_post_meta($this->job_id,$meta_name,true);
543
 
613
  * @return bool
614
  */
615
  private function update_job_status($status) {
616
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
617
 
618
  $job = array(
619
  'ID' => $this->job_id,
624
  $job_id = wp_update_post($job );
625
 
626
  if (0!=$job_id) {
627
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job status set to:' .$job_id .'-' . $status );
628
  return true;
629
  } else{
630
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Backup Job status NOT set.');
631
  return false;
632
  }
633
 
639
  * @return bool
640
  */
641
  private function set_job_start_time() {
642
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
643
 
644
  $this->job_start_time= time();
645
  $job_info = array(
655
  $job_id = wp_update_post($job );
656
 
657
  if (0!=$job_id) {
658
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job start time set');
659
  return true;
660
  } else{
661
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Backup Job start time NOT set.');
662
  return false;
663
  }
664
 
670
  * @return bool
671
  */
672
  private function set_job_end_time() {
673
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
674
 
675
  $this->job_end_time=time();
676
  $job_info = array(
687
  $job_id = wp_update_post($job );
688
 
689
  if (0!=$job_id) {
690
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job end time set');
691
  return true;
692
  } else{
693
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Backup Job end time NOT set.');
694
  return false;
695
  }
696
 
706
  * @return bool
707
  */
708
  public static function is_job_queued($job_name) {
709
+ $job_logname='debug_job';
710
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Check Job Queue:' . $job_name);
711
 
712
  //Get top 1
713
  $args = array(
719
  'suppress_filters' => true
720
  );
721
  $jobs = get_posts( $args );
722
+ WPBackItUp_LoggerV2::log($job_logname,$jobs);
723
 
724
  if (is_array($jobs) && count($jobs)>0) {
725
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Jobs found:' . count($jobs) );
726
  return true;
727
  }
728
 
729
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found:' . $job_name);
730
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
731
  return false;
732
  }
733
 
741
  * @return bool
742
  */
743
  public static function get_completed_jobs($job_name) {
744
+ $job_logname='debug_job';
745
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
746
 
747
  $args = array(
748
  'posts_per_page' => -1,
753
  'suppress_filters' => true
754
  );
755
  $jobs = get_posts( $args );
756
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Jobs found:' . count($jobs));
757
 
758
  if (is_array($jobs) && count($jobs)>0) {
759
  return $jobs;
760
  }
761
 
762
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found:' . $job_name);
763
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
764
  return false;
765
  }
766
 
772
  * @return bool
773
  */
774
  public static function cancel_all_jobs($job_name) {
775
+ $job_logname='debug_job';
776
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Cancel all jobs:'.$job_name);
777
 
778
  while (self::is_job_queued($job_name)){
779
  $job = self::get_current_job($job_name);
780
  if (false!== $job) {
781
  $job->set_job_status_cancelled();
782
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job Cancelled:' . $job->get_job_id());
783
  }
784
  }
785
 
786
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End - All jobs cancelled');
787
  }
788
 
789
  /**
798
  * @internal param int $count
799
  */
800
  public static function purge_completed_jobs($job_name,$dont_purge=10) {
801
+ $job_logname='debug_job';
802
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Purge Jobs.');
803
 
804
  $jobs_purged=0;
805
  $jobs = self::get_completed_jobs($job_name);
814
  }
815
 
816
  $purge_count=$job_count-$dont_purge;
817
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Jobs to be purged:' .$purge_count);
818
  //Leave the last n and purge the remaining
819
  for ($i = $start; $i < $job_count; $i++) {
820
  $job= $jobs[$i];
821
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Delete Job:'.$i .':' .$job->ID .':' .$job->post_name .':' .$job->post_type .":" .$job->post_title .':' .$job->post_date);
822
 
823
  //delete job records
824
  $job_id=$job->post_name;
825
  $db = new WPBackItUp_DataAccess();
826
 
827
  if ($db->delete_job_records($job_id)){
828
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job records purged.');
829
  }else {
830
+ WPBackItUp_LoggerV2::log_error($job_logname,__METHOD__,'Job records NOT purged.');
831
  }
832
 
833
  wp_delete_post( $job->ID, true );
834
  $jobs_purged+=1;
835
  }
836
  }
837
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End - job purge complete:' .$jobs_purged);
838
  return $jobs_purged;
839
  }
840
 
847
  * @return bool|WPBackItUp_Job
848
  */
849
  public static function get_current_job($job_name) {
850
+ $job_logname='debug_job';
851
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Job Name: ' .$job_name);
852
 
853
  //Get backup on top
854
  $args = array(
859
  'order' => 'ASC',
860
  );
861
  $jobs = get_posts( $args );
862
+ WPBackItUp_LoggerV2::log($job_logname,$jobs);
863
 
864
  if (is_array($jobs) && count($jobs)>0) {
865
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job found:' . count($jobs));
866
 
867
  $backup_job = new WPBackItUp_Job_v2($jobs[0]);
868
  if (self::QUEUED==$backup_job->job_status){
871
  return $backup_job;
872
  }
873
 
874
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found.');
875
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
876
  return false;
877
  }
878
 
884
  * @return bool|WPBackItUp_Job
885
  */
886
  public static function get_job_by_id($id) {
887
+ $job_logname='debug_job';
888
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
889
 
890
  $job = get_post( $id, 'OBJECT');
891
+ WPBackItUp_LoggerV2::log($job_logname,$job);
892
 
893
  if (null!=$job) {
894
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job found:' .$id);
895
  return new WPBackItUp_Job_v2($job);
896
  }
897
 
898
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No job found with id.' . $id);
899
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
900
  return false;
901
  }
902
 
912
  * @return bool|WPBackItUp_Job
913
  */
914
  public static function queue_job($job_name,$tasks,$job_info=null){
915
+ $job_logname='debug_job';
916
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Job:'. $job_name);
917
 
918
  $new_job = array(
919
  'post_title' => self::JOB_TITLE,
924
 
925
  // Insert the post into the database
926
  $job_id = wp_insert_post($new_job );
927
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job Created:' .$job_id);
928
 
929
  //Add job info is available
930
  if (null!= $job_info){
933
 
934
  //add the tasks
935
  if ( false === self::create_tasks( $job_id,$tasks ) ) {
936
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job tasks not Created - deleting job:' . $job_id );
937
  wp_delete_post( $job_id, true );
938
  return false;
939
  }
940
 
941
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
942
  return self::get_job_by_id($job_id);
943
  }
944
 
952
  * @return bool
953
  */
954
  private static function create_tasks($job_id, $tasks){
955
+ $job_logname='debug_job';
956
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
957
 
958
  //Create the job tasks
959
  $last_updated_time=time();
968
  $task_created = update_post_meta( $job_id, $task_name, $task_data );
969
 
970
  if (false===$task_created){
971
+ WPBackItUp_LoggerV2::log_error($job_logname,__METHOD__,'Tasks NOT created');
972
  return false;
973
  }
974
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'task created:' . $task_created .':'. $task_name);
975
  }
976
 
977
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
978
  return true;
979
 
980
  }
lib/includes/class-job.php CHANGED
@@ -26,7 +26,7 @@ class WPBackItUp_Job {
26
  const CANCELLED='cancelled';
27
  const QUEUED = 'queued';
28
 
29
- private $logger;
30
  private $job_id;
31
  private $instance_id;
32
  private $allocated_task;
@@ -76,7 +76,7 @@ class WPBackItUp_Job {
76
 
77
  function __construct($job) {
78
  try {
79
- $this->logger = new WPBackItUp_Logger(false,null,'debug_job');
80
 
81
  //Load of the class properties from the post object(see wp_post)
82
  $this->job_id=$job->ID;
@@ -95,11 +95,12 @@ class WPBackItUp_Job {
95
 
96
  } catch(Exception $e) {
97
  error_log($e); //Log to debug
 
98
  }
99
  }
100
 
101
  function __destruct() {
102
- $this->logger->log_info( __METHOD__,'Begin');
103
  if ($this->locked) {
104
  $this->release_lock();
105
  }
@@ -113,24 +114,24 @@ class WPBackItUp_Job {
113
  * @return bool
114
  */
115
  public function get_lock ($lock_file_path){
116
- $this->logger->log_info( __METHOD__,'Begin:'.$lock_file_path);
117
 
118
  $this->$lock_file_path = $lock_file_path;
119
  try {
120
  $this->lockFile = fopen($this->$lock_file_path ,"w"); // open it for WRITING ("w")
121
  if (flock( $this->lockFile, LOCK_EX | LOCK_NB)) {
122
- $this->logger->log_info( __METHOD__,'Process LOCK acquired');
123
  $this->locked=true;
124
  } else {
125
  //This is not an error, just means another process has it allocated
126
- $this->logger->log_info( __METHOD__,'Process LOCK Failed');
127
  $this->locked=false;
128
  }
129
 
130
  return $this->locked;
131
 
132
  } catch(Exception $e) {
133
- $this->logger->log_error( __METHOD__,'Process Lock error: ' .$e);
134
  $this->locked=false;
135
  return $this->locked;
136
  }
@@ -142,19 +143,19 @@ class WPBackItUp_Job {
142
  * @return bool
143
  */
144
  public function release_lock (){
145
- $this->logger->log_info( __METHOD__,'Begin');
146
 
147
  try{
148
  flock($this->lockFile, LOCK_UN); // unlock the file
149
- $this->logger->log_info( __METHOD__,'Lock released');
150
  $this->locked=false;
151
  }catch(Exception $e) {
152
- $this->logger->log_error( __METHOD__,'Process UNLOCK error: ' .$e);
153
  }
154
  }
155
 
156
  public function is_job_complete() {
157
- $this->logger->log_info( __METHOD__, 'Begin' );
158
 
159
  $tasks = get_post_meta( $this->job_id);
160
  foreach($tasks as $key=>$value) {
@@ -170,19 +171,19 @@ class WPBackItUp_Job {
170
  $task_last_updated = $task[0]['task_last_updated'];
171
 
172
  if ('queued'==$task_status || 'active'==$task_status){
173
- $this->logger->log_info( __METHOD__, 'Active or Queued Task found:' . $key );
174
  return false;
175
  }
176
  }
177
 
178
  //No active or queued tasks were found
179
- $this->logger->log_info( __METHOD__, 'End - No Active or Queued Tasks found' );
180
  return true;
181
 
182
  }
183
  //What is the next task in the stack
184
  public function get_next_task(){
185
- $this->logger->log_info(__METHOD__,'Begin');
186
 
187
  $this->allocated_task=null; //Set the current task to null;
188
 
@@ -220,13 +221,16 @@ class WPBackItUp_Job {
220
  if (time()>=$task_last_updated+WPBACKITUP__TASK_TIMEOUT_SECONDS){
221
  $this->update_task_status($this->job_id, $key,$task_id,'error');
222
 
 
 
 
223
  //Update job to error also
224
  $this->set_job_status_error();
225
  return 'error_' . $task_id ;
226
 
227
  }else {
228
 
229
- $this->logger->log_info( __METHOD__, 'Job:' . $key . ' is still active' );
230
  //if its been less than 3 minutes then wait
231
  return false;
232
  }
@@ -246,7 +250,7 @@ class WPBackItUp_Job {
246
  //If no more tasks then job must be done
247
  $this->set_job_status_complete();
248
 
249
- $this->logger->log_info(__METHOD__,'End - no tasks to allocate');
250
  return false; //no tasks to allocate now but job should be complete next time
251
  }
252
 
@@ -260,7 +264,7 @@ class WPBackItUp_Job {
260
  * @return bool
261
  */
262
  private function allocate_task($job_id, $key,$task_id){
263
- $this->logger->log_info(__METHOD__,'Begin');
264
 
265
  //Allocate the task to this process
266
  $process_uid = uniqid();
@@ -272,11 +276,11 @@ class WPBackItUp_Job {
272
  if ($process_uid==$updated_task_allocated_id) {
273
  $this->allocated_task=$updated_task; // set the jobs allocated task
274
 
275
- $this->logger->log_info(__METHOD__,'End - Task allocated');
276
  return $updated_task;
277
  }else{
278
  $this->allocated_task=null;
279
- $this->logger->log_info(__METHOD__,'End - Task was not allocated');
280
  return false;
281
  }
282
  }
@@ -286,26 +290,26 @@ class WPBackItUp_Job {
286
  * Set the allocated task status to queued
287
  */
288
  public function set_task_queued(){
289
- $this->logger->log_info(__METHOD__,'Begin');
290
 
291
- $this->logger->log_info(__METHOD__, 'Task Info:');
292
- $this->logger->log($this->allocated_task);
293
 
294
  //Get allocated task Properties
295
  $task_id = $this->allocated_task[0]['task_id'];
296
  $this->update_task_status($this->job_id, $task_id,$task_id,'queued');
297
 
298
- $this->logger->log_info(__METHOD__,'End');
299
  }
300
 
301
  /**
302
  * Set the allocated task status to complete
303
  */
304
  public function set_task_complete(){
305
- $this->logger->log_info(__METHOD__,'Begin');
306
 
307
- $this->logger->log_info(__METHOD__, 'Task Info:');
308
- $this->logger->log($this->allocated_task);
309
 
310
  //Get allocated task Properties
311
  $task_id = $this->allocated_task[0]['task_id'];
@@ -317,17 +321,17 @@ class WPBackItUp_Job {
317
  $this->set_job_status_complete();
318
  }
319
 
320
- $this->logger->log_info(__METHOD__,'End');
321
  }
322
 
323
  /**
324
  * Set the allocated task status to error
325
  */
326
  public function set_task_error($error_code){
327
- $this->logger->log_info(__METHOD__,'Begin');
328
 
329
- $this->logger->log_info(__METHOD__, 'Task Info:');
330
- $this->logger->log($this->allocated_task);
331
 
332
  //Get allocated task Properties
333
  $task_id = $this->allocated_task[0]['task_id'];
@@ -335,12 +339,12 @@ class WPBackItUp_Job {
335
 
336
  $this->set_job_status_error();
337
 
338
- $this->logger->log_info(__METHOD__,'End');
339
  }
340
 
341
 
342
  private function update_task_status($job_id,$task_name,$task_id, $task_status, $task_allocated_id='', $task_error_code=''){
343
- $this->logger->log_info(__METHOD__,'Begin');
344
 
345
  $meta_value = array(
346
  'task_id' => $task_id,
@@ -350,13 +354,13 @@ class WPBackItUp_Job {
350
  'task_last_updated' => time()
351
  );
352
 
353
- $this->logger->log_info(__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
354
  return update_post_meta( $job_id, $task_name, $meta_value );
355
  }
356
 
357
 
358
  public function update_job_meta($meta_name,$meta_value){
359
- $this->logger->log_info(__METHOD__,'Begin - Update job meta:' .$this->job_id .'-'. $meta_name);
360
 
361
  //Encode the array values
362
  if (is_array($meta_value)){
@@ -417,7 +421,7 @@ class WPBackItUp_Job {
417
  }
418
 
419
  public function get_job_meta($meta_name){
420
- $this->logger->log_info(__METHOD__,'Begin - Update file list:' .$this->job_id .'-'. $meta_name);
421
 
422
  $job_meta = get_post_meta($this->job_id,$meta_name,true);
423
 
@@ -493,7 +497,7 @@ class WPBackItUp_Job {
493
  * @return bool
494
  */
495
  private function update_job_status($status) {
496
- $this->logger->log_info(__METHOD__,'Begin');
497
 
498
  $job = array(
499
  'ID' => $this->job_id,
@@ -504,10 +508,10 @@ class WPBackItUp_Job {
504
  $job_id = wp_update_post($job );
505
 
506
  if (0!=$job_id) {
507
- $this->logger->log_info(__METHOD__,'End - Backup Job status set to:' .$job_id .'-' . $status );
508
  return true;
509
  } else{
510
- $this->logger->log_error(__METHOD__,'End - Backup Job status NOT set.');
511
  return false;
512
  }
513
 
@@ -519,7 +523,7 @@ class WPBackItUp_Job {
519
  * @return bool
520
  */
521
  private function set_job_start_time() {
522
- $this->logger->log_info(__METHOD__,'Begin');
523
 
524
  $this->job_start_time= time();
525
  $job_info = array(
@@ -535,10 +539,10 @@ class WPBackItUp_Job {
535
  $job_id = wp_update_post($job );
536
 
537
  if (0!=$job_id) {
538
- $this->logger->log_info(__METHOD__,'End - Backup Job start time set');
539
  return true;
540
  } else{
541
- $this->logger->log_error(__METHOD__,'End - Backup Job start time NOT set.');
542
  return false;
543
  }
544
 
@@ -550,7 +554,7 @@ class WPBackItUp_Job {
550
  * @return bool
551
  */
552
  private function set_job_end_time() {
553
- $this->logger->log_info(__METHOD__,'Begin');
554
 
555
  $this->job_end_time=time();
556
  $job_info = array(
@@ -567,10 +571,10 @@ class WPBackItUp_Job {
567
  $job_id = wp_update_post($job );
568
 
569
  if (0!=$job_id) {
570
- $this->logger->log_info(__METHOD__,'End - Backup Job end time set');
571
  return true;
572
  } else{
573
- $this->logger->log_error(__METHOD__,'End - Backup Job end time NOT set.');
574
  return false;
575
  }
576
 
@@ -586,8 +590,8 @@ class WPBackItUp_Job {
586
  * @return bool
587
  */
588
  public static function is_job_queued($job_name) {
589
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
590
- $logger->log_info(__METHOD__,'Begin - Check Job Queue:' . $job_name);
591
 
592
  //Get top 1
593
  $args = array(
@@ -599,15 +603,15 @@ class WPBackItUp_Job {
599
  'suppress_filters' => true
600
  );
601
  $jobs = get_posts( $args );
602
- $logger->log($jobs);
603
 
604
  if (is_array($jobs) && count($jobs)>0) {
605
- $logger->log_info(__METHOD__,'Jobs found:' . count($jobs) );
606
  return true;
607
  }
608
 
609
- $logger->log_info(__METHOD__,'No jobs found:' . $job_name);
610
- $logger->log_info(__METHOD__,'End');
611
  return false;
612
  }
613
 
@@ -621,8 +625,8 @@ class WPBackItUp_Job {
621
  * @return bool
622
  */
623
  public static function get_completed_jobs($job_name,$count=25) {
624
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
625
- $logger->log_info(__METHOD__,'Begin');
626
 
627
  $save_last = 10;
628
  $count+=$save_last; //always leave the last n
@@ -638,7 +642,7 @@ class WPBackItUp_Job {
638
  $jobs = get_posts( $args );
639
 
640
  if (is_array($jobs) && count($jobs)>$save_last) {
641
- $logger->log_info(__METHOD__,'Jobs found:' . count($jobs));
642
 
643
  $diff=count($jobs)-$save_last;
644
 
@@ -647,8 +651,8 @@ class WPBackItUp_Job {
647
  return $rtn_val;
648
  }
649
 
650
- $logger->log_info(__METHOD__,'No jobs found:' . $job_name);
651
- $logger->log_info(__METHOD__,'End');
652
  return false;
653
  }
654
 
@@ -658,15 +662,14 @@ class WPBackItUp_Job {
658
  * @return bool
659
  */
660
  public static function cancel_all_jobs() {
661
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
662
- $logger->log_info(__METHOD__,'Begin - Cancel all jobs.');
663
-
664
 
665
  while (self::is_job_queued('backup')){
666
  $backup_job = self::get_job('backup');
667
  if (false!== $backup_job) {
668
  $backup_job->set_job_status_cancelled();
669
- $logger->log_info(__METHOD__,'Backup job Cancelled:' . $backup_job->get_job_id());
670
  }
671
  }
672
 
@@ -674,11 +677,11 @@ class WPBackItUp_Job {
674
  $cleanup_job = self::get_job('cleanup');
675
  if (false!== $cleanup_job) {
676
  $cleanup_job->set_job_status_cancelled();
677
- $logger->log_info(__METHOD__,'Cleanup job Cancelled:' . $cleanup_job->get_job_id());
678
  }
679
  }
680
 
681
- $logger->log_info(__METHOD__,'End - All jobs cancelled');
682
  }
683
 
684
  /**
@@ -690,17 +693,17 @@ class WPBackItUp_Job {
690
  * @return bool
691
  */
692
  public static function purge_old_jobs($job_name,$count=25) {
693
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
694
- $logger->log_info(__METHOD__,'Begin - Purge Jobs.');
695
 
696
  $jobs = self::get_completed_jobs($job_name,$count);
697
  $purge_count=0;
698
  foreach($jobs as $job){
699
- $logger->log_info(__METHOD__,'Delete Job:'.$job->ID .':' .$job->post_type .":" .$job->post_title .':' .$job->post_date);
700
  wp_delete_post( $job->ID, true );
701
  $purge_count+=1;
702
  }
703
- $logger->log_info(__METHOD__,'End - job purge complete');
704
  return $purge_count;
705
  }
706
 
@@ -712,8 +715,8 @@ class WPBackItUp_Job {
712
  * @return bool|WPBackItUp_Job
713
  */
714
  public static function get_job($job_name) {
715
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
716
- $logger->log_info(__METHOD__,'Begin - Job Name: ' .$job_name);
717
 
718
  //Get backup on top
719
  $args = array(
@@ -724,10 +727,10 @@ class WPBackItUp_Job {
724
  'order' => 'ASC',
725
  );
726
  $jobs = get_posts( $args );
727
- $logger->log($jobs);
728
 
729
  if (is_array($jobs) && count($jobs)>0) {
730
- $logger->log_info(__METHOD__,'Job found:' . count($jobs));
731
 
732
  $backup_job = new WPBackItUp_Job($jobs[0]);
733
  if (self::QUEUED==$backup_job->job_status){
@@ -736,8 +739,8 @@ class WPBackItUp_Job {
736
  return $backup_job;
737
  }
738
 
739
- $logger->log_info(__METHOD__,'No jobs found.');
740
- $logger->log_info(__METHOD__,'End');
741
  return false;
742
  }
743
 
@@ -749,19 +752,19 @@ class WPBackItUp_Job {
749
  * @return bool|WPBackItUp_Job
750
  */
751
  public static function get_job_by_id($id) {
752
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
753
- $logger->log_info(__METHOD__,'Begin');
754
 
755
  $job = get_post( $id, 'OBJECT');
756
- $logger->log($job);
757
 
758
  if (null!=$job) {
759
- $logger->log_info(__METHOD__,'Job found:' .$id);
760
  return new WPBackItUp_Job($job);
761
  }
762
 
763
- $logger->log_info(__METHOD__,'No job found with id.' . $id);
764
- $logger->log_info(__METHOD__,'End');
765
  return false;
766
  }
767
 
@@ -773,8 +776,8 @@ class WPBackItUp_Job {
773
  * @return bool|WPBackItUp_Job
774
  */
775
  public static function queue_job($job_name){
776
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
777
- $logger->log_info(__METHOD__,'Begin - Job:'. $job_name);
778
 
779
  $new_job = array(
780
  'post_title' => self::JOB_TITLE,
@@ -785,13 +788,13 @@ class WPBackItUp_Job {
785
 
786
  // Insert the post into the database
787
  $job_id = wp_insert_post($new_job );
788
- $logger->log_info(__METHOD__,'Job Created:' .$job_id);
789
 
790
  switch ($job_name) {
791
  case "restore":
792
  //add the tasks
793
  if ( false === self::create_tasks( $job_id,self::$restore_tasks ) ) {
794
- $logger->log_info( __METHOD__, 'Restore tasks not Created - deleting job:' . $job_id );
795
  wp_delete_post( $job_id, true );
796
  return false;
797
  }
@@ -801,7 +804,7 @@ class WPBackItUp_Job {
801
  case "backup":
802
  //add the tasks
803
  if ( false === self::create_tasks( $job_id,self::$backup_tasks ) ) {
804
- $logger->log_info( __METHOD__, 'Backup tasks not Created - deleting job:' . $job_id );
805
  wp_delete_post( $job_id, true );
806
  return false;
807
  }
@@ -811,7 +814,7 @@ class WPBackItUp_Job {
811
  case "cleanup":
812
  //add the tasks
813
  if ( false === self::create_tasks( $job_id,self::$cleanup_tasks ) ) {
814
- $logger->log_info( __METHOD__, 'Cleanup tasks not Created - deleting job:' . $job_id );
815
  wp_delete_post( $job_id, true );
816
  return false;
817
  }
@@ -820,19 +823,19 @@ class WPBackItUp_Job {
820
  case "cloud_upload":
821
  //add the tasks
822
  if ( false === self::create_tasks( $job_id,self::$cloud_upload_tasks ) ) {
823
- $logger->log_info( __METHOD__, 'Cloud upload tasks not Created - deleting job:' . $job_id );
824
  wp_delete_post( $job_id, true );
825
  return false;
826
  }
827
  break;
828
 
829
  default://Job type not defined
830
- $logger->log_info( __METHOD__, 'Job type not defined - deleting job:' . $job_name );
831
  wp_delete_post( $job_id, true );
832
  return false;
833
  }
834
 
835
- $logger->log_info(__METHOD__,'End');
836
  return self::get_job_by_id($job_id);
837
  }
838
 
@@ -846,8 +849,8 @@ class WPBackItUp_Job {
846
  * @return bool
847
  */
848
  private static function create_tasks($job_id, $tasks){
849
- $logger = new WPBackItUp_Logger(false,null,'debug_job');
850
- $logger->log_info(__METHOD__,'Begin');
851
 
852
  //Create the job tasks
853
  $last_updated_time=time();
@@ -862,13 +865,13 @@ class WPBackItUp_Job {
862
  $task_created = update_post_meta( $job_id, $task_name, $task_data );
863
 
864
  if (false===$task_created){
865
- $logger->log_error( __METHOD__, 'Tasks NOT created');
866
  return false;
867
  }
868
- $logger->log_info( __METHOD__, 'task created:' . $task_created .':'. $task_name);
869
  }
870
 
871
- $logger->log_info(__METHOD__,'End');
872
  return true;
873
 
874
  }
26
  const CANCELLED='cancelled';
27
  const QUEUED = 'queued';
28
 
29
+ private $log_name;
30
  private $job_id;
31
  private $instance_id;
32
  private $allocated_task;
76
 
77
  function __construct($job) {
78
  try {
79
+ $this->log_name = 'debug_job';//default log name
80
 
81
  //Load of the class properties from the post object(see wp_post)
82
  $this->job_id=$job->ID;
95
 
96
  } catch(Exception $e) {
97
  error_log($e); //Log to debug
98
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
99
  }
100
  }
101
 
102
  function __destruct() {
103
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
104
  if ($this->locked) {
105
  $this->release_lock();
106
  }
114
  * @return bool
115
  */
116
  public function get_lock ($lock_file_path){
117
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin:'.$lock_file_path);
118
 
119
  $this->$lock_file_path = $lock_file_path;
120
  try {
121
  $this->lockFile = fopen($this->$lock_file_path ,"w"); // open it for WRITING ("w")
122
  if (flock( $this->lockFile, LOCK_EX | LOCK_NB)) {
123
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Process LOCK acquired');
124
  $this->locked=true;
125
  } else {
126
  //This is not an error, just means another process has it allocated
127
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Process LOCK Failed');
128
  $this->locked=false;
129
  }
130
 
131
  return $this->locked;
132
 
133
  } catch(Exception $e) {
134
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Process Lock error: ' .$e);
135
  $this->locked=false;
136
  return $this->locked;
137
  }
143
  * @return bool
144
  */
145
  public function release_lock (){
146
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
147
 
148
  try{
149
  flock($this->lockFile, LOCK_UN); // unlock the file
150
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Lock released');
151
  $this->locked=false;
152
  }catch(Exception $e) {
153
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Process UNLOCK error: ' .$e);
154
  }
155
  }
156
 
157
  public function is_job_complete() {
158
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
159
 
160
  $tasks = get_post_meta( $this->job_id);
161
  foreach($tasks as $key=>$value) {
171
  $task_last_updated = $task[0]['task_last_updated'];
172
 
173
  if ('queued'==$task_status || 'active'==$task_status){
174
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Active or Queued Task found:' . $key );
175
  return false;
176
  }
177
  }
178
 
179
  //No active or queued tasks were found
180
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - No Active or Queued Tasks found' );
181
  return true;
182
 
183
  }
184
  //What is the next task in the stack
185
  public function get_next_task(){
186
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
187
 
188
  $this->allocated_task=null; //Set the current task to null;
189
 
221
  if (time()>=$task_last_updated+WPBACKITUP__TASK_TIMEOUT_SECONDS){
222
  $this->update_task_status($this->job_id, $key,$task_id,'error');
223
 
224
+ // If timeout error
225
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Job:' . $key . 'Time Out' );
226
+
227
  //Update job to error also
228
  $this->set_job_status_error();
229
  return 'error_' . $task_id ;
230
 
231
  }else {
232
 
233
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Job:' . $key . ' is still active' );
234
  //if its been less than 3 minutes then wait
235
  return false;
236
  }
250
  //If no more tasks then job must be done
251
  $this->set_job_status_complete();
252
 
253
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - no tasks to allocate');
254
  return false; //no tasks to allocate now but job should be complete next time
255
  }
256
 
264
  * @return bool
265
  */
266
  private function allocate_task($job_id, $key,$task_id){
267
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
268
 
269
  //Allocate the task to this process
270
  $process_uid = uniqid();
276
  if ($process_uid==$updated_task_allocated_id) {
277
  $this->allocated_task=$updated_task; // set the jobs allocated task
278
 
279
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task allocated');
280
  return $updated_task;
281
  }else{
282
  $this->allocated_task=null;
283
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task was not allocated');
284
  return false;
285
  }
286
  }
290
  * Set the allocated task status to queued
291
  */
292
  public function set_task_queued(){
293
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
294
 
295
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
296
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
297
 
298
  //Get allocated task Properties
299
  $task_id = $this->allocated_task[0]['task_id'];
300
  $this->update_task_status($this->job_id, $task_id,$task_id,'queued');
301
 
302
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
303
  }
304
 
305
  /**
306
  * Set the allocated task status to complete
307
  */
308
  public function set_task_complete(){
309
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
310
 
311
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
312
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
313
 
314
  //Get allocated task Properties
315
  $task_id = $this->allocated_task[0]['task_id'];
321
  $this->set_job_status_complete();
322
  }
323
 
324
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
325
  }
326
 
327
  /**
328
  * Set the allocated task status to error
329
  */
330
  public function set_task_error($error_code){
331
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
332
 
333
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:');
334
+ WPBackItUp_LoggerV2::log($this->log_name,$this->allocated_task);
335
 
336
  //Get allocated task Properties
337
  $task_id = $this->allocated_task[0]['task_id'];
339
 
340
  $this->set_job_status_error();
341
 
342
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
343
  }
344
 
345
 
346
  private function update_task_status($job_id,$task_name,$task_id, $task_status, $task_allocated_id='', $task_error_code=''){
347
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
348
 
349
  $meta_value = array(
350
  'task_id' => $task_id,
354
  'task_last_updated' => time()
355
  );
356
 
357
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Task Updated:' .$job_id .'-'. $task_name .'-'. $task_status);
358
  return update_post_meta( $job_id, $task_name, $meta_value );
359
  }
360
 
361
 
362
  public function update_job_meta($meta_name,$meta_value){
363
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Update job meta:' .$this->job_id .'-'. $meta_name);
364
 
365
  //Encode the array values
366
  if (is_array($meta_value)){
421
  }
422
 
423
  public function get_job_meta($meta_name){
424
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' .$this->job_id .'-'. $meta_name);
425
 
426
  $job_meta = get_post_meta($this->job_id,$meta_name,true);
427
 
497
  * @return bool
498
  */
499
  private function update_job_status($status) {
500
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
501
 
502
  $job = array(
503
  'ID' => $this->job_id,
508
  $job_id = wp_update_post($job );
509
 
510
  if (0!=$job_id) {
511
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job status set to:' .$job_id .'-' . $status );
512
  return true;
513
  } else{
514
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Backup Job status NOT set.');
515
  return false;
516
  }
517
 
523
  * @return bool
524
  */
525
  private function set_job_start_time() {
526
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
527
 
528
  $this->job_start_time= time();
529
  $job_info = array(
539
  $job_id = wp_update_post($job );
540
 
541
  if (0!=$job_id) {
542
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job start time set');
543
  return true;
544
  } else{
545
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job start time NOT set.');
546
  return false;
547
  }
548
 
554
  * @return bool
555
  */
556
  private function set_job_end_time() {
557
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
558
 
559
  $this->job_end_time=time();
560
  $job_info = array(
571
  $job_id = wp_update_post($job );
572
 
573
  if (0!=$job_id) {
574
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Backup Job end time set');
575
  return true;
576
  } else{
577
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Backup Job end time NOT set.');
578
  return false;
579
  }
580
 
590
  * @return bool
591
  */
592
  public static function is_job_queued($job_name) {
593
+ $job_logname='debug_job';
594
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Check Job Queue:' . $job_name);
595
 
596
  //Get top 1
597
  $args = array(
603
  'suppress_filters' => true
604
  );
605
  $jobs = get_posts( $args );
606
+ WPBackItUp_LoggerV2::log($job_logname,$jobs);
607
 
608
  if (is_array($jobs) && count($jobs)>0) {
609
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Jobs found:' . count($jobs) );
610
  return true;
611
  }
612
 
613
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found:' . $job_name);
614
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
615
  return false;
616
  }
617
 
625
  * @return bool
626
  */
627
  public static function get_completed_jobs($job_name,$count=25) {
628
+ $job_logname='debug_job';
629
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
630
 
631
  $save_last = 10;
632
  $count+=$save_last; //always leave the last n
642
  $jobs = get_posts( $args );
643
 
644
  if (is_array($jobs) && count($jobs)>$save_last) {
645
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Jobs found:' . count($jobs));
646
 
647
  $diff=count($jobs)-$save_last;
648
 
651
  return $rtn_val;
652
  }
653
 
654
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found:' . $job_name);
655
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
656
  return false;
657
  }
658
 
662
  * @return bool
663
  */
664
  public static function cancel_all_jobs() {
665
+ $job_logname='debug_job';
666
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Cancel all jobs.');
 
667
 
668
  while (self::is_job_queued('backup')){
669
  $backup_job = self::get_job('backup');
670
  if (false!== $backup_job) {
671
  $backup_job->set_job_status_cancelled();
672
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Backup job Cancelled:' . $backup_job->get_job_id());
673
  }
674
  }
675
 
677
  $cleanup_job = self::get_job('cleanup');
678
  if (false!== $cleanup_job) {
679
  $cleanup_job->set_job_status_cancelled();
680
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Cleanup job Cancelled:' . $cleanup_job->get_job_id());
681
  }
682
  }
683
 
684
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End - All jobs cancelled');
685
  }
686
 
687
  /**
693
  * @return bool
694
  */
695
  public static function purge_old_jobs($job_name,$count=25) {
696
+ $job_logname='debug_job';
697
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Purge Jobs.');
698
 
699
  $jobs = self::get_completed_jobs($job_name,$count);
700
  $purge_count=0;
701
  foreach($jobs as $job){
702
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Delete Job:'.$job->ID .':' .$job->post_type .":" .$job->post_title .':' .$job->post_date);
703
  wp_delete_post( $job->ID, true );
704
  $purge_count+=1;
705
  }
706
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End - job purge complete');
707
  return $purge_count;
708
  }
709
 
715
  * @return bool|WPBackItUp_Job
716
  */
717
  public static function get_job($job_name) {
718
+ $job_logname='debug_job';
719
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Job Name: ' .$job_name);
720
 
721
  //Get backup on top
722
  $args = array(
727
  'order' => 'ASC',
728
  );
729
  $jobs = get_posts( $args );
730
+ WPBackItUp_LoggerV2::log($job_logname,$jobs);
731
 
732
  if (is_array($jobs) && count($jobs)>0) {
733
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job found:' . count($jobs));
734
 
735
  $backup_job = new WPBackItUp_Job($jobs[0]);
736
  if (self::QUEUED==$backup_job->job_status){
739
  return $backup_job;
740
  }
741
 
742
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No jobs found.');
743
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
744
  return false;
745
  }
746
 
752
  * @return bool|WPBackItUp_Job
753
  */
754
  public static function get_job_by_id($id) {
755
+ $job_logname='debug_job';
756
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
757
 
758
  $job = get_post( $id, 'OBJECT');
759
+ WPBackItUp_LoggerV2::log($job_logname,$job);
760
 
761
  if (null!=$job) {
762
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job found:' .$id);
763
  return new WPBackItUp_Job($job);
764
  }
765
 
766
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'No job found with id.' . $id);
767
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
768
  return false;
769
  }
770
 
776
  * @return bool|WPBackItUp_Job
777
  */
778
  public static function queue_job($job_name){
779
+ $job_logname='debug_job';
780
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin - Job:'. $job_name);
781
 
782
  $new_job = array(
783
  'post_title' => self::JOB_TITLE,
788
 
789
  // Insert the post into the database
790
  $job_id = wp_insert_post($new_job );
791
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job Created:' .$job_id);
792
 
793
  switch ($job_name) {
794
  case "restore":
795
  //add the tasks
796
  if ( false === self::create_tasks( $job_id,self::$restore_tasks ) ) {
797
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Restore tasks not Created - deleting job:' . $job_id );
798
  wp_delete_post( $job_id, true );
799
  return false;
800
  }
804
  case "backup":
805
  //add the tasks
806
  if ( false === self::create_tasks( $job_id,self::$backup_tasks ) ) {
807
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Backup tasks not Created - deleting job:' . $job_id );
808
  wp_delete_post( $job_id, true );
809
  return false;
810
  }
814
  case "cleanup":
815
  //add the tasks
816
  if ( false === self::create_tasks( $job_id,self::$cleanup_tasks ) ) {
817
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Cleanup tasks not Created - deleting job:' . $job_id );
818
  wp_delete_post( $job_id, true );
819
  return false;
820
  }
823
  case "cloud_upload":
824
  //add the tasks
825
  if ( false === self::create_tasks( $job_id,self::$cloud_upload_tasks ) ) {
826
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Cloud upload tasks not Created - deleting job:' . $job_id );
827
  wp_delete_post( $job_id, true );
828
  return false;
829
  }
830
  break;
831
 
832
  default://Job type not defined
833
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Job type not defined - deleting job:' . $job_name );
834
  wp_delete_post( $job_id, true );
835
  return false;
836
  }
837
 
838
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
839
  return self::get_job_by_id($job_id);
840
  }
841
 
849
  * @return bool
850
  */
851
  private static function create_tasks($job_id, $tasks){
852
+ $job_logname='debug_job';
853
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'Begin');
854
 
855
  //Create the job tasks
856
  $last_updated_time=time();
865
  $task_created = update_post_meta( $job_id, $task_name, $task_data );
866
 
867
  if (false===$task_created){
868
+ WPBackItUp_LoggerV2::log_error($job_logname,__METHOD__,'Tasks NOT created');
869
  return false;
870
  }
871
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'task created:' . $task_created .':'. $task_name);
872
  }
873
 
874
+ WPBackItUp_LoggerV2::log_info($job_logname,__METHOD__,'End');
875
  return true;
876
 
877
  }
lib/includes/class-logger.php CHANGED
@@ -14,8 +14,8 @@ class WPBackItUp_Logger {
14
  private $dfh;
15
  private $logging;
16
 
17
- public $logFileName;
18
- public $logFilePath;
19
 
20
  public function __construct($delete_log, $path=null, $file_name=null, $debugOverride=false) {
21
  global $WPBackitup;
@@ -34,8 +34,12 @@ class WPBackItUp_Logger {
34
  $file_name='debug';
35
  }
36
 
 
 
 
 
37
 
38
- $this->logFileName=$file_name .'.log';
39
  $this->logFilePath= $path .'/'. $this->logFileName;
40
 
41
  try {
@@ -52,15 +56,15 @@ class WPBackItUp_Logger {
52
  }
53
  } catch(Exception $e) {
54
  //Dont do anything
55
- print $e;
56
  }
57
  }
58
 
59
  function __destruct() {
60
- $this->close_file();
61
  }
62
 
63
- public function close_file() {
64
  try {
65
  if (!is_null($this->dfh) && is_resource($this->dfh)){
66
  fwrite($this->dfh, "** Close LOG File ** ". PHP_EOL);
@@ -236,4 +240,20 @@ class WPBackItUp_Logger {
236
  //print $e;
237
  }
238
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
14
  private $dfh;
15
  private $logging;
16
 
17
+ private $logFileName;
18
+ private $logFilePath;
19
 
20
  public function __construct($delete_log, $path=null, $file_name=null, $debugOverride=false) {
21
  global $WPBackitup;
34
  $file_name='debug';
35
  }
36
 
37
+ //check for log extension
38
+ if (strpos($file_name,'.log')===false){
39
+ $file_name .= '.log';
40
+ }
41
 
42
+ $this->logFileName = $file_name;
43
  $this->logFilePath= $path .'/'. $this->logFileName;
44
 
45
  try {
56
  }
57
  } catch(Exception $e) {
58
  //Dont do anything
59
+ error_log($e);
60
  }
61
  }
62
 
63
  function __destruct() {
64
+ $this->close();
65
  }
66
 
67
+ public function close() {
68
  try {
69
  if (!is_null($this->dfh) && is_resource($this->dfh)){
70
  fwrite($this->dfh, "** Close LOG File ** ". PHP_EOL);
240
  //print $e;
241
  }
242
  }
243
+
244
+ /**
245
+ * Get Log File Name
246
+ * @return string
247
+ */
248
+ public function getLogFileName() {
249
+ return $this->logFileName;
250
+ }
251
+
252
+ /**
253
+ * Get Log File Path
254
+ * @return string
255
+ */
256
+ public function getLogFilePath() {
257
+ return $this->logFilePath;
258
+ }
259
  }
lib/includes/class-loggerV2.php ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if (!defined ('ABSPATH')) die('No direct access allowed (logger)');
2
+
3
+ /**
4
+ * WP BackItUp - Logger System Class V2
5
+ *
6
+ * @package WP BackItUp
7
+ * @author Chris Simmons <chris.simmons@wpbackitup.com>
8
+ * @link http://www.wpbackitup.com
9
+ *
10
+ */
11
+
12
+ class WPBackItUp_LoggerV2 {
13
+
14
+ private static $logger;
15
+
16
+ /**
17
+ * Write messages to the log
18
+ *
19
+ * @param $log_name Log Name
20
+ * @param $message Log Message (Array or object) *
21
+ */
22
+ public static function log($log_name,$message) {
23
+ try {
24
+
25
+ $logger = self::getLogger($log_name);
26
+ $logger->log("V2 ".var_export($message,true));
27
+
28
+ }catch(Exception $e) {
29
+ error_log( $e );
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Write informational messages to the log
35
+ *
36
+ * @param $log_name Log Name
37
+ * @param $function Name of calling function(__METHOD__)
38
+ * @param $message Log Message (Array or object)
39
+ * @param null $additional_message (string)
40
+ */
41
+ public static function log_info($log_name, $function, $message, $additional_message = null ) {
42
+
43
+ try {
44
+
45
+ $logger = self::getLogger($log_name);
46
+ $logger->log_info( "V2 ".$function, $message, $additional_message );
47
+
48
+ }catch(Exception $e) {
49
+ error_log( $e );
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Write error messages to the log
55
+ *
56
+ * @param $log_name Log Name
57
+ * @param $function Name of calling function(__METHOD__)
58
+ * @param $message Log Message (Array or object)
59
+ * @param null $additional_message (string)
60
+ */
61
+ public static function log_error($log_name, $function,$message,$additional_message=null) {
62
+
63
+ try {
64
+ $logger = self::getLogger($log_name);
65
+ $logger->log_error( "V2 ".$function, $message, $additional_message );
66
+ }catch(Exception $e) {
67
+ error_log( $e );
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Write warning messages to the log
73
+ *
74
+ * @param $log_name Log Name
75
+ * @param $function Name of calling function(__METHOD__)
76
+ * @param $message Log Message (Array or object)
77
+ * @param null $additional_message (string)
78
+ */
79
+ public static function log_warning($log_name, $function,$message,$additional_message=null) {
80
+
81
+ try {
82
+
83
+ $logger = self::getLogger($log_name);
84
+ $logger->log_warning( "V2 ".$function, $message, $additional_message );
85
+
86
+ } catch(Exception $e) {
87
+ error_log( $e );
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Write system information to the log
93
+ *
94
+ * @param $log_name Log Name
95
+ */
96
+ public static function log_sysinfo($log_name) {
97
+ try {
98
+
99
+ $logger = self::getLogger($log_name);
100
+ $logger->log_sysinfo();
101
+
102
+ }catch(Exception $e) {
103
+ error_log( $e );
104
+ }
105
+ }
106
+
107
+
108
+ /**
109
+ * Get Logger instance
110
+ *
111
+ * @param $log_name
112
+ *
113
+ * @return mixed
114
+ */
115
+ private static function getLogger($log_name) {
116
+ try{
117
+
118
+ if (! isset( self::$logger[$log_name])) {
119
+ self::$logger[$log_name] = new WPBackItUp_Logger( false, null, $log_name );
120
+ }
121
+
122
+ return self::$logger[$log_name];
123
+
124
+ }catch(Exception $e) {
125
+ error_log( $e );
126
+ }
127
+ }
128
+
129
+ /** PUBLIC METHODS **/
130
+
131
+ /**
132
+ * close Log file name
133
+ *
134
+ * @param $log_name
135
+ *
136
+ * @return mixed
137
+ */
138
+ public static function close($log_name) {
139
+ try{
140
+
141
+ $logger = self::getLogger($log_name);
142
+ $logger->close();
143
+ self::$logger[$log_name] = null;
144
+ unset(self::$logger[$log_name]);
145
+
146
+ }catch(Exception $e) {
147
+ error_log( $e );
148
+ }
149
+ }
150
+
151
+
152
+ /**
153
+ * Get Log file name
154
+ *
155
+ * @param $log_name
156
+ *
157
+ * @return mixed
158
+ */
159
+ public static function getLogFileName($log_name) {
160
+ try{
161
+
162
+ $logger = self::getLogger($log_name);
163
+ return $logger->getLogFileName();
164
+
165
+ }catch(Exception $e) {
166
+ error_log( $e );
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Get Logger instance
172
+ *
173
+ * @param $log_name
174
+ *
175
+ * @return mixed
176
+ */
177
+ public static function getLogFilePath($log_name) {
178
+ try{
179
+
180
+ $logger = self::getLogger($log_name);
181
+ return $logger->getLogFilePath();
182
+
183
+ }catch(Exception $e) {
184
+ error_log( $e );
185
+ }
186
+ }
187
+ }
lib/includes/class-mutex.php CHANGED
@@ -1,11 +1,15 @@
1
  <?php
2
 
3
  class WPBackItUp_Mutex {
4
- var $writeablePath = '';
5
- var $lockName = '';
6
- var $fileHandle = null;
 
 
7
 
8
  public function __construct($lockName, $writeablePath = null){
 
 
9
  $this->lockName = preg_replace('/[^a-zA-Z0-9]/', '', $lockName);
10
  if($writeablePath == null){
11
  $this->writeablePath = $this->findWriteablePath();
@@ -35,16 +39,18 @@ class WPBackItUp_Mutex {
35
  }
36
 
37
  private function attemptLock(){
 
38
  if (PHP_OS == 'WINNT'){
39
  $lockFilePath = $this->getLockFilePath();
40
  if(file_exists($lockFilePath)){
41
  $unlinked = @unlink($lockFilePath);
42
- if(!$unlinked) return false;
43
-
44
  }
45
  }
46
 
47
  $fileHandle = $this->getFileHandle();
 
 
48
  if(!$fileHandle){
49
  return false;
50
  } else {
1
  <?php
2
 
3
  class WPBackItUp_Mutex {
4
+
5
+ private $log_name;
6
+ private $writeablePath = '';
7
+ private $lockName = '';
8
+ private $fileHandle = null;
9
 
10
  public function __construct($lockName, $writeablePath = null){
11
+ $this->log_name = 'debug_mutex';
12
+
13
  $this->lockName = preg_replace('/[^a-zA-Z0-9]/', '', $lockName);
14
  if($writeablePath == null){
15
  $this->writeablePath = $this->findWriteablePath();
39
  }
40
 
41
  private function attemptLock(){
42
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
43
  if (PHP_OS == 'WINNT'){
44
  $lockFilePath = $this->getLockFilePath();
45
  if(file_exists($lockFilePath)){
46
  $unlinked = @unlink($lockFilePath);
47
+ if(!$unlinked) return false; //locked
 
48
  }
49
  }
50
 
51
  $fileHandle = $this->getFileHandle();
52
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'File Handle:' .var_export($fileHandle,true));
53
+
54
  if(!$fileHandle){
55
  return false;
56
  } else {
lib/includes/class-recursiveFilter_Iterator.php DELETED
@@ -1,34 +0,0 @@
1
- <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
-
3
- /**
4
- * WP BackItUp - Recursive iterator Class
5
- *
6
- * @package WP BackItUp
7
- * @author Chris Simmons <chris.simmons@wpbackitup.com>
8
- * @link http://www.wpbackitup.com
9
- *
10
- */
11
-
12
-
13
- class WPBackItUp_RecursiveFilter_Iterator extends RecursiveFilterIterator {
14
-
15
- private $filters=array();
16
- private $logger;
17
-
18
- //Set the ignore list
19
- function set_filter ($ignore) {
20
- $this->filters = $ignore;
21
- }
22
-
23
- public function accept() {
24
- $logger = new WPBackItUp_Logger(false);
25
- $accept = !in_array(
26
- $this->current()->getFilename(),
27
- $this->filters,
28
- true);
29
-
30
- $logger->log('(WPBackItUp_RecursiveFilter_Iterator) accept:' . $this->current()->getFilename() . ":" .$accept);
31
- return $accept;
32
- }
33
-
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/includes/class-restore.php CHANGED
@@ -11,7 +11,7 @@
11
 
12
  class WPBackItUp_Restore {
13
 
14
- private $logger;
15
 
16
  //Public Properties
17
  private $backup_id;
@@ -26,11 +26,20 @@ class WPBackItUp_Restore {
26
  const OTHERPATH = 'wp-content-other';
27
  const UPLOADPATH = 'wp-content-uploads';
28
 
29
- function __construct($logger, $backup_name, $backup_id) {
30
  //global $WPBackitup;
31
 
32
  try {
33
- $this->logger = $logger;
 
 
 
 
 
 
 
 
 
34
 
35
  $this->backup_name=$backup_name;
36
  $this->backup_folder_path = WPBACKITUP__BACKUP_PATH .'/' .$backup_name;
@@ -42,8 +51,8 @@ class WPBackItUp_Restore {
42
 
43
 
44
  } catch(Exception $e) {
45
- $this->logger->log($e);
46
- print $e;
47
  }
48
  }
49
 
@@ -52,7 +61,7 @@ class WPBackItUp_Restore {
52
  }
53
 
54
  public function delete_restore_folder() {
55
- $this->logger->log_info( __METHOD__, 'Begin delete restore folders.' );
56
 
57
  //get a list of all the folders
58
  $item_list = glob($this->restore_root_folder_path .'/*');
@@ -60,7 +69,7 @@ class WPBackItUp_Restore {
60
  }
61
 
62
  public function delete_staged_folders() {
63
- $this->logger->log_info( __METHOD__, 'Begin delete staged folders.' );
64
 
65
  //get a list of all the staged folders
66
  $item_list = glob(WPBACKITUP__CONTENT_PATH .'/*'.$this->restore_staging_suffix .'*');
@@ -69,36 +78,36 @@ class WPBackItUp_Restore {
69
  }
70
 
71
  private function delete_folders($item_list) {
72
- $this->logger->log_info( __METHOD__, 'Begin' );
73
 
74
- $this->logger->log_info( __METHOD__, 'Folders to be deleted:' );
75
- $this->logger->log($item_list);
76
 
77
- $file_system = new WPBackItUp_FileSystem($this->logger);
78
  foreach($item_list as $item) {
79
  if (is_dir($item)) {
80
  if (! $file_system->recursive_delete( $item )){
81
- $this->logger->log_error( __METHOD__, 'Folder could NOT be deleted:' . $item);
82
  return false;
83
  }
84
  }else{
85
  if (! unlink($item)){
86
- $this->logger->log_error( __METHOD__, 'File could NOT be deleted:' . $item);
87
  return false;
88
  }
89
  }
90
  }
91
 
92
- $this->logger->log_info( __METHOD__, 'End' );
93
  return true;
94
  }
95
 
96
 
97
  //Create an empty restore folder
98
  public function create_restore_root_folder() {
99
- $this->logger->log_info(__METHOD__,'Create restore folder.' . $this->restore_root_folder_path);
100
 
101
- $fileSystem = new WPBackItUp_FileSystem($this->logger);
102
  if( $fileSystem->create_dir($this->restore_root_folder_path)) {
103
  //Secure restore folder
104
  $fileSystem->secure_folder( $this->restore_root_folder_path);
@@ -112,12 +121,12 @@ class WPBackItUp_Restore {
112
 
113
  //Unzip the backup to the restore folder
114
  function unzip_archive_file($backup_set_list){
115
- $this->logger->log_info(__METHOD__,'Begin');
116
 
117
  if (! is_array($backup_set_list) || count($backup_set_list)<=0) return false;
118
 
119
  $backup_file_path = $backup_set_list[0];
120
- $this->logger->log_info(__METHOD__,'Begin - Unzip Backup File:' .$backup_file_path);
121
  try {
122
  $zip = new ZipArchive;
123
  $res = $zip->open($backup_file_path);
@@ -126,18 +135,18 @@ class WPBackItUp_Restore {
126
  $zip->close();
127
  } else {
128
  $zip->close();
129
- $this->logger->log_error(__METHOD__,'Cant unzip backup:'.$backup_file_path);
130
  return false;
131
  }
132
  } else {
133
- $this->logger->log_error(__METHOD__,'Cant open backup archive:'.$backup_file_path);
134
  return false;
135
  }
136
 
137
- $this->logger->log_info(__METHOD__,'Backup file unzipped: ' .$backup_file_path);
138
 
139
  } catch(Exception $e) {
140
- $this->logger->log_error(__METHOD__,'An Unexpected Error has happened: ' .$e);
141
  return false;
142
  }
143
 
@@ -146,70 +155,70 @@ class WPBackItUp_Restore {
146
 
147
  //Validate the restore folder
148
  function validate_restore_folder(){
149
- $this->logger->log_info(__METHOD__,'Begin');
150
 
151
  $restore_folder_root=$this->restore_root_folder_path . '/';
152
- $this->logger->log_info(__METHOD__,'Validate restore folder : ' .$restore_folder_root);
153
 
154
 
155
  //Do we have at least 4 folders - other may sometimes not be there
156
  if ( count( glob( $restore_folder_root.'*', GLOB_ONLYDIR ) ) < 4 ) {
157
- $this->logger->log_error(__METHOD__,'Restore directory INVALID: ' .$restore_folder_root);
158
  return false;
159
  }
160
 
161
 
162
  $site_data_folder = $restore_folder_root .self::SITEDATAPATH;
163
  if(!is_dir($site_data_folder) ){
164
- $this->logger->log_error(__METHOD__,'site-data missing from restore folder:' .$site_data_folder);
165
  return false;
166
  }
167
 
168
  $plugins_folder = $restore_folder_root .self::PLUGINSPATH;
169
  if(!is_dir($plugins_folder) ){
170
- $this->logger->log_error(__METHOD__,'wp-content-plugins missing from restore folder:' .$plugins_folder);
171
  return false;
172
  }
173
 
174
  $themes_folder = $restore_folder_root .self::THEMESPATH;
175
  if(!is_dir($themes_folder) ){
176
- $this->logger->log_error(__METHOD__,'wp-content-themes missing from restore folder:' .$themes_folder);
177
  return false;
178
  }
179
 
180
  //Not an error
181
  $other_folder = $restore_folder_root .self::OTHERPATH;
182
  if(!is_dir($other_folder) ){
183
- $this->logger->log_info(__METHOD__,'wp-content-other missing from restore folder:' .$other_folder);
184
  }
185
 
186
  $uploads_folder = $restore_folder_root .self::UPLOADPATH;
187
  if(!is_dir($uploads_folder) ){
188
- $this->logger->log_error(__METHOD__,'wp-content-uploads missing from restore folder:' .$uploads_folder);
189
  return false;
190
  }
191
 
192
- $this->logger->log_info(__METHOD__,'End - Restoration directory validated: ' .$restore_folder_root);
193
  return true;
194
  }
195
 
196
  //Validate the restore folder
197
  function validate_siteinfo_file(){
198
- $this->logger->log_info(__METHOD__,'Begin');
199
 
200
  $site_info_path = $this->restore_root_folder_path . '/' .self::SITEDATAPATH .'/backupsiteinfo.txt';
201
- $this->logger->log_info(__METHOD__,'Validate Site info file: ' . $site_info_path);
202
  if(! file_exists($site_info_path) || empty($site_info_path)) {
203
- $this->logger->log_error(__METHOD__,'backupsiteinfo.txt missing or empty ' .$site_info_path);
204
  return false;
205
  }
206
 
207
 
208
  //Get file values
209
- $this->logger->log_info(__METHOD__, 'GET Site Info data' );
210
  $import_siteinfo_lines = file( $site_info_path);
211
  if (!is_array($import_siteinfo_lines) || count($import_siteinfo_lines)<3){
212
- $this->logger->log_error(__METHOD__,'Site Data file NOT valid.' );
213
  return false;
214
  } else {
215
  $restore_siteurl = str_replace( "\n", '', trim( $import_siteinfo_lines[0] ) );
@@ -224,8 +233,8 @@ class WPBackItUp_Restore {
224
  'restore_wpbackitup_version'=>$restore_wpbackitup_version,
225
  );
226
 
227
- $this->logger->log_info(__METHOD__,'Site Data:' );
228
- $this->logger->log($site_data);
229
  return $site_data;
230
  }
231
 
@@ -233,19 +242,19 @@ class WPBackItUp_Restore {
233
 
234
  //Validate the manifest
235
  function validate_manifest_file($backup_set_list, &$error_code){
236
- $this->logger->log_info(__METHOD__,'Begin');
237
 
238
  $manifest_file_path = $this->restore_root_folder_path . '/' .self::SITEDATAPATH .'/backupmanifest.txt';
239
- $this->logger->log_info(__METHOD__,'Validate backup manifest: ' . $manifest_file_path);
240
 
241
  if(! file_exists($manifest_file_path) || empty($manifest_file_path)) {
242
- $this->logger->log_info(__METHOD__,'No manifest found.');
243
  return true; //Old backups will not have a manifest - OK
244
  }
245
 
246
  $manifest_data_string = file_get_contents($manifest_file_path);
247
  if (false===$manifest_data_string || empty($manifest_data_string)){
248
- $this->logger->log_error(__METHOD__,'Manifest empty.');
249
  $error_code=1;
250
  return false;
251
  }
@@ -256,7 +265,7 @@ class WPBackItUp_Restore {
256
  {
257
  //does this file exist in the set
258
  if (false===$this->search_array($zip_file, $backup_set_list)){
259
- $this->logger->log_error(__METHOD__,'Zip File Missing:' .$zip_file);
260
  $error_code=2;
261
  return false;
262
  }
@@ -267,13 +276,13 @@ class WPBackItUp_Restore {
267
  {
268
  //does this file exist in the manifest
269
  if (false===$this->search_array(basename($zip_file), $manifest_data_array)){
270
- $this->logger->log_error(__METHOD__,'Zip File Not in manifest:' .$zip_file);
271
  $error_code=3;
272
  return false;
273
  }
274
  }
275
 
276
- $this->logger->log_info(__METHOD__,'End' );
277
  return true;
278
 
279
  }
@@ -292,67 +301,67 @@ class WPBackItUp_Restore {
292
 
293
  //Make sure there IS a backup to restore
294
  function validate_SQL_exists(){
295
- $this->logger->log_info(__METHOD__,'Begin');
296
 
297
  $backup_sql_file = $this->restore_root_folder_path . '/' .self::SITEDATAPATH . '/' . WPBACKITUP__SQL_DBBACKUP_FILENAME;
298
- $this->logger->log_info(__METHOD__,'Check for database backup file' . $backup_sql_file);
299
  if(!file_exists($backup_sql_file) || empty($backup_sql_file)) {
300
- $this->logger->log_error(__METHOD__,'Database backup file NOT FOUND.');
301
  return false;
302
  }
303
 
304
- $this->logger->log_info(__METHOD__,'Database backup file exists');
305
  return true;
306
  }
307
 
308
  public function export_database(){
309
- $this->logger->log_info(__METHOD__,'Begin');
310
 
311
  $date = date_i18n('Y-m-d-Hi',current_time( 'timestamp' ));
312
  $backup_file = $this->backup_folder_path .'/'. 'db-backup-' . $date .'.cur';
313
 
314
- $sqlUtil = new WPBackItUp_SQL($this->logger);
315
- $this->logger->log_info(__METHOD__,'Begin - Export Database: ' .$backup_file);
316
 
317
  //Try SQLDump First
318
- $this->logger->log_info(__METHOD__,'Export DB with MYSQLDUMP');
319
  if(!$sqlUtil->mysqldump_export($backup_file) ) {
320
 
321
- $this->logger->log_info(__METHOD__,'Export DB with MYSQLDUMP/PATH');
322
  if(!$sqlUtil->mysqldump_export($backup_file,true) ) {
323
 
324
- $this->logger->log_info(__METHOD__,'Export DB with Manual SQL EXPORT');
325
  if(!$sqlUtil->manual_export($backup_file) ) {
326
- $this->logger->log_error(__METHOD__,'SQL EXPORT FAILED');
327
  return false;
328
  }
329
  }
330
  }
331
- $this->logger->log_info(__METHOD__,'Database Exported successfully');
332
 
333
  return true;
334
  }
335
 
336
 
337
  public function rename_folder($from_folder_name,$to_folder_name){
338
- $this->logger->log_info(__METHOD__,'Begin');
339
- $this->logger->log_info(__METHOD__,'Rename from folder name:' . $from_folder_name);
340
- $this->logger->log_info(__METHOD__,'Rename to folder name: '. $to_folder_name);
341
 
342
- $file_system = new WPBackItUp_FileSystem($this->logger);
343
  if ( !$file_system->rename_file($from_folder_name,$to_folder_name)) {
344
- $this->logger->log_error(__METHOD__,'Folder could not be renamed');
345
  return false;
346
  }
347
 
348
- $this->logger->log_info(__METHOD__,'End');
349
 
350
  return true;
351
  }
352
 
353
  // Restore everything but plugins
354
  public function restore_wpcontent(){
355
- $this->logger->log_info(__METHOD__,'Begin');
356
  $error_folders = array();
357
  $error_files = array();
358
 
@@ -368,7 +377,7 @@ class WPBackItUp_Restore {
368
  foreach ( $wpcontent_folder_list as $from_folder_name ) {
369
 
370
  $folder_name_only = basename( $from_folder_name );
371
- $this->logger->log_info(__METHOD__,'Folder name:' . $folder_name_only);
372
 
373
  $to_folder_name = WPBACKITUP__CONTENT_PATH . '/' . str_replace( $this->restore_staging_suffix, '', $folder_name_only );
374
 
@@ -378,7 +387,7 @@ class WPBackItUp_Restore {
378
  //try to rename it 5 times
379
  $archive_folder_name = $archive_folder .'/' .str_replace( $this->restore_staging_suffix, '', $folder_name_only );
380
  for ($i = 1; $i <= 5; $i++) {
381
- $this->logger->log_info(__METHOD__,'Archive attempt:' . $i);
382
  if ( $this->rename_folder($to_folder_name,$archive_folder_name)) {
383
  $archive_success=true;
384
  break; // break out if rename successful
@@ -393,7 +402,7 @@ class WPBackItUp_Restore {
393
  //Rename the staged folder
394
  if ($archive_success) {
395
  for ($i = 1; $i <= 5; $i++) {
396
- $this->logger->log_info(__METHOD__,'Restore attempt:' . $i);
397
  if ( $this->rename_folder( $from_folder_name, $to_folder_name ) ) {
398
  $rename_success=true;
399
  break; // break out if rename successful
@@ -407,25 +416,25 @@ class WPBackItUp_Restore {
407
  //keep going on failure
408
  if (! $rename_success){
409
  array_push($error_folders,$from_folder_name);
410
- $this->logger->log_error(__METHOD__, 'Cant restore folder.' .$from_folder_name );
411
  }
412
  }
413
 
414
 
415
  if ( is_array($error_folders) && count($error_folders)>0){
416
- $this->logger->log_error(__METHOD__,'End - Error Folders:');
417
- $this->logger->log($error_folders);
418
  return $error_folders;
419
  }
420
 
421
- $this->logger->log_info(__METHOD__,'End Restont WPContent Folders- No errors');
422
 
423
  //NOW restore the files
424
  $wpcontent_files_only = array_filter(glob($this->restore_root_folder_path .'/' .self::OTHERPATH .'/*'), 'is_file');
425
  foreach ( $wpcontent_files_only as $from_file_name ) {
426
  $file_name_only = basename( $from_file_name );
427
 
428
- $this->logger->log_info(__METHOD__,'WPContent File name:' . $file_name_only);
429
 
430
  //Archive the old file
431
  $to_file_name = WPBACKITUP__CONTENT_PATH .'/' . $file_name_only;
@@ -435,7 +444,7 @@ class WPBackItUp_Restore {
435
  //try to rename it 5 times
436
  $archive_file_name = $archive_folder .'/' . $file_name_only;
437
  for ($i = 1; $i <= 5; $i++) {
438
- $this->logger->log_info(__METHOD__,'Archive attempt:' . $i);
439
  if ( $this->rename_folder($to_file_name,$archive_file_name)) {
440
  $archive_success=true;
441
  break; // break out if rename successful
@@ -450,7 +459,7 @@ class WPBackItUp_Restore {
450
  if ($archive_success){
451
  //Restore the file
452
  for ($i = 1; $i <= 5; $i++) {
453
- $this->logger->log_info(__METHOD__,'Restore attempt:' . $i);
454
  if ( $this->rename_folder( $from_file_name, $to_file_name ) ) {
455
  $rename_success=true;
456
  break; // break out if rename successful
@@ -465,25 +474,25 @@ class WPBackItUp_Restore {
465
  //keep going on failure but add file to list
466
  if (!$rename_success){
467
  array_push($error_files,$from_folder_name);
468
- $this->logger->log_error(__METHOD__, 'Cant restore file.' .$from_file_name );
469
 
470
  }
471
  }
472
 
473
 
474
  if ( is_array($error_files) && count($error_files)>0) {
475
- $this->logger->log_error(__METHOD__,'End - Error Files:');
476
- $this->logger->log($error_files);
477
  return $error_folders;
478
  } else{
479
- $this->logger->log_info(__METHOD__,'End Restore WPContent - No errors');
480
  return true;
481
  }
482
 
483
  }
484
 
485
  public function restore_plugins(){
486
- $this->logger->log_info(__METHOD__,'Begin');
487
  $error_folders = array();
488
  $error_files = array();
489
 
@@ -506,7 +515,7 @@ class WPBackItUp_Restore {
506
  $folder_name_only = basename( $from_folder_name );
507
 
508
  //Dont restore wp backitup plugin
509
- $this->logger->log_info(__METHOD__,'Plugin Folder name:' . $folder_name_only);
510
  if ( $folder_name_only != WPBACKITUP__PLUGIN_FOLDER) {
511
 
512
  //Archive the old plugin
@@ -517,7 +526,7 @@ class WPBackItUp_Restore {
517
  //try to rename it 5 times
518
  $archive_folder_name = $plugin_archive_folder .'/' . $folder_name_only;
519
  for ($i = 1; $i <= 5; $i++) {
520
- $this->logger->log_info(__METHOD__,'Archive attempt:' . $i);
521
  if ( $this->rename_folder($to_folder_name,$archive_folder_name)) {
522
  $archive_success=true;
523
  break; // break out if rename successful
@@ -532,7 +541,7 @@ class WPBackItUp_Restore {
532
  if ($archive_success){
533
  //Restore the plugin
534
  for ($i = 1; $i <= 5; $i++) {
535
- $this->logger->log_info(__METHOD__,'Restore attempt:' . $i);
536
  if ( $this->rename_folder( $from_folder_name, $to_folder_name ) ) {
537
  $rename_success=true;
538
  break; // break out if rename successful
@@ -547,7 +556,7 @@ class WPBackItUp_Restore {
547
  //keep going on failure but add folder to list
548
  if (!$rename_success){
549
  array_push($error_folders,$from_folder_name);
550
- $this->logger->log_error(__METHOD__, 'Cant restore plugin folder.' .$from_folder_name );
551
  }
552
  }
553
  }
@@ -555,11 +564,11 @@ class WPBackItUp_Restore {
555
 
556
  //If error on folders then return
557
  if (is_array($error_folders) && count($error_folders)>0){
558
- $this->logger->log_error(__METHOD__,'End - Error Folders:');
559
- $this->logger->log($error_folders);
560
  return $error_folders;
561
  }
562
- $this->logger->log_info(__METHOD__, 'End restore plugin folders.');
563
 
564
 
565
  //NOW move the files
@@ -567,7 +576,7 @@ class WPBackItUp_Restore {
567
  foreach ( $plugins_files_only as $from_file_name ) {
568
  $file_name_only = basename( $from_file_name );
569
 
570
- $this->logger->log_info(__METHOD__,'Plugin File name:' . $file_name_only);
571
 
572
  //Archive the old file
573
  $to_file_name = WPBACKITUP__PLUGINS_ROOT_PATH .'/' . $file_name_only;
@@ -577,7 +586,7 @@ class WPBackItUp_Restore {
577
  //try to rename it 5 times
578
  $archive_file_name = $plugin_archive_folder .'/' . $file_name_only;
579
  for ($i = 1; $i <= 5; $i++) {
580
- $this->logger->log_info(__METHOD__,'Archive attempt:' . $i);
581
  if ( $this->rename_folder($to_file_name,$archive_file_name)) {
582
  $archive_success=true;
583
  break; // break out if rename successful
@@ -592,7 +601,7 @@ class WPBackItUp_Restore {
592
  if ($archive_success){
593
  //Restore the plugin
594
  for ($i = 1; $i <= 5; $i++) {
595
- $this->logger->log_info(__METHOD__,'Restore attempt:' . $i);
596
  if ( $this->rename_folder( $from_file_name, $to_file_name ) ) {
597
  $rename_success=true;
598
  break; // break out if rename successful
@@ -607,18 +616,18 @@ class WPBackItUp_Restore {
607
  //keep going on failure but add file to list
608
  if (!$rename_success){
609
  array_push($error_files,$from_folder_name);
610
- $this->logger->log_error(__METHOD__, 'Cant restore plugin file.' .$from_file_name );
611
 
612
  }
613
  }
614
 
615
 
616
  if (is_array($error_files) && count($error_files)>0) {
617
- $this->logger->log_error(__METHOD__,'End - Error Files:');
618
- $this->logger->log($error_files);
619
  return $error_folders;
620
  } else{
621
- $this->logger->log_info(__METHOD__,'End Restore Plugins - No errors');
622
  return true;
623
  }
624
 
@@ -626,7 +635,7 @@ class WPBackItUp_Restore {
626
  }
627
 
628
  public function restore_database(){
629
- $this->logger->log_info(__METHOD__,'Begin - restore database.');
630
 
631
  $backup_sql_file = $this->restore_root_folder_path . '/' .self::SITEDATAPATH . '/' . WPBACKITUP__SQL_DBBACKUP_FILENAME;
632
  return $this->run_sql_from_file($backup_sql_file);
@@ -634,27 +643,27 @@ class WPBackItUp_Restore {
634
  }
635
 
636
  private function run_sql_from_file($sql_file_path){
637
- $this->logger->log_info(__METHOD__,'Begin - SQL: '. $sql_file_path);
638
 
639
 
640
- $dbc = new WPBackItUp_SQL($this->logger);
641
  if(!$dbc->run_sql_exec($sql_file_path)) {
642
  //try with sql path on this time
643
  if(!$dbc->run_sql_exec($sql_file_path,true)) {
644
  //Try manually
645
  if ( ! $dbc->run_sql_manual( $sql_file_path ) ) {
646
- $this->logger->log_error( __METHOD__, 'Database import error.' );
647
  return false;
648
  }
649
  }
650
  }
651
 
652
- $this->logger->log_info(__METHOD__,'End');
653
  return true;
654
  }
655
 
656
  public function activate_plugins(){
657
- $this->logger->log_info(__METHOD__,'Begin');
658
 
659
  $plugins = get_plugins();
660
  foreach ( $plugins as $plugin => $value ) {
@@ -662,208 +671,208 @@ class WPBackItUp_Restore {
662
  if (! is_plugin_active($plugin) ) {
663
  $result = activate_plugin($plugin);
664
  if ( is_wp_error( $result ) ) {
665
- $this->logger->log_error(__METHOD__,'Plugin could NOT be activated:' .$plugin);
666
  } else{
667
- $this->logger->log_info(__METHOD__,'Plugin activated:' .$plugin);
668
  }
669
  }
670
  }
671
 
672
- $this->logger->log_info(__METHOD__,'End');
673
  return true;
674
  }
675
 
676
  public function deactivate_plugins(){
677
- $this->logger->log_info(__METHOD__,'Begin');
678
 
679
  $plugins = get_option('active_plugins');
680
  foreach ($plugins as $plugin) {
681
  //dont deactivate wp-backitup
682
  if ('wp-backitup/wp-backitup.php' != $plugin){
683
  deactivate_plugins($plugin);
684
- $this->logger->log_info(__METHOD__,'Plugin Deactivated:' . $plugin);
685
  }
686
  }
687
 
688
- $this->logger->log_info(__METHOD__,'End');
689
  }
690
 
691
  //get siteurl
692
  public function get_siteurl(){
693
  global $table_prefix;
694
- $this->logger->log_info(__METHOD__,'Begin');
695
 
696
  $sql = "SELECT option_value FROM " .$table_prefix ."options WHERE option_name ='siteurl';";
697
- $dbc = new WPBackItUp_SQL($this->logger);
698
  $siteurl = $dbc->get_sql_scalar($sql);
699
  if (empty($siteurl)) {
700
- $this->logger->log_error(__METHOD__,'Siteurl not found');
701
  return false;
702
  }
703
 
704
- $this->logger->log_info(__METHOD__,'End - Siteurl found:' .$siteurl);
705
  return $siteurl;
706
  }
707
 
708
  //get homeurl
709
  function get_homeurl(){
710
  global $table_prefix;
711
- $this->logger->log_info(__METHOD__,'Begin');
712
 
713
  $sql = "SELECT option_value FROM " .$table_prefix ."options WHERE option_name ='home';";
714
- $dbc = new WPBackItUp_SQL($this->logger);
715
  $homeurl = $dbc->get_sql_scalar($sql);
716
  if (empty($homeurl)) {
717
- $this->logger->log_error(__METHOD__,' Homeurl not found.');
718
  return false;
719
  }
720
- $this->logger->log_info(__METHOD__,'End - homeurl found:' . $homeurl);
721
  return $homeurl;
722
  }
723
 
724
  //get user login
725
  function get_user_login($user_id){
726
  global $table_prefix;
727
- $this->logger->log_info(__METHOD__,'Begin');
728
 
729
  $sql = "SELECT user_login FROM ". $table_prefix ."users WHERE ID=" .$user_id .";";
730
 
731
- $dbc = new WPBackItUp_SQL($this->logger);
732
  $user_login = $dbc->get_sql_scalar($sql);
733
  if (empty($user_login)) {
734
- $this->logger->log_error(__METHOD__,'User_login not found.');
735
  return false;
736
  }
737
 
738
- $this->logger->log_info(__METHOD__,'End - User_login found.');
739
  return $user_login;
740
  }
741
 
742
  //get user pass
743
  function get_user_pass($user_id){
744
  global $table_prefix;
745
- $this->logger->log_info(__METHOD__,'Begin');
746
 
747
  $sql = "SELECT user_pass FROM ". $table_prefix ."users WHERE ID=" .$user_id .";";
748
 
749
- $dbc = new WPBackItUp_SQL($this->logger);
750
  $user_pass = $dbc->get_sql_scalar($sql);
751
  if (empty($user_pass)) {
752
- $this->logger->log_error(__METHOD__,'User_pass not found.');
753
  return false;
754
  }
755
- $this->logger->log_info(__METHOD__,'End - User_pass found.');
756
  return $user_pass;
757
  }
758
 
759
  //get user email
760
  function get_user_email($user_id){
761
  global $table_prefix;
762
- $this->logger->log_info(__METHOD__,'Begin');
763
 
764
  $sql = "SELECT user_email FROM ". $table_prefix ."users WHERE ID=" .$user_id ."";
765
- $dbc = new WPBackItUp_SQL($this->logger);
766
  $user_email = $dbc->get_sql_scalar($sql);
767
  if (empty($user_email)) {
768
- $this->logger->log_error(__METHOD__,'User_email not found.');
769
  return false;
770
  }
771
- $this->logger->log_info(__METHOD__,'End - User_email found.');
772
  return $user_email;
773
  }
774
 
775
 
776
  //Update user credentials
777
  function update_user_credentials($user_id, $user_login, $user_pass_hash, $user_email,$table_prefix){
778
- $this->logger->log_info(__METHOD__,'Begin');
779
 
780
  //prefer SQL update because password hash is safer than plain text update
781
  $sql = "UPDATE ". $table_prefix ."users SET user_login='" .$user_login ."', user_pass='" .$user_pass_hash ."', user_email='" .$user_email ."' WHERE ID='" .$user_id ."'";
782
- $dbc = new WPBackItUp_SQL($this->logger);
783
  if (!$dbc->run_sql_command($sql)){
784
- $this->logger->log_error(__METHOD__,'User Credential database update failed.');
785
  return false;
786
  }
787
- $this->logger->log_info(__METHOD__,'End - User Credential updated in database.');
788
  return true;
789
  }
790
 
791
  //Create user
792
  function create_user_XXX($current_user){
793
- $this->logger->log_info(__METHOD__,'Begin');
794
 
795
  $user_id = wp_insert_user( $current_user ) ;
796
  if( is_wp_error($user_id) ) {
797
- $this->logger->log_error(__METHOD__,'User was not created:' .$user_id->get_error_message());
798
  return false;
799
  }
800
 
801
- $this->logger->log_info(__METHOD__,'End - New user created:' . $user_id);
802
  return true;
803
  }
804
 
805
 
806
  //update credentials
807
  function update_credentials($user_id, $user_full_name, $user_login, $user_pass_hash, $user_email,$table_prefix){
808
- $this->logger->log_info(__METHOD__,'Begin');
809
 
810
  //prefer SQL update because password hash is safer than plain text update
811
 
812
- $dbc = new WPBackItUp_SQL($this->logger);
813
 
814
  //Fetch the user
815
  $sql = "SELECT id from " . $table_prefix ."users where user_login = '" .$user_login ."'";
816
  $query_result = $dbc->get_sql_scalar($sql);
817
- $this->logger->log_info(__METHOD__,'Fetch user by login:' .$query_result);
818
 
819
  if (!empty($query_result)) {
820
- $this->logger->log_info(__METHOD__,'Update User Credentials.');
821
  //update the user
822
  $sql = "UPDATE ". $table_prefix ."users SET user_login='" .$user_login ."', user_pass='" .$user_pass_hash ."', user_email='" .$user_email ."' WHERE ID='" .$user_id ."'";
823
- $dbc = new WPBackItUp_SQL($this->logger);
824
  if (!$dbc->run_sql_command($sql)){
825
- $this->logger->log_error(__METHOD__,'User Credential database update failed.');
826
  return false;
827
  }
828
- $this->logger->log_info(__METHOD__,'End - User Credential updated in database.');
829
  return true;
830
 
831
 
832
  } else {
833
- $this->logger->log_info(__METHOD__,'Create User Credentials.');
834
  //Create the user
835
  $sql = "INSERT INTO ". $table_prefix ."users (user_login, user_nicename, display_name, user_pass, user_email, user_registered, user_status) values('" .$user_login ."','" .$user_full_name ."','" .$user_full_name ."','" .$user_pass_hash ."','" .$user_email ."', NOW() ,'0')";
836
  if (!$dbc->run_sql_command($sql)){
837
- $this->logger->log_error(__METHOD__,'User insert failed.');
838
  return false;
839
  }else{
840
- $this->logger->log_info(__METHOD__,'User inserted in database successfully.');
841
  }
842
 
843
  //Get the new user ID
844
  $sql = "SELECT id from " . $table_prefix ."users where user_login = '" .$user_login ."'";
845
  $user_id = $dbc->get_sql_scalar($sql);
846
- $this->logger->log_info(__METHOD__,'Fetch user by id:' .$user_id);
847
 
848
  $capabilities = $table_prefix . "capabilities";
849
  $sql = "INSERT INTO ". $table_prefix ."usermeta (user_id, meta_key, meta_value) values(" .$user_id .",'" . $capabilities . "', 'a:1:{s:13:\"administrator\";s:1:\"1\";}')";
850
  if (!$dbc->run_sql_command($sql)){
851
- $this->logger->log_error(__METHOD__,'user capabilities insert failed.');
852
  return false;
853
  }else {
854
- $this->logger->log_info(__METHOD__,'User capabilities inserted successfully.');
855
  }
856
 
857
  $user_level = $table_prefix . 'user_level';
858
  $sql = "INSERT INTO ". $table_prefix ."usermeta (user_id, meta_key, meta_value) values(" .$user_id .",'" . $user_level . "', '10')";
859
  if (!$dbc->run_sql_command($sql)){
860
- $this->logger->log_error(__METHOD__,'User level insert failed');
861
  return false;
862
  }else{
863
- $this->logger->log_info(__METHOD__,'User level inserted successfully.');
864
  }
865
 
866
- $this->logger->log_info(__METHOD__,'End - User created in database successfully.');
867
  return true;
868
  }
869
 
@@ -871,62 +880,62 @@ class WPBackItUp_Restore {
871
 
872
  //update the site URL in the restored database
873
  function update_siteurl($table_prefix, $current_siteurl){
874
- $this->logger->log_info(__METHOD__,'Begin');
875
 
876
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$current_siteurl ."' WHERE option_name='siteurl'";
877
- $dbc = new WPBackItUp_SQL($this->logger);
878
  if (!$dbc->run_sql_command($sql)){
879
- $this->logger->log('Error: SiteURL updated failed.');
880
  return false;
881
  }
882
- $this->logger->log_info(__METHOD__,'End - SiteURL updated in database:' .$current_siteurl);
883
  return true;
884
  }
885
 
886
  //Update homeURL
887
  function update_homeurl($table_prefix, $homeurl){
888
- $this->logger->log_info(__METHOD__,'Begin');
889
 
890
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$homeurl ."' WHERE option_name='home'";
891
- $dbc = new WPBackItUp_SQL($this->logger);
892
  if (!$dbc->run_sql_command($sql)){
893
- $this->logger->log(__METHOD__,'HomeURL database update failed..');
894
  return false;
895
  }
896
- $this->logger->log_info(__METHOD__,'End - HomeURL updated in database:'.$homeurl);
897
  return true;
898
  }
899
 
900
  function update_license_key($table_prefix, $license_key){
901
- $this->logger->log_info(__METHOD__,'Begin');
902
 
903
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$license_key ."' WHERE option_name='wp-backitup_license_key'";
904
- $dbc = new WPBackItUp_SQL($this->logger);
905
  if (!$dbc->run_sql_command($sql)){
906
- $this->logger->log(__METHOD__,'License Key database update failed..');
907
  return false;
908
  }
909
- $this->logger->log_info(__METHOD__,'End - License Key updated in database:'.$license_key);
910
  return true;
911
  }
912
 
913
  function update_permalinks(){
914
  global $wp_rewrite;
915
- $this->logger->log_info(__METHOD__,'Begin');
916
 
917
  try {
918
  $wp_rewrite->flush_rules( true );//Update permalinks - hard flush
919
 
920
  }catch(Exception $e) {
921
- $this->logger->log_error(__METHOD__,'Exception: ' .$e);
922
  return false;
923
  }
924
- $this->logger->log_info(__METHOD__,'End - Permalinks updated.');
925
  return true;
926
  }
927
 
928
  public function zip_logs(){
929
- $this->logger->log_info(__METHOD__,'Begin');
930
 
931
  //Zip up all the logs in the log folder
932
  $logs_path = WPBACKITUP__PLUGIN_PATH .'logs';
@@ -934,16 +943,16 @@ class WPBackItUp_Restore {
934
 
935
  //copy/replace WP debug file
936
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
937
- $this->logger->log_info(__METHOD__,"Copy WP Debug: " .$wpdebug_file_path);
938
  if (file_exists($wpdebug_file_path)) {
939
  copy( $wpdebug_file_path, $logs_path .'/wpdebug.log' );
940
  }
941
 
942
- $zip = new WPBackItUp_Zip($this->logger,$zip_file_path);
943
  $zip->zip_files_in_folder($logs_path,$this->backup_id,'*.log');
944
  $zip->close();
945
 
946
- $this->logger->log_info(__METHOD__,'End');
947
 
948
  return $zip_file_path;
949
 
@@ -951,7 +960,7 @@ class WPBackItUp_Restore {
951
 
952
  function send_notification_email($err, $success,$logs=array(),$notification_email) {
953
  global $logger,$status_array,$backup_job;
954
- $logger->log_info(__METHOD__,"Begin");
955
 
956
  $utility = new WPBackItUp_Utility($logger);
957
 
@@ -1008,11 +1017,11 @@ class WPBackItUp_Restore {
1008
  if($notification_email)
1009
  $utility->send_email($notification_email,$subject,$message,$logs);
1010
 
1011
- $logger->log_info(__METHOD__,"End");
1012
  }
1013
 
1014
  function save_process_status($process,$status){
1015
- $this->logger->log_info(__METHOD__,"Begin");
1016
 
1017
  //Write status to JSON file - cant use database because it will e restored
1018
  $local_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',current_time( 'timestamp' )));
@@ -1048,7 +1057,7 @@ class WPBackItUp_Restore {
1048
  $restore_status_string = json_encode($restore_status_array);
1049
  file_put_contents($log_file_path, $restore_status_string);
1050
 
1051
- $this->logger->log_info(__METHOD__,"End");
1052
  }
1053
 
1054
 
11
 
12
  class WPBackItUp_Restore {
13
 
14
+ private $log_name;
15
 
16
  //Public Properties
17
  private $backup_id;
26
  const OTHERPATH = 'wp-content-other';
27
  const UPLOADPATH = 'wp-content-uploads';
28
 
29
+ function __construct($log_name, $backup_name, $backup_id) {
30
  //global $WPBackitup;
31
 
32
  try {
33
+
34
+ $this->log_name = 'debug_restore';//default log name
35
+ if (is_object($log_name)){
36
+ //This is for the old logger
37
+ $this->log_name = $log_name->getLogFileName();
38
+ } else{
39
+ if (is_string($log_name) && isset($log_name)){
40
+ $this->log_name = $log_name;
41
+ }
42
+ }
43
 
44
  $this->backup_name=$backup_name;
45
  $this->backup_folder_path = WPBACKITUP__BACKUP_PATH .'/' .$backup_name;
51
 
52
 
53
  } catch(Exception $e) {
54
+ error_log($e);
55
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
56
  }
57
  }
58
 
61
  }
62
 
63
  public function delete_restore_folder() {
64
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin delete restore folders.' );
65
 
66
  //get a list of all the folders
67
  $item_list = glob($this->restore_root_folder_path .'/*');
69
  }
70
 
71
  public function delete_staged_folders() {
72
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin delete staged folders.' );
73
 
74
  //get a list of all the staged folders
75
  $item_list = glob(WPBACKITUP__CONTENT_PATH .'/*'.$this->restore_staging_suffix .'*');
78
  }
79
 
80
  private function delete_folders($item_list) {
81
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin' );
82
 
83
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folders to be deleted:' );
84
+ WPBackItUp_LoggerV2::log($this->log_name,$item_list);
85
 
86
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
87
  foreach($item_list as $item) {
88
  if (is_dir($item)) {
89
  if (! $file_system->recursive_delete( $item )){
90
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Folder could NOT be deleted:' . $item);
91
  return false;
92
  }
93
  }else{
94
  if (! unlink($item)){
95
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File could NOT be deleted:' . $item);
96
  return false;
97
  }
98
  }
99
  }
100
 
101
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End' );
102
  return true;
103
  }
104
 
105
 
106
  //Create an empty restore folder
107
  public function create_restore_root_folder() {
108
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Create restore folder.' . $this->restore_root_folder_path);
109
 
110
+ $fileSystem = new WPBackItUp_FileSystem($this->log_name);
111
  if( $fileSystem->create_dir($this->restore_root_folder_path)) {
112
  //Secure restore folder
113
  $fileSystem->secure_folder( $this->restore_root_folder_path);
121
 
122
  //Unzip the backup to the restore folder
123
  function unzip_archive_file($backup_set_list){
124
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
125
 
126
  if (! is_array($backup_set_list) || count($backup_set_list)<=0) return false;
127
 
128
  $backup_file_path = $backup_set_list[0];
129
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Unzip Backup File:' .$backup_file_path);
130
  try {
131
  $zip = new ZipArchive;
132
  $res = $zip->open($backup_file_path);
135
  $zip->close();
136
  } else {
137
  $zip->close();
138
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant unzip backup:'.$backup_file_path);
139
  return false;
140
  }
141
  } else {
142
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant open backup archive:'.$backup_file_path);
143
  return false;
144
  }
145
 
146
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Backup file unzipped: ' .$backup_file_path);
147
 
148
  } catch(Exception $e) {
149
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'An Unexpected Error has happened: ' .$e);
150
  return false;
151
  }
152
 
155
 
156
  //Validate the restore folder
157
  function validate_restore_folder(){
158
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
159
 
160
  $restore_folder_root=$this->restore_root_folder_path . '/';
161
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Validate restore folder : ' .$restore_folder_root);
162
 
163
 
164
  //Do we have at least 4 folders - other may sometimes not be there
165
  if ( count( glob( $restore_folder_root.'*', GLOB_ONLYDIR ) ) < 4 ) {
166
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Restore directory INVALID: ' .$restore_folder_root);
167
  return false;
168
  }
169
 
170
 
171
  $site_data_folder = $restore_folder_root .self::SITEDATAPATH;
172
  if(!is_dir($site_data_folder) ){
173
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'site-data missing from restore folder:' .$site_data_folder);
174
  return false;
175
  }
176
 
177
  $plugins_folder = $restore_folder_root .self::PLUGINSPATH;
178
  if(!is_dir($plugins_folder) ){
179
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'wp-content-plugins missing from restore folder:' .$plugins_folder);
180
  return false;
181
  }
182
 
183
  $themes_folder = $restore_folder_root .self::THEMESPATH;
184
  if(!is_dir($themes_folder) ){
185
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'wp-content-themes missing from restore folder:' .$themes_folder);
186
  return false;
187
  }
188
 
189
  //Not an error
190
  $other_folder = $restore_folder_root .self::OTHERPATH;
191
  if(!is_dir($other_folder) ){
192
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'wp-content-other missing from restore folder:' .$other_folder);
193
  }
194
 
195
  $uploads_folder = $restore_folder_root .self::UPLOADPATH;
196
  if(!is_dir($uploads_folder) ){
197
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'wp-content-uploads missing from restore folder:' .$uploads_folder);
198
  return false;
199
  }
200
 
201
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Restoration directory validated: ' .$restore_folder_root);
202
  return true;
203
  }
204
 
205
  //Validate the restore folder
206
  function validate_siteinfo_file(){
207
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
208
 
209
  $site_info_path = $this->restore_root_folder_path . '/' .self::SITEDATAPATH .'/backupsiteinfo.txt';
210
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Validate Site info file: ' . $site_info_path);
211
  if(! file_exists($site_info_path) || empty($site_info_path)) {
212
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'backupsiteinfo.txt missing or empty ' .$site_info_path);
213
  return false;
214
  }
215
 
216
 
217
  //Get file values
218
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'GET Site Info data' );
219
  $import_siteinfo_lines = file( $site_info_path);
220
  if (!is_array($import_siteinfo_lines) || count($import_siteinfo_lines)<3){
221
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Site Data file NOT valid.' );
222
  return false;
223
  } else {
224
  $restore_siteurl = str_replace( "\n", '', trim( $import_siteinfo_lines[0] ) );
233
  'restore_wpbackitup_version'=>$restore_wpbackitup_version,
234
  );
235
 
236
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Site Data:' );
237
+ WPBackItUp_LoggerV2::log($this->log_name,$site_data);
238
  return $site_data;
239
  }
240
 
242
 
243
  //Validate the manifest
244
  function validate_manifest_file($backup_set_list, &$error_code){
245
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
246
 
247
  $manifest_file_path = $this->restore_root_folder_path . '/' .self::SITEDATAPATH .'/backupmanifest.txt';
248
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Validate backup manifest: ' . $manifest_file_path);
249
 
250
  if(! file_exists($manifest_file_path) || empty($manifest_file_path)) {
251
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'No manifest found.');
252
  return true; //Old backups will not have a manifest - OK
253
  }
254
 
255
  $manifest_data_string = file_get_contents($manifest_file_path);
256
  if (false===$manifest_data_string || empty($manifest_data_string)){
257
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Manifest empty.');
258
  $error_code=1;
259
  return false;
260
  }
265
  {
266
  //does this file exist in the set
267
  if (false===$this->search_array($zip_file, $backup_set_list)){
268
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip File Missing:' .$zip_file);
269
  $error_code=2;
270
  return false;
271
  }
276
  {
277
  //does this file exist in the manifest
278
  if (false===$this->search_array(basename($zip_file), $manifest_data_array)){
279
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Zip File Not in manifest:' .$zip_file);
280
  $error_code=3;
281
  return false;
282
  }
283
  }
284
 
285
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End' );
286
  return true;
287
 
288
  }
301
 
302
  //Make sure there IS a backup to restore
303
  function validate_SQL_exists(){
304
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
305
 
306
  $backup_sql_file = $this->restore_root_folder_path . '/' .self::SITEDATAPATH . '/' . WPBACKITUP__SQL_DBBACKUP_FILENAME;
307
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Check for database backup file' . $backup_sql_file);
308
  if(!file_exists($backup_sql_file) || empty($backup_sql_file)) {
309
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Database backup file NOT FOUND.');
310
  return false;
311
  }
312
 
313
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Database backup file exists');
314
  return true;
315
  }
316
 
317
  public function export_database(){
318
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
319
 
320
  $date = date_i18n('Y-m-d-Hi',current_time( 'timestamp' ));
321
  $backup_file = $this->backup_folder_path .'/'. 'db-backup-' . $date .'.cur';
322
 
323
+ $sqlUtil = new WPBackItUp_SQL($this->log_name);
324
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - Export Database: ' .$backup_file);
325
 
326
  //Try SQLDump First
327
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with MYSQLDUMP');
328
  if(!$sqlUtil->mysqldump_export($backup_file) ) {
329
 
330
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with MYSQLDUMP/PATH');
331
  if(!$sqlUtil->mysqldump_export($backup_file,true) ) {
332
 
333
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export DB with Manual SQL EXPORT');
334
  if(!$sqlUtil->manual_export($backup_file) ) {
335
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'SQL EXPORT FAILED');
336
  return false;
337
  }
338
  }
339
  }
340
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Database Exported successfully');
341
 
342
  return true;
343
  }
344
 
345
 
346
  public function rename_folder($from_folder_name,$to_folder_name){
347
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
348
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Rename from folder name:' . $from_folder_name);
349
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Rename to folder name: '. $to_folder_name);
350
 
351
+ $file_system = new WPBackItUp_FileSystem($this->log_name);
352
  if ( !$file_system->rename_file($from_folder_name,$to_folder_name)) {
353
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Folder could not be renamed');
354
  return false;
355
  }
356
 
357
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
358
 
359
  return true;
360
  }
361
 
362
  // Restore everything but plugins
363
  public function restore_wpcontent(){
364
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
365
  $error_folders = array();
366
  $error_files = array();
367
 
377
  foreach ( $wpcontent_folder_list as $from_folder_name ) {
378
 
379
  $folder_name_only = basename( $from_folder_name );
380
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Folder name:' . $folder_name_only);
381
 
382
  $to_folder_name = WPBACKITUP__CONTENT_PATH . '/' . str_replace( $this->restore_staging_suffix, '', $folder_name_only );
383
 
387
  //try to rename it 5 times
388
  $archive_folder_name = $archive_folder .'/' .str_replace( $this->restore_staging_suffix, '', $folder_name_only );
389
  for ($i = 1; $i <= 5; $i++) {
390
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Archive attempt:' . $i);
391
  if ( $this->rename_folder($to_folder_name,$archive_folder_name)) {
392
  $archive_success=true;
393
  break; // break out if rename successful
402
  //Rename the staged folder
403
  if ($archive_success) {
404
  for ($i = 1; $i <= 5; $i++) {
405
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Restore attempt:' . $i);
406
  if ( $this->rename_folder( $from_folder_name, $to_folder_name ) ) {
407
  $rename_success=true;
408
  break; // break out if rename successful
416
  //keep going on failure
417
  if (! $rename_success){
418
  array_push($error_folders,$from_folder_name);
419
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant restore folder.' .$from_folder_name );
420
  }
421
  }
422
 
423
 
424
  if ( is_array($error_folders) && count($error_folders)>0){
425
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Error Folders:');
426
+ WPBackItUp_LoggerV2::log($this->log_name,$error_folders);
427
  return $error_folders;
428
  }
429
 
430
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End Restont WPContent Folders- No errors');
431
 
432
  //NOW restore the files
433
  $wpcontent_files_only = array_filter(glob($this->restore_root_folder_path .'/' .self::OTHERPATH .'/*'), 'is_file');
434
  foreach ( $wpcontent_files_only as $from_file_name ) {
435
  $file_name_only = basename( $from_file_name );
436
 
437
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'WPContent File name:' . $file_name_only);
438
 
439
  //Archive the old file
440
  $to_file_name = WPBACKITUP__CONTENT_PATH .'/' . $file_name_only;
444
  //try to rename it 5 times
445
  $archive_file_name = $archive_folder .'/' . $file_name_only;
446
  for ($i = 1; $i <= 5; $i++) {
447
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Archive attempt:' . $i);
448
  if ( $this->rename_folder($to_file_name,$archive_file_name)) {
449
  $archive_success=true;
450
  break; // break out if rename successful
459
  if ($archive_success){
460
  //Restore the file
461
  for ($i = 1; $i <= 5; $i++) {
462
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Restore attempt:' . $i);
463
  if ( $this->rename_folder( $from_file_name, $to_file_name ) ) {
464
  $rename_success=true;
465
  break; // break out if rename successful
474
  //keep going on failure but add file to list
475
  if (!$rename_success){
476
  array_push($error_files,$from_folder_name);
477
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant restore file.' .$from_file_name );
478
 
479
  }
480
  }
481
 
482
 
483
  if ( is_array($error_files) && count($error_files)>0) {
484
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Error Files:');
485
+ WPBackItUp_LoggerV2::log($this->log_name,$error_files);
486
  return $error_folders;
487
  } else{
488
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End Restore WPContent - No errors');
489
  return true;
490
  }
491
 
492
  }
493
 
494
  public function restore_plugins(){
495
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
496
  $error_folders = array();
497
  $error_files = array();
498
 
515
  $folder_name_only = basename( $from_folder_name );
516
 
517
  //Dont restore wp backitup plugin
518
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Plugin Folder name:' . $folder_name_only);
519
  if ( $folder_name_only != WPBACKITUP__PLUGIN_FOLDER) {
520
 
521
  //Archive the old plugin
526
  //try to rename it 5 times
527
  $archive_folder_name = $plugin_archive_folder .'/' . $folder_name_only;
528
  for ($i = 1; $i <= 5; $i++) {
529
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Archive attempt:' . $i);
530
  if ( $this->rename_folder($to_folder_name,$archive_folder_name)) {
531
  $archive_success=true;
532
  break; // break out if rename successful
541
  if ($archive_success){
542
  //Restore the plugin
543
  for ($i = 1; $i <= 5; $i++) {
544
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Restore attempt:' . $i);
545
  if ( $this->rename_folder( $from_folder_name, $to_folder_name ) ) {
546
  $rename_success=true;
547
  break; // break out if rename successful
556
  //keep going on failure but add folder to list
557
  if (!$rename_success){
558
  array_push($error_folders,$from_folder_name);
559
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant restore plugin folder.' .$from_folder_name );
560
  }
561
  }
562
  }
564
 
565
  //If error on folders then return
566
  if (is_array($error_folders) && count($error_folders)>0){
567
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Error Folders:');
568
+ WPBackItUp_LoggerV2::log($this->log_name,$error_folders);
569
  return $error_folders;
570
  }
571
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End restore plugin folders.');
572
 
573
 
574
  //NOW move the files
576
  foreach ( $plugins_files_only as $from_file_name ) {
577
  $file_name_only = basename( $from_file_name );
578
 
579
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Plugin File name:' . $file_name_only);
580
 
581
  //Archive the old file
582
  $to_file_name = WPBACKITUP__PLUGINS_ROOT_PATH .'/' . $file_name_only;
586
  //try to rename it 5 times
587
  $archive_file_name = $plugin_archive_folder .'/' . $file_name_only;
588
  for ($i = 1; $i <= 5; $i++) {
589
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Archive attempt:' . $i);
590
  if ( $this->rename_folder($to_file_name,$archive_file_name)) {
591
  $archive_success=true;
592
  break; // break out if rename successful
601
  if ($archive_success){
602
  //Restore the plugin
603
  for ($i = 1; $i <= 5; $i++) {
604
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Restore attempt:' . $i);
605
  if ( $this->rename_folder( $from_file_name, $to_file_name ) ) {
606
  $rename_success=true;
607
  break; // break out if rename successful
616
  //keep going on failure but add file to list
617
  if (!$rename_success){
618
  array_push($error_files,$from_folder_name);
619
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cant restore plugin file.' .$from_file_name );
620
 
621
  }
622
  }
623
 
624
 
625
  if (is_array($error_files) && count($error_files)>0) {
626
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'End - Error Files:');
627
+ WPBackItUp_LoggerV2::log($this->log_name,$error_files);
628
  return $error_folders;
629
  } else{
630
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End Restore Plugins - No errors');
631
  return true;
632
  }
633
 
635
  }
636
 
637
  public function restore_database(){
638
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - restore database.');
639
 
640
  $backup_sql_file = $this->restore_root_folder_path . '/' .self::SITEDATAPATH . '/' . WPBACKITUP__SQL_DBBACKUP_FILENAME;
641
  return $this->run_sql_from_file($backup_sql_file);
643
  }
644
 
645
  private function run_sql_from_file($sql_file_path){
646
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin - SQL: '. $sql_file_path);
647
 
648
 
649
+ $dbc = new WPBackItUp_SQL($this->log_name);
650
  if(!$dbc->run_sql_exec($sql_file_path)) {
651
  //try with sql path on this time
652
  if(!$dbc->run_sql_exec($sql_file_path,true)) {
653
  //Try manually
654
  if ( ! $dbc->run_sql_manual( $sql_file_path ) ) {
655
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Database import error.' );
656
  return false;
657
  }
658
  }
659
  }
660
 
661
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
662
  return true;
663
  }
664
 
665
  public function activate_plugins(){
666
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
667
 
668
  $plugins = get_plugins();
669
  foreach ( $plugins as $plugin => $value ) {
671
  if (! is_plugin_active($plugin) ) {
672
  $result = activate_plugin($plugin);
673
  if ( is_wp_error( $result ) ) {
674
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Plugin could NOT be activated:' .$plugin);
675
  } else{
676
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Plugin activated:' .$plugin);
677
  }
678
  }
679
  }
680
 
681
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
682
  return true;
683
  }
684
 
685
  public function deactivate_plugins(){
686
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
687
 
688
  $plugins = get_option('active_plugins');
689
  foreach ($plugins as $plugin) {
690
  //dont deactivate wp-backitup
691
  if ('wp-backitup/wp-backitup.php' != $plugin){
692
  deactivate_plugins($plugin);
693
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Plugin Deactivated:' . $plugin);
694
  }
695
  }
696
 
697
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
698
  }
699
 
700
  //get siteurl
701
  public function get_siteurl(){
702
  global $table_prefix;
703
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
704
 
705
  $sql = "SELECT option_value FROM " .$table_prefix ."options WHERE option_name ='siteurl';";
706
+ $dbc = new WPBackItUp_SQL($this->log_name);
707
  $siteurl = $dbc->get_sql_scalar($sql);
708
  if (empty($siteurl)) {
709
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Siteurl not found');
710
  return false;
711
  }
712
 
713
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Siteurl found:' .$siteurl);
714
  return $siteurl;
715
  }
716
 
717
  //get homeurl
718
  function get_homeurl(){
719
  global $table_prefix;
720
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
721
 
722
  $sql = "SELECT option_value FROM " .$table_prefix ."options WHERE option_name ='home';";
723
+ $dbc = new WPBackItUp_SQL($this->log_name);
724
  $homeurl = $dbc->get_sql_scalar($sql);
725
  if (empty($homeurl)) {
726
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Homeurl not found.');
727
  return false;
728
  }
729
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - homeurl found:' . $homeurl);
730
  return $homeurl;
731
  }
732
 
733
  //get user login
734
  function get_user_login($user_id){
735
  global $table_prefix;
736
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
737
 
738
  $sql = "SELECT user_login FROM ". $table_prefix ."users WHERE ID=" .$user_id .";";
739
 
740
+ $dbc = new WPBackItUp_SQL($this->log_name);
741
  $user_login = $dbc->get_sql_scalar($sql);
742
  if (empty($user_login)) {
743
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User_login not found.');
744
  return false;
745
  }
746
 
747
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User_login found.');
748
  return $user_login;
749
  }
750
 
751
  //get user pass
752
  function get_user_pass($user_id){
753
  global $table_prefix;
754
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
755
 
756
  $sql = "SELECT user_pass FROM ". $table_prefix ."users WHERE ID=" .$user_id .";";
757
 
758
+ $dbc = new WPBackItUp_SQL($this->log_name);
759
  $user_pass = $dbc->get_sql_scalar($sql);
760
  if (empty($user_pass)) {
761
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User_pass not found.');
762
  return false;
763
  }
764
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User_pass found.');
765
  return $user_pass;
766
  }
767
 
768
  //get user email
769
  function get_user_email($user_id){
770
  global $table_prefix;
771
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
772
 
773
  $sql = "SELECT user_email FROM ". $table_prefix ."users WHERE ID=" .$user_id ."";
774
+ $dbc = new WPBackItUp_SQL($this->log_name);
775
  $user_email = $dbc->get_sql_scalar($sql);
776
  if (empty($user_email)) {
777
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User_email not found.');
778
  return false;
779
  }
780
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User_email found.');
781
  return $user_email;
782
  }
783
 
784
 
785
  //Update user credentials
786
  function update_user_credentials($user_id, $user_login, $user_pass_hash, $user_email,$table_prefix){
787
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
788
 
789
  //prefer SQL update because password hash is safer than plain text update
790
  $sql = "UPDATE ". $table_prefix ."users SET user_login='" .$user_login ."', user_pass='" .$user_pass_hash ."', user_email='" .$user_email ."' WHERE ID='" .$user_id ."'";
791
+ $dbc = new WPBackItUp_SQL($this->log_name);
792
  if (!$dbc->run_sql_command($sql)){
793
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User Credential database update failed.');
794
  return false;
795
  }
796
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User Credential updated in database.');
797
  return true;
798
  }
799
 
800
  //Create user
801
  function create_user_XXX($current_user){
802
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
803
 
804
  $user_id = wp_insert_user( $current_user ) ;
805
  if( is_wp_error($user_id) ) {
806
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User was not created:' .$user_id->get_error_message());
807
  return false;
808
  }
809
 
810
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - New user created:' . $user_id);
811
  return true;
812
  }
813
 
814
 
815
  //update credentials
816
  function update_credentials($user_id, $user_full_name, $user_login, $user_pass_hash, $user_email,$table_prefix){
817
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
818
 
819
  //prefer SQL update because password hash is safer than plain text update
820
 
821
+ $dbc = new WPBackItUp_SQL($this->log_name);
822
 
823
  //Fetch the user
824
  $sql = "SELECT id from " . $table_prefix ."users where user_login = '" .$user_login ."'";
825
  $query_result = $dbc->get_sql_scalar($sql);
826
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Fetch user by login:' .$query_result);
827
 
828
  if (!empty($query_result)) {
829
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Update User Credentials.');
830
  //update the user
831
  $sql = "UPDATE ". $table_prefix ."users SET user_login='" .$user_login ."', user_pass='" .$user_pass_hash ."', user_email='" .$user_email ."' WHERE ID='" .$user_id ."'";
832
+ $dbc = new WPBackItUp_SQL($this->log_name);
833
  if (!$dbc->run_sql_command($sql)){
834
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User Credential database update failed.');
835
  return false;
836
  }
837
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User Credential updated in database.');
838
  return true;
839
 
840
 
841
  } else {
842
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Create User Credentials.');
843
  //Create the user
844
  $sql = "INSERT INTO ". $table_prefix ."users (user_login, user_nicename, display_name, user_pass, user_email, user_registered, user_status) values('" .$user_login ."','" .$user_full_name ."','" .$user_full_name ."','" .$user_pass_hash ."','" .$user_email ."', NOW() ,'0')";
845
  if (!$dbc->run_sql_command($sql)){
846
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User insert failed.');
847
  return false;
848
  }else{
849
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'User inserted in database successfully.');
850
  }
851
 
852
  //Get the new user ID
853
  $sql = "SELECT id from " . $table_prefix ."users where user_login = '" .$user_login ."'";
854
  $user_id = $dbc->get_sql_scalar($sql);
855
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Fetch user by id:' .$user_id);
856
 
857
  $capabilities = $table_prefix . "capabilities";
858
  $sql = "INSERT INTO ". $table_prefix ."usermeta (user_id, meta_key, meta_value) values(" .$user_id .",'" . $capabilities . "', 'a:1:{s:13:\"administrator\";s:1:\"1\";}')";
859
  if (!$dbc->run_sql_command($sql)){
860
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'user capabilities insert failed.');
861
  return false;
862
  }else {
863
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'User capabilities inserted successfully.');
864
  }
865
 
866
  $user_level = $table_prefix . 'user_level';
867
  $sql = "INSERT INTO ". $table_prefix ."usermeta (user_id, meta_key, meta_value) values(" .$user_id .",'" . $user_level . "', '10')";
868
  if (!$dbc->run_sql_command($sql)){
869
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'User level insert failed');
870
  return false;
871
  }else{
872
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'User level inserted successfully.');
873
  }
874
 
875
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - User created in database successfully.');
876
  return true;
877
  }
878
 
880
 
881
  //update the site URL in the restored database
882
  function update_siteurl($table_prefix, $current_siteurl){
883
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
884
 
885
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$current_siteurl ."' WHERE option_name='siteurl'";
886
+ $dbc = new WPBackItUp_SQL($this->log_name);
887
  if (!$dbc->run_sql_command($sql)){
888
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Error: SiteURL updated failed.');
889
  return false;
890
  }
891
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - SiteURL updated in database:' .$current_siteurl);
892
  return true;
893
  }
894
 
895
  //Update homeURL
896
  function update_homeurl($table_prefix, $homeurl){
897
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
898
 
899
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$homeurl ."' WHERE option_name='home'";
900
+ $dbc = new WPBackItUp_SQL($this->log_name);
901
  if (!$dbc->run_sql_command($sql)){
902
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'HomeURL database update failed..');
903
  return false;
904
  }
905
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - HomeURL updated in database:'.$homeurl);
906
  return true;
907
  }
908
 
909
  function update_license_key($table_prefix, $license_key){
910
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
911
 
912
  $sql = "UPDATE ". $table_prefix ."options SET option_value='" .$license_key ."' WHERE option_name='wp-backitup_license_key'";
913
+ $dbc = new WPBackItUp_SQL($this->log_name);
914
  if (!$dbc->run_sql_command($sql)){
915
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'License Key database update failed..');
916
  return false;
917
  }
918
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - License Key updated in database:'.$license_key);
919
  return true;
920
  }
921
 
922
  function update_permalinks(){
923
  global $wp_rewrite;
924
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
925
 
926
  try {
927
  $wp_rewrite->flush_rules( true );//Update permalinks - hard flush
928
 
929
  }catch(Exception $e) {
930
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
931
  return false;
932
  }
933
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End - Permalinks updated.');
934
  return true;
935
  }
936
 
937
  public function zip_logs(){
938
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
939
 
940
  //Zip up all the logs in the log folder
941
  $logs_path = WPBACKITUP__PLUGIN_PATH .'logs';
943
 
944
  //copy/replace WP debug file
945
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
946
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Copy WP Debug: ' .$wpdebug_file_path);
947
  if (file_exists($wpdebug_file_path)) {
948
  copy( $wpdebug_file_path, $logs_path .'/wpdebug.log' );
949
  }
950
 
951
+ $zip = new WPBackItUp_Zip($this->log_name,$zip_file_path);
952
  $zip->zip_files_in_folder($logs_path,$this->backup_id,'*.log');
953
  $zip->close();
954
 
955
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
956
 
957
  return $zip_file_path;
958
 
960
 
961
  function send_notification_email($err, $success,$logs=array(),$notification_email) {
962
  global $logger,$status_array,$backup_job;
963
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
964
 
965
  $utility = new WPBackItUp_Utility($logger);
966
 
1017
  if($notification_email)
1018
  $utility->send_email($notification_email,$subject,$message,$logs);
1019
 
1020
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
1021
  }
1022
 
1023
  function save_process_status($process,$status){
1024
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
1025
 
1026
  //Write status to JSON file - cant use database because it will e restored
1027
  $local_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',current_time( 'timestamp' )));
1057
  $restore_status_string = json_encode($restore_status_array);
1058
  file_put_contents($log_file_path, $restore_status_string);
1059
 
1060
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
1061
  }
1062
 
1063
 
lib/includes/class-scheduler.php CHANGED
@@ -11,23 +11,27 @@
11
 
12
  class WPBackItUp_Scheduler {
13
 
14
-
15
- private $logger;
16
 
17
  /**
18
  * Constructor
19
  */
20
  function __construct() {
 
21
 
22
- $this->logger = new WPBackItUp_Logger(false,null,'debug_scheduler');
23
 
 
 
 
 
24
  }
25
 
26
  /**
27
  * Destructor
28
  */
29
  function __destruct() {
30
- $this->logger->close_file();
31
  }
32
 
33
 
@@ -38,7 +42,7 @@ class WPBackItUp_Scheduler {
38
  * @return bool
39
  */
40
  public function isTaskScheduled($task){
41
- $this->logger->log('Check schedule for task: ' . $task);
42
  switch ($task) {
43
  case "backup":
44
  return $this->check_backup_schedule();
@@ -48,7 +52,7 @@ class WPBackItUp_Scheduler {
48
  break;
49
  }
50
 
51
- $this->logger->log('Task not found:' . $task);
52
  return false;
53
  }
54
 
@@ -60,27 +64,27 @@ class WPBackItUp_Scheduler {
60
  */
61
  private function check_backup_schedule(){
62
  global $WPBackitup;
63
- $this->logger->log('**Check Backup Schedule**');
64
 
65
  try {
66
 
67
  ///ONLY active premium get this feature
68
  if (!$WPBackitup->license_active() || 'expired'== $WPBackitup->license_status()){
69
- $this->logger->log('License is not active');
70
  return false;
71
  }
72
 
73
  //Get days scheduled to run on.
74
  $scheduled_dow = $WPBackitup->backup_schedule();
75
- $this->logger->log('Scheduled Days of week: ' .$scheduled_dow); //1=monday, 2=tuesday..
76
 
77
  //What is the current day of the week
78
  $current_datetime = current_time( 'timestamp' );
79
  $current_date = date("Ymd",$current_datetime);
80
  $current_dow = date("N",$current_datetime); //1=monday
81
 
82
- $this->logger->log('Current Date time:' . date( 'Y-m-d H:i:s',$current_datetime));
83
- $this->logger->log('Current Day of Week:' . $current_dow );
84
 
85
  //Get Last RUN date
86
  $lastrun_datetime = $WPBackitup->backup_lastrun_date();
@@ -91,26 +95,26 @@ class WPBackItUp_Scheduler {
91
  $lastrun_dow = date("N",$lastrun_datetime);
92
  }
93
 
94
- $this->logger->log('Last Run Date Time:' . date( 'Y-m-d H:i:s',$lastrun_datetime));
95
- $this->logger->log('Last Run Day of Week:' . $lastrun_dow);
96
 
97
  //Did backup already run today
98
  if ($current_date==$lastrun_date){
99
- $this->logger->log('Backup already ran today');
100
  return false;
101
  }
102
 
103
  //Should it run on this day of the week
104
  if (false===strpos($scheduled_dow,$current_dow)){
105
- $this->logger->log('Not scheduled for: ' .$current_dow);
106
  return false;
107
  }
108
 
109
- $this->logger->log('Backup should be run now.');
110
  return true;
111
 
112
  }catch(Exception $e) {
113
- $this->logger->log_error(__METHOD__,'Exception: ' .$e);
114
  return false;
115
  }
116
 
@@ -124,37 +128,37 @@ class WPBackItUp_Scheduler {
124
  */
125
  private function check_cleanup_schedule(){
126
  global $WPBackitup;
127
- $this->logger->log('**Check Cleanup Schedule**');
128
  try {
129
 
130
  //What is the current day of the week
131
  $current_datetime = current_time( 'timestamp' );
132
  $current_date = date("Ymd",$current_datetime);
133
 
134
- $this->logger->log('Current Date time:' . date( 'Y-m-d H:i:s',$current_datetime));
135
 
136
  //Get Last RUN date
137
  $lastrun_datetime = $WPBackitup->cleanup_lastrun_date();
138
 
139
  $lastrun_date = date("Ymd",$lastrun_datetime);
140
- $this->logger->log('Last Run Date Time:' . date( 'Y-m-d H:i:s',$lastrun_datetime));
141
 
142
  //Has it been at least an hour since the last cleanup?
143
 
144
  $next_run_datetime=$lastrun_datetime+3600; //1 hour
145
- $this->logger->log('Next Run Date Time:' . date( 'Y-m-d H:i:s',$next_run_datetime));
146
 
147
- $this->logger->log('TimeToRun:' . $current_datetime . ':'.$next_run_datetime );
148
  if ($current_datetime>=$next_run_datetime){
149
- $this->logger->log('Cleanup should be run now.');
150
  return true;
151
  }
152
 
153
- $this->logger->log('Not yet time to run Cleanup.');
154
  return false;
155
 
156
  }catch(Exception $e) {
157
- $this->logger->log_error(__METHOD__,'Exception: ' .$e);
158
  return false;
159
  }
160
 
11
 
12
  class WPBackItUp_Scheduler {
13
 
14
+ private $log_name;
 
15
 
16
  /**
17
  * Constructor
18
  */
19
  function __construct() {
20
+ try {
21
 
22
+ $this->log_name = 'debug_scheduler';//default log name
23
 
24
+ } catch(Exception $e) {
25
+ error_log($e);
26
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
27
+ }
28
  }
29
 
30
  /**
31
  * Destructor
32
  */
33
  function __destruct() {
34
+
35
  }
36
 
37
 
42
  * @return bool
43
  */
44
  public function isTaskScheduled($task){
45
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Check schedule for task: ' . $task);
46
  switch ($task) {
47
  case "backup":
48
  return $this->check_backup_schedule();
52
  break;
53
  }
54
 
55
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Task not found:' . $task);
56
  return false;
57
  }
58
 
64
  */
65
  private function check_backup_schedule(){
66
  global $WPBackitup;
67
+ WPBackItUp_LoggerV2::log($this->log_name,'**Check Backup Schedule**');
68
 
69
  try {
70
 
71
  ///ONLY active premium get this feature
72
  if (!$WPBackitup->license_active() || 'expired'== $WPBackitup->license_status()){
73
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'License is not active');
74
  return false;
75
  }
76
 
77
  //Get days scheduled to run on.
78
  $scheduled_dow = $WPBackitup->backup_schedule();
79
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Scheduled Days of week: ' .$scheduled_dow); //1=monday, 2=tuesday..
80
 
81
  //What is the current day of the week
82
  $current_datetime = current_time( 'timestamp' );
83
  $current_date = date("Ymd",$current_datetime);
84
  $current_dow = date("N",$current_datetime); //1=monday
85
 
86
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Current Date time:' . date( 'Y-m-d H:i:s',$current_datetime));
87
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Current Day of Week:' . $current_dow );
88
 
89
  //Get Last RUN date
90
  $lastrun_datetime = $WPBackitup->backup_lastrun_date();
95
  $lastrun_dow = date("N",$lastrun_datetime);
96
  }
97
 
98
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Run Date Time:' . date( 'Y-m-d H:i:s',$lastrun_datetime));
99
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Run Day of Week:' . $lastrun_dow);
100
 
101
  //Did backup already run today
102
  if ($current_date==$lastrun_date){
103
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Backup already ran today');
104
  return false;
105
  }
106
 
107
  //Should it run on this day of the week
108
  if (false===strpos($scheduled_dow,$current_dow)){
109
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Not scheduled for: ' .$current_dow);
110
  return false;
111
  }
112
 
113
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Backup should be run now.');
114
  return true;
115
 
116
  }catch(Exception $e) {
117
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
118
  return false;
119
  }
120
 
128
  */
129
  private function check_cleanup_schedule(){
130
  global $WPBackitup;
131
+ WPBackItUp_LoggerV2::log($this->log_name,'**Check Cleanup Schedule**');
132
  try {
133
 
134
  //What is the current day of the week
135
  $current_datetime = current_time( 'timestamp' );
136
  $current_date = date("Ymd",$current_datetime);
137
 
138
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Current Date time:' . date( 'Y-m-d H:i:s',$current_datetime));
139
 
140
  //Get Last RUN date
141
  $lastrun_datetime = $WPBackitup->cleanup_lastrun_date();
142
 
143
  $lastrun_date = date("Ymd",$lastrun_datetime);
144
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Last Run Date Time:' . date( 'Y-m-d H:i:s',$lastrun_datetime));
145
 
146
  //Has it been at least an hour since the last cleanup?
147
 
148
  $next_run_datetime=$lastrun_datetime+3600; //1 hour
149
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Next Run Date Time:' . date( 'Y-m-d H:i:s',$next_run_datetime));
150
 
151
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'TimeToRun:' . $current_datetime . ':'.$next_run_datetime );
152
  if ($current_datetime>=$next_run_datetime){
153
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Cleanup should be run now.');
154
  return true;
155
  }
156
 
157
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Not yet time to run Cleanup.');
158
  return false;
159
 
160
  }catch(Exception $e) {
161
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
162
  return false;
163
  }
164
 
lib/includes/class-sql.php CHANGED
@@ -1,5 +1,12 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
 
 
 
 
 
 
 
3
  /**
4
  * WP BackItUp - SQL Class
5
  *
@@ -11,16 +18,26 @@
11
 
12
  class WPBackItUp_SQL {
13
 
14
- private $logger;
15
  private $connection;
16
 
17
- function __construct($logger) {
18
  try {
19
- $this->logger = $logger;
20
- $this->connection = $this->get_sqlconnection();
 
 
 
 
 
 
 
 
 
21
 
22
  } catch(Exception $e) {
23
- $this->logger->log_error(__METHOD__,$e);
 
24
  }
25
  }
26
 
@@ -31,7 +48,7 @@ class WPBackItUp_SQL {
31
 
32
  public function mysqldump_export($sql_file_path,$with_mysqlpath=false) {
33
  global $wpdb;
34
- $this->logger->log('(SQL.mysqldump_export) Export Database to: ' .$sql_file_path);
35
 
36
  $db_name = DB_NAME;
37
  $db_user = DB_USER;
@@ -61,7 +78,7 @@ class WPBackItUp_SQL {
61
  $tables='';
62
  if (is_multisite()){
63
  $sql = sprintf('SHOW TABLES like \'%s%%\' ',$wpdb->prefix);
64
- $this->logger->log('tables:' . $sql);
65
  $mysqli = $this->connection;
66
  $result = $mysqli->query($sql);
67
  // Cycle through "$result" and put content into an array
@@ -83,38 +100,38 @@ class WPBackItUp_SQL {
83
 
84
  if (WPBACKITUP__DEBUG) {
85
  $masked_command = str_replace(array($db_user,$db_pass),'XXXXXX',$command);
86
- $this->logger->log('(SQL.db_SQLDump)Execute command:' . $masked_command);
87
  }
88
 
89
  exec($command,$output,$rtn_var);
90
- $this->logger->log('(SQL.mysqldump_export)Execute output:');
91
- $this->logger->log($output);
92
- $this->logger->log('Return Value:' .$rtn_var);
93
 
94
  //0 is success
95
  if ($rtn_var>0){
96
- $this->logger->log('(SQL.mysqldump_export) EXPORT FAILED return Value:' .$rtn_var);
97
  return false;
98
  }
99
 
100
  //Did the export work
101
  clearstatcache();
102
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
103
- $this->logger->log('(SQL.mysqldump_export) EXPORT FAILED: Dump was empty or missing.');
104
  return false;
105
  }
106
  } catch(Exception $e) {
107
- $this->logger->log('(SQL.mysqldump_export) EXPORT FAILED Exception: ' .$e);
108
  return false;
109
  }
110
  }
111
  else
112
  {
113
- $this->logger->log('(SQL.mysqldump_export) EXPORT FAILED Exec() disabled.');
114
  return false;
115
  }
116
 
117
- $this->logger->log('(SQL.mysqldump_export) SQL Dump SUCCESS.');
118
  return true;
119
  }
120
 
@@ -126,11 +143,11 @@ class WPBackItUp_SQL {
126
  * @return array|bool
127
  */
128
  public function get_table_rows() {
129
- $this->logger->log_info(__METHOD__,'Begin');
130
 
131
  $mysqli = $this->connection;
132
  if (false === $mysqli) {
133
- $this->logger->log_error(__METHOD__,'No SQL Connection');
134
  return false;
135
  }
136
  $sql = "SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES
@@ -144,26 +161,26 @@ class WPBackItUp_SQL {
144
  $tables[] = array("table_name" => $row[0], 'table_rows' => $row[1]) ;
145
  }
146
 
147
- $this->logger->log_info(__METHOD__,'End');
148
  return $tables;
149
  }
150
 
151
  public function manual_export($sql_file_path) {
152
  global $wpdb;
153
- $this->logger->log_info(__METHOD__,'Manually Create SQL Backup File:'.$sql_file_path);
154
 
155
  $mysqli = $this->connection;
156
  $mysqli->set_charset('utf8');
157
 
158
  if (false===$mysqli) {
159
- $this->logger->log_error(__METHOD__,'No SQL Connection');
160
  return false;
161
  }
162
 
163
  //open the SQL file
164
  $handle = fopen($sql_file_path,'w+');
165
  if (false===$handle) {
166
- $this->logger->log_error(__METHOD__,'File could not be opened.');
167
  return false;
168
  }
169
 
@@ -207,7 +224,7 @@ class WPBackItUp_SQL {
207
 
208
  // Cycle through each table
209
  foreach($tables as $table) {
210
- $this->logger->log($table);
211
 
212
  // //if multi site install then
213
  // if (is_multisite()){
@@ -279,26 +296,26 @@ class WPBackItUp_SQL {
279
 
280
  //Did the export work
281
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
282
- $this->logger->log('(SQL.manual_export) Failure: SQL Export file was empty or didnt exist.');
283
  return false;
284
  }
285
 
286
- $this->logger->log('(SQL.manual_export)SQL Backup File Created:'.$sql_file_path);
287
  return true;
288
  }
289
 
290
  public function run_sql_exec($sql_file,$with_mysqlpath=false) {
291
- $this->logger->log('(SQL.run_sql_exec)SQL Execute:' .$sql_file);
292
 
293
  //Is the backup sql file empty
294
  if (!file_exists($sql_file) || filesize($sql_file)<=0) {
295
- $this->logger->log('(SQL.run_sql_exec) Failure: SQL File was empty:' .$sql_file);
296
  return false;
297
  }
298
 
299
  //This is to ensure that exec() is enabled on the server
300
  if(exec('echo EXEC') != 'EXEC') {
301
- $this->logger->log('(SQL.run_sql_exec) Failure: Exec() disabled.');
302
  return false;
303
  }
304
 
@@ -333,37 +350,37 @@ class WPBackItUp_SQL {
333
 
334
  if (WPBACKITUP__DEBUG) {
335
  $masked_command = str_replace(array($db_user,$db_pass),'XXXXXX',$command);
336
- $this->logger->log( '(SQL.db_run_sql)Execute command:' . $masked_command );
337
  }
338
 
339
  //$output = shell_exec($command);
340
  exec($command,$output,$rtn_var);
341
- $this->logger->log('(SQL.run_sql_exec)Execute output:');
342
- $this->logger->log($output);
343
- $this->logger->log('Return Value:' .$rtn_var);
344
 
345
  //0 is success
346
  if ($rtn_var!=0){
347
- $this->logger->log('(SQL.run_sql_exec) An Error has occurred RTNVAL: ' .$rtn_var);
348
  return false;
349
  }
350
 
351
  }catch(Exception $e) {
352
- $this->logger->log('(SQL.run_sql_exec) Exception: ' .$e);
353
  return false;
354
  }
355
 
356
  //Success
357
- $this->logger->log('(SQL.run_sql_exec)SQL Executed successfully');
358
  return true;
359
  }
360
 
361
  public function run_sql_manual_OLD($sql_file) {
362
- $this->logger->log('(SQL.run_sql_manual)SQL Execute:' .$sql_file);
363
 
364
  //Is the backup sql file empty
365
  if (!file_exists($sql_file) || filesize($sql_file)<=0) {
366
- $this->logger->log('(SQL.run_sql_manual) Failure: SQL File was empty:' .$sql_file);
367
  return false;
368
  }
369
 
@@ -380,20 +397,19 @@ class WPBackItUp_SQL {
380
  }
381
 
382
  $ctr=1;
383
- $this->logger->log('(SQL.run_sql_manual) 0: here ');
384
  if($mysqli->multi_query($query))
385
  {
386
  do {
387
-
388
- $this->logger->log('(SQL.run_sql_manual) 1: ' .$ctr++);
389
  /* store first result set */
390
  if($resultSet = $mysqli->store_result())
391
  {
392
- $this->logger->log('(SQL.run_sql_manual) 2: ');
393
 
394
  while($row = $resultSet->fetch_row())
395
  {
396
- $this->logger->log('(SQL.run_sql_manual) 3: ');
397
  }
398
  $resultSet->free();
399
  }
@@ -402,28 +418,27 @@ class WPBackItUp_SQL {
402
 
403
  } while ($mysqli->next_result());
404
 
405
- $this->logger->log('(SQL.run_sql_manual) 4: ');
406
  $mysqli->close();
407
  }
408
 
409
  }catch(Exception $e) {
410
- $this->logger->log('(SQL.run_sql_manual) Exception: ' .$e);
411
  return false;
412
  }
413
 
414
  //Success
415
- $this->logger->log('(SQL.run_sql_manual)SQL Executed successfully:' .$sql_file);
416
  return true;
417
  }
418
 
419
  function run_sql_manual($sql_file_path, $delimiter = ';')
420
  {
421
- $this->logger->log('(SQL.run_sql_manual)SQL Execute:' .$sql_file_path);
422
- set_time_limit(0);
423
 
424
  //Is the backup sql file empty
425
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
426
- $this->logger->log('(SQL.run_sql_manual) Failure: SQL File was empty:' .$sql_file_path);
427
  return false;
428
  }
429
 
@@ -460,10 +475,9 @@ class WPBackItUp_SQL {
460
  if ($mysqli->query($query) === false) {
461
  $error_count++;
462
 
463
- $this->logger->log('(SQL.run_sql_manual)Total Queries Executed:' .$total_query);
464
- $this->logger->log('(SQL.run_sql_manual)Query Errors:' .$error_count);
465
-
466
- $this->logger->log('(SQL.run_sql_manual) SQL ERROR: ' . $query);
467
 
468
  //$mysqli->rollback();
469
  $mysqli->close();
@@ -472,7 +486,7 @@ class WPBackItUp_SQL {
472
  return false;
473
  }
474
  // else {
475
- // $this->logger->log('(SQL.run_sql_manual) SUCCESS: ' . $query);
476
  // }
477
 
478
  while (ob_get_level() > 0)
@@ -492,32 +506,32 @@ class WPBackItUp_SQL {
492
  //$mysqli->commit();
493
  $mysqli->close();
494
 
495
- $this->logger->log('(SQL.run_sql_manual)SQL Executed successfully:' .$sql_file_path);
496
- $this->logger->log('(SQL.run_sql_manual)Total Queries Executed:' .$total_query);
497
- $this->logger->log('(SQL.run_sql_manual)Query Errors:' .$error_count);
498
  return fclose($sql_handle);
499
  }
500
  }
501
 
502
  }catch(Exception $e) {
503
- $this->logger->log('(SQL.run_sql_manual) Exception: ' .$e);
504
  return false;
505
  }
506
 
507
- $this->logger->log('(SQL.run_sql_manual)SQL File could not be opened:' .$sql_file_path);
508
  return false;
509
  }
510
 
511
  private function get_sqlconnection() {
512
- $this->logger->log('(SQL.get_sqlconnection)Get SQL connection to database.');
513
  $db_name = DB_NAME;
514
  $db_user = DB_USER;
515
  $db_pass = DB_PASSWORD;
516
  $db_host = $this->get_hostonly(DB_HOST);
517
  $db_port = $this->get_portonly(DB_HOST);
518
 
519
- $this->logger->log('(SQL.get_sqlconnection)Host:' . $db_host);
520
- $this->logger->log('(SQL.get_sqlconnection)Port:' . $db_port);
521
 
522
  if (false===$db_port){
523
  $mysqli = new mysqli($db_host , $db_user , $db_pass , $db_name);
@@ -527,7 +541,7 @@ class WPBackItUp_SQL {
527
  }
528
 
529
  if ($mysqli->connect_errno) {
530
- $this->logger->log('(SQL.get_sqlconnection)Cannot connect to database.' . $mysqli->connect_error);
531
  return false;
532
  }
533
  return $mysqli;
@@ -545,8 +559,10 @@ class WPBackItUp_SQL {
545
  private function get_portonly($db_host) {
546
  //Check for port
547
  $host_array = explode(':',$db_host);
548
- if (is_array($host_array) && count($host_array)>1 && !empty($port)){
549
- return $host_array[1];
 
 
550
  }
551
 
552
  return false;
@@ -567,7 +583,7 @@ class WPBackItUp_SQL {
567
  //Run SQL command
568
  public function run_sql_command($sql){
569
  if(!mysqli_query($this->connection, $sql) ) {
570
- $this->logger->log('Error:SQL Command Failed:' .$sql);
571
  return false;
572
  }
573
  return true;
@@ -578,10 +594,10 @@ class WPBackItUp_SQL {
578
  $base_directory = $this->get_sql_scalar('select @@basedir');
579
  if (!empty($base_directory)){
580
  $base_directory.='/bin/';
581
- $this->logger->log('MySQL install path found:' .$base_directory);
582
  return $base_directory;
583
  }
584
- $this->logger->log('MySQL install path NOT found');
585
  return false;
586
  }
587
 
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', 0);
6
+ }else{
7
+ @set_time_limit(0);
8
+ }
9
+
10
  /**
11
  * WP BackItUp - SQL Class
12
  *
18
 
19
  class WPBackItUp_SQL {
20
 
21
+ private $log_name;
22
  private $connection;
23
 
24
+ function __construct($log_name) {
25
  try {
26
+ $this->log_name = 'debug_sql';//default log name
27
+ if (is_object($log_name)){
28
+ //This is for the old logger
29
+ $this->log_name = $log_name->getLogFileName();
30
+ } else{
31
+ if (is_string($log_name) && isset($log_name)){
32
+ $this->log_name = $log_name;
33
+ }
34
+ }
35
+
36
+ $this->connection = $this->get_sqlconnection();
37
 
38
  } catch(Exception $e) {
39
+ error_log($e);
40
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
41
  }
42
  }
43
 
48
 
49
  public function mysqldump_export($sql_file_path,$with_mysqlpath=false) {
50
  global $wpdb;
51
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Export Database to: ' .$sql_file_path);
52
 
53
  $db_name = DB_NAME;
54
  $db_user = DB_USER;
78
  $tables='';
79
  if (is_multisite()){
80
  $sql = sprintf('SHOW TABLES like \'%s%%\' ',$wpdb->prefix);
81
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'tables:' . $sql);
82
  $mysqli = $this->connection;
83
  $result = $mysqli->query($sql);
84
  // Cycle through "$result" and put content into an array
100
 
101
  if (WPBACKITUP__DEBUG) {
102
  $masked_command = str_replace(array($db_user,$db_pass),'XXXXXX',$command);
103
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Execute command:' . $masked_command);
104
  }
105
 
106
  exec($command,$output,$rtn_var);
107
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Execute output:');
108
+ WPBackItUp_LoggerV2::log($this->log_name,$output);
109
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Return Value:' .$rtn_var);
110
 
111
  //0 is success
112
  if ($rtn_var>0){
113
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'EXPORT FAILED return Value:' .$rtn_var);
114
  return false;
115
  }
116
 
117
  //Did the export work
118
  clearstatcache();
119
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
120
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'EXPORT FAILED: Dump was empty or missing.');
121
  return false;
122
  }
123
  } catch(Exception $e) {
124
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'EXPORT FAILED Exception: ' .$e);
125
  return false;
126
  }
127
  }
128
  else
129
  {
130
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'EXPORT FAILED Exec() disabled.');
131
  return false;
132
  }
133
 
134
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Dump SUCCESS.');
135
  return true;
136
  }
137
 
143
  * @return array|bool
144
  */
145
  public function get_table_rows() {
146
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
147
 
148
  $mysqli = $this->connection;
149
  if (false === $mysqli) {
150
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'No SQL Connection');
151
  return false;
152
  }
153
  $sql = "SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES
161
  $tables[] = array("table_name" => $row[0], 'table_rows' => $row[1]) ;
162
  }
163
 
164
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'End');
165
  return $tables;
166
  }
167
 
168
  public function manual_export($sql_file_path) {
169
  global $wpdb;
170
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Manually Create SQL Backup File:'.$sql_file_path);
171
 
172
  $mysqli = $this->connection;
173
  $mysqli->set_charset('utf8');
174
 
175
  if (false===$mysqli) {
176
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'No SQL Connection');
177
  return false;
178
  }
179
 
180
  //open the SQL file
181
  $handle = fopen($sql_file_path,'w+');
182
  if (false===$handle) {
183
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'File could not be opened.');
184
  return false;
185
  }
186
 
224
 
225
  // Cycle through each table
226
  foreach($tables as $table) {
227
+ WPBackItUp_LoggerV2::log($this->log_name,$table);
228
 
229
  // //if multi site install then
230
  // if (is_multisite()){
296
 
297
  //Did the export work
298
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
299
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Failure: SQL Export file was empty or didnt exist.');
300
  return false;
301
  }
302
 
303
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Backup File Created:'.$sql_file_path);
304
  return true;
305
  }
306
 
307
  public function run_sql_exec($sql_file,$with_mysqlpath=false) {
308
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Execute:' .$sql_file);
309
 
310
  //Is the backup sql file empty
311
  if (!file_exists($sql_file) || filesize($sql_file)<=0) {
312
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Failure: SQL File was empty:' .$sql_file);
313
  return false;
314
  }
315
 
316
  //This is to ensure that exec() is enabled on the server
317
  if(exec('echo EXEC') != 'EXEC') {
318
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Failure: Exec() disabled.');
319
  return false;
320
  }
321
 
350
 
351
  if (WPBACKITUP__DEBUG) {
352
  $masked_command = str_replace(array($db_user,$db_pass),'XXXXXX',$command);
353
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Execute command:' . $masked_command );
354
  }
355
 
356
  //$output = shell_exec($command);
357
  exec($command,$output,$rtn_var);
358
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Execute output:');
359
+ WPBackItUp_LoggerV2::log($this->log_name,$output);
360
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Return Value:' .$rtn_var);
361
 
362
  //0 is success
363
  if ($rtn_var!=0){
364
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'An Error has occurred RTNVAL: ' .$rtn_var);
365
  return false;
366
  }
367
 
368
  }catch(Exception $e) {
369
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
370
  return false;
371
  }
372
 
373
  //Success
374
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Executed successfully');
375
  return true;
376
  }
377
 
378
  public function run_sql_manual_OLD($sql_file) {
379
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Execute:' .$sql_file);
380
 
381
  //Is the backup sql file empty
382
  if (!file_exists($sql_file) || filesize($sql_file)<=0) {
383
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Failure: SQL File was empty:' .$sql_file);
384
  return false;
385
  }
386
 
397
  }
398
 
399
  $ctr=1;
400
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'0: here ');
401
  if($mysqli->multi_query($query))
402
  {
403
  do {
404
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'1: ' .$ctr++);
 
405
  /* store first result set */
406
  if($resultSet = $mysqli->store_result())
407
  {
408
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'2: ');
409
 
410
  while($row = $resultSet->fetch_row())
411
  {
412
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'3: ');
413
  }
414
  $resultSet->free();
415
  }
418
 
419
  } while ($mysqli->next_result());
420
 
421
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'4: ');
422
  $mysqli->close();
423
  }
424
 
425
  }catch(Exception $e) {
426
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
427
  return false;
428
  }
429
 
430
  //Success
431
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Executed successfully:' .$sql_file);
432
  return true;
433
  }
434
 
435
  function run_sql_manual($sql_file_path, $delimiter = ';')
436
  {
437
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Execute:' .$sql_file_path);
 
438
 
439
  //Is the backup sql file empty
440
  if (!file_exists($sql_file_path) || filesize($sql_file_path)<=0) {
441
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Failure: SQL File was empty:' .$sql_file_path);
442
  return false;
443
  }
444
 
475
  if ($mysqli->query($query) === false) {
476
  $error_count++;
477
 
478
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Total Queries Executed:' .$total_query);
479
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Errors:' .$error_count);
480
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,' SQL ERROR: ' . $query);
 
481
 
482
  //$mysqli->rollback();
483
  $mysqli->close();
486
  return false;
487
  }
488
  // else {
489
+ // WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SUCCESS: ' . $query);
490
  // }
491
 
492
  while (ob_get_level() > 0)
506
  //$mysqli->commit();
507
  $mysqli->close();
508
 
509
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'SQL Executed successfully:' .$sql_file_path);
510
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Total Queries Executed:' .$total_query);
511
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Query Errors:' .$error_count);
512
  return fclose($sql_handle);
513
  }
514
  }
515
 
516
  }catch(Exception $e) {
517
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Exception: ' .$e);
518
  return false;
519
  }
520
 
521
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'SQL File could not be opened:' .$sql_file_path);
522
  return false;
523
  }
524
 
525
  private function get_sqlconnection() {
526
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Get SQL connection to database.');
527
  $db_name = DB_NAME;
528
  $db_user = DB_USER;
529
  $db_pass = DB_PASSWORD;
530
  $db_host = $this->get_hostonly(DB_HOST);
531
  $db_port = $this->get_portonly(DB_HOST);
532
 
533
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Host:' . $db_host);
534
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Port:' . $db_port);
535
 
536
  if (false===$db_port){
537
  $mysqli = new mysqli($db_host , $db_user , $db_pass , $db_name);
541
  }
542
 
543
  if ($mysqli->connect_errno) {
544
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Cannot connect to database.' . $mysqli->connect_error);
545
  return false;
546
  }
547
  return $mysqli;
559
  private function get_portonly($db_host) {
560
  //Check for port
561
  $host_array = explode(':',$db_host);
562
+ if ( is_array($host_array) && isset($host_array[1]) ) {
563
+ $port = trim($host_array[1]);
564
+ if(!empty($port))
565
+ return $port;
566
  }
567
 
568
  return false;
583
  //Run SQL command
584
  public function run_sql_command($sql){
585
  if(!mysqli_query($this->connection, $sql) ) {
586
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Error:SQL Command Failed:' .$sql);
587
  return false;
588
  }
589
  return true;
594
  $base_directory = $this->get_sql_scalar('select @@basedir');
595
  if (!empty($base_directory)){
596
  $base_directory.='/bin/';
597
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'MySQL install path found:' .$base_directory);
598
  return $base_directory;
599
  }
600
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'MySQL install path NOT found');
601
  return false;
602
  }
603
 
lib/includes/class-task.php CHANGED
@@ -12,7 +12,7 @@ class WPBackItUp_Task {
12
  const RESUME = 'resume';
13
 
14
 
15
- private $logger;
16
 
17
  private $job_id;
18
  private $name; //task name
@@ -26,33 +26,39 @@ class WPBackItUp_Task {
26
  private $retry_count=0;
27
 
28
  public function __construct($job_id,$task_name,$task_info) {
29
-
30
- if (empty($job_id) ||
31
- empty($task_name) ||
32
- empty($task_info['task_id']) ||
33
- empty($task_info['task_status'])){
34
-
35
- throw new exception('Cant create task object, missing parameter in constructor.' );
36
- }
37
-
38
- $this->logger = new WPBackItUp_Logger(false,null,'debug_restore_tasks');
39
-
40
- //Task Key Info
41
- $this->job_id=$job_id;
42
- $this->name=$task_name;
43
- $this->id = $task_info['task_id'];
44
- $this->status = $task_info['task_status'];
45
-
46
- if (! empty($task_info['task_allocated_id'])){
47
- $this->allocated_id = $task_info['task_allocated_id'];
48
- }
49
-
50
- if (! empty($task_info['task_last_updated'])) {
51
- $this->last_updated = $task_info['task_last_updated'];
52
- }
53
-
54
- if (! empty($task_info['task_retry_count'])) {
55
- $this->retry_count = $task_info['task_retry_count'];
 
 
 
 
 
 
56
  }
57
  }
58
 
@@ -65,8 +71,7 @@ class WPBackItUp_Task {
65
  * Increment the task retry count
66
  */
67
  public function increment_retry_count(){
68
- $this->logger->log_info(__METHOD__,'Begin');
69
-
70
  $this->retry_count++;
71
  return $this->save();
72
  }
@@ -80,7 +85,7 @@ class WPBackItUp_Task {
80
  *
81
  */
82
  private function save(){
83
- $this->logger->log_info(__METHOD__,'Begin');
84
 
85
  $meta_value = array(
86
  'task_id' => $this->id,
@@ -90,10 +95,10 @@ class WPBackItUp_Task {
90
  'task_retry_count' => $this->retry_count,
91
  'task_last_updated' => time()
92
  );
93
- $this->logger->log_info(__METHOD__,'Task Info:' .var_export($meta_value,true));
94
 
95
  $rtn_status =update_post_meta( $this->job_id, $this->name, $meta_value );
96
- $this->logger->log_info(__METHOD__,'Task Saved:' .$rtn_status);
97
  return $rtn_status;
98
  }
99
 
12
  const RESUME = 'resume';
13
 
14
 
15
+ private $log_name;
16
 
17
  private $job_id;
18
  private $name; //task name
26
  private $retry_count=0;
27
 
28
  public function __construct($job_id,$task_name,$task_info) {
29
+ try {
30
+ $this->log_name = 'debug_tasks';//default log name
31
+
32
+ if ( empty( $job_id ) ||
33
+ empty( $task_name ) ||
34
+ empty( $task_info['task_id'] ) ||
35
+ empty( $task_info['task_status'] )
36
+ ) {
37
+
38
+ throw new exception( 'Cant create task object, missing parameter in constructor.' );
39
+ }
40
+
41
+
42
+ //Task Key Info
43
+ $this->job_id = $job_id;
44
+ $this->name = $task_name;
45
+ $this->id = $task_info['task_id'];
46
+ $this->status = $task_info['task_status'];
47
+
48
+ if ( ! empty( $task_info['task_allocated_id'] ) ) {
49
+ $this->allocated_id = $task_info['task_allocated_id'];
50
+ }
51
+
52
+ if ( ! empty( $task_info['task_last_updated'] ) ) {
53
+ $this->last_updated = $task_info['task_last_updated'];
54
+ }
55
+
56
+ if ( ! empty( $task_info['task_retry_count'] ) ) {
57
+ $this->retry_count = $task_info['task_retry_count'];
58
+ }
59
+ } catch(Exception $e) {
60
+ error_log($e);
61
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
62
  }
63
  }
64
 
71
  * Increment the task retry count
72
  */
73
  public function increment_retry_count(){
74
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
 
75
  $this->retry_count++;
76
  return $this->save();
77
  }
85
  *
86
  */
87
  private function save(){
88
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Begin');
89
 
90
  $meta_value = array(
91
  'task_id' => $this->id,
95
  'task_retry_count' => $this->retry_count,
96
  'task_last_updated' => time()
97
  );
98
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Info:' .var_export($meta_value,true));
99
 
100
  $rtn_status =update_post_meta( $this->job_id, $this->name, $meta_value );
101
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Task Saved:' .$rtn_status);
102
  return $rtn_status;
103
  }
104
 
lib/includes/class-utility.php CHANGED
@@ -11,14 +11,22 @@
11
 
12
  class WPBackItUp_Utility {
13
 
14
- private $logger;
15
 
16
- function __construct($logger) {
17
  try {
18
- $this->logger = $logger;
 
 
 
 
 
 
 
 
19
  } catch(Exception $e) {
20
- //Dont do anything
21
- print $e;
22
  }
23
  }
24
 
@@ -42,13 +50,12 @@ class WPBackItUp_Utility {
42
  }
43
 
44
  wp_mail($to, $subject, nl2br($message), $headers,$attachments);
45
- $this->logger->log('(send_email)EMail Sent from:' .$from_email);
46
- $this->logger->log('(send_email)EMail Sent to:' .$to);
47
  }
48
 
49
  } catch(Exception $e) {
50
- //Dont do anything
51
- $this->logger->log('(send_email)Send Email Exception:'.$e);
52
  }
53
 
54
  }
@@ -76,14 +83,13 @@ class WPBackItUp_Utility {
76
 
77
  wp_mail($to, $subject, nl2br($message), $headers,$attachments);
78
 
79
- $this->logger->log('(send_email)Headers:' .var_export($headers,true));
80
- $this->logger->log('(send_email)EMail Sent from:' .$from_email);
81
- $this->logger->log('(send_email)EMail Sent to:' .$to);
82
  }
83
 
84
  } catch(Exception $e) {
85
- //Dont do anything
86
- $this->logger->log('(send_email)Send Email Exception:'.$e);
87
  }
88
 
89
  }
11
 
12
  class WPBackItUp_Utility {
13
 
14
+ private $log_name;
15
 
16
+ function __construct($log_name=null) {
17
  try {
18
+ $this->log_name= 'debug_utility'; //default log name
19
+ if (is_object($log_name)){
20
+ $this->log_name = $log_name->getLogFileName();
21
+ } else{
22
+ if (is_string($log_name) && isset($log_name)){
23
+ $this->log_name = $log_name;
24
+ }
25
+ }
26
+
27
  } catch(Exception $e) {
28
+ error_log($e);
29
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Constructor Exception: ' .$e);
30
  }
31
  }
32
 
50
  }
51
 
52
  wp_mail($to, $subject, nl2br($message), $headers,$attachments);
53
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'EMail Sent from:' .$from_email);
54
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'EMail Sent to:' .$to);
55
  }
56
 
57
  } catch(Exception $e) {
58
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Send Email Exception:'.$e);
 
59
  }
60
 
61
  }
83
 
84
  wp_mail($to, $subject, nl2br($message), $headers,$attachments);
85
 
86
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'Headers:' .var_export($headers,true));
87
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'EMail Sent from:' .$from_email);
88
+ WPBackItUp_LoggerV2::log_info($this->log_name,__METHOD__,'EMail Sent to:' .$to);
89
  }
90
 
91
  } catch(Exception $e) {
92
+ WPBackItUp_LoggerV2::log_error($this->log_name,__METHOD__,'Send Email Exception:'.$e);
 
93
  }
94
 
95
  }
lib/includes/class-wpbackitup-admin.php CHANGED
@@ -62,7 +62,10 @@ class WPBackitup_Admin {
62
  'backup_schedule'=>"",
63
  'backup_lastrun_date'=>"-2147483648",
64
  'cleanup_lastrun_date'=>"-2147483648",
65
- 'backup_batch_size'=>"500",
 
 
 
66
  'support_email' => "",
67
  );
68
 
@@ -118,6 +121,9 @@ class WPBackitup_Admin {
118
  //Load the backup action
119
  add_action('wp_ajax_wp-backitup_backup', array( &$this, 'ajax_queue_backup' ));
120
 
 
 
 
121
  //Load the restore action
122
  add_action('wp_ajax_wp-backitup_restore', array( &$this, 'ajax_queue_restore' ));
123
 
@@ -162,18 +168,18 @@ class WPBackitup_Admin {
162
  add_menu_page( $this->friendly_name, $this->friendly_name, 'administrator', $this->namespace, array( &$this, 'admin_backup_page' ), WPBACKITUP__PLUGIN_URL .'/images/icon.png', 77);
163
 
164
  //Add Backup Menu Nav
165
- add_submenu_page( $this->namespace, 'Backup', 'Backup', 'administrator', $this->namespace.'-backup', array( &$this, 'admin_backup_page' ) );
166
 
167
  //Add Restore Menu Nav IF licensed
168
  if ($this->license_type()!=0) {
169
- add_submenu_page( $this->namespace, 'Restore', 'Restore', 'administrator', $this->namespace.'-restore', array( &$this, 'admin_restore_page' ) );
170
  }
171
 
172
  //Add Support Menu Nav
173
- add_submenu_page( $this->namespace, 'Support', 'Support', 'administrator', $this->namespace.'-support', array( &$this, 'admin_support_page' ) );
174
 
175
  //Add Settings Menu Nav
176
- add_submenu_page( $this->namespace, 'Settings', 'Settings', 'administrator', $this->namespace.'-settings', array( &$this, 'admin_settings_page' ) );
177
 
178
 
179
  if (WPBACKITUP__DEBUG===true){
@@ -192,7 +198,33 @@ class WPBackitup_Admin {
192
 
193
  // Admin JavaScript
194
  wp_register_script( "{$this->namespace}-admin", WPBACKITUP__PLUGIN_URL . "js/wpbackitup_admin.js", array( 'jquery' ), $this->version, true );
195
- wp_enqueue_script( "{$this->namespace}-admin" );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
 
197
  // Admin Stylesheet
198
  wp_register_style( "{$this->namespace}-admin", WPBACKITUP__PLUGIN_URL . "css/wpbackitup_admin.css", array(), $this->version, 'screen' );
@@ -287,24 +319,24 @@ class WPBackitup_Admin {
287
  if( isset( $_REQUEST['_wpnonce'] ) ) {
288
  $nonce = $_REQUEST['_wpnonce'];
289
 
290
- $logger = new WPBackItUp_Logger(false);
291
- //$logger->log('NONCE:' .$nonce);
292
 
293
  // Handle POST requests
294
  if( $is_post ) {
295
 
296
  if( wp_verify_nonce( $nonce, "{$this->namespace}-update-options" ) ) {
297
- $logger->log('Update Options Form Post');
298
  $this->_admin_options_update();
299
  }
300
 
301
  if( wp_verify_nonce( $nonce, "{$this->namespace}-register" ) ) {
302
- $logger->log('Register Lite Form Post');
303
  $this->_admin_register();
304
  }
305
 
306
  if( wp_verify_nonce( $nonce, "{$this->namespace}-update-schedule" ) ) {
307
- $logger->log('Update Schedule Form Post');
308
 
309
  $jsonResponse = new stdClass();
310
  if ($this->_admin_save_schedule()){
@@ -318,7 +350,7 @@ class WPBackitup_Admin {
318
  }
319
 
320
  if( wp_verify_nonce( $nonce, "{$this->namespace}-support-form" ) ) {
321
- $logger->log('Support Form Post');
322
  $this->_admin_send_support_request();
323
  }
324
 
@@ -331,13 +363,22 @@ class WPBackitup_Admin {
331
  }
332
 
333
  public function initialize(){
 
 
 
 
 
334
 
 
 
 
 
 
335
  }
336
 
337
  public function wpbackitup_queue_scheduled_jobs(){
338
-
339
- $logger = new WPBackItUp_Logger(false,null,'debug_scheduled_jobs');
340
- $logger->log_info(__METHOD__,'Begin');
341
 
342
  // Check permissions
343
  if (! self::is_authorized()) exit('Access denied.');
@@ -360,7 +401,7 @@ class WPBackitup_Admin {
360
  wp_schedule_single_event( time(), 'wpbackitup_run_backup_tasks' );
361
  }
362
 
363
- $logger->log_info(__METHOD__,'Backup Job already Queued');
364
  exit;
365
  }
366
 
@@ -371,17 +412,17 @@ class WPBackitup_Admin {
371
  wp_schedule_single_event( time(), 'wpbackitup_run_cleanup_tasks' );
372
  }
373
 
374
- $logger->log_info(__METHOD__,'Cleanup job already Queued');
375
  exit;
376
  }
377
 
378
  //If any jobs are queued or active then just exit
379
  if (WPBackItUp_Job::is_job_queued('restore')) {
380
- $logger->log_info(__METHOD__,'Restore Job already Queued');
381
  exit;
382
  }
383
 
384
- $logger->log_info(__METHOD__,'No jobs already queued.');
385
 
386
  //Is it time for a backup?
387
  //Check scheduler and queue tasks that need to be run
@@ -395,7 +436,7 @@ class WPBackitup_Admin {
395
  wp_schedule_single_event( time(), 'wpbackitup_run_backup_tasks' );
396
  }
397
 
398
- $logger->log_info(__METHOD__,'Backup job queued to run.');
399
  exit( 0 ); //success - don't schedule anything else
400
  }
401
 
@@ -410,12 +451,12 @@ class WPBackitup_Admin {
410
  wp_schedule_single_event( time(), 'wpbackitup_run_cleanup_tasks' );
411
  }
412
 
413
- $logger->log_info(__METHOD__,'Cleanup job queued to run.');
414
  exit( 0 ); //success - don't schedule anything else
415
  }
416
 
417
 
418
- $logger->log_info(__METHOD__,'No jobs scheduled to run.');
419
  exit(0); //success nothing to schedule
420
  }
421
 
@@ -424,8 +465,8 @@ class WPBackitup_Admin {
424
  // Check permissions
425
  if (! self::is_authorized()) exit('Access denied.');
426
 
427
- $logger = new WPBackItUp_Logger(false,null,'debug_events');
428
- $logger->log_info(__METHOD__,'Begin');
429
 
430
  //Include Job class
431
  if( !class_exists( 'WPBackItUp_Job' ) ) {
@@ -436,20 +477,42 @@ class WPBackitup_Admin {
436
  //If no backup queued already then queue one
437
  if (!WPBackItUp_Job::is_job_queued('backup')){
438
  if (WPBackItUp_Job::queue_job('backup')){
439
- $rtnData->message = 'Backup Queued';
440
  }else {
441
- $rtnData->message = 'Backup could not be queued';
442
  }
443
  }else{
444
- $rtnData->message = 'Backup already in queue';
445
  }
446
 
447
- $logger->log_info(__METHOD__,$rtnData->message);
448
- $logger->log_info(__METHOD__,'End');
449
  echo json_encode($rtnData);
450
  exit;
451
  }
452
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
453
  //Run queue manual restore
454
  public function ajax_queue_restore() {
455
  $rtnData = new stdClass();
@@ -457,8 +520,8 @@ class WPBackitup_Admin {
457
  // Check permissions
458
  if (! self::is_authorized()) exit('Access denied.');
459
 
460
- $logger = new WPBackItUp_Logger(false,null,'debug_events');
461
- $logger->log_info(__METHOD__,'Begin');
462
 
463
  //Include Job class
464
  if( !class_exists( 'WPBackItUp_Job' ) ) {
@@ -469,14 +532,14 @@ class WPBackitup_Admin {
469
  //Get posted values
470
  $backup_file_name = $_POST['selected_file'];//Get the backup file name
471
  if( empty($backup_file_name)) {
472
- $rtnData->message = 'No backup file selected.';
473
  $validation_error=true;
474
  }
475
 
476
  //Get user ID - GET ThIS FROM POST ID
477
  $user_id = $_POST['user_id'];
478
  if( empty($user_id)) {
479
- $rtnData->message = 'No user id found.';
480
  $validation_error=true;
481
  }
482
 
@@ -487,17 +550,17 @@ class WPBackitup_Admin {
487
  if ($job!== false){
488
  $job->update_job_meta('backup_name',$backup_file_name);
489
  $job->update_job_meta('user_id',$user_id);
490
- $rtnData->message = 'Restore Queued';
491
  }else {
492
- $rtnData->message = 'Restore could not be queued';
493
  }
494
  }else{
495
- $rtnData->message = 'Restore already in queue';
496
  }
497
  }
498
 
499
- $logger->log_info(__METHOD__,$rtnData->message);
500
- $logger->log_info(__METHOD__,'End');
501
  echo json_encode($rtnData);
502
  exit;
503
  }
@@ -510,16 +573,16 @@ class WPBackitup_Admin {
510
 
511
  $process_id = uniqid();
512
 
513
- $event_logger = new WPBackItUp_Logger(false,null,'debug_events');
514
- $event_logger->log_info(__METHOD__ .'(' .$process_id .')', 'Begin');
515
 
516
  //Try Run Next Backup Tasks
517
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Try Run Backup Task');
518
 
519
  $this->backup_type='scheduled';
520
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_backup.php' );
521
 
522
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','End Try Run Backup Task');
523
 
524
  exit(0);
525
  }
@@ -531,16 +594,16 @@ class WPBackitup_Admin {
531
 
532
  $process_id = uniqid();
533
 
534
- $event_logger = new WPBackItUp_Logger(false,null,'debug_events');
535
- $event_logger->log_info(__METHOD__ .'(' .$process_id .')', 'Begin');
536
 
537
  //Try Run Next Backup Tasks
538
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Try Run cleanup Task');
539
 
540
  $this->backup_type='scheduled';
541
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_cleanup.php' );
542
 
543
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','End Try Run cleanup Task');
544
 
545
  exit;
546
  }
@@ -565,9 +628,8 @@ class WPBackitup_Admin {
565
  // Check permissions
566
  if (! self::is_authorized()) exit('Access denied.');
567
 
568
- $event_logger = new WPBackItUp_Logger(false,null,'debug_events');
569
-
570
- $event_logger->log_info(__METHOD__ ,'User Permissions: ' .current_user_can( 'manage_options' ));
571
 
572
  //Check permissions
573
  if ( current_user_can( 'manage_options' ) ) {
@@ -576,22 +638,22 @@ class WPBackitup_Admin {
576
  $process_id = uniqid();
577
 
578
 
579
- $event_logger->log_info(__METHOD__ .'(' .$process_id .')', 'Begin');
580
 
581
  //Try Run Next Backup Tasks
582
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Try Run Backup Task');
583
 
584
  $this->backup_type='manual';
585
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_backup.php' );
586
 
587
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','End Try Run Backup Task');
588
 
589
  //return status
590
  $log = WPBACKITUP__PLUGIN_PATH .'/logs/backup_status.log';
591
  if(file_exists($log) ) {
592
  //Probably should use the database instead now.
593
  readfile($log);
594
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Status sent to browser.');
595
  }
596
  }
597
 
@@ -608,30 +670,29 @@ class WPBackitup_Admin {
608
  // Check permissions
609
  if (! self::is_authorized()) exit('Access denied.');
610
 
611
- $event_logger = new WPBackItUp_Logger(false,null,'debug_events');
612
-
613
- $event_logger->log_info(__METHOD__ ,'User Permissions: ' .current_user_can( 'manage_options' ));
614
 
615
  //Check permissions
616
  if ( current_user_can( 'manage_options' ) ) {
617
  global $restore_job,$process_id;
618
  $process_id = uniqid();
619
 
620
- $event_logger->log_info(__METHOD__ .'(' .$process_id .')', 'Begin');
621
  $this->backup_type='manual';
622
 
623
  //Is there a restore job available and is it already running
624
  $restore_job = WPBackItUp_Job_v2::get_current_job('restore');
625
  if (false!==$restore_job && $restore_job->get_lock('restore-lock')) {
626
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Job Lock Acquired.');
627
 
628
  //Try Run Next Backup Tasks
629
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Try Run restore task');
630
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_restore.php' );
631
  $restore_job->release_lock();
632
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','End Try Run Backup Task');
633
  }else{
634
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Job Lock NOT Acquired.');
635
  }
636
 
637
  //return status
@@ -639,11 +700,11 @@ class WPBackitup_Admin {
639
  if(file_exists($log) ) {
640
  //Probably should use the database instead now.
641
  readfile($log);
642
- $event_logger->log_info(__METHOD__.'(' .$process_id .')','Status sent to browser.');
643
  }
644
  }
645
 
646
- $event_logger->log_info(__METHOD__ .'(' .$process_id .')', 'End');
647
  exit(0);
648
  }
649
 
@@ -679,7 +740,7 @@ class WPBackitup_Admin {
679
  readfile($log);
680
  }else{
681
  $rtnData = new stdClass();
682
- $rtnData->message = 'No response log found.';
683
  echo json_encode($rtnData);
684
  }
685
  exit;
@@ -690,15 +751,15 @@ class WPBackitup_Admin {
690
  // Check permissions
691
  if (! self::is_authorized()) exit('Access denied.');
692
 
693
- $logger = new WPBackItUp_Logger(true,null,'debug_delete');
694
 
695
  $backup_folder_name = str_replace('deleteRow', '', $_POST['filed']);
696
 
697
  $backup_folder_path = WPBACKITUP__BACKUP_PATH .'/' . $backup_folder_name;
698
  $DLT_backup_folder_path = WPBACKITUP__BACKUP_PATH .'/DLT_' . $backup_folder_name .'_' . current_time( 'timestamp' );
699
 
700
- $logger->log_info(__METHOD__,'From:'.$backup_folder_path );
701
- $logger->log_info(__METHOD__,'To:'.$DLT_backup_folder_path );
702
 
703
  //Mark the folder deleted so cleanup will handle
704
  if (file_exists ($backup_folder_path)){
@@ -707,13 +768,13 @@ class WPBackitup_Admin {
707
  include_once 'class-filesystem.php';
708
  }
709
 
710
- $file_system = new WPBackItUp_FileSystem($logger);
711
  if (! $file_system->rename_file($backup_folder_path,$DLT_backup_folder_path)){
712
- $logger->log_error(__METHOD__,'Folder was not renamed');
713
  exit('Backup NOT deleted');
714
  }
715
  }else{
716
- $logger->log_error(__METHOD__,'Folder not found:'. $backup_folder_path);
717
  }
718
 
719
  exit('deleted');
@@ -744,16 +805,16 @@ class WPBackitup_Admin {
744
  * note that rich text (or full HTML fields) should not be processed by this function and
745
  * dealt with directly.
746
  */
747
-
748
- $logger = new WPBackItUp_Logger(false);
749
- $logger->log("Posted Fields");
750
- $logger->log($_POST['data']); //License will not be in this array
751
 
752
  foreach( $_POST['data'] as $key => $val ) {
753
  $posted_value = $this->_sanitize($val);
754
  //If license updated then validate
755
  if (!empty($key) && $key=='license_key') {
756
- $logger->log('License Posted:' .$posted_value);
757
  $this->update_license_options($posted_value);
758
  }
759
  else {
@@ -801,22 +862,43 @@ class WPBackitup_Admin {
801
  if(!empty($data['notification_email']) && !is_email($data['notification_email']))
802
  {
803
  $data['notification_email'] = $this->defaults['notification_email'];
804
- set_transient('settings-error-email', __('Please enter a a valid email', $this->namespace), 60);
805
  }
806
 
807
 
808
- //** VALIDATE backup_batch_size **//
809
- if(empty($data['backup_batch_size']) || !is_numeric($data['backup_batch_size']))
810
  {
811
- $data['backup_batch_size'] = $this->defaults['backup_batch_size'];
812
  set_transient('batch_size_settings-error-number', __('Please enter a number', $this->namespace), 60);
813
  }
814
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
 
816
  // Update the options value with the data submitted
817
  foreach( $data as $key => $val ) {
818
  $this->set_option($key, $val);
819
- $logger->log('Updated Option: ' .$key .':' .$val);
820
  }
821
  }
822
 
@@ -832,16 +914,16 @@ class WPBackitup_Admin {
832
  */
833
  public function _admin_save_schedule() {
834
  // Verify submission for processing using wp_nonce
835
- $logger = new WPBackItUp_Logger(false);
836
 
837
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "{$this->namespace}-update-schedule" ) ) {
838
 
839
- $logger->log("Save Schedule");
840
- $logger->log($_POST);
841
 
842
  $val = $_POST['days_selected'];
843
  $days_selected = $this->_sanitize($val);
844
- $logger->log('Days Selected:' . $days_selected);
845
 
846
  //save option to DB even if empty
847
  $this->set_backup_schedule($days_selected);
@@ -865,15 +947,15 @@ class WPBackitup_Admin {
865
  // Verify submission for processing using wp_nonce
866
 
867
  $url= str_replace('&s=1','',$_REQUEST['_wp_http_referer']);
868
- $logger = new WPBackItUp_Logger(true,null,'debug_support');
869
- $logger->log_sysinfo();
870
- $logger->log_info(__METHOD__,'Send Support Request');
871
 
872
  $error=false;
873
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "{$this->namespace}-support-form" ) ) {
874
 
875
- $logger->log_info(__METHOD__,"Send support request");
876
- $logger->log_info(__METHOD__,$_POST);
877
 
878
  //save the email in place of transient
879
  $this->set_support_email($_POST['support_email']);
@@ -939,14 +1021,14 @@ class WPBackitup_Admin {
939
 
940
  //copy/replace WP debug file
941
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
942
- $logger->log_info(__METHOD__,"Copy WP Debug: " .$wpdebug_file_path);
943
  if (file_exists($wpdebug_file_path)) {
944
  copy( $wpdebug_file_path, $logs_path .'/wpdebug.log' );
945
  }
946
 
947
 
948
  $zip_file_path = $logs_path . '/logs_' . $support_request_id . '.zip';
949
- $zip = new WPBackItUp_Zip($logger,$zip_file_path);
950
  $zip->zip_files_in_folder($logs_path,$support_request_id,'*.log');
951
  $zip->close();
952
 
@@ -955,7 +1037,7 @@ class WPBackitup_Admin {
955
  }
956
 
957
  //Get registration name
958
- $utility = new WPBackItUp_Utility($logger);
959
  $support_to_address = WPBACKITUP__SUPPORT_EMAIL;
960
 
961
  //If we force registration then this will always be here.
@@ -1001,22 +1083,22 @@ class WPBackitup_Admin {
1001
  * dealt with directly.
1002
  */
1003
 
1004
- $logger = new WPBackItUp_Logger(false,null,'debug_registration');
1005
- $logger->log("Register WP BackItUp");
1006
- $logger->log($_POST);
1007
 
1008
  //First lets check the license
1009
  $val = $_POST['license_key'];
1010
  $license_key = $this->_sanitize($val);
1011
 
1012
  //activate the license if entered
1013
- $logger->log("Activate License");
1014
  $this->update_license_options($license_key);
1015
 
1016
  //LITE users only
1017
  if ($this->license_type()=='0') {
1018
 
1019
- $logger->log("Register WP BackItUp LITE");
1020
 
1021
  $val = $_POST['license_email'];
1022
  $license_email = $this->_sanitize( $val );
@@ -1042,9 +1124,9 @@ class WPBackitup_Admin {
1042
  $url = WPBACKITUP__SECURESITE_URL; //PRD
1043
  $post_url = $url . '/api/wpbackitup/register_lite';
1044
 
1045
- $logger->log( 'Lite User Registration Post URL: ' . $post_url );
1046
- $logger->log( 'Lite User Registration Post Form Data: ' );
1047
- $logger->log( $form_data );
1048
 
1049
  $response = wp_remote_post( $post_url, array(
1050
  'method' => 'POST',
@@ -1058,10 +1140,10 @@ class WPBackitup_Admin {
1058
 
1059
  if ( is_wp_error( $response ) ) {
1060
  $error_message = $response->get_error_message();
1061
- $logger->log( 'Lite User Registration Error: ' . $error_message );
1062
  } else {
1063
- $logger->log( 'Lite User Registered Successfully:' );
1064
- $logger->log( $response );
1065
  }
1066
 
1067
  }
@@ -1164,9 +1246,18 @@ class WPBackitup_Admin {
1164
  return $this->get('cleanup_lastrun_date');
1165
  }
1166
 
1167
- public function backup_batch_size(){
1168
- return $this->get('backup_batch_size');
1169
  }
 
 
 
 
 
 
 
 
 
1170
 
1171
 
1172
 
@@ -1393,10 +1484,22 @@ class WPBackitup_Admin {
1393
  $this->set('cleanup_lastrun_date', $value);
1394
  }
1395
 
1396
- public function set_backup_batch_size($value){
1397
- $this->set('backup_batch_size', $value);
1398
  }
1399
 
 
 
 
 
 
 
 
 
 
 
 
 
1400
  function set_support_email($value){
1401
  $this->set('support_email', $value);
1402
  }
@@ -1437,8 +1540,8 @@ class WPBackitup_Admin {
1437
  */
1438
  private function update_license_options($license)
1439
  {
1440
- $logger = new WPBackItUp_Logger(false,null,'debug_activation');
1441
- $logger->log('Update License Options:' .$license);
1442
 
1443
  $license=trim($license);
1444
 
@@ -1476,8 +1579,8 @@ class WPBackitup_Admin {
1476
  //'url' => home_url()
1477
  );
1478
 
1479
- $logger->log('Activate License Request Info:');
1480
- $logger->log($api_params);
1481
 
1482
  //try 30 secs when connected to web.
1483
  $response = wp_remote_get(
@@ -1487,21 +1590,21 @@ class WPBackitup_Admin {
1487
  'sslverify' => false
1488
  )
1489
  );
1490
- $logger->log('Validation Response:');
1491
- $logger->log($response);
1492
 
1493
  if ( is_wp_error( $response ) ){
1494
- $logger->log_error(__METHOD__,$response->get_error_message());
1495
  //update license last checked date and
1496
  $this->set_option('license_last_check_date', $data['license_last_check_date']);
1497
  return false; //Exit and don't update license
1498
  }else{
1499
- $logger->log_info(__METHOD__,'No request errors.');
1500
  }
1501
 
1502
- $license_data = json_decode( wp_remote_retrieve_body( $response ) );
1503
- $logger->log('License Object Info');
1504
- $logger->log($license_data);
1505
 
1506
  $data['license_key'] = $license;
1507
  $data['license_status'] = $license_data->license;
@@ -1539,25 +1642,25 @@ class WPBackitup_Admin {
1539
 
1540
  //EDD sends back expired in the error
1541
  if (($license_data->license=='invalid')) {
1542
- $data['license_status_message'] = 'License is invalid.';
1543
 
1544
  //EDD sends back expired in the error
1545
  if ($license_data->error == 'expired') {
1546
  $data['license_status'] = 'expired';
1547
- $data['license_status_message'] = 'License has expired.';
1548
- $logger->log( 'Expire License.' );
1549
  }
1550
 
1551
  if ( ( $license_data->error == 'no_activations_left' ) ) {
1552
- $data['license_status_message'] = 'Activation limit has been reached.';
1553
  }
1554
  }
1555
  }
1556
 
1557
- $logger->log('Updating License Options');
1558
  foreach($data as $key => $val ) {
1559
  $this->set_option($key, $val);
1560
- $logger->log('Updated Option: ' .$key .':' .$val);
1561
  }
1562
  return true;
1563
  }
@@ -1636,31 +1739,31 @@ class WPBackitup_Admin {
1636
 
1637
  public static function is_authorized(){
1638
 
1639
- $permission_logger = new WPBackItUp_Logger(false,null,'debug_permissions');
1640
- $permission_logger->log_info(__METHOD__ ,'Begin');
1641
 
1642
- $permission_logger->log_info(__METHOD__ ,'User Permissions: ' .current_user_can( 'manage_options' ));
1643
 
1644
  if (defined('DOING_CRON')) {
1645
- $permission_logger->log_info( __METHOD__, 'Doing CRON Constant: ' . DOING_CRON );
1646
  } else {
1647
- $permission_logger->log_info(__METHOD__ ,'DOING_CRON - NOT defined');
1648
  }
1649
 
1650
  if (defined('XMLRPC_REQUEST')) {
1651
- $permission_logger->log_info(__METHOD__ ,'XMLRPC_REQUEST Constant: ' .XMLRPC_REQUEST );
1652
  } else {
1653
- $permission_logger->log_info(__METHOD__ ,'XMLRPC_REQUEST - NOT defined ');
1654
  }
1655
 
1656
  //Check User Permissions or CRON
1657
  if (!current_user_can( 'manage_options' )
1658
  && (!defined('DOING_CRON') || !DOING_CRON)){
1659
- $permission_logger->log_info(__METHOD__ ,'End - NOT AUTHORIZED');
1660
  return false;
1661
  }
1662
 
1663
- $permission_logger->log_info(__METHOD__ ,'End - SUCCESS');
1664
  return true;
1665
  }
1666
 
@@ -1748,8 +1851,8 @@ class WPBackitup_Admin {
1748
  */
1749
  private function update_stats($license)
1750
  {
1751
- $logger = new WPBackItUp_Logger(true);
1752
- $logger->log('Update Stats:' .$license);
1753
 
1754
  $license=trim($license);
1755
 
@@ -1763,8 +1866,8 @@ class WPBackitup_Admin {
1763
 
1764
  $url = WPBACKITUP__SECURESITE_URL .'/stats-update-test';
1765
  $response = wp_remote_get( add_query_arg( $api_params, $url ), array( 'timeout' => 25, 'sslverify' => true ) );
1766
- $logger->log('Stats Response:');
1767
- $logger->log($response);
1768
 
1769
  if ( is_wp_error( $response ) )
1770
  return false; //Exit and don't update
@@ -1796,7 +1899,7 @@ class WPBackitup_Admin {
1796
  $utm_url .= '&utm_term=' .$term;
1797
  }
1798
 
1799
- $anchor = '<a href="'.$utm_url .'" target="_blank">' .$pretty .'</a>';
1800
  return $anchor;
1801
 
1802
  }
62
  'backup_schedule'=>"",
63
  'backup_lastrun_date'=>"-2147483648",
64
  'cleanup_lastrun_date'=>"-2147483648",
65
+ 'backup_plugins_batch_size'=>WPBACKITUP__PLUGINS_BATCH_SIZE,
66
+ 'backup_themes_batch_size'=>WPBACKITUP__THEMES_BATCH_SIZE,
67
+ 'backup_uploads_batch_size'=>WPBACKITUP__UPLOADS_BATCH_SIZE,
68
+ 'backup_others_batch_size'=>WPBACKITUP__OTHERS_BATCH_SIZE,
69
  'support_email' => "",
70
  );
71
 
121
  //Load the backup action
122
  add_action('wp_ajax_wp-backitup_backup', array( &$this, 'ajax_queue_backup' ));
123
 
124
+ //Load the cancel backup action
125
+ add_action('wp_ajax_wp-backitup_cancel_backup', array( &$this, 'ajax_queue_cancel_backup' ));
126
+
127
  //Load the restore action
128
  add_action('wp_ajax_wp-backitup_restore', array( &$this, 'ajax_queue_restore' ));
129
 
168
  add_menu_page( $this->friendly_name, $this->friendly_name, 'administrator', $this->namespace, array( &$this, 'admin_backup_page' ), WPBACKITUP__PLUGIN_URL .'/images/icon.png', 77);
169
 
170
  //Add Backup Menu Nav
171
+ add_submenu_page( $this->namespace, __('Backup', WPBACKITUP__NAMESPACE), __('Backup',WPBACKITUP__NAMESPACE), 'administrator', $this->namespace.'-backup', array( &$this, 'admin_backup_page' ) );
172
 
173
  //Add Restore Menu Nav IF licensed
174
  if ($this->license_type()!=0) {
175
+ add_submenu_page( $this->namespace, __('Restore', WPBACKITUP__NAMESPACE), __('Restore',WPBACKITUP__NAMESPACE), 'administrator', $this->namespace.'-restore', array( &$this, 'admin_restore_page' ) );
176
  }
177
 
178
  //Add Support Menu Nav
179
+ add_submenu_page( $this->namespace, __('Support', WPBACKITUP__NAMESPACE), __('Support',WPBACKITUP__NAMESPACE), 'administrator', $this->namespace.'-support', array( &$this, 'admin_support_page' ) );
180
 
181
  //Add Settings Menu Nav
182
+ add_submenu_page( $this->namespace, __('Settings', WPBACKITUP__NAMESPACE), __('Settings',WPBACKITUP__NAMESPACE), 'administrator', $this->namespace.'-settings', array( &$this, 'admin_settings_page' ) );
183
 
184
 
185
  if (WPBACKITUP__DEBUG===true){
198
 
199
  // Admin JavaScript
200
  wp_register_script( "{$this->namespace}-admin", WPBACKITUP__PLUGIN_URL . "js/wpbackitup_admin.js", array( 'jquery' ), $this->version, true );
201
+
202
+ wp_localize_script( "{$this->namespace}-admin", 'wpbackitup_local', array(
203
+ 'upload_file_size_exceed' => __( 'The backup you have selected exceeds what your host allows you to upload.', $this->namespace ),
204
+ 'warning' => __('Warning', $this->namespace),
205
+ 'error' => __('Error', $this->namespace),
206
+ 'response' => __('Response', $this->namespace),
207
+ 'status' => __('Status', $this->namespace),
208
+ 'download' => __('Download', $this->namespace),
209
+ 'delete' => __('Delete', $this->namespace),
210
+ 'restore' => __('Restore', $this->namespace),
211
+ 'unexpected_err' => __('(JS997) Unexpected error', $this->namespace),
212
+ 'unexpected_err2' => __('(JS998) Unexpected error', $this->namespace),
213
+ 'unexpected_err3' => __('(JS999) An unexpected error has occurred', $this->namespace),
214
+ 'scheduled_saved' => __('Scheduled has been saved.', $this->namespace),
215
+ 'scheduled_not_saved' => __('Scheduled was not saved.', $this->namespace),
216
+ 'confirm_restore' => __('Are you sure you want to restore your site?', $this->namespace),
217
+ 'sure' => __('Are you sure ?', $this->namespace),
218
+ 'file_not_del' => __('This file cannot be delete!', $this->namespace),
219
+ 'view_log' => __('View Log', $this->namespace),
220
+ 'new_backup' => __('New Backup!', $this->namespace),
221
+ 'uploaded_backup' => __('Uploaded Backup', $this->namespace),
222
+
223
+
224
+
225
+ ) );
226
+
227
+ wp_enqueue_script( "{$this->namespace}-admin" );
228
 
229
  // Admin Stylesheet
230
  wp_register_style( "{$this->namespace}-admin", WPBACKITUP__PLUGIN_URL . "css/wpbackitup_admin.css", array(), $this->version, 'screen' );
319
  if( isset( $_REQUEST['_wpnonce'] ) ) {
320
  $nonce = $_REQUEST['_wpnonce'];
321
 
322
+ $wpbdebug_logname='wpb_debug';
323
+ //WPBackItUp_LoggerV2::log_info($wpbdebug_logname,__METHOD__,'NONCE:' .$nonce);
324
 
325
  // Handle POST requests
326
  if( $is_post ) {
327
 
328
  if( wp_verify_nonce( $nonce, "{$this->namespace}-update-options" ) ) {
329
+ WPBackItUp_LoggerV2::log_info($wpbdebug_logname,__METHOD__,'Update Options Form Post');
330
  $this->_admin_options_update();
331
  }
332
 
333
  if( wp_verify_nonce( $nonce, "{$this->namespace}-register" ) ) {
334
+ WPBackItUp_LoggerV2::log_info($wpbdebug_logname,__METHOD__,'Register Lite Form Post');
335
  $this->_admin_register();
336
  }
337
 
338
  if( wp_verify_nonce( $nonce, "{$this->namespace}-update-schedule" ) ) {
339
+ WPBackItUp_LoggerV2::log_info($wpbdebug_logname,__METHOD__,'Update Schedule Form Post');
340
 
341
  $jsonResponse = new stdClass();
342
  if ($this->_admin_save_schedule()){
350
  }
351
 
352
  if( wp_verify_nonce( $nonce, "{$this->namespace}-support-form" ) ) {
353
+ WPBackItUp_LoggerV2::log_info($wpbdebug_logname,__METHOD__,'Support Form Post');
354
  $this->_admin_send_support_request();
355
  }
356
 
363
  }
364
 
365
  public function initialize(){
366
+ require_once( WPBACKITUP__PLUGIN_PATH . '/lib/includes/class-logger.php' );
367
+ require_once( WPBACKITUP__PLUGIN_PATH . '/lib/includes/class-loggerV2.php' );
368
+ require_once( WPBACKITUP__PLUGIN_PATH . '/lib/includes/class-job-v2.php' );
369
+
370
+ $languages_path = dirname(dirname(dirname( plugin_basename( __FILE__ )))) . '/languages/';
371
 
372
+ load_plugin_textdomain(
373
+ $this->namespace,
374
+ false,
375
+ $languages_path
376
+ );
377
  }
378
 
379
  public function wpbackitup_queue_scheduled_jobs(){
380
+ $scheduled_jobs_logname = 'debug_scheduled_jobs';
381
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Begin');
 
382
 
383
  // Check permissions
384
  if (! self::is_authorized()) exit('Access denied.');
401
  wp_schedule_single_event( time(), 'wpbackitup_run_backup_tasks' );
402
  }
403
 
404
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Backup Job already Queued');
405
  exit;
406
  }
407
 
412
  wp_schedule_single_event( time(), 'wpbackitup_run_cleanup_tasks' );
413
  }
414
 
415
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Cleanup job already Queued');
416
  exit;
417
  }
418
 
419
  //If any jobs are queued or active then just exit
420
  if (WPBackItUp_Job::is_job_queued('restore')) {
421
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Restore Job already Queued');
422
  exit;
423
  }
424
 
425
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'No jobs already queued.');
426
 
427
  //Is it time for a backup?
428
  //Check scheduler and queue tasks that need to be run
436
  wp_schedule_single_event( time(), 'wpbackitup_run_backup_tasks' );
437
  }
438
 
439
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Backup job queued to run.');
440
  exit( 0 ); //success - don't schedule anything else
441
  }
442
 
451
  wp_schedule_single_event( time(), 'wpbackitup_run_cleanup_tasks' );
452
  }
453
 
454
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'Cleanup job queued to run.');
455
  exit( 0 ); //success - don't schedule anything else
456
  }
457
 
458
 
459
+ WPBackItUp_LoggerV2::log_info($scheduled_jobs_logname,__METHOD__,'No jobs scheduled to run.');
460
  exit(0); //success nothing to schedule
461
  }
462
 
465
  // Check permissions
466
  if (! self::is_authorized()) exit('Access denied.');
467
 
468
+ $events_logname='debug_events';
469
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'Begin');
470
 
471
  //Include Job class
472
  if( !class_exists( 'WPBackItUp_Job' ) ) {
477
  //If no backup queued already then queue one
478
  if (!WPBackItUp_Job::is_job_queued('backup')){
479
  if (WPBackItUp_Job::queue_job('backup')){
480
+ $rtnData->message = __('Backup Queued', WPBACKITUP__NAMESPACE);
481
  }else {
482
+ $rtnData->message = __('Backup could not be queued', WPBACKITUP__NAMESPACE);
483
  }
484
  }else{
485
+ $rtnData->message = __('Backup already in queue', WPBACKITUP__NAMESPACE);
486
  }
487
 
488
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'RtnData:' .$rtnData->message);
489
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'End');
490
  echo json_encode($rtnData);
491
  exit;
492
  }
493
 
494
+ //Run queue cancel backup backup
495
+ public function ajax_queue_cancel_backup() {
496
+ // Check permissions
497
+ if (! self::is_authorized()) exit('Access denied.');
498
+
499
+ $events_logname='debug_events';
500
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'Begin');
501
+
502
+ $rtnData = new stdClass();
503
+ // Cancel all backup
504
+ WPBackItUp_Job_v2::cancel_all_jobs('backup');
505
+ // Set status for ui
506
+ include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_backup_cancelled.php' );
507
+
508
+ $rtnData->message = __('Backup Cancelled', WPBACKITUP__NAMESPACE);
509
+
510
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'RtnData:' .$rtnData->message);
511
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'End');
512
+ echo json_encode($rtnData);
513
+ exit;
514
+ }
515
+
516
  //Run queue manual restore
517
  public function ajax_queue_restore() {
518
  $rtnData = new stdClass();
520
  // Check permissions
521
  if (! self::is_authorized()) exit('Access denied.');
522
 
523
+ $events_logname='debug_events';
524
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'Begin');
525
 
526
  //Include Job class
527
  if( !class_exists( 'WPBackItUp_Job' ) ) {
532
  //Get posted values
533
  $backup_file_name = $_POST['selected_file'];//Get the backup file name
534
  if( empty($backup_file_name)) {
535
+ $rtnData->message = __('No backup file selected.', WPBACKITUP__NAMESPACE);
536
  $validation_error=true;
537
  }
538
 
539
  //Get user ID - GET ThIS FROM POST ID
540
  $user_id = $_POST['user_id'];
541
  if( empty($user_id)) {
542
+ $rtnData->message = __('No user id found.', WPBACKITUP__NAMESPACE);
543
  $validation_error=true;
544
  }
545
 
550
  if ($job!== false){
551
  $job->update_job_meta('backup_name',$backup_file_name);
552
  $job->update_job_meta('user_id',$user_id);
553
+ $rtnData->message = __('Restore Queued', WPBACKITUP__NAMESPACE);
554
  }else {
555
+ $rtnData->message = __('Restore could not be queued', WPBACKITUP__NAMESPACE);
556
  }
557
  }else{
558
+ $rtnData->message = __('Restore already in queue', WPBACKITUP__NAMESPACE);
559
  }
560
  }
561
 
562
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'RtnData:' .$rtnData->message);
563
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__,'End');
564
  echo json_encode($rtnData);
565
  exit;
566
  }
573
 
574
  $process_id = uniqid();
575
 
576
+ $events_logname = 'debug_events';
577
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Begin');
578
 
579
  //Try Run Next Backup Tasks
580
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Try Run Backup Task');
581
 
582
  $this->backup_type='scheduled';
583
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_backup.php' );
584
 
585
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'End Try Run Backup Task');
586
 
587
  exit(0);
588
  }
594
 
595
  $process_id = uniqid();
596
 
597
+ $events_logname='debug_events';
598
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Begin');
599
 
600
  //Try Run Next Backup Tasks
601
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Try Run cleanup Task');
602
 
603
  $this->backup_type='scheduled';
604
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_cleanup.php' );
605
 
606
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'End Try Run cleanup Task');
607
 
608
  exit;
609
  }
628
  // Check permissions
629
  if (! self::is_authorized()) exit('Access denied.');
630
 
631
+ $events_logname='debug_events';
632
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__, 'User Permissions: ' .current_user_can( 'manage_options' ));
 
633
 
634
  //Check permissions
635
  if ( current_user_can( 'manage_options' ) ) {
638
  $process_id = uniqid();
639
 
640
 
641
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Begin');
642
 
643
  //Try Run Next Backup Tasks
644
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Try Run Backup Task');
645
 
646
  $this->backup_type='manual';
647
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_backup.php' );
648
 
649
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'End Try Run Backup Task');
650
 
651
  //return status
652
  $log = WPBACKITUP__PLUGIN_PATH .'/logs/backup_status.log';
653
  if(file_exists($log) ) {
654
  //Probably should use the database instead now.
655
  readfile($log);
656
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Status sent to browser.');
657
  }
658
  }
659
 
670
  // Check permissions
671
  if (! self::is_authorized()) exit('Access denied.');
672
 
673
+ $events_logname='debug_events';
674
+ WPBackItUp_LoggerV2::log_info($events_logname,__METHOD__, 'User Permissions: ' .current_user_can( 'manage_options' ));
 
675
 
676
  //Check permissions
677
  if ( current_user_can( 'manage_options' ) ) {
678
  global $restore_job,$process_id;
679
  $process_id = uniqid();
680
 
681
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Begin');
682
  $this->backup_type='manual';
683
 
684
  //Is there a restore job available and is it already running
685
  $restore_job = WPBackItUp_Job_v2::get_current_job('restore');
686
  if (false!==$restore_job && $restore_job->get_lock('restore-lock')) {
687
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Job Lock Acquired.');
688
 
689
  //Try Run Next Backup Tasks
690
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Try Run restore task');
691
  include_once( WPBACKITUP__PLUGIN_PATH.'/lib/includes/job_restore.php' );
692
  $restore_job->release_lock();
693
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'End Try Run Backup Task');
694
  }else{
695
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Job Lock NOT Acquired.');
696
  }
697
 
698
  //return status
700
  if(file_exists($log) ) {
701
  //Probably should use the database instead now.
702
  readfile($log);
703
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'Status sent to browser.');
704
  }
705
  }
706
 
707
+ WPBackItUp_LoggerV2::log_info($events_logname,$process_id, 'End');
708
  exit(0);
709
  }
710
 
740
  readfile($log);
741
  }else{
742
  $rtnData = new stdClass();
743
+ $rtnData->message = __('No response log found.', WPBACKITUP__NAMESPACE);
744
  echo json_encode($rtnData);
745
  }
746
  exit;
751
  // Check permissions
752
  if (! self::is_authorized()) exit('Access denied.');
753
 
754
+ $delete_logname='debug_delete';
755
 
756
  $backup_folder_name = str_replace('deleteRow', '', $_POST['filed']);
757
 
758
  $backup_folder_path = WPBACKITUP__BACKUP_PATH .'/' . $backup_folder_name;
759
  $DLT_backup_folder_path = WPBACKITUP__BACKUP_PATH .'/DLT_' . $backup_folder_name .'_' . current_time( 'timestamp' );
760
 
761
+ WPBackItUp_LoggerV2::log_info($delete_logname,__METHOD__, 'From:'.$backup_folder_path );
762
+ WPBackItUp_LoggerV2::log_info($delete_logname,__METHOD__, 'To:'.$DLT_backup_folder_path );
763
 
764
  //Mark the folder deleted so cleanup will handle
765
  if (file_exists ($backup_folder_path)){
768
  include_once 'class-filesystem.php';
769
  }
770
 
771
+ $file_system = new WPBackItUp_FileSystem($delete_logname);
772
  if (! $file_system->rename_file($backup_folder_path,$DLT_backup_folder_path)){
773
+ WPBackItUp_LoggerV2::log_error($delete_logname,__METHOD__, 'Folder was not renamed');
774
  exit('Backup NOT deleted');
775
  }
776
  }else{
777
+ WPBackItUp_LoggerV2::log_error($delete_logname,__METHOD__, 'Folder not found:'. $backup_folder_path);
778
  }
779
 
780
  exit('deleted');
805
  * note that rich text (or full HTML fields) should not be processed by this function and
806
  * dealt with directly.
807
  */
808
+
809
+ $debug_logname='wpb_debug';
810
+ WPBackItUp_LoggerV2::log_info($debug_logname,__METHOD__, 'Posted Fields');
811
+ WPBackItUp_LoggerV2::log($debug_logname, $_POST['data']); //License will not be in this array
812
 
813
  foreach( $_POST['data'] as $key => $val ) {
814
  $posted_value = $this->_sanitize($val);
815
  //If license updated then validate
816
  if (!empty($key) && $key=='license_key') {
817
+ WPBackItUp_LoggerV2::log_info($debug_logname,__METHOD__, 'License Posted:' .$posted_value);
818
  $this->update_license_options($posted_value);
819
  }
820
  else {
862
  if(!empty($data['notification_email']) && !is_email($data['notification_email']))
863
  {
864
  $data['notification_email'] = $this->defaults['notification_email'];
865
+ set_transient('settings-error-email', __('Please enter a valid email', $this->namespace), 60);
866
  }
867
 
868
 
869
+ //** VALIDATE backup_plugins_batch_size **//
870
+ if(empty($data['backup_plugins_batch_size']) || !is_numeric($data['backup_plugins_batch_size']))
871
  {
872
+ $data['backup_plugins_batch_size'] = $this->defaults['backup_plugins_batch_size'];
873
  set_transient('batch_size_settings-error-number', __('Please enter a number', $this->namespace), 60);
874
  }
875
 
876
+ //** VALIDATE backup_themes_batch_size **//
877
+ if(empty($data['backup_themes_batch_size']) || !is_numeric($data['backup_themes_batch_size']))
878
+ {
879
+ $data['backup_themes_batch_size'] = $this->defaults['backup_themes_batch_size'];
880
+ set_transient('batch_size_settings-error-number', __('Please enter a number', $this->namespace), 60);
881
+ }
882
+
883
+ //** VALIDATE backup_uploads_batch_size **//
884
+ if(empty($data['backup_uploads_batch_size']) || !is_numeric($data['backup_uploads_batch_size']))
885
+ {
886
+ $data['backup_uploads_batch_size'] = $this->defaults['backup_uploads_batch_size'];
887
+ set_transient('batch_size_settings-error-number', __('Please enter a number', $this->namespace), 60);
888
+ }
889
+
890
+ //** VALIDATE backup_others_batch_size **//
891
+ if(empty($data['backup_others_batch_size']) || !is_numeric($data['backup_others_batch_size']))
892
+ {
893
+ $data['backup_others_batch_size'] = $this->defaults['backup_others_batch_size'];
894
+ set_transient('batch_size_settings-error-number', __('Please enter a number', $this->namespace), 60);
895
+ }
896
+
897
 
898
  // Update the options value with the data submitted
899
  foreach( $data as $key => $val ) {
900
  $this->set_option($key, $val);
901
+ WPBackItUp_LoggerV2::log_info($debug_logname,__METHOD__, 'Updated Option: ' .$key .':' .$val);
902
  }
903
  }
904
 
914
  */
915
  public function _admin_save_schedule() {
916
  // Verify submission for processing using wp_nonce
917
+ $debug_logname='wpb_debug';
918
 
919
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "{$this->namespace}-update-schedule" ) ) {
920
 
921
+ WPBackItUp_LoggerV2::log_info($debug_logname,__METHOD__, 'Save Schedule');
922
+ WPBackItUp_LoggerV2::log($debug_logname,$_POST);
923
 
924
  $val = $_POST['days_selected'];
925
  $days_selected = $this->_sanitize($val);
926
+ WPBackItUp_LoggerV2::log_info($debug_logname,__METHOD__, 'Days Selected:' . $days_selected);
927
 
928
  //save option to DB even if empty
929
  $this->set_backup_schedule($days_selected);
947
  // Verify submission for processing using wp_nonce
948
 
949
  $url= str_replace('&s=1','',$_REQUEST['_wp_http_referer']);
950
+ $support_logname='debug_support';
951
+ WPBackItUp_LoggerV2::log_sysinfo($support_logname);
952
+ WPBackItUp_LoggerV2::log_info($support_logname,__METHOD__, 'Send Support Request');
953
 
954
  $error=false;
955
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "{$this->namespace}-support-form" ) ) {
956
 
957
+ WPBackItUp_LoggerV2::log_info($support_logname,__METHOD__, 'Send support request');
958
+ WPBackItUp_LoggerV2::log($support_logname, $_POST);
959
 
960
  //save the email in place of transient
961
  $this->set_support_email($_POST['support_email']);
1021
 
1022
  //copy/replace WP debug file
1023
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
1024
+ WPBackItUp_LoggerV2::log_info($support_logname,__METHOD__, 'Copy WP Debug: ' .$wpdebug_file_path);
1025
  if (file_exists($wpdebug_file_path)) {
1026
  copy( $wpdebug_file_path, $logs_path .'/wpdebug.log' );
1027
  }
1028
 
1029
 
1030
  $zip_file_path = $logs_path . '/logs_' . $support_request_id . '.zip';
1031
+ $zip = new WPBackItUp_Zip($support_logname,$zip_file_path);
1032
  $zip->zip_files_in_folder($logs_path,$support_request_id,'*.log');
1033
  $zip->close();
1034
 
1037
  }
1038
 
1039
  //Get registration name
1040
+ $utility = new WPBackItUp_Utility($support_logname);
1041
  $support_to_address = WPBACKITUP__SUPPORT_EMAIL;
1042
 
1043
  //If we force registration then this will always be here.
1083
  * dealt with directly.
1084
  */
1085
 
1086
+ $registration_logname='debug_registration';
1087
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Register WP BackItUp');
1088
+ WPBackItUp_LoggerV2::log($registration_logname,$_POST);
1089
 
1090
  //First lets check the license
1091
  $val = $_POST['license_key'];
1092
  $license_key = $this->_sanitize($val);
1093
 
1094
  //activate the license if entered
1095
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Activate License');
1096
  $this->update_license_options($license_key);
1097
 
1098
  //LITE users only
1099
  if ($this->license_type()=='0') {
1100
 
1101
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Register WP BackItUp LITE');
1102
 
1103
  $val = $_POST['license_email'];
1104
  $license_email = $this->_sanitize( $val );
1124
  $url = WPBACKITUP__SECURESITE_URL; //PRD
1125
  $post_url = $url . '/api/wpbackitup/register_lite';
1126
 
1127
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Lite User Registration Post URL: ' . $post_url );
1128
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Lite User Registration Post Form Data: ' );
1129
+ WPBackItUp_LoggerV2::log($registration_logname,$form_data );
1130
 
1131
  $response = wp_remote_post( $post_url, array(
1132
  'method' => 'POST',
1140
 
1141
  if ( is_wp_error( $response ) ) {
1142
  $error_message = $response->get_error_message();
1143
+ WPBackItUp_LoggerV2::log_error($registration_logname,__METHOD__, 'Lite User Registration Error: ' . $error_message );
1144
  } else {
1145
+ WPBackItUp_LoggerV2::log_info($registration_logname,__METHOD__, 'Lite User Registered Successfully:' );
1146
+ WPBackItUp_LoggerV2::log($registration_logname,$response );
1147
  }
1148
 
1149
  }
1246
  return $this->get('cleanup_lastrun_date');
1247
  }
1248
 
1249
+ public function backup_plugins_batch_size(){
1250
+ return $this->get('backup_plugins_batch_size');
1251
  }
1252
+ public function backup_themes_batch_size(){
1253
+ return $this->get('backup_themes_batch_size');
1254
+ }
1255
+ public function backup_uploads_batch_size(){
1256
+ return $this->get('backup_uploads_batch_size');
1257
+ }
1258
+ public function backup_others_batch_size(){
1259
+ return $this->get('backup_others_batch_size');
1260
+ }
1261
 
1262
 
1263
 
1484
  $this->set('cleanup_lastrun_date', $value);
1485
  }
1486
 
1487
+ public function set_backup_plugins_batch_size($value){
1488
+ $this->set('plugins_batch_size', $value);
1489
  }
1490
 
1491
+ public function set_backup_themes_batch_size($value){
1492
+ $this->set('backup_themes_batch_size', $value);
1493
+ }
1494
+
1495
+ public function set_backup_uploads_batch_size($value){
1496
+ $this->set('backup_uploads_batch_size', $value);
1497
+ }
1498
+
1499
+ public function set_backup_others_batch_size($value){
1500
+ $this->set('backup_others_batch_size', $value);
1501
+ }
1502
+
1503
  function set_support_email($value){
1504
  $this->set('support_email', $value);
1505
  }
1540
  */
1541
  private function update_license_options($license)
1542
  {
1543
+ $activation_logname='debug_activation';
1544
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Update License Options:' .$license);
1545
 
1546
  $license=trim($license);
1547
 
1579
  //'url' => home_url()
1580
  );
1581
 
1582
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Activate License Request Info:');
1583
+ WPBackItUp_LoggerV2::log($activation_logname,$api_params);
1584
 
1585
  //try 30 secs when connected to web.
1586
  $response = wp_remote_get(
1590
  'sslverify' => false
1591
  )
1592
  );
1593
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Validation Response:');
1594
+ WPBackItUp_LoggerV2::log($activation_logname,$response);
1595
 
1596
  if ( is_wp_error( $response ) ){
1597
+ WPBackItUp_LoggerV2::log_error($activation_logname,__METHOD__, 'Error Message:' .$response->get_error_message());
1598
  //update license last checked date and
1599
  $this->set_option('license_last_check_date', $data['license_last_check_date']);
1600
  return false; //Exit and don't update license
1601
  }else{
1602
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'No request errors.');
1603
  }
1604
 
1605
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
1606
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'License Object Info');
1607
+ WPBackItUp_LoggerV2::log($activation_logname,$license_data);
1608
 
1609
  $data['license_key'] = $license;
1610
  $data['license_status'] = $license_data->license;
1642
 
1643
  //EDD sends back expired in the error
1644
  if (($license_data->license=='invalid')) {
1645
+ $data['license_status_message'] = __('License is invalid.', WPBACKITUP__NAMESPACE);
1646
 
1647
  //EDD sends back expired in the error
1648
  if ($license_data->error == 'expired') {
1649
  $data['license_status'] = 'expired';
1650
+ $data['license_status_message'] = __('License has expired.', WPBACKITUP__NAMESPACE);
1651
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Expire License.' );
1652
  }
1653
 
1654
  if ( ( $license_data->error == 'no_activations_left' ) ) {
1655
+ $data['license_status_message'] = __('Activation limit has been reached.', WPBACKITUP__NAMESPACE);
1656
  }
1657
  }
1658
  }
1659
 
1660
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Updating License Options');
1661
  foreach($data as $key => $val ) {
1662
  $this->set_option($key, $val);
1663
+ WPBackItUp_LoggerV2::log_info($activation_logname,__METHOD__, 'Updated Option: ' .$key .':' .$val);
1664
  }
1665
  return true;
1666
  }
1739
 
1740
  public static function is_authorized(){
1741
 
1742
+ $permission_logname='debug_permissions';
1743
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'Begin');
1744
 
1745
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'User Permissions: ' .current_user_can( 'manage_options' ));
1746
 
1747
  if (defined('DOING_CRON')) {
1748
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'Doing CRON Constant: ' . DOING_CRON );
1749
  } else {
1750
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'DOING_CRON - NOT defined');
1751
  }
1752
 
1753
  if (defined('XMLRPC_REQUEST')) {
1754
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'XMLRPC_REQUEST Constant: ' .XMLRPC_REQUEST );
1755
  } else {
1756
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'XMLRPC_REQUEST - NOT defined ');
1757
  }
1758
 
1759
  //Check User Permissions or CRON
1760
  if (!current_user_can( 'manage_options' )
1761
  && (!defined('DOING_CRON') || !DOING_CRON)){
1762
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'End - NOT AUTHORIZED');
1763
  return false;
1764
  }
1765
 
1766
+ WPBackItUp_LoggerV2::log_info($permission_logname,__METHOD__, 'End - SUCCESS');
1767
  return true;
1768
  }
1769
 
1851
  */
1852
  private function update_stats($license)
1853
  {
1854
+ $wpdebug_logname='wpb_debug';
1855
+ WPBackItUp_LoggerV2::log_info($wpdebug_logname,__METHOD__, 'Update Stats:' .$license);
1856
 
1857
  $license=trim($license);
1858
 
1866
 
1867
  $url = WPBACKITUP__SECURESITE_URL .'/stats-update-test';
1868
  $response = wp_remote_get( add_query_arg( $api_params, $url ), array( 'timeout' => 25, 'sslverify' => true ) );
1869
+ WPBackItUp_LoggerV2::log_info($wpdebug_logname,__METHOD__, 'Stats Response:');
1870
+ WPBackItUp_LoggerV2::log($wpdebug_logname,$response);
1871
 
1872
  if ( is_wp_error( $response ) )
1873
  return false; //Exit and don't update
1899
  $utm_url .= '&utm_term=' .$term;
1900
  }
1901
 
1902
+ $anchor = sprintf('<a href="'.$utm_url .'" target="_blank">%s</a>',$pretty);
1903
  return $anchor;
1904
 
1905
  }
lib/includes/class-zip.php CHANGED
@@ -1 +1 @@
1
- <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
  * WP BackItUp - Zip Class
3
  *
4
  * @package WP BackItUp
5
  * @author Chris Simmons <chris.simmons@wpbackitup.com>
6
  * @link http://www.wpbackitup.com
7
  *
8
  */
9
  private $zip_file_count;
10
  $this->zip_file_count=0;
11
  }
 
12
  * WP BackItUp - Zip Class
13
  *
14
  * @package WP BackItUp
15
  * @author Chris Simmons <chris.simmons@wpbackitup.com>
16
  * @link http://www.wpbackitup.com
17
  *
18
  */
19
  private $zip_file_count;
20
  }
 
1
  * WP BackItUp - Zip Class
2
  *
3
  * @package WP BackItUp
4
  * @author Chris Simmons <chris.simmons@wpbackitup.com>
5
  * @link http://www.wpbackitup.com
6
  *
7
  */
8
  private $zip_file_count;
9
  $this->zip_file_count=0;
10
  }
11
+ <?php if (!defined ('ABSPATH')) die('No direct access allowed');
12
  * WP BackItUp - Zip Class
13
  *
14
  * @package WP BackItUp
15
  * @author Chris Simmons <chris.simmons@wpbackitup.com>
16
  * @link http://www.wpbackitup.com
17
  *
18
  */
19
  private $zip_file_count;
20
  }
lib/includes/handler_download.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (viewlog)');
2
- @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
 
 
 
 
 
 
3
 
4
  /**
5
  * WP BackItUp - Download handler
@@ -16,17 +22,15 @@ while (@ob_end_clean());
16
  // required for IE, otherwise Content-disposition is ignored
17
  //@apache_setenv('no-gzip', 1); //Causes failure on siteground...research
18
  @ini_set('zlib.output_compression', 'Off');
 
19
 
20
- global $logger;
21
- $logger = new WPBackItUp_Logger(true,null,'debug_download');
22
-
23
- $logger->log_info(__METHOD__,$_REQUEST);
24
 
25
  if ( isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce'])
26
  && isset($_REQUEST['backup_file']) && !empty($_REQUEST['backup_file']) ) {
27
 
28
  if ( wp_verify_nonce( $_REQUEST['_wpnonce'], WPBACKITUP__NAMESPACE . '-download_backup' ) ) {
29
- $logger->log_info( __METHOD__, 'nonce verified' );
30
 
31
  //strip off the suffix IF one exists
32
  $folder_name = rtrim( $_REQUEST['backup_file'], '.zip' );;
@@ -57,7 +61,7 @@ if ( isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce'])
57
 
58
  $backup_filename = $_REQUEST['backup_file'];
59
  $backup_path = WPBACKITUP__BACKUP_PATH . '/' . $folder_name . '/' . $backup_filename;
60
- $logger->log_info( __METHOD__, 'Backup file path:' . $backup_path );
61
 
62
  if ( !empty($backup_filename) && file_exists( $backup_path ) ) {
63
  $file_name=basename( $backup_path );
@@ -69,7 +73,7 @@ if ( isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce'])
69
  if ($handle !== false) {
70
  //Have the headers already been sent for some reason
71
  if (headers_sent()) {
72
- $logger->log_error( __METHOD__, 'Headers already sent.' );
73
  }
74
 
75
  //Output Headers
@@ -92,20 +96,20 @@ if ( isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce'])
92
  }
93
 
94
  fclose($handle);
95
- $logger->log_info( __METHOD__, 'Download complete' );
96
  exit();
97
 
98
  } else {
99
- $logger->log_error( __METHOD__, 'File Not found' );
100
  }
101
  } else {
102
- $logger->log_error( __METHOD__, 'Backup file doesnt exist:' . $backup_path );
103
  }
104
  } else {
105
- $logger->log_error( __METHOD__, 'Bad Nonce');
106
  }
107
  } else {
108
- $logger->log_error( __METHOD__, 'Form data missing');
109
  }
110
 
111
  //Return empty file
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (viewlog)');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
 
10
  /**
11
  * WP BackItUp - Download handler
22
  // required for IE, otherwise Content-disposition is ignored
23
  //@apache_setenv('no-gzip', 1); //Causes failure on siteground...research
24
  @ini_set('zlib.output_compression', 'Off');
25
+ $download_logname='debug_download';
26
 
27
+ WPBackItUp_LoggerV2::log($download_logname,$_REQUEST);
 
 
 
28
 
29
  if ( isset($_REQUEST['_wpnonce']) && !empty($_REQUEST['_wpnonce'])
30
  && isset($_REQUEST['backup_file']) && !empty($_REQUEST['backup_file']) ) {
31
 
32
  if ( wp_verify_nonce( $_REQUEST['_wpnonce'], WPBACKITUP__NAMESPACE . '-download_backup' ) ) {
33
+ WPBackItUp_LoggerV2::log_info($download_logname,__METHOD__,'nonce verified' );
34
 
35
  //strip off the suffix IF one exists
36
  $folder_name = rtrim( $_REQUEST['backup_file'], '.zip' );;
61
 
62
  $backup_filename = $_REQUEST['backup_file'];
63
  $backup_path = WPBACKITUP__BACKUP_PATH . '/' . $folder_name . '/' . $backup_filename;
64
+ WPBackItUp_LoggerV2::log_info($download_logname,__METHOD__,'Backup file path:' . $backup_path );
65
 
66
  if ( !empty($backup_filename) && file_exists( $backup_path ) ) {
67
  $file_name=basename( $backup_path );
73
  if ($handle !== false) {
74
  //Have the headers already been sent for some reason
75
  if (headers_sent()) {
76
+ WPBackItUp_LoggerV2::log_error($download_logname,__METHOD__,'Headers already sent.' );
77
  }
78
 
79
  //Output Headers
96
  }
97
 
98
  fclose($handle);
99
+ WPBackItUp_LoggerV2::log_info($download_logname,__METHOD__,'Download complete' );
100
  exit();
101
 
102
  } else {
103
+ WPBackItUp_LoggerV2::log_error($download_logname,__METHOD__,'File Not found' );
104
  }
105
  } else {
106
+ WPBackItUp_LoggerV2::log_error($download_logname,__METHOD__,'Backup file doesnt exist:' . $backup_path );
107
  }
108
  } else {
109
+ WPBackItUp_LoggerV2::log_error($download_logname,__METHOD__,'Bad Nonce');
110
  }
111
  } else {
112
+ WPBackItUp_LoggerV2::log_error($download_logname,__METHOD__,'Form data missing');
113
  }
114
 
115
  //Return empty file
lib/includes/handler_upload.php CHANGED
@@ -13,20 +13,19 @@
13
 
14
 
15
  /*** Globals ***/
16
- global $logger;
17
- $logger = new WPBackItUp_Logger(false,null,'debug_upload');
18
  $backup_folder_root = WPBACKITUP__BACKUP_PATH .'/';
19
 
20
  //*****************//
21
  //*** MAIN CODE ***//
22
  //*****************//
23
- $logger->log('***BEGIN UPLOAD***');
24
- $logger->log($_POST);
25
 
26
 
27
  //verify nonce
28
  if ( !wp_verify_nonce($_REQUEST['_wpnonce'],WPBACKITUP__NAMESPACE .'-upload')) {
29
- $logger->log_error(__METHOD__,'Invalid Nonce');
30
  echo json_encode( array( 'error' => sprintf( __( 'Invalid Nonce',WPBACKITUP__NAMESPACE ) ) ) );
31
  exit;
32
 
@@ -36,7 +35,7 @@
36
  $upload_path = WPBACKITUP__UPLOAD_PATH;
37
  if ( !is_dir( $upload_path ) ){
38
  if ( ! mkdir( $upload_path, 0755 )){
39
- $logger->log_error(__METHOD__,'Upload directory is not writable, or does not exist.');
40
  echo json_encode( array( 'error' => sprintf( __( "Upload directory is not writable, or does not exist.", WPBACKITUP__NAMESPACE ) ) ) );
41
  exit;
42
  }
@@ -65,7 +64,7 @@
65
  remove_filter( 'sanitize_file_name', array( $this, 'sanitize_file_name' ) );
66
 
67
  if ( isset( $status['error'] ) ) {
68
- $logger->log_error(__METHOD__,$status['error']);
69
  echo json_encode( array( 'error' => $status['error'] ) );
70
  exit;
71
  }
@@ -77,8 +76,8 @@
77
  $to_file_path = $upload_path . '/' . $zip_file_name . '_' . $chunk_id . '.zip.tmp';
78
  if ( ! rename( $from_file_path, $to_file_path ) ) {
79
  @unlink( $from_file_path );
80
- $logger->log_error(__METHOD__,'Cant rename file.');
81
- echo json_encode( array( 'error' => sprintf( __( 'Error: %s', 'wpbackitup' ), __( 'File could not be uploaded', 'wpbackitup' ) ) ) );
82
  exit;
83
  }
84
 
@@ -138,7 +137,7 @@
138
 
139
  //Is this a BackItUp archive
140
  if ( empty( $folder_name ) || empty( $suffix ) || 'Backup' != $prefix ) {
141
- $logger->log_error(__METHOD__,'Upload does not appear to be a WP BackItUp backup archive');
142
  echo json_encode( array( 'error' => sprintf( __( "Upload does not appear to be a WP BackItUp backup archive file.",WPBACKITUP__NAMESPACE ) ) ) );
143
  unlink( $zip_file_path );//get rid of it
144
  exit;
@@ -148,7 +147,7 @@
148
  $backup_archive_folder = WPBACKITUP__BACKUP_PATH . '/' . $folder_name;
149
  if ( ! is_dir( $backup_archive_folder ) ) {
150
  if ( ! mkdir( $backup_archive_folder, 0755 ) ) {
151
- $logger->log_error(__METHOD__,'Upload directory is not writable');
152
  echo json_encode( array( 'error' => sprintf( __( "Upload directory is not writable, or does not exist.", WPBACKITUP__NAMESPACE ) ) ) );
153
  exit;
154
  }
@@ -158,7 +157,7 @@
158
  //will overwrite if exists
159
  $target_file = $backup_archive_folder . "/" . basename( $zip_file_path );
160
  if ( ! rename( $zip_file_path, $target_file ) ) {
161
- $logger->log_error(__METHOD__,'Cant move zip file to backup folder');
162
  echo json_encode( array( 'error' => sprintf( __( "Could not import file into WP BackItUp backup set.",WPBACKITUP__NAMESPACE ) ) ) );
163
  exit;
164
  }
@@ -166,6 +165,8 @@
166
  }
167
  }
168
 
 
 
169
  // send the uploaded file url in response
170
  $response['success'] = $status['url'];
171
  echo json_encode( $response );
13
 
14
 
15
  /*** Globals ***/
16
+ $upload_logname='debug_upload';
 
17
  $backup_folder_root = WPBACKITUP__BACKUP_PATH .'/';
18
 
19
  //*****************//
20
  //*** MAIN CODE ***//
21
  //*****************//
22
+ WPBackItUp_LoggerV2::log($upload_logname,'***BEGIN UPLOAD***');
23
+ WPBackItUp_LoggerV2::log($upload_logname,$_POST);
24
 
25
 
26
  //verify nonce
27
  if ( !wp_verify_nonce($_REQUEST['_wpnonce'],WPBACKITUP__NAMESPACE .'-upload')) {
28
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Invalid Nonce');
29
  echo json_encode( array( 'error' => sprintf( __( 'Invalid Nonce',WPBACKITUP__NAMESPACE ) ) ) );
30
  exit;
31
 
35
  $upload_path = WPBACKITUP__UPLOAD_PATH;
36
  if ( !is_dir( $upload_path ) ){
37
  if ( ! mkdir( $upload_path, 0755 )){
38
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Upload directory is not writable, or does not exist.');
39
  echo json_encode( array( 'error' => sprintf( __( "Upload directory is not writable, or does not exist.", WPBACKITUP__NAMESPACE ) ) ) );
40
  exit;
41
  }
64
  remove_filter( 'sanitize_file_name', array( $this, 'sanitize_file_name' ) );
65
 
66
  if ( isset( $status['error'] ) ) {
67
+ WPBackItUp_LoggerV2::log($upload_logname,$status['error']);
68
  echo json_encode( array( 'error' => $status['error'] ) );
69
  exit;
70
  }
76
  $to_file_path = $upload_path . '/' . $zip_file_name . '_' . $chunk_id . '.zip.tmp';
77
  if ( ! rename( $from_file_path, $to_file_path ) ) {
78
  @unlink( $from_file_path );
79
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Cant rename file.');
80
+ echo json_encode( array( 'error' => sprintf( __( 'Error: %s', WPBACKITUP__NAMESPACE ), __( 'File could not be uploaded', WPBACKITUP__NAMESPACE ) ) ) );
81
  exit;
82
  }
83
 
137
 
138
  //Is this a BackItUp archive
139
  if ( empty( $folder_name ) || empty( $suffix ) || 'Backup' != $prefix ) {
140
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Upload does not appear to be a WP BackItUp backup archive');
141
  echo json_encode( array( 'error' => sprintf( __( "Upload does not appear to be a WP BackItUp backup archive file.",WPBACKITUP__NAMESPACE ) ) ) );
142
  unlink( $zip_file_path );//get rid of it
143
  exit;
147
  $backup_archive_folder = WPBACKITUP__BACKUP_PATH . '/' . $folder_name;
148
  if ( ! is_dir( $backup_archive_folder ) ) {
149
  if ( ! mkdir( $backup_archive_folder, 0755 ) ) {
150
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Upload directory is not writable');
151
  echo json_encode( array( 'error' => sprintf( __( "Upload directory is not writable, or does not exist.", WPBACKITUP__NAMESPACE ) ) ) );
152
  exit;
153
  }
157
  //will overwrite if exists
158
  $target_file = $backup_archive_folder . "/" . basename( $zip_file_path );
159
  if ( ! rename( $zip_file_path, $target_file ) ) {
160
+ WPBackItUp_LoggerV2::log_error($upload_logname,__METHOD__,'Cant move zip file to backup folder');
161
  echo json_encode( array( 'error' => sprintf( __( "Could not import file into WP BackItUp backup set.",WPBACKITUP__NAMESPACE ) ) ) );
162
  exit;
163
  }
165
  }
166
  }
167
 
168
+ WPBackItUp_LoggerV2::log_info($upload_logname,__METHOD__,'End');
169
+
170
  // send the uploaded file url in response
171
  $response['success'] = $status['url'];
172
  echo json_encode( $response );
lib/includes/handler_viewlog.php CHANGED
@@ -1,5 +1,12 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (viewlog)');
2
- @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
 
 
 
 
 
 
 
3
 
4
  /**
5
  * WP BackItUp - View Log Handler
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (viewlog)');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
+
10
 
11
  /**
12
  * WP BackItUp - View Log Handler
lib/includes/job_backup.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
- @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
 
 
 
 
 
 
3
 
4
  /**
5
  * WP BackItUp - Backup Job
@@ -12,10 +18,6 @@
12
 
13
  /*** Includes ***/
14
 
15
- if( !class_exists( 'WPBackItUp_Logger' ) ) {
16
- include_once 'class-logger.php';
17
- }
18
-
19
  if( !class_exists( 'WPBackItUp_Utility' ) ) {
20
  include_once 'class-utility.php';
21
  }
@@ -76,9 +78,7 @@ $status_array = array(
76
  //**************************//
77
  // SINGLE THREAD BACKUPS //
78
  //**************************//
79
-
80
- $logger_tasks = new WPBackItUp_Logger(false,null,'debug_tasks');
81
- $backup_process_id = uniqid();
82
 
83
  //Make sure backup is NOT already running before you run the current task
84
 
@@ -87,11 +87,12 @@ if ('scheduled'==$this->backup_type){
87
  wp_schedule_single_event( time()+30, 'wpbackitup_run_backup_tasks');
88
  }
89
 
 
90
  if (!WPBackItUp_Backup::start()) {
91
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Backup job cant acquire job lock.');
92
  return; //nothing to do
93
  }else{
94
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Backup job lock acquired.');
95
  }
96
  //**************************//
97
 
@@ -105,7 +106,8 @@ $current_task= null;
105
 
106
  $backup_error=false;
107
  $backup_job = WPBackItUp_Job::get_job('backup');
108
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Check for available backup job');
 
109
  if ($backup_job){
110
 
111
  //Get the next task in the stack
@@ -116,19 +118,19 @@ if ($backup_job){
116
 
117
  //If task contains error then timeout has occurred
118
  if (strpos($current_task,'error') !== false){
119
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Backup Error Found:' .$current_task);
120
  $backup_error=true;
121
  }
122
 
123
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Available Task Found:' . $current_task);
124
 
125
  }else{
126
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','No available tasks found.');
127
  WPBackItUp_Backup::end(); //release lock
128
  return;
129
  }
130
  }else {
131
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','No backup job available.');
132
 
133
  wp_clear_scheduled_hook( 'wpbackitup_run_backup_tasks');
134
  WPBackItUp_Backup::end(); //release lock
@@ -136,20 +138,20 @@ if ($backup_job){
136
  }
137
 
138
  //Should only get here when there is a task to run
139
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Run Backup task:' .$current_task);
140
 
141
  //*************************//
142
  //*** MAIN BACKUP CODE ***//
143
  //*************************//
144
-
145
  //Get the backup ID
146
  $backup_name = get_backup_name($backup_job->backup_id);
 
147
 
148
- global $logger;
149
- $logger = new WPBackItUp_Logger(false,null,$backup_name);
150
 
151
  global $wp_backup;
152
- $wp_backup = new WPBackItUp_Backup($logger,$backup_name,$WPBackitup->backup_type);
153
 
154
 
155
  //*************************//
@@ -159,7 +161,11 @@ $wp_backup = new WPBackItUp_Backup($logger,$backup_name,$WPBackitup->backup_type
159
  //An error has occurred on the previous tasks
160
  if ($backup_error) {
161
  $error_task = substr($current_task,6);
162
- $logger->log('Fatal error on previous task:'. $error_task);
 
 
 
 
163
 
164
  //Check for error type
165
  switch ($error_task) {
@@ -234,16 +240,15 @@ if ($backup_error) {
234
  if ('task_preparing'==$current_task) {
235
 
236
  //Init
237
- $logger->log('***BEGIN BACKUP***');
238
- $logger->log_sysinfo();
239
- $logger->log('BACKUP TYPE:' .$wp_backup->backup_type);
240
- $logger->log('BACKUP BATCH SIZE:' .$wp_backup->backup_batch_size);
241
- $logger->log('BACKUP ID:' .$backup_job->backup_id);
242
 
243
  $WPBackitup->increment_backup_count();
244
  //End Init
245
 
246
- $logger->log('**BEGIN CLEANUP**');
247
 
248
  //Cleanup & Validate the backup folded is ready
249
  write_response_processing("preparing for backup");
@@ -253,7 +258,7 @@ if ('task_preparing'==$current_task) {
253
 
254
  //*** Check Dependencies ***
255
  if (!WPBackItUp_Zip::zip_utility_exists()) {
256
- $logger->log_error(__METHOD__, 'Zip Util does not exist.' );
257
  $backup_job->set_task_error('125');
258
  write_fatal_error_status( '125' );
259
  end_backup( 125, false );
@@ -290,7 +295,7 @@ if ('task_preparing'==$current_task) {
290
 
291
  //Create a job control record
292
  if ( ! $wp_backup->create_job_control($backup_job->backup_id)){
293
- $logger->log_error( __METHOD__, 'Cant create batch record');
294
  $backup_job->set_task_error('128');
295
 
296
  write_fatal_error_status('128');
@@ -299,9 +304,14 @@ if ('task_preparing'==$current_task) {
299
 
300
  $global_exclude = explode(',', WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST);
301
 
302
- $plugin_exclude = WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST;
 
 
 
 
 
303
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'plugins',WPBACKITUP__PLUGINS_ROOT_PATH,$plugin_exclude)){
304
- $logger->log_error( __METHOD__, 'Plugins Inventory Error.');
305
  $backup_job->set_task_error('127');
306
 
307
  write_fatal_error_status('127');
@@ -310,7 +320,7 @@ if ('task_preparing'==$current_task) {
310
 
311
  $theme_exclude = WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST;
312
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'themes',WPBACKITUP__THEMES_ROOT_PATH,$theme_exclude)){
313
- $logger->log_error( __METHOD__, 'Themes Inventory Error.');
314
  $backup_job->set_task_error('127');
315
 
316
  write_fatal_error_status('127');
@@ -327,7 +337,7 @@ if ('task_preparing'==$current_task) {
327
  $upload_array = wp_upload_dir();
328
  $uploads_root_path = $upload_array['basedir'];
329
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'uploads',$uploads_root_path,$upload_exclude)){
330
- $logger->log_error( __METHOD__, 'Uploads Inventory Error.');
331
  $backup_job->set_task_error('127');
332
 
333
  write_fatal_error_status('127');
@@ -337,6 +347,7 @@ if ('task_preparing'==$current_task) {
337
  $other_exclude = array_merge (
338
  $global_exclude,
339
  array(
 
340
  "plugins",
341
  "themes",
342
  "uploads",
@@ -352,10 +363,12 @@ if ('task_preparing'==$current_task) {
352
  "backupcreator",
353
  "backupbuddy",
354
  "wptouch-data",
 
 
355
  ));
356
 
357
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'others',WPBACKITUP__CONTENT_PATH,$other_exclude)){
358
- $logger->log_error( __METHOD__, 'Other Inventory Error.');
359
  $backup_job->set_task_error('127');
360
 
361
  write_fatal_error_status('127');
@@ -365,18 +378,18 @@ if ('task_preparing'==$current_task) {
365
  set_status('preparing',$complete,false);
366
  $backup_job->set_task_complete();
367
 
368
- $logger->log('**END CLEANUP**');
369
  return;
370
  }
371
 
372
  //Backup the database
373
  if ('task_backup_db'==$current_task) {
374
- $logger->log( '**BEGIN SQL EXPORT**' );
375
  write_response_processing( "Create database export" );
376
  set_status( 'backupdb', $active, true );
377
 
378
  $export_database = $wp_backup->export_database();
379
- $logger->log( 'Export Database return:' .var_export($export_database,true));
380
  if ( ! $export_database ) {
381
  $backup_job->set_task_error('104');
382
 
@@ -385,12 +398,12 @@ if ('task_backup_db'==$current_task) {
385
  end_backup( 104, false );
386
  }
387
 
388
- $logger->log( 'Database Export complete.');
389
 
390
  set_status('backupdb',$complete,false);
391
  $backup_job->set_task_complete();
392
 
393
- $logger->log('**END SQL EXPORT**');
394
  return;
395
 
396
  }
@@ -399,7 +412,7 @@ if ('task_backup_db'==$current_task) {
399
 
400
  //Extract the site info
401
  if ('task_backup_siteinfo'==$current_task) {
402
- $logger->log( '**SITE INFO**' );
403
  write_response_processing( "Retrieve Site Info" );
404
  set_status( 'infofile', $active, true );
405
 
@@ -410,8 +423,7 @@ if ('task_backup_siteinfo'==$current_task) {
410
  $source_site_data_root = $wp_backup->backup_project_path;
411
  $target_site_data_root = 'site-data';
412
 
413
-
414
- $file_system = new WPBackItUp_FileSystem($logger);
415
  $site_data_files = $file_system->get_fileonly_list($wp_backup->backup_project_path, 'txt|sql');
416
  $site_data_complete = $wp_backup->backup_file_list( $source_site_data_root, $target_site_data_root, $suffix, $site_data_files, WPBACKITUP__OTHERS_BATCH_SIZE );
417
  if ( $site_data_complete == 'error' ) {
@@ -436,22 +448,22 @@ if ('task_backup_siteinfo'==$current_task) {
436
  set_status( 'infofile', $complete, false );
437
  $backup_job->set_task_complete();
438
 
439
- $logger->log( '**END SITE INFO**' );
440
  return;
441
 
442
  }
443
 
444
  //Backup the themes
445
  if ('task_backup_themes'==$current_task) {
446
- $logger->log('**BACKUP THEMES TASK**' );
447
  write_response_processing( "Backup themes " );
448
  set_status( 'backup_themes', $active, true );
449
 
450
  $themes_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__THEMES_ROOT_PATH,'themes');
451
- $logger->log('Themes remaining:' .$themes_remaining_files_count);
452
  if ($themes_remaining_files_count===false) {
453
  //ERROR
454
- $logger->log_error(__METHOD__,'Error backing up themes.');
455
  $backup_job->set_task_error('120');
456
  write_fatal_error_status( '120' );
457
  //cleanup_on_failure( $wp_backup->backup_project_path );
@@ -459,15 +471,15 @@ if ('task_backup_themes'==$current_task) {
459
  }else{
460
  if ($themes_remaining_files_count>0){
461
  //CONTINUE
462
- $logger->log_info(__METHOD__,'Continue backing up themes.');
463
  $backup_job->set_task_queued();
464
  }else{
465
  //COMPLETE
466
- $logger->log_info(__METHOD__,'Complete - All themes backed up.');
467
 
468
  set_status( 'backup_themes', $complete, false );
469
  $backup_job->set_task_complete();
470
- $logger->log('**END BACKUP THEMES TASK**');
471
  }
472
  }
473
 
@@ -477,15 +489,15 @@ if ('task_backup_themes'==$current_task) {
477
 
478
  //Backup the plugins
479
  if ('task_backup_plugins'==$current_task) {
480
- $logger->log( '**BACKUP PLUGINS TASK**' );
481
  write_response_processing( "Backup plugins " );
482
  set_status( 'backup_plugins', $active, true );
483
 
484
  $plugins_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__PLUGINS_ROOT_PATH,'plugins');
485
- $logger->log('Plugins remaining:' .$plugins_remaining_files_count);
486
  if ($plugins_remaining_files_count===false) {
487
  //ERROR
488
- $logger->log('Error backing up plugins.');
489
 
490
  $backup_job->set_task_error('121');
491
  write_fatal_error_status( '121' );
@@ -494,14 +506,14 @@ if ('task_backup_plugins'==$current_task) {
494
  } else {
495
  if ($plugins_remaining_files_count>0){
496
  //CONTINUE
497
- $logger->log('Continue backing up plugins.');
498
  $backup_job->set_task_queued();
499
  } else{
500
  //COMPLETE
501
- $logger->log('Complete - All plugins backed up.');
502
  set_status( 'backup_plugins', $complete, false );
503
  $backup_job->set_task_complete();
504
- $logger->log('**END BACKUP PLUGINS TASK**');
505
  }
506
  }
507
 
@@ -510,7 +522,7 @@ if ('task_backup_plugins'==$current_task) {
510
 
511
  //Backup the uploads
512
  if ('task_backup_uploads'==$current_task) {
513
- $logger->log( '**BACKUP UPLOADS TASK**' );
514
  write_response_processing( "Backup uploads " );
515
  set_status( 'backup_uploads', $active, true );
516
 
@@ -519,25 +531,25 @@ if ('task_backup_uploads'==$current_task) {
519
 
520
  //exclude zip files from backup
521
  $uploads_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,$source_uploads_root,'uploads');
522
- $logger->log('Uploads remaining:' .$uploads_remaining_files_count);
523
  if ( $uploads_remaining_files_count ===false) {
524
  //ERROR
525
- $logger->log( 'Error backing up uploads.' );
526
  $backup_job->set_task_error( '122' );
527
  write_fatal_error_status( '122' );
528
  end_backup( 122, false );
529
  } else {
530
  if ( $uploads_remaining_files_count > 0 ) {
531
  //CONTINUE
532
- $logger->log( 'Continue backing up uploads.' );
533
  $backup_job->set_task_queued();
534
 
535
  } else {
536
  //COMPLETE
537
- $logger->log( 'All uploads backed up.' );
538
  set_status( 'backup_uploads', $complete, false );
539
  $backup_job->set_task_complete();
540
- $logger->log( '**END BACKUP UPLOADS TASK**' );
541
  }
542
  }
543
 
@@ -546,15 +558,15 @@ if ('task_backup_uploads'==$current_task) {
546
 
547
  //Backup all the other content in the wp-content root
548
  if ('task_backup_other'==$current_task) {
549
- $logger->log( '**BACKUP OTHER TASK**' );
550
  write_response_processing( "Backup other files " );
551
  set_status( 'backup_other', $active, true );
552
 
553
  $others_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__CONTENT_PATH,'others');
554
- $logger->log('Others remaining:' .$others_remaining_files_count);
555
  if ( $others_remaining_files_count ===false) {
556
  //ERROR
557
- $logger->log( 'Error backing up others.' );
558
  $backup_job->set_task_error( '123' );
559
 
560
  write_fatal_error_status( '123' );
@@ -563,15 +575,15 @@ if ('task_backup_other'==$current_task) {
563
  } else {
564
  if ( $others_remaining_files_count > 0 ) {
565
  //CONTINUE
566
- $logger->log( 'Continue backing up others.' );
567
  $backup_job->set_task_queued();
568
  } else {
569
  //COMPLETE
570
- $logger->log( 'All others backed up.' );
571
 
572
  set_status( 'backup_other', $complete, false );
573
  $backup_job->set_task_complete();
574
- $logger->log( '**END BACKUP OTHER TASK**' );
575
  }
576
 
577
  }
@@ -587,32 +599,95 @@ if ('task_backup_other'==$current_task) {
587
  //Validate the backup IF logging is turned on - reporting only
588
  if ('task_validate_backup'==$current_task) {
589
  //Validate the content if logging is on
590
- $logger->log('**VALIDATE CONTENT**');
591
 
592
  write_response_processing( "Validating Backup " );
593
  set_status( 'validate_backup', $active, true );
594
 
595
- $validate_plugins= $wp_backup->validate_backup_files($backup_job->backup_id,'plugins');
596
- $validate_themes = $wp_backup->validate_backup_files($backup_job->backup_id,'themes');
597
- $validate_uploads = $wp_backup->validate_backup_files($backup_job->backup_id,'uploads');
598
- $validate_others = $wp_backup->validate_backup_files($backup_job->backup_id,'others');
599
-
600
- if ( $validate_plugins ===false
601
- || $validate_themes===false
602
- || $validate_uploads===false
603
- || $validate_others===false) {
604
- //ERROR
605
- $logger->log_error(__METHOD__ ,'Content Validation ERROR.' );
606
- $backup_job->set_task_error( '126' );
607
-
608
- write_fatal_error_status( '126' );
609
- end_backup( 123, false );
 
 
 
 
 
 
 
 
610
  } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  set_status( 'validate_backup', $complete, false );
612
  $backup_job->set_task_complete();
613
 
614
- $logger->log_info(__METHOD__,'Content Validated Successfully!' );
615
- $logger->log( '**END VALIDATE CONTENT**' );
 
 
 
616
  }
617
 
618
  return;
@@ -620,7 +695,7 @@ if ('task_validate_backup'==$current_task) {
620
 
621
  //Zip up the backup folder
622
  if ('task_finalize_backup'==$current_task) {
623
- $logger->log( '**FINALIZE BACKUP**' );
624
  write_response_processing( "Compress Backup " );
625
  set_status( 'finalize_backup', $active, true );
626
 
@@ -648,7 +723,8 @@ if ('task_finalize_backup'==$current_task) {
648
  }
649
 
650
  //Take an inventory of the zip files created
651
- $file_system = new WPBackItUp_FileSystem($logger);
 
652
  $zip_files = $file_system->get_fileonly_list($wp_backup->backup_project_path, 'zip');
653
  $wp_backup->save_file_list_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'backups',$wp_backup->backup_project_path,$zip_files);
654
 
@@ -658,7 +734,7 @@ if ('task_finalize_backup'==$current_task) {
658
  set_status( 'finalize_backup', $complete, false );
659
  $backup_job->set_task_complete();
660
 
661
- $logger->log( '**END FINALIZE BACKUP**' );
662
 
663
  }
664
 
@@ -698,22 +774,26 @@ function get_backup_name($timestamp){
698
 
699
  }
700
  function end_backup($err=null, $success=null){
701
- global $WPBackitup,$wp_backup, $logger, $backup_job;
702
- $logger->log_info(__METHOD__,"Begin");
703
 
704
- $logger->log('Zip up all the logs.');
705
  //Zip up all the logs in the log folder
706
  $logs_path = WPBACKITUP__PLUGIN_PATH .'logs';
707
  $zip_file_path = $wp_backup->backup_project_path .'logs_' .$backup_job->backup_id . '.zip';
708
 
709
- //copy/replace WP debug file
710
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
711
- $logger->log_info(__METHOD__,"Copy WP Debug: " .$wpdebug_file_path);
712
  if (file_exists($wpdebug_file_path)) {
713
- copy( $wpdebug_file_path, $logs_path .'/wpdebug.log' );
 
 
 
 
714
  }
715
 
716
- $zip = new WPBackItUp_Zip($logger,$zip_file_path);
717
  $zip->zip_files_in_folder($logs_path,$backup_job->backup_id,'*.log');
718
  $zip->close();
719
 
@@ -721,27 +801,27 @@ function end_backup($err=null, $success=null){
721
  $current_datetime = current_time( 'timestamp' );
722
  $WPBackitup->set_backup_lastrun_date($current_datetime);
723
 
724
- $util = new WPBackItUp_Utility($logger);
 
725
  $seconds = $util->timestamp_diff_seconds($backup_job->get_job_start_time(),$backup_job->get_job_end_time());
726
 
727
  $processing_minutes = round($seconds / 60);
728
  $processing_seconds = $seconds % 60;
729
 
730
- $logger->log('Script Processing Time:' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds');
731
 
732
- if (true===$success) $logger->log("Backup completed: SUCCESS");
733
- if (false===$success) $logger->log("Backup completed: ERROR");
734
 
735
- $logger->log("*** END BACKUP ***");
736
 
737
  //Send Notification email
738
- $logger->log('Send Email notification');
739
  $logs_attachment = array( $zip_file_path );
740
  send_backup_notification_email($err, $success,$logs_attachment);
741
 
742
- $logFileName = $logger->logFileName;
743
- $logFilePath = $logger->logFilePath;
744
- $logger->close_file();
745
 
746
  //COPY the log if it exists
747
  $newlogFilePath = $wp_backup->backup_project_path .$logFileName;
@@ -749,33 +829,35 @@ function end_backup($err=null, $success=null){
749
  copy($logFilePath,$newlogFilePath);
750
  }
751
 
 
752
  echo('Backup has completed');
753
  exit(0);
754
  }
755
 
756
  function send_backup_notification_email($err, $success,$logs=array()) {
757
- global $WPBackitup, $wp_backup, $logger,$status_array,$backup_job;
758
- $logger->log_info(__METHOD__,"Begin");
759
 
760
  $start_timestamp = $backup_job->get_job_start_time();
761
  $end_timestamp = $backup_job->get_job_end_time();
762
- $utility = new WPBackItUp_Utility($logger);
 
763
  $seconds = $utility->timestamp_diff_seconds($start_timestamp,$end_timestamp);
764
 
765
  $processing_minutes = round($seconds / 60);
766
  $processing_seconds = $seconds % 60;
767
 
768
  $status_description = array(
769
- 'preparing'=>'Preparing for backup...Done',
770
- 'backupdb'=>'Backing up database...Done',
771
- 'infofile'=>'Creating backup information file...Done',
772
- 'backup_themes'=>'Backing up themes...Done',
773
- 'backup_plugins'=>'Backing up plugins...Done',
774
- 'backup_uploads'=>'Backing up uploads...Done',
775
- 'backup_other'=>'Backing up miscellaneous files...Done',
776
- 'finalize_backup'=>'Finalizing backup...Done',
777
- 'validate_backup'=>'Validating backup...Done',
778
- 'cleanup'=>'Cleaning up...Done'
779
  );
780
 
781
  if($success)
@@ -785,28 +867,28 @@ function send_backup_notification_email($err, $success,$logs=array()) {
785
  $logs=array();
786
  }
787
 
788
- $subject = get_bloginfo() . ' - Backup completed successfully.';
789
- $message = '<b>Your backup completed successfully.</b><br/><br/>';
790
 
791
  } else {
792
- $subject = get_bloginfo() .' - Backup did not complete successfully.';
793
- $message = '<b>Your backup did not complete successfully.</b><br/><br/>';
794
  }
795
 
796
  $local_start_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',$start_timestamp));
797
  $local_end_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',$end_timestamp));
798
- $message .= 'WordPress Site: <a href="' . home_url() . '" target="_blank">' . home_url() .'</a><br/>';
799
- $message .= 'Backup date: ' . $local_start_datetime . '<br/>';
800
- $message .= 'Number of backups completed with WP BackItUp: ' . $WPBackitup->backup_count() . '<br/>';
801
 
802
- $message .= 'Completion Code: ' . $backup_job->backup_id .'-'. $processing_minutes .'-' .$processing_seconds .'<br/>';
803
- $message .= 'WP BackItUp Version: ' . WPBACKITUP__VERSION . '<br/>';
804
  $message .= '<br/>';
805
 
806
 
807
  //Add the completed steps on success
808
  if($success) {
809
- $message .='<b>Steps Completed</b><br/>';
810
 
811
  //Add the completed statuses
812
  foreach ($status_array as $status_key => $status_value) {
@@ -827,22 +909,22 @@ function send_backup_notification_email($err, $success,$logs=array()) {
827
 
828
  $term='success';
829
  if(!$success)$term='error';
830
- $message .='<br/><br/>Checkout '. $WPBackitup->get_anchor_with_utm('www.wpbackitup.com', '', 'notification+email', $term) .' for info about WP BackItUp and our other products.<br/>';
831
 
832
 
833
  $notification_email = $WPBackitup->get_option('notification_email');
834
  if($notification_email)
835
  $utility->send_email($notification_email,$subject,$message,$logs);
836
 
837
- $logger->log_info(__function__,"End");
838
  }
839
 
840
  function cleanup_on_failure($path){
841
- global $logger;
842
  global $wp_backup;
843
 
844
  if (WPBACKITUP__DEBUG===true){
845
- $logger->log('Cleanup On Fail suspended: debug on.');
846
  }
847
  else{
848
  $wp_backup->cleanup_backups_by_prefix('TMP_');
@@ -926,10 +1008,10 @@ function set_status_success(){
926
 
927
  //Get Status Log
928
  function getStatusLog(){
929
- global $logger;
930
 
931
  $status_file_path = WPBACKITUP__PLUGIN_PATH .'/logs/backup_status.log';
932
- $filesystem = new WPBackItUp_FileSystem($logger);
933
  return $filesystem->get_file_handle($status_file_path);
934
 
935
  }
@@ -957,7 +1039,7 @@ function write_response_file_error($error) {
957
 
958
  //write Response Log
959
  function write_response_file_success() {
960
- global $WPBackitup,$wp_backup,$logger;
961
 
962
  $jsonResponse = new stdClass();
963
  $jsonResponse->backupStatus = 'success';
@@ -966,17 +1048,17 @@ function write_response_file_success() {
966
  $jsonResponse->backupLicense = $WPBackitup->license_active();
967
  $jsonResponse->backupRetained = $wp_backup->backup_retained_number;
968
 
969
- $jsonResponse->logFileExists = file_exists($logger->logFilePath);
970
 
971
  write_response_file($jsonResponse);
972
  }
973
 
974
  //write Response Log
975
  function write_response_file($JSON_Response) {
976
- global $logger;
977
 
978
  $json_response = json_encode($JSON_Response);
979
- $logger->log('Write response file:' . $json_response);
980
 
981
  $fh=get_response_file();
982
  fwrite($fh, $json_response);
@@ -985,9 +1067,10 @@ function write_response_file($JSON_Response) {
985
 
986
  //Get Response Log
987
  function get_response_file() {
988
- global $logger;
 
989
  $response_file_path = WPBACKITUP__PLUGIN_PATH .'logs/backup_response.log';
990
- $filesytem = new WPBackItUp_FileSystem($logger);
991
  return $filesytem->get_file_handle($response_file_path,false);
992
  }
993
 
@@ -1002,46 +1085,46 @@ function get_response_file() {
1002
  function get_error_message($error_code){
1003
 
1004
  $error_message_array = array(
1005
- '101' =>'(101) Unable to create a new directory for backup. Please check your CHMOD settings of your wp-backitup backup directory',
1006
- '102'=> '(102) Cannot create backup directory. Please check the CHMOD settings of your wp-backitup plugin directory',
1007
- '103'=> '(103) Unable to backup your files. Please try again',
1008
- '104'=> '(104) Unable to export your database. Please try again',
1009
- '105'=> '(105) Unable to export site information file. Please try again',
1010
- '106'=> '(106) Unable to cleanup your backup directory',
1011
- '107'=> '(107) Unable to compress(zip) your backup. Please try again',
1012
- '108'=> '(108) Unable to backup your site data files. Please try again',
1013
- '109'=> '(109) Unable to finalize backup. Please try again',
1014
- '114'=> '(114) Your database was accessible but an export could not be created. Please contact support by clicking the get support link on the right. Please let us know who your host is when you submit the request',
1015
- '120'=> '(120) Unable to backup your themes. Please try again',
1016
- '121'=> '(121) Unable to backup your plugins. Please try again',
1017
- '122'=> '(122) Unable to backup your uploads. Please try again',
1018
- '123'=> '(123) Unable to backup your miscellaneous files. Please try again',
1019
- '125'=> '(125) Unable to compress your backup because there is no zip utility available. Please contact support',
1020
- '126'=> '(126) Unable to validate your backup. Please try again',
1021
- '127'=> '(127) Unable to create inventory of files to backup. Please try again',
1022
- '128'=> '(128) Unable to create job control record. Please try again',
1023
-
1024
- '2101' =>'(2101) Unable to create a new directory for backup. Please check your CHMOD settings of your wp-backitup backup directory',
1025
- '2102'=> '(2102) Cannot create backup directory. Please check the CHMOD settings of your wp-backitup plugin directory',
1026
- '2103'=> '(2103) Unable to backup your files. Please try again',
1027
- '2104'=> '(2104) Unable to export your database. Please try again',
1028
- '2105'=> '(2105) Unable to export site information file. Please try again',
1029
- '2106'=> '(2106) Unable to cleanup your backup directory',
1030
- '2107'=> '(2107) Unable to compress(zip) your backup. Please try again',
1031
- '2108'=> '(2108) Unable to backup your site data files. Please try again',
1032
- '2109'=> '(2109) Unable to finalize backup. Please try again',
1033
- '2114'=> '(2114) Your database was accessible but an export could not be created. Please contact support by clicking the get support link on the right. Please let us know who your host is when you submit the request',
1034
- '2120'=> '(2120) Unable to backup your themes. Please try again',
1035
- '2121'=> '(2121) Unable to backup your plugins. Please try again',
1036
- '2122'=> '(2122) Unable to backup your uploads. Please try again',
1037
- '2123'=> '(2123) Unable to backup your miscellaneous files. Please try again',
1038
- '2125'=> '(2125) Unable to compress your backup because there is no zip utility available. Please contact support',
1039
- '2126'=> '(2126) Unable to validate your backup. Please try again',
1040
- '2127'=> '(2127) Unable to create inventory of files to backup. Please try again',
1041
- '2128'=> '(2128) Unable to create job control record. Please try again',
1042
  );
1043
 
1044
- $error_message = '(999) Unexpected error';
1045
  if (array_key_exists($error_code,$error_message_array)) {
1046
  $error_message = $error_message_array[ $error_code ];
1047
  }
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
 
10
  /**
11
  * WP BackItUp - Backup Job
18
 
19
  /*** Includes ***/
20
 
 
 
 
 
21
  if( !class_exists( 'WPBackItUp_Utility' ) ) {
22
  include_once 'class-utility.php';
23
  }
78
  //**************************//
79
  // SINGLE THREAD BACKUPS //
80
  //**************************//
81
+ $process_id = uniqid();
 
 
82
 
83
  //Make sure backup is NOT already running before you run the current task
84
 
87
  wp_schedule_single_event( time()+30, 'wpbackitup_run_backup_tasks');
88
  }
89
 
90
+ $backup_task_log = 'debug_backup_tasks';
91
  if (!WPBackItUp_Backup::start()) {
92
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id ,'Backup job cant acquire job lock.');
93
  return; //nothing to do
94
  }else{
95
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'Backup job lock acquired.');
96
  }
97
  //**************************//
98
 
106
 
107
  $backup_error=false;
108
  $backup_job = WPBackItUp_Job::get_job('backup');
109
+
110
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'Check for available backup job');
111
  if ($backup_job){
112
 
113
  //Get the next task in the stack
118
 
119
  //If task contains error then timeout has occurred
120
  if (strpos($current_task,'error') !== false){
121
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'Backup Error Found:' .$current_task);
122
  $backup_error=true;
123
  }
124
 
125
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'Available Task Found:' . $current_task);
126
 
127
  }else{
128
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'No available tasks found.');
129
  WPBackItUp_Backup::end(); //release lock
130
  return;
131
  }
132
  }else {
133
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'No backup job available.');
134
 
135
  wp_clear_scheduled_hook( 'wpbackitup_run_backup_tasks');
136
  WPBackItUp_Backup::end(); //release lock
138
  }
139
 
140
  //Should only get here when there is a task to run
141
+ WPBackItUp_LoggerV2::log_info($backup_task_log,$process_id,'Run Backup task:' .$current_task);
142
 
143
  //*************************//
144
  //*** MAIN BACKUP CODE ***//
145
  //*************************//
146
+ global $backup_logname;
147
  //Get the backup ID
148
  $backup_name = get_backup_name($backup_job->backup_id);
149
+ $backup_logname = $backup_name;
150
 
151
+ $log_function='job_backup::'.$current_task;
 
152
 
153
  global $wp_backup;
154
+ $wp_backup = new WPBackItUp_Backup($backup_logname,$backup_name,$WPBackitup->backup_type);
155
 
156
 
157
  //*************************//
161
  //An error has occurred on the previous tasks
162
  if ($backup_error) {
163
  $error_task = substr($current_task,6);
164
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Fatal error on previous task:'. $error_task);
165
+
166
+ //Fetch last wordpress error(might not be related to timeout)
167
+ //error type constants: http://php.net/manual/en/errorfunc.constants.php
168
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Last Error: ' .var_export(error_get_last(),true));
169
 
170
  //Check for error type
171
  switch ($error_task) {
240
  if ('task_preparing'==$current_task) {
241
 
242
  //Init
243
+ WPBackItUp_LoggerV2::log($backup_logname,'***BEGIN BACKUP***');
244
+ WPBackItUp_LoggerV2::log_sysinfo($backup_logname);
245
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'BACKUP TYPE:' .$wp_backup->backup_type);
246
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'BACKUP ID:' .$backup_job->backup_id);
 
247
 
248
  $WPBackitup->increment_backup_count();
249
  //End Init
250
 
251
+ WPBackItUp_LoggerV2::log($backup_logname,'**BEGIN CLEANUP**');
252
 
253
  //Cleanup & Validate the backup folded is ready
254
  write_response_processing("preparing for backup");
258
 
259
  //*** Check Dependencies ***
260
  if (!WPBackItUp_Zip::zip_utility_exists()) {
261
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Zip Util does not exist.' );
262
  $backup_job->set_task_error('125');
263
  write_fatal_error_status( '125' );
264
  end_backup( 125, false );
295
 
296
  //Create a job control record
297
  if ( ! $wp_backup->create_job_control($backup_job->backup_id)){
298
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Cant create batch record');
299
  $backup_job->set_task_error('128');
300
 
301
  write_fatal_error_status('128');
304
 
305
  $global_exclude = explode(',', WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST);
306
 
307
+ $plugin_exclude = array_merge (
308
+ $global_exclude,
309
+ array(
310
+ "wp-backitup",
311
+ )
312
+ );
313
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'plugins',WPBACKITUP__PLUGINS_ROOT_PATH,$plugin_exclude)){
314
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Plugins Inventory Error.');
315
  $backup_job->set_task_error('127');
316
 
317
  write_fatal_error_status('127');
320
 
321
  $theme_exclude = WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST;
322
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'themes',WPBACKITUP__THEMES_ROOT_PATH,$theme_exclude)){
323
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Themes Inventory Error.');
324
  $backup_job->set_task_error('127');
325
 
326
  write_fatal_error_status('127');
337
  $upload_array = wp_upload_dir();
338
  $uploads_root_path = $upload_array['basedir'];
339
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'uploads',$uploads_root_path,$upload_exclude)){
340
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Uploads Inventory Error.');
341
  $backup_job->set_task_error('127');
342
 
343
  write_fatal_error_status('127');
347
  $other_exclude = array_merge (
348
  $global_exclude,
349
  array(
350
+ "debug.log",
351
  "plugins",
352
  "themes",
353
  "uploads",
363
  "backupcreator",
364
  "backupbuddy",
365
  "wptouch-data",
366
+ "ai1wm-backups",
367
+ "sedlex",
368
  ));
369
 
370
  if (! $wp_backup->save_folder_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'others',WPBACKITUP__CONTENT_PATH,$other_exclude)){
371
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Other Inventory Error.');
372
  $backup_job->set_task_error('127');
373
 
374
  write_fatal_error_status('127');
378
  set_status('preparing',$complete,false);
379
  $backup_job->set_task_complete();
380
 
381
+ WPBackItUp_LoggerV2::log($backup_logname,'**END CLEANUP**');
382
  return;
383
  }
384
 
385
  //Backup the database
386
  if ('task_backup_db'==$current_task) {
387
+ WPBackItUp_LoggerV2::log($backup_logname,'**BEGIN SQL EXPORT**');
388
  write_response_processing( "Create database export" );
389
  set_status( 'backupdb', $active, true );
390
 
391
  $export_database = $wp_backup->export_database();
392
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Export Database return:' .var_export($export_database,true));
393
  if ( ! $export_database ) {
394
  $backup_job->set_task_error('104');
395
 
398
  end_backup( 104, false );
399
  }
400
 
401
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Database Export complete.');
402
 
403
  set_status('backupdb',$complete,false);
404
  $backup_job->set_task_complete();
405
 
406
+ WPBackItUp_LoggerV2::log($backup_logname,'**END SQL EXPORT**');
407
  return;
408
 
409
  }
412
 
413
  //Extract the site info
414
  if ('task_backup_siteinfo'==$current_task) {
415
+ WPBackItUp_LoggerV2::log($backup_logname,'**SITE INFO**' );
416
  write_response_processing( "Retrieve Site Info" );
417
  set_status( 'infofile', $active, true );
418
 
423
  $source_site_data_root = $wp_backup->backup_project_path;
424
  $target_site_data_root = 'site-data';
425
 
426
+ $file_system = new WPBackItUp_FileSystem($backup_logname);
 
427
  $site_data_files = $file_system->get_fileonly_list($wp_backup->backup_project_path, 'txt|sql');
428
  $site_data_complete = $wp_backup->backup_file_list( $source_site_data_root, $target_site_data_root, $suffix, $site_data_files, WPBACKITUP__OTHERS_BATCH_SIZE );
429
  if ( $site_data_complete == 'error' ) {
448
  set_status( 'infofile', $complete, false );
449
  $backup_job->set_task_complete();
450
 
451
+ WPBackItUp_LoggerV2::log($backup_logname,'**END SITE INFO**' );
452
  return;
453
 
454
  }
455
 
456
  //Backup the themes
457
  if ('task_backup_themes'==$current_task) {
458
+ WPBackItUp_LoggerV2::log($backup_logname,'**BACKUP THEMES TASK**' );
459
  write_response_processing( "Backup themes " );
460
  set_status( 'backup_themes', $active, true );
461
 
462
  $themes_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__THEMES_ROOT_PATH,'themes');
463
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Themes remaining:' .$themes_remaining_files_count);
464
  if ($themes_remaining_files_count===false) {
465
  //ERROR
466
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Error backing up themes.');
467
  $backup_job->set_task_error('120');
468
  write_fatal_error_status( '120' );
469
  //cleanup_on_failure( $wp_backup->backup_project_path );
471
  }else{
472
  if ($themes_remaining_files_count>0){
473
  //CONTINUE
474
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Continue backing up themes.');
475
  $backup_job->set_task_queued();
476
  }else{
477
  //COMPLETE
478
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Complete - All themes backed up.');
479
 
480
  set_status( 'backup_themes', $complete, false );
481
  $backup_job->set_task_complete();
482
+ WPBackItUp_LoggerV2::log($backup_logname,'**END BACKUP THEMES TASK**');
483
  }
484
  }
485
 
489
 
490
  //Backup the plugins
491
  if ('task_backup_plugins'==$current_task) {
492
+ WPBackItUp_LoggerV2::log($backup_logname,'**BACKUP PLUGINS TASK**' );
493
  write_response_processing( "Backup plugins " );
494
  set_status( 'backup_plugins', $active, true );
495
 
496
  $plugins_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__PLUGINS_ROOT_PATH,'plugins');
497
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Plugins remaining:' .$plugins_remaining_files_count);
498
  if ($plugins_remaining_files_count===false) {
499
  //ERROR
500
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Error backing up plugins.');
501
 
502
  $backup_job->set_task_error('121');
503
  write_fatal_error_status( '121' );
506
  } else {
507
  if ($plugins_remaining_files_count>0){
508
  //CONTINUE
509
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Continue backing up plugins.');
510
  $backup_job->set_task_queued();
511
  } else{
512
  //COMPLETE
513
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Complete - All plugins backed up.');
514
  set_status( 'backup_plugins', $complete, false );
515
  $backup_job->set_task_complete();
516
+ WPBackItUp_LoggerV2::log($backup_logname,'**END BACKUP PLUGINS TASK**');
517
  }
518
  }
519
 
522
 
523
  //Backup the uploads
524
  if ('task_backup_uploads'==$current_task) {
525
+ WPBackItUp_LoggerV2::log($backup_logname,'**BACKUP UPLOADS TASK**' );
526
  write_response_processing( "Backup uploads " );
527
  set_status( 'backup_uploads', $active, true );
528
 
531
 
532
  //exclude zip files from backup
533
  $uploads_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,$source_uploads_root,'uploads');
534
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Uploads remaining:' .$uploads_remaining_files_count);
535
  if ( $uploads_remaining_files_count ===false) {
536
  //ERROR
537
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Error backing up uploads.' );
538
  $backup_job->set_task_error( '122' );
539
  write_fatal_error_status( '122' );
540
  end_backup( 122, false );
541
  } else {
542
  if ( $uploads_remaining_files_count > 0 ) {
543
  //CONTINUE
544
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Continue backing up uploads.' );
545
  $backup_job->set_task_queued();
546
 
547
  } else {
548
  //COMPLETE
549
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'All uploads backed up.' );
550
  set_status( 'backup_uploads', $complete, false );
551
  $backup_job->set_task_complete();
552
+ WPBackItUp_LoggerV2::log($backup_logname,'**END BACKUP UPLOADS TASK**' );
553
  }
554
  }
555
 
558
 
559
  //Backup all the other content in the wp-content root
560
  if ('task_backup_other'==$current_task) {
561
+ WPBackItUp_LoggerV2::log($backup_logname,'**BACKUP OTHER TASK**' );
562
  write_response_processing( "Backup other files " );
563
  set_status( 'backup_other', $active, true );
564
 
565
  $others_remaining_files_count = $wp_backup->backup_files($backup_job->backup_id,WPBACKITUP__CONTENT_PATH,'others');
566
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Others remaining:' .$others_remaining_files_count);
567
  if ( $others_remaining_files_count ===false) {
568
  //ERROR
569
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Error backing up others.' );
570
  $backup_job->set_task_error( '123' );
571
 
572
  write_fatal_error_status( '123' );
575
  } else {
576
  if ( $others_remaining_files_count > 0 ) {
577
  //CONTINUE
578
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'Continue backing up others.' );
579
  $backup_job->set_task_queued();
580
  } else {
581
  //COMPLETE
582
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'All others backed up.' );
583
 
584
  set_status( 'backup_other', $complete, false );
585
  $backup_job->set_task_complete();
586
+ WPBackItUp_LoggerV2::log($backup_logname,'**END BACKUP OTHER TASK**' );
587
  }
588
 
589
  }
599
  //Validate the backup IF logging is turned on - reporting only
600
  if ('task_validate_backup'==$current_task) {
601
  //Validate the content if logging is on
602
+ WPBackItUp_LoggerV2::log($backup_logname,'**VALIDATE CONTENT**');
603
 
604
  write_response_processing( "Validating Backup " );
605
  set_status( 'validate_backup', $active, true );
606
 
607
+ $set_validate_backup_error = false;
608
+ $set_validate_backup_job_queue = true;
609
+ $db = new WPBackItUp_DataAccess();
610
+
611
+ $plugin_validation_meta = $backup_job->get_job_meta('task_multistep_validate_plugins');
612
+ $theme_validation_meta = $backup_job->get_job_meta('task_multistep_validate_themes');
613
+ $upload_validation_meta = $backup_job->get_job_meta('task_multistep_validate_uploads');
614
+ $other_validation_meta = $backup_job->get_job_meta('task_multistep_validate_others');
615
+
616
+ $validation_meta=false;
617
+ $validation_task=false;
618
+ if( $plugin_validation_meta != "completed" ) {
619
+ $validation_task='plugins';
620
+ $validation_meta=$plugin_validation_meta;
621
+ } elseif( $theme_validation_meta != "completed" ) {
622
+ $validation_task='themes';
623
+ $validation_meta=$theme_validation_meta;
624
+ } elseif( $upload_validation_meta != "completed" ) {
625
+ $validation_task='uploads';
626
+ $validation_meta=$upload_validation_meta;
627
+ } elseif( $other_validation_meta != "completed" ) {
628
+ $validation_task='others';
629
+ $validation_meta=$other_validation_meta;
630
  } else {
631
+ $set_validate_backup_job_queue = false;
632
+ }
633
+
634
+ if( $validation_meta !==false ) {
635
+ $meta_task = sprintf( 'task_multistep_validate_%s', $validation_task );
636
+ $batch_ids = $db->get_batch_ids( $backup_job->backup_id, $validation_task );
637
+ WPBackItUp_LoggerV2::log_info( $backup_logname, $log_function, sprintf('%s Batch Ids: %s',$validation_task,var_export( $batch_ids, true )));
638
+ //$plugin_validation_batch_ids will never be empty
639
+
640
+ $array_index = 0;
641
+ if ( is_numeric( $validation_meta ) ) {
642
+ $array_index = intval( $validation_meta );
643
+ $array_index ++;
644
+ }
645
+
646
+
647
+ if ( array_key_exists( $array_index, $batch_ids ) ) {
648
+ $batch_id = $batch_ids[ $array_index ];//get batch ID
649
+ $validate_result = $wp_backup->validate_backup_files_by_batch_id( $backup_job->backup_id, $validation_task, $batch_id );
650
+ if ( $validate_result === false ) {
651
+ $set_validate_backup_error = true;
652
+ } else {
653
+ $backup_job->update_job_meta( $meta_task, $array_index );
654
+ WPBackItUp_LoggerV2::log_info( $backup_logname, $log_function, sprintf('%s Content, Batch ID: %s Validated Successfully!',$validation_task,$batch_id ));
655
+ }
656
+ } else {
657
+ //task is done
658
+ $backup_job->update_job_meta( $meta_task, 'completed' );
659
+ WPBackItUp_LoggerV2::log_info( $backup_logname, $log_function, sprintf('%s Content Validated Successfully!',$validation_task));
660
+ }
661
+ }
662
+
663
+ //if error set error message
664
+ if($set_validate_backup_error) {
665
+ //ERROR
666
+ WPBackItUp_LoggerV2::log_error($backup_logname,$log_function,'Content Validation ERROR.' );
667
+ $backup_job->set_task_error( '126' );
668
+
669
+ write_fatal_error_status( '126' );
670
+ end_backup( 123, false );
671
+ } elseif($set_validate_backup_job_queue === false) {
672
+ //validation completed, delete all options
673
+ $keys = array (
674
+ 'task_multistep_validate_plugins',
675
+ 'task_multistep_validate_themes',
676
+ 'task_multistep_validate_uploads',
677
+ 'task_multistep_validate_others'
678
+ );
679
+ foreach ($keys as $key) {
680
+ delete_post_meta($backup_job->get_job_id(),$key);
681
+ }
682
+ //set backup status to success
683
  set_status( 'validate_backup', $complete, false );
684
  $backup_job->set_task_complete();
685
 
686
+ WPBackItUp_LoggerV2::log_info($backup_logname,$log_function,'All Content Validated Successfully!' );
687
+ WPBackItUp_LoggerV2::log($backup_logname,'**END VALIDATE CONTENT**' );
688
+
689
+ } elseif ($set_validate_backup_job_queue === true) {
690
+ $backup_job->set_task_queued();
691
  }
692
 
693
  return;
695
 
696
  //Zip up the backup folder
697
  if ('task_finalize_backup'==$current_task) {
698
+ WPBackItUp_LoggerV2::log($backup_logname,'**FINALIZE BACKUP**' );
699
  write_response_processing( "Compress Backup " );
700
  set_status( 'finalize_backup', $active, true );
701
 
723
  }
724
 
725
  //Take an inventory of the zip files created
726
+
727
+ $file_system = new WPBackItUp_FileSystem($backup_logname);
728
  $zip_files = $file_system->get_fileonly_list($wp_backup->backup_project_path, 'zip');
729
  $wp_backup->save_file_list_inventory(WPBACKITUP__SQL_BULK_INSERT_SIZE,$backup_job->backup_id,'backups',$wp_backup->backup_project_path,$zip_files);
730
 
734
  set_status( 'finalize_backup', $complete, false );
735
  $backup_job->set_task_complete();
736
 
737
+ WPBackItUp_LoggerV2::log($backup_logname,'**END FINALIZE BACKUP**' );
738
 
739
  }
740
 
774
 
775
  }
776
  function end_backup($err=null, $success=null){
777
+ global $WPBackitup,$wp_backup,$backup_logname,$backup_job;
778
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Begin');
779
 
780
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Zip up all the logs.');
781
  //Zip up all the logs in the log folder
782
  $logs_path = WPBACKITUP__PLUGIN_PATH .'logs';
783
  $zip_file_path = $wp_backup->backup_project_path .'logs_' .$backup_job->backup_id . '.zip';
784
 
785
+ //copy WP debug file
786
  $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
787
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Save WP Debug: ' .$wpdebug_file_path);
788
  if (file_exists($wpdebug_file_path)) {
789
+ $debug_log = sprintf('%s/wpdebug_%s.log',$logs_path,$backup_job->backup_id);
790
+ copy( $wpdebug_file_path, $debug_log );
791
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'WP Debug file saved: ' .$debug_log);
792
+ }else{
793
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'NO WP Debug file: ' .$wpdebug_file_path);
794
  }
795
 
796
+ $zip = new WPBackItUp_Zip($backup_logname,$zip_file_path);
797
  $zip->zip_files_in_folder($logs_path,$backup_job->backup_id,'*.log');
798
  $zip->close();
799
 
801
  $current_datetime = current_time( 'timestamp' );
802
  $WPBackitup->set_backup_lastrun_date($current_datetime);
803
 
804
+
805
+ $util = new WPBackItUp_Utility($backup_logname);
806
  $seconds = $util->timestamp_diff_seconds($backup_job->get_job_start_time(),$backup_job->get_job_end_time());
807
 
808
  $processing_minutes = round($seconds / 60);
809
  $processing_seconds = $seconds % 60;
810
 
811
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Script Processing Time:' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds');
812
 
813
+ if (true===$success) WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Backup completed: SUCCESS');
814
+ if (false===$success) WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Backup completed: ERROR');
815
 
816
+ WPBackItUp_LoggerV2::log($backup_logname,'*** END BACKUP ***');
817
 
818
  //Send Notification email
819
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Send Email notification');
820
  $logs_attachment = array( $zip_file_path );
821
  send_backup_notification_email($err, $success,$logs_attachment);
822
 
823
+ $logFileName = WPBackItUp_LoggerV2::getLogFileName($backup_logname);
824
+ $logFilePath = WPBackItUp_LoggerV2::getLogFilePath($backup_logname);
 
825
 
826
  //COPY the log if it exists
827
  $newlogFilePath = $wp_backup->backup_project_path .$logFileName;
829
  copy($logFilePath,$newlogFilePath);
830
  }
831
 
832
+ WPBackItUp_LoggerV2::close($backup_logname);
833
  echo('Backup has completed');
834
  exit(0);
835
  }
836
 
837
  function send_backup_notification_email($err, $success,$logs=array()) {
838
+ global $WPBackitup, $wp_backup, $backup_logname,$status_array,$backup_job;
839
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Begin');
840
 
841
  $start_timestamp = $backup_job->get_job_start_time();
842
  $end_timestamp = $backup_job->get_job_end_time();
843
+
844
+ $utility = new WPBackItUp_Utility($backup_logname);
845
  $seconds = $utility->timestamp_diff_seconds($start_timestamp,$end_timestamp);
846
 
847
  $processing_minutes = round($seconds / 60);
848
  $processing_seconds = $seconds % 60;
849
 
850
  $status_description = array(
851
+ 'preparing'=> __('Preparing for backup...Done', WPBACKITUP__NAMESPACE),
852
+ 'backupdb'=> __('Backing up database...Done', WPBACKITUP__NAMESPACE),
853
+ 'infofile'=> __('Creating backup information file...Done',WPBACKITUP__NAMESPACE),
854
+ 'backup_themes'=> __('Backing up themes...Done', WPBACKITUP__NAMESPACE),
855
+ 'backup_plugins'=> __('Backing up plugins...Done', WPBACKITUP__NAMESPACE),
856
+ 'backup_uploads'=> __('Backing up uploads...Done', WPBACKITUP__NAMESPACE),
857
+ 'backup_other'=> __('Backing up miscellaneous files...Done', WPBACKITUP__NAMESPACE),
858
+ 'finalize_backup'=> __('Finalizing backup...Done', WPBACKITUP__NAMESPACE),
859
+ 'validate_backup'=> __('Validating backup...Done', WPBACKITUP__NAMESPACE),
860
+ 'cleanup'=> __('Cleaning up...Done', WPBACKITUP__NAMESPACE)
861
  );
862
 
863
  if($success)
867
  $logs=array();
868
  }
869
 
870
+ $subject = sprintf(__('%s - Backup completed successfully.', WPBACKITUP__NAMESPACE), get_bloginfo());
871
+ $message = '<b>' . __('Your backup completed successfully.', WPBACKITUP__NAMESPACE) . '</b><br/><br/>';
872
 
873
  } else {
874
+ $subject = sprintf(__('%s - Backup did not complete successfully.', WPBACKITUP__NAMESPACE), get_bloginfo());
875
+ $message = '<b>' . __('Your backup did not complete successfully.', WPBACKITUP__NAMESPACE) . '</b><br/><br/>';
876
  }
877
 
878
  $local_start_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',$start_timestamp));
879
  $local_end_datetime = get_date_from_gmt(date( 'Y-m-d H:i:s',$end_timestamp));
880
+ $message .= sprintf(__('WordPress Site: <a href="%s" target="_blank"> %s </a><br/>', WPBACKITUP__NAMESPACE), home_url(), home_url());
881
+ $message .= __('Backup date:', WPBACKITUP__NAMESPACE) . ' ' . $local_start_datetime . '<br/>';
882
+ $message .= __('Number of backups completed with WP BackItUp:', WPBACKITUP__NAMESPACE) . ' ' . $WPBackitup->backup_count() . '<br/>';
883
 
884
+ $message .= __('Completion Code:', WPBACKITUP__NAMESPACE) . ' ' . $backup_job->backup_id .'-'. $processing_minutes .'-' .$processing_seconds .'<br/>';
885
+ $message .= __('WP BackItUp Version:', WPBACKITUP__NAMESPACE) . ' ' . WPBACKITUP__VERSION . '<br/>';
886
  $message .= '<br/>';
887
 
888
 
889
  //Add the completed steps on success
890
  if($success) {
891
+ $message .='<b>' . __('Steps Completed', WPBACKITUP__NAMESPACE) . '</b><br/>';
892
 
893
  //Add the completed statuses
894
  foreach ($status_array as $status_key => $status_value) {
909
 
910
  $term='success';
911
  if(!$success)$term='error';
912
+ $message .='<br/><br/>' . sprintf(__('Checkout %s for info about WP BackItUp and our other products.', WPBACKITUP__NAMESPACE), $WPBackitup->get_anchor_with_utm('www.wpbackitup.com', '', 'notification+email', $term) ) . '<br/>';
913
 
914
 
915
  $notification_email = $WPBackitup->get_option('notification_email');
916
  if($notification_email)
917
  $utility->send_email($notification_email,$subject,$message,$logs);
918
 
919
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'End');
920
  }
921
 
922
  function cleanup_on_failure($path){
923
+ global $backup_logname;
924
  global $wp_backup;
925
 
926
  if (WPBACKITUP__DEBUG===true){
927
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Cleanup On Fail suspended: debug on.');
928
  }
929
  else{
930
  $wp_backup->cleanup_backups_by_prefix('TMP_');
1008
 
1009
  //Get Status Log
1010
  function getStatusLog(){
1011
+ global $backup_logname;
1012
 
1013
  $status_file_path = WPBACKITUP__PLUGIN_PATH .'/logs/backup_status.log';
1014
+ $filesystem = new WPBackItUp_FileSystem($backup_logname);
1015
  return $filesystem->get_file_handle($status_file_path);
1016
 
1017
  }
1039
 
1040
  //write Response Log
1041
  function write_response_file_success() {
1042
+ global $WPBackitup,$wp_backup,$backup_logname;
1043
 
1044
  $jsonResponse = new stdClass();
1045
  $jsonResponse->backupStatus = 'success';
1048
  $jsonResponse->backupLicense = $WPBackitup->license_active();
1049
  $jsonResponse->backupRetained = $wp_backup->backup_retained_number;
1050
 
1051
+ $jsonResponse->logFileExists = file_exists(WPBackItUp_LoggerV2::getLogFilePath($backup_logname));
1052
 
1053
  write_response_file($jsonResponse);
1054
  }
1055
 
1056
  //write Response Log
1057
  function write_response_file($JSON_Response) {
1058
+ global $backup_logname;
1059
 
1060
  $json_response = json_encode($JSON_Response);
1061
+ WPBackItUp_LoggerV2::log_info($backup_logname,__METHOD__,'Write response file:' . $json_response);
1062
 
1063
  $fh=get_response_file();
1064
  fwrite($fh, $json_response);
1067
 
1068
  //Get Response Log
1069
  function get_response_file() {
1070
+ global $backup_logname;
1071
+
1072
  $response_file_path = WPBACKITUP__PLUGIN_PATH .'logs/backup_response.log';
1073
+ $filesytem = new WPBackItUp_FileSystem($backup_logname);
1074
  return $filesytem->get_file_handle($response_file_path,false);
1075
  }
1076
 
1085
  function get_error_message($error_code){
1086
 
1087
  $error_message_array = array(
1088
+ '101' => __('(101) Unable to create a new directory for backup. Please check your CHMOD settings of your wp-backitup backup directory', WPBACKITUP__NAMESPACE),
1089
+ '102'=> __('(102) Cannot create backup directory. Please check the CHMOD settings of your wp-backitup plugin directory', WPBACKITUP__NAMESPACE),
1090
+ '103'=> __('(103) Unable to backup your files. Please try again', WPBACKITUP__NAMESPACE),
1091
+ '104'=> __('(104) Unable to export your database. Please try again', WPBACKITUP__NAMESPACE),
1092
+ '105'=> __('(105) Unable to export site information file. Please try again', WPBACKITUP__NAMESPACE),
1093
+ '106'=> __('(106) Unable to cleanup your backup directory', WPBACKITUP__NAMESPACE),
1094
+ '107'=> __('(107) Unable to compress(zip) your backup. Please try again', WPBACKITUP__NAMESPACE),
1095
+ '108'=> __('(108) Unable to backup your site data files. Please try again', WPBACKITUP__NAMESPACE),
1096
+ '109'=> __('(109) Unable to finalize backup. Please try again', WPBACKITUP__NAMESPACE),
1097
+ '114'=> __('(114) Your database was accessible but an export could not be created. Please contact support by clicking the get support link on the right. Please let us know who your host is when you submit the request', WPBACKITUP__NAMESPACE),
1098
+ '120'=> __('(120) Unable to backup your themes. Please try again', WPBACKITUP__NAMESPACE),
1099
+ '121'=> __('(121) Unable to backup your plugins. Please try again', WPBACKITUP__NAMESPACE),
1100
+ '122'=> __('(122) Unable to backup your uploads. Please try again', WPBACKITUP__NAMESPACE),
1101
+ '123'=> __('(123) Unable to backup your miscellaneous files. Please try again', WPBACKITUP__NAMESPACE),
1102
+ '125'=> __('(125) Unable to compress your backup because there is no zip utility available. Please contact support', WPBACKITUP__NAMESPACE),
1103
+ '126'=> __('(126) Unable to validate your backup. Please try again', WPBACKITUP__NAMESPACE),
1104
+ '127'=> __('(127) Unable to create inventory of files to backup. Please try again', WPBACKITUP__NAMESPACE),
1105
+ '128'=> __('(128) Unable to create job control record. Please try again', WPBACKITUP__NAMESPACE),
1106
+
1107
+ '2101' => __('(2101) Unable to create a new directory for backup. Please check your CHMOD settings of your wp-backitup backup directory', WPBACKITUP__NAMESPACE),
1108
+ '2102'=> __('(2102) Cannot create backup directory. Please check the CHMOD settings of your wp-backitup plugin directory', WPBACKITUP__NAMESPACE),
1109
+ '2103'=> __('(2103) Unable to backup your files. Please try again', WPBACKITUP__NAMESPACE),
1110
+ '2104'=> __('(2104) Unable to export your database. Please try again', WPBACKITUP__NAMESPACE),
1111
+ '2105'=> __('(2105) Unable to export site information file. Please try again', WPBACKITUP__NAMESPACE),
1112
+ '2106'=> __('(2106) Unable to cleanup your backup directory', WPBACKITUP__NAMESPACE),
1113
+ '2107'=> __('(2107) Unable to compress(zip) your backup. Please try again', WPBACKITUP__NAMESPACE),
1114
+ '2108'=> __('(2108) Unable to backup your site data files. Please try again', WPBACKITUP__NAMESPACE),
1115
+ '2109'=> __('(2109) Unable to finalize backup. Please try again', WPBACKITUP__NAMESPACE),
1116
+ '2114'=> __('(2114) Your database was accessible but an export could not be created. Please contact support by clicking the get support link on the right. Please let us know who your host is when you submit the request', WPBACKITUP__NAMESPACE),
1117
+ '2120'=> __('(2120) Unable to backup your themes. Please try again', WPBACKITUP__NAMESPACE),
1118
+ '2121'=> __('(2121) Unable to backup your plugins. Please try again', WPBACKITUP__NAMESPACE),
1119
+ '2122'=> __('(2122) Unable to backup your uploads. Please try again', WPBACKITUP__NAMESPACE),
1120
+ '2123'=> __('(2123) Unable to backup your miscellaneous files. Please try again', WPBACKITUP__NAMESPACE),
1121
+ '2125'=> __('(2125) Unable to compress your backup because there is no zip utility available. Please contact support', WPBACKITUP__NAMESPACE),
1122
+ '2126'=> __('(2126) Unable to validate your backup. Please try again', WPBACKITUP__NAMESPACE),
1123
+ '2127'=> __('(2127) Unable to create inventory of files to backup. Please try again', WPBACKITUP__NAMESPACE),
1124
+ '2128'=> __('(2128) Unable to create job control record. Please try again', WPBACKITUP__NAMESPACE),
1125
  );
1126
 
1127
+ $error_message = __('(999) Unexpected error', WPBACKITUP__NAMESPACE);
1128
  if (array_key_exists($error_code,$error_message_array)) {
1129
  $error_message = $error_message_array[ $error_code ];
1130
  }
lib/includes/job_backup_cancelled.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
+
10
+ /**
11
+ * WP BackItUp - Backup Cancelled Job
12
+ *
13
+ * @package WP BackItUp
14
+ * @author Md. Al-Amin <alamin.opu10@gmail.com>
15
+ * @link http://www.wpbackitup.com
16
+ *
17
+ */
18
+
19
+ /*** Includes ***/
20
+
21
+ if( !class_exists( 'WPBackItUp_Filesystem' ) ) {
22
+ include_once 'class-filesystem.php';
23
+ }
24
+
25
+ if( !class_exists( 'WPBackItUp_Job' ) ) {
26
+ include_once 'class-job.php';
27
+ }
28
+
29
+ /*** Globals ***/
30
+ global $WPBackitup;
31
+
32
+ global $status_array,$inactive,$active,$complete,$failure,$warning,$success,$cancelled;
33
+ $inactive=0;
34
+ $active=1;
35
+ $complete=2;
36
+ $failure=-1;
37
+ $warning=-2;
38
+ $success=99;
39
+ $cancelled=-99;
40
+
41
+
42
+ //setup the status array
43
+ global $status_array;
44
+ $status_array = array(
45
+ 'preparing' =>$inactive,
46
+ 'backupdb' =>$inactive ,
47
+ 'infofile'=>$inactive,
48
+ 'backup_themes'=>$inactive,
49
+ 'backup_plugins'=>$inactive,
50
+ 'backup_uploads'=>$inactive,
51
+ 'backup_other'=>$inactive,
52
+ 'validate_backup'=>$inactive,
53
+ 'finalize_backup'=>$inactive,
54
+ );
55
+
56
+ global $backup_job;
57
+ $backup_job=null;
58
+
59
+ $backup_job = WPBackItUp_Job::get_job('backup');
60
+
61
+ //Get the backup ID
62
+ $backup_name = get_backup_name($backup_job->backup_id);
63
+ $backup_logname = $backup_name;
64
+
65
+ // Setting status cancelled
66
+ set_status_cancelled();
67
+
68
+ /******************/
69
+ /*** Functions ***/
70
+ /******************/
71
+ function get_backup_name($timestamp){
72
+
73
+ $url = home_url();
74
+ $url = str_replace('http://','',$url);
75
+ $url = str_replace('https://','',$url);
76
+ $url = str_replace('/','-',$url);
77
+ $fileUTCDateTime=$timestamp;//current_time( 'timestamp' );
78
+ $localDateTime = date_i18n('Y-m-d-His',$fileUTCDateTime);
79
+ $backup_name = 'Backup_' . $url .'_' .$localDateTime;
80
+
81
+ return $backup_name;
82
+
83
+ }
84
+
85
+
86
+ function write_status() {
87
+ global $status_array;
88
+ $fh=getStatusLog();
89
+
90
+ foreach ($status_array as $key => $value) {
91
+ fwrite($fh, '<div class="' . $key . '">' . $value .'</div>');
92
+ }
93
+
94
+ fclose($fh);
95
+ }
96
+
97
+ // Set Status Cancelled
98
+ function set_status_cancelled(){
99
+ global $status_array,$cancelled;
100
+
101
+ //Mark all the cancelled and flush
102
+ foreach ($status_array as $key => $value) {
103
+ $status_array[$key]=$cancelled;
104
+ }
105
+
106
+ $status_array['finalinfo']=$cancelled;
107
+ write_status();
108
+ }
109
+
110
+ //Get Status Log
111
+ function getStatusLog(){
112
+ global $backup_logname;
113
+
114
+ $status_file_path = WPBACKITUP__PLUGIN_PATH .'/logs/backup_status.log';
115
+ $filesystem = new WPBackItUp_FileSystem($backup_logname);
116
+ return $filesystem->get_file_handle($status_file_path);
117
+
118
+ }
lib/includes/job_cleanup.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
- @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
 
 
 
 
 
 
3
 
4
  /**
5
  * WP BackItUp - Cleanup Job
@@ -12,10 +18,6 @@
12
 
13
  /*** Includes ***/
14
 
15
- if( !class_exists( 'WPBackItUp_Logger' ) ) {
16
- include_once 'class-logger.php';
17
- }
18
-
19
  if( !class_exists( 'WPBackItUp_Utility' ) ) {
20
  include_once 'class-utility.php';
21
  }
@@ -34,7 +36,7 @@ if( !class_exists( 'WPBackItUp_Restore' ) ) {
34
  include_once 'class-restore.php';
35
  }
36
 
37
- // include logger class
38
  if( !class_exists( 'WPBackItUp_Zip' ) ) {
39
  include_once 'class-zip.php';
40
  }
@@ -64,10 +66,9 @@ $success=99;
64
  //**************************//
65
  // SINGLE THREAD BACKUPS //
66
  //**************************//
67
- $logger_tasks = new WPBackItUp_Logger(false,null,'debug_tasks');
68
  $backup_process_id = uniqid();
69
 
70
-
71
  //If there is a queued or active job then add a resume check
72
  if ('scheduled'==$this->backup_type){
73
  wp_schedule_single_event( time()+30, 'wpbackitup_run_cleanup_tasks');
@@ -75,10 +76,10 @@ if ('scheduled'==$this->backup_type){
75
 
76
  //Make sure backup is NOT already running before you run the current task
77
  if (!WPBackItUp_Backup::start()) {
78
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Cleanup job cant acquire job lock.');
79
  return; //nothing to do
80
  }else{
81
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Cleanup job lock acquired.');
82
  }
83
  //**************************//
84
 
@@ -93,7 +94,7 @@ $backup_error=false;
93
 
94
 
95
  $cleanup_job = WPBackItUp_Job::get_job('cleanup');
96
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Check for available job');
97
  if ($cleanup_job){
98
 
99
  //Get the next task in the stack
@@ -107,15 +108,15 @@ if ($cleanup_job){
107
  $backup_error=true;
108
  }
109
 
110
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Available Task Found:' . $current_task);
111
 
112
  }else{
113
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','No available tasks found.');
114
  WPBackItUp_Backup::end(); //release lock
115
  return;
116
  }
117
  }else {
118
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','No backup job available.');
119
  wp_clear_scheduled_hook( 'wpbackitup_run_cleanup_tasks');
120
  WPBackItUp_Backup::end(); //release lock
121
  return;
@@ -123,7 +124,7 @@ if ($cleanup_job){
123
 
124
 
125
  //Should only get here when there is a task to run
126
- $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Run Backup task:' .$current_task);
127
 
128
  //*************************//
129
  //*** MAIN BACKUP CODE ***//
@@ -132,12 +133,11 @@ $logger_tasks->log_info(__METHOD__.'(' .$backup_process_id .')','Run Backup task
132
  //Get the backup ID
133
  $job_name = get_job_name($cleanup_job->backup_id);
134
 
135
- global $logger;
136
- $logger = new WPBackItUp_Logger(false,null,$job_name);
137
 
138
  global $wp_backup;
139
- $wp_backup = new WPBackItUp_Backup($logger,$job_name,$WPBackitup->backup_type);
140
-
141
 
142
  //*** SCHEDULED TASKS ***//
143
 
@@ -145,42 +145,41 @@ $wp_backup = new WPBackItUp_Backup($logger,$job_name,$WPBackitup->backup_type);
145
  if ('task_scheduled_cleanup'==$current_task) {
146
 
147
  //Init
148
- $logger->log('***BEGIN JOB***');
149
- $logger->log_sysinfo();
150
 
151
- $logger->log('Check License');
152
  do_action( 'wpbackitup_check_license');
 
153
 
154
- $logger->log('Scheduled Cleanup requested');
155
-
156
- $logger->log( '**CLEAN UNFINISHED BACKUPS**' );
157
  //cleanup any folders that have the TMP_ prefix
158
  $wp_backup->cleanup_backups_by_prefix('TMP_');
159
- $logger->log( '**END CLEAN UNFINISHED BACKUPS**' );
160
 
161
- $logger->log( '**CLEAN DELETED BACKUPS**' );
162
  //cleanup any folders that have the DLT_ prefix
163
  $wp_backup->cleanup_backups_by_prefix('DLT_');
164
- $logger->log( '**END CLEAN DELETED BACKUPS**' );
165
 
166
- $logger->log( '**CLEAN OLD BACKUPS**' );
167
  //Cleanup any folders that exceed retention limit
168
  $wp_backup->cleanup_old_backups();
169
- $logger->log( '**END CLEAN OLD BACKUPS**' );
170
 
171
- $logger->log( '**CLEAN OLD RESTORES**' );
172
  //Cleanup any folders that exceed retention limit
173
- $wp_restore = new WPBackItUp_Restore($logger,$job_name,null);
174
  $wp_restore->delete_restore_folder();
175
- $logger->log( '**END CLEAN OLD RESTORES**' );
176
 
177
- $logger->log( '**PURGE OLD FILES**' );
178
  $wp_backup->purge_old_files();
179
- $logger->log( '**END PURGE OLD FILES**' );
180
 
181
- $logger->log( '**SECURE FOLDERS**' );
182
  //Make sure backup folder is secured
183
- $file_system = new WPBackItUp_FileSystem();
184
 
185
  //Make sure backup folder is secured
186
  $backup_dir = WPBACKITUP__CONTENT_PATH . '/' . WPBACKITUP__BACKUP_FOLDER;
@@ -193,15 +192,15 @@ if ('task_scheduled_cleanup'==$current_task) {
193
  //Make sure logs folder is secured
194
  $logs_dir = WPBACKITUP__PLUGIN_PATH .'/logs/';
195
  $file_system->secure_folder( $logs_dir);
196
- $logger->log( '**END SECURE FOLDERS**' );
197
 
198
- $logger->log( '**CLEANUP OLD JOBS**' );
199
  $backup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('backup');
200
- $logger->log( 'Backup job records purged:' .$backup_job_purge_count );
201
 
202
  $cleanup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('cleanup');
203
- $logger->log( 'Cleanup job records purged:' .$cleanup_job_purge_count );
204
- $logger->log( '**END CLEANUP OLD JOBS**' );
205
 
206
  $cleanup_job->set_task_complete();
207
  }
@@ -224,25 +223,24 @@ function get_job_name($timestamp){
224
  }
225
 
226
  function end_job($err=null, $success=null){
227
- global $WPBackitup, $logger, $cleanup_job;
228
- $logger->log_info(__METHOD__,"Begin");
229
 
230
  WPBackItUp_Backup::end(); //Release the lock
231
  $current_datetime = current_time( 'timestamp' );
232
  $WPBackitup->set_cleanup_lastrun_date($current_datetime);
233
 
234
- $util = new WPBackItUp_Utility($logger);
235
  $seconds = $util->timestamp_diff_seconds($cleanup_job->get_job_start_time(),$cleanup_job->get_job_end_time());
236
 
237
  $processing_minutes = round($seconds / 60);
238
  $processing_seconds = $seconds % 60;
239
 
240
- $logger->log('Script Processing Time:' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds');
241
 
242
- if (true===$success) $logger->log("Cleanup completed: SUCCESS");
243
- if (false===$success) $logger->log("Cleanup completed: ERROR");
244
- $logger->log("*** END JOB ***");
245
- $logger->close_file();
246
 
247
  echo('cleanup has completed');
248
  exit(0);
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
 
10
  /**
11
  * WP BackItUp - Cleanup Job
18
 
19
  /*** Includes ***/
20
 
 
 
 
 
21
  if( !class_exists( 'WPBackItUp_Utility' ) ) {
22
  include_once 'class-utility.php';
23
  }
36
  include_once 'class-restore.php';
37
  }
38
 
39
+ // include zip class
40
  if( !class_exists( 'WPBackItUp_Zip' ) ) {
41
  include_once 'class-zip.php';
42
  }
66
  //**************************//
67
  // SINGLE THREAD BACKUPS //
68
  //**************************//
69
+ $tasks_logname='debug_tasks';
70
  $backup_process_id = uniqid();
71
 
 
72
  //If there is a queued or active job then add a resume check
73
  if ('scheduled'==$this->backup_type){
74
  wp_schedule_single_event( time()+30, 'wpbackitup_run_cleanup_tasks');
76
 
77
  //Make sure backup is NOT already running before you run the current task
78
  if (!WPBackItUp_Backup::start()) {
79
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'Cleanup job cant acquire job lock.');
80
  return; //nothing to do
81
  }else{
82
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'Cleanup job lock acquired.');
83
  }
84
  //**************************//
85
 
94
 
95
 
96
  $cleanup_job = WPBackItUp_Job::get_job('cleanup');
97
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'Check for available job');
98
  if ($cleanup_job){
99
 
100
  //Get the next task in the stack
108
  $backup_error=true;
109
  }
110
 
111
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'Available Task Found:' . $current_task);
112
 
113
  }else{
114
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'No available tasks found.');
115
  WPBackItUp_Backup::end(); //release lock
116
  return;
117
  }
118
  }else {
119
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'No backup job available.');
120
  wp_clear_scheduled_hook( 'wpbackitup_run_cleanup_tasks');
121
  WPBackItUp_Backup::end(); //release lock
122
  return;
124
 
125
 
126
  //Should only get here when there is a task to run
127
+ WPBackItUp_LoggerV2::log_info($tasks_logname,$backup_process_id ,'Run cleanup task:' .$current_task);
128
 
129
  //*************************//
130
  //*** MAIN BACKUP CODE ***//
133
  //Get the backup ID
134
  $job_name = get_job_name($cleanup_job->backup_id);
135
 
136
+ global $cleanup_logname;
137
+ $cleanup_logname=$job_name;
138
 
139
  global $wp_backup;
140
+ $wp_backup = new WPBackItUp_Backup($cleanup_logname,$job_name,$WPBackitup->backup_type);
 
141
 
142
  //*** SCHEDULED TASKS ***//
143
 
145
  if ('task_scheduled_cleanup'==$current_task) {
146
 
147
  //Init
148
+ WPBackItUp_LoggerV2::log($cleanup_logname,'***BEGIN JOB***');
149
+ WPBackItUp_LoggerV2::log_sysinfo($cleanup_logname);
150
 
151
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CHECK LICENSE**');
152
  do_action( 'wpbackitup_check_license');
153
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CHECK LICENSE**');
154
 
155
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CLEAN UNFINISHED BACKUPS**' );
 
 
156
  //cleanup any folders that have the TMP_ prefix
157
  $wp_backup->cleanup_backups_by_prefix('TMP_');
158
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CLEAN UNFINISHED BACKUPS**' );
159
 
160
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CLEAN DELETED BACKUPS**' );
161
  //cleanup any folders that have the DLT_ prefix
162
  $wp_backup->cleanup_backups_by_prefix('DLT_');
163
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CLEAN DELETED BACKUPS**' );
164
 
165
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CLEAN OLD BACKUPS**' );
166
  //Cleanup any folders that exceed retention limit
167
  $wp_backup->cleanup_old_backups();
168
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CLEAN OLD BACKUPS**' );
169
 
170
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CLEAN OLD RESTORES**' );
171
  //Cleanup any folders that exceed retention limit
172
+ $wp_restore = new WPBackItUp_Restore($cleanup_logname,$job_name,null);
173
  $wp_restore->delete_restore_folder();
174
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CLEAN OLD RESTORES**' );
175
 
176
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**PURGE OLD FILES**' );
177
  $wp_backup->purge_old_files();
178
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END PURGE OLD FILES**' );
179
 
180
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**SECURE FOLDERS**' );
181
  //Make sure backup folder is secured
182
+ $file_system = new WPBackItUp_FileSystem($cleanup_logname);
183
 
184
  //Make sure backup folder is secured
185
  $backup_dir = WPBACKITUP__CONTENT_PATH . '/' . WPBACKITUP__BACKUP_FOLDER;
192
  //Make sure logs folder is secured
193
  $logs_dir = WPBACKITUP__PLUGIN_PATH .'/logs/';
194
  $file_system->secure_folder( $logs_dir);
195
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END SECURE FOLDERS**' );
196
 
197
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**CLEANUP OLD JOBS**' );
198
  $backup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('backup');
199
+ WPBackItUp_LoggerV2::log($cleanup_logname,'Backup job records purged:' .$backup_job_purge_count );
200
 
201
  $cleanup_job_purge_count = WPBackItUp_Job_v2::purge_completed_jobs('cleanup');
202
+ WPBackItUp_LoggerV2::log_info($cleanup_logname,__METHOD__,'Cleanup job records purged:' .$cleanup_job_purge_count );
203
+ WPBackItUp_LoggerV2::log($cleanup_logname,'**END CLEANUP OLD JOBS**' );
204
 
205
  $cleanup_job->set_task_complete();
206
  }
223
  }
224
 
225
  function end_job($err=null, $success=null){
226
+ global $WPBackitup, $cleanup_logname, $cleanup_job;
227
+ WPBackItUp_LoggerV2::log_info($cleanup_logname,__METHOD__,'Begin');
228
 
229
  WPBackItUp_Backup::end(); //Release the lock
230
  $current_datetime = current_time( 'timestamp' );
231
  $WPBackitup->set_cleanup_lastrun_date($current_datetime);
232
 
233
+ $util = new WPBackItUp_Utility($cleanup_logname);
234
  $seconds = $util->timestamp_diff_seconds($cleanup_job->get_job_start_time(),$cleanup_job->get_job_end_time());
235
 
236
  $processing_minutes = round($seconds / 60);
237
  $processing_seconds = $seconds % 60;
238
 
239
+ WPBackItUp_LoggerV2::log_info($cleanup_logname,__METHOD__,'Script Processing Time:' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds');
240
 
241
+ if (true===$success) WPBackItUp_LoggerV2::log($cleanup_logname,'Cleanup completed: SUCCESS');
242
+ if (false===$success) WPBackItUp_LoggerV2::log($cleanup_logname,'Cleanup completed: ERROR');
243
+ WPBackItUp_LoggerV2::log($cleanup_logname,'*** END JOB ***');
 
244
 
245
  echo('cleanup has completed');
246
  exit(0);
lib/includes/job_restore.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (restore)');
2
- @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
 
 
 
 
 
 
3
 
4
  /**
5
  * WP BackItUp - Restore Job
@@ -42,7 +48,6 @@ global $table_prefix; //this is from wp-config
42
 
43
  global $backup_name; //name of the backup file
44
  global $RestorePoint_SQL; //path to restore point
45
- global $logger;
46
 
47
  global $status_array,$inactive,$active,$complete,$failure,$warning,$success;
48
  $inactive=0;
@@ -71,8 +76,8 @@ $status_array = array(
71
  //**************************//
72
  // SINGLE THREAD RESTORE //
73
  //**************************//
74
-
75
- $logger_tasks = new WPBackItUp_Logger(false,null,'debug_restore_tasks');
76
 
77
  //**************************//
78
  // Task Handling //
@@ -80,31 +85,31 @@ $logger_tasks = new WPBackItUp_Logger(false,null,'debug_restore_tasks');
80
  $current_task= null;
81
 
82
  $restore_error=false;
83
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','Check for available job');
84
  if ($restore_job){
85
 
86
  //Get the next task in the stack
87
  $current_task = $restore_job->get_next_task();
88
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','TASK Info:'.var_export($current_task,true));
89
  if (null!= $current_task && false!==$current_task){
90
  $restore_id=$restore_job->get_job_id();
91
  $current_task->increment_retry_count();
92
 
93
  //Was there an error on the previous task
94
  if (WPBackItUp_Job_v2::ERROR==$current_task->getStatus()){
95
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','Restore Error Found:' .$current_task->getId());
96
  $restore_error=true;
97
  }
98
 
99
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','Available Task Found:' . $current_task->getId());
100
 
101
  }else{
102
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','No available tasks found.');
103
  //WPBackItUp_Backup::end(); //release lock
104
  return;
105
  }
106
  }else {
107
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','No job available.');
108
 
109
  //wp_clear_scheduled_hook( 'wpbackitup_run_restore_tasks');
110
  //WPBackItUp_Backup::end(); //release lock
@@ -112,7 +117,7 @@ if ($restore_job){
112
  }
113
 
114
  //Should only get here when there is a task to run
115
- $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','Run Restore task:' .$current_task->getId());
116
 
117
 
118
  //*****************//
@@ -122,12 +127,12 @@ $logger_tasks->log_info(__METHOD__.'(' .$process_id .')','Run Restore task:' .$c
122
  //Get the job name
123
  $job_log_name = get_job_log_name($restore_job->get_job_id());
124
 
125
- global $logger;
126
- $logger = new WPBackItUp_Logger(false,null,$job_log_name,true);
127
 
128
  $backup_name = $restore_job->get_job_meta('backup_name');
129
  if( empty($backup_name)) {
130
- $logger->log_error(__METHOD__,'Backup name not found in job meta.');
131
  write_fatal_error_status('error201');
132
  end_restore();
133
  }
@@ -135,13 +140,13 @@ if( empty($backup_name)) {
135
  //Get user ID
136
  $user_id = $restore_job->get_job_meta('user_id');
137
  if( empty($user_id)) {
138
- $logger->log_error(__METHOD__,'User Id not found in job meta.');
139
  write_fatal_error_status('error201');
140
  end_restore();
141
  }
142
 
143
  global $wp_restore; //Eventually everything will be migrated to this class
144
- $wp_restore = new WPBackItUp_Restore($logger,$backup_name,$restore_job->get_job_id());
145
 
146
  //*************************//
147
  //*** RESTORE TASKS ***//
@@ -187,13 +192,13 @@ if ($restore_error) {
187
 
188
  //Cleanup Task
189
  if ('task_preparing'==$current_task->getId()) {
190
- $logger->log('***BEGIN RESTORE***');
191
- $logger->log_sysinfo();
192
 
193
  $task = 'preparing';
194
  start_status($task);
195
 
196
- $logger->log('**PREPARING FOR RESTORE**');
197
 
198
  //ONLY check license here and prevent restore from starting. If
199
  //IF license check fails in later steps could be because DB was restored and no license on backup
@@ -207,28 +212,28 @@ if ('task_preparing'==$current_task->getId()) {
207
  fatal_error($task,'235','Zip Archive Class is not available.');
208
  }
209
 
210
- $logger->log('*DELETE RESTORE FOLDER*');
211
  if ( ! $wp_restore->delete_restore_folder()){
212
  fatal_error($task,'222','Restore folder could not be deleted.');
213
  }
214
- $logger->log('*END DELETE RESTORE FOLDER*');
215
 
216
- $logger->log('*CREATE ROOT RESTORE FOLDER*');
217
  if ( ! $wp_restore->create_restore_root_folder()){
218
  fatal_error($task,'222','Root Restore folder could not be created.');
219
  }
220
- $logger->log('*END CREATE RESTORE FOLDER*');
221
 
222
- $logger->log('*DELETE STAGED FOLDER*');
223
  if ( ! $wp_restore->delete_staged_folders()){
224
  fatal_error($task, '222','Staged folders could not be deleted.');
225
  }
226
- $logger->log('*END DELETE STAGED FOLDER*');
227
 
228
- $logger->log('*UPDATE ZIP JOB META*');
229
  //Get the zip list
230
  $backup_path_pattern = $wp_restore->get_backup_folder_path() . '/' .$wp_restore->get_backup_name() . '*.zip' ;
231
- $logger->log_info(__METHOD__,'Fetch backups pattern:' .$backup_path_pattern);
232
  $backup_set = glob( $backup_path_pattern);
233
  if ( is_array($backup_set) && count($backup_set)>0){
234
  $restore_job->update_job_meta('backup_set',$backup_set);
@@ -236,10 +241,10 @@ if ('task_preparing'==$current_task->getId()) {
236
  }else{
237
  fatal_error($task,'222','No zip files found (pattern):' . $backup_path_pattern);
238
  }
239
- $logger->log('*END UPDATE ZIP JOB META*');
240
 
241
 
242
- $logger->log( '*UPDATE SITE VALUES META*' );
243
  $siteurl = $wp_restore->get_siteurl();
244
  if (false===$siteurl){
245
  fatal_error($task,'207','Unable to fetch site url.');
@@ -275,26 +280,26 @@ if ('task_preparing'==$current_task->getId()) {
275
  $restore_job->update_job_meta('current_user_email',$user_email);
276
  }
277
 
278
- $logger->log( '*END UPDATE SITE VALUES META*' );
279
 
280
  end_status($task);
281
  $restore_job->set_task_complete();
282
- $logger->log('**END PREPARING FOR RESTORE**');
283
 
284
  return;
285
  }
286
 
287
  if ('task_unzip_backup_set'==$current_task->getId()) {
288
 
289
- $logger->log( '**UNZIP BACKUP**' );
290
 
291
  $task = 'unzipping';
292
  start_status($task );
293
 
294
  //get the list of plugins zips in folder
295
  $backup_set_list=$restore_job->get_job_meta('backup_set_remaining');
296
- $logger->log_info(__METHOD__,'Begin - Backup set list:');
297
- $logger->log($backup_set_list);
298
  if ( ! $wp_restore->unzip_archive_file( $backup_set_list) ) {
299
  fatal_error($task,'203','Unable to unzip archive.');
300
  } else {
@@ -304,14 +309,14 @@ if ('task_unzip_backup_set'==$current_task->getId()) {
304
 
305
  if (is_array($backup_set_list) && count($backup_set_list)>0){
306
  //CONTINUE
307
- $logger->log('Continue unzipping backup set.');
308
  $restore_job->set_task_queued();
309
  } else{
310
  //COMPLETE
311
- $logger->log('Complete - All archives restored.');
312
  end_status( $task);
313
  $restore_job->set_task_complete();
314
- $logger->log( '**END UNZIP BACKUP**' );
315
  }
316
 
317
  }
@@ -322,7 +327,7 @@ if ('task_unzip_backup_set'==$current_task->getId()) {
322
 
323
  //Validate the backup folder
324
  if ('task_validate_backup'==$current_task->getId()) {
325
- $logger->log_info(__METHOD__, '**VALIDATE BACKUP**' );
326
 
327
  $task = 'validation';
328
  start_status($task);
@@ -333,7 +338,7 @@ if ('task_validate_backup'==$current_task->getId()) {
333
  fatal_error($task,'204','Restore directory INVALID.');
334
  }
335
 
336
- $logger->log( '*VALIDATE MANIFEST*' );
337
  $backup_set_list=$restore_job->get_job_meta('backup_set');
338
  if ( $wp_restore->validate_manifest_file($backup_set_list,$error_code)===false){
339
  if ($error_code==1){
@@ -352,9 +357,9 @@ if ('task_validate_backup'==$current_task->getId()) {
352
  fatal_error($task,'999','Unexpected error code:' . $error_code);
353
 
354
  }
355
- $logger->log( '*END VALIDATE MANIFEST*' );
356
 
357
- $logger->log( '*VALIDATE SITEDATA FILE*' );
358
  //validate the site data file
359
  $site_info = $wp_restore->validate_siteinfo_file();
360
  if ( $site_info===false){
@@ -365,6 +370,7 @@ if ('task_validate_backup'==$current_task->getId()) {
365
  }
366
 
367
  //Check table prefix values FATAL - need to add link to article
 
368
  if ( $table_prefix != $site_info['restore_table_prefix'] ) {
369
  fatal_error($task,'221','Table prefix different from restore.');
370
  }
@@ -372,40 +378,40 @@ if ('task_validate_backup'==$current_task->getId()) {
372
  //Check wordpress version
373
  $site_wordpress_version = get_bloginfo('version');
374
  $backup_wordpress_version = $site_info['restore_wp_version'];
375
- $logger->log_info(__METHOD__, 'Site Wordpress Version:' . $site_wordpress_version);
376
- $logger->log_info(__METHOD__, 'Backup Wordpress Version:' . $backup_wordpress_version);
377
  if ( ! WPBackItUp_Utility::version_compare($site_wordpress_version, $backup_wordpress_version )) {
378
- $logger->log( '*VALIDATE SITEDATA FILE*' );
379
  fatal_error($task,'226','Backup was created using different version of wordpress');
380
  }
381
 
382
 
383
  $restore_wpbackitup_version = $site_info['restore_wpbackitup_version'];
384
  $current_wpbackitup_version = WPBACKITUP__VERSION;
385
- $logger->log_info(__METHOD__, 'WP BackItUp current Version:' . $current_wpbackitup_version);
386
- $logger->log_info(__METHOD__, 'WP BackItUp backup Version:' . $restore_wpbackitup_version);
387
  if (! WPBackItUp_Utility::version_compare($restore_wpbackitup_version, $current_wpbackitup_version )){
388
  fatal_error($task,'227','Backup was created using different version of WP BackItUp');
389
  }
390
- $logger->log( '*END VALIDATE SITEDATA FILE*' );
391
 
392
 
393
- $logger->log( '*VALIDATE SQL FILE EXISTS*' );
394
  if ( ! $wp_restore->validate_SQL_exists( )){
395
  fatal_error($task,'216','NO Database backups in backup.');
396
  }
397
- $logger->log( '*END VALIDATE SQL FILE EXISTS*' );
398
  end_status($task);
399
 
400
- $logger->log('*DEACTIVATE ACTIVE PLUGINS*');
401
  $task='deactivate_plugins';
402
  start_status($task);
403
  $wp_restore->deactivate_plugins();
404
  end_status($task);
405
- $logger->log('*END DEACTIVATE ACTIVE PLUGINS*');
406
 
407
  $restore_job->set_task_complete();
408
- $logger->log( '**END VALIDATE BACKUP**' );
409
 
410
  return;
411
  }
@@ -414,7 +420,7 @@ if ('task_validate_backup'==$current_task->getId()) {
414
  //Create the DB restore point
415
  if ('task_create_checkpoint'==$current_task->getId()) {
416
 
417
- $logger->log('**CREATE RESTORE POINT**');
418
  $task = 'restore_point';
419
  start_status($task);
420
 
@@ -424,7 +430,7 @@ if ('task_create_checkpoint'==$current_task->getId()) {
424
 
425
  $restore_job->set_task_complete();
426
  end_status($task);
427
- $logger->log('**END CREATE RESTORE POINT**');
428
 
429
  return;
430
  }
@@ -433,7 +439,7 @@ if ('task_create_checkpoint'==$current_task->getId()) {
433
  //Stage WP content folders
434
  if ('task_stage_wpcontent'==$current_task->getId()) {
435
 
436
- $logger->log('*STAGE WP-CONTENT*');
437
  $task = 'stage_wpcontent';
438
 
439
  start_status($task);
@@ -442,7 +448,7 @@ if ('task_stage_wpcontent'==$current_task->getId()) {
442
 
443
  //Stage all but plugins
444
 
445
- $logger->log('*STAGE THEMES*');
446
  $from_folder_name = $wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::THEMESPATH;
447
  $to_folder_name = WPBACKITUP__THEMES_ROOT_PATH . $folder_stage_suffix;
448
  if (! $wp_restore->rename_folder($from_folder_name,$to_folder_name)){
@@ -450,9 +456,9 @@ if ('task_stage_wpcontent'==$current_task->getId()) {
450
  $wp_restore->delete_staged_folders();
451
  end_restore();
452
  }
453
- $logger->log('*END STAGE THEMES*');
454
 
455
- $logger->log('*STAGE UPLOADS*');
456
  $from_folder_name = $wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::UPLOADPATH;
457
  $upload_array = wp_upload_dir();
458
  $uploads_root_path = $upload_array['basedir'];
@@ -462,9 +468,9 @@ if ('task_stage_wpcontent'==$current_task->getId()) {
462
  $wp_restore->delete_staged_folders();
463
  end_restore();
464
  }
465
- $logger->log('*END STAGE UPLOADS*');
466
 
467
- $logger->log('*STAGE OTHER FOLDERS*');
468
  $other_list = glob($wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::OTHERPATH .'/*',GLOB_ONLYDIR|GLOB_NOSORT);
469
  foreach ( $other_list as $from_folder_name ) {
470
  $to_folder_name = WPBACKITUP__CONTENT_PATH .'/' .basename($from_folder_name) . $folder_stage_suffix;
@@ -474,12 +480,12 @@ if ('task_stage_wpcontent'==$current_task->getId()) {
474
  end_restore();
475
  }
476
  }
477
- $logger->log('*END STAGE OTHER FOLDERS*');
478
  end_status($task);
479
 
480
  $restore_job->set_task_complete();
481
 
482
- $logger->log('**END STAGE WP-CONTENT**');
483
 
484
  return;
485
  }
@@ -488,31 +494,31 @@ if ('task_stage_wpcontent'==$current_task->getId()) {
488
  //Rename the staged folders to current
489
  if ('task_restore_wpcontent'==$current_task->getId()) {
490
 
491
- $logger->log('**RESTORE WPCONTENT**');
492
  $task ='restore_wpcontent';
493
  start_status($task);
494
 
495
- $logger->log('*RESTORE MAIN WPCONTENT*');
496
  $wpcontent_restore =$wp_restore->restore_wpcontent();
497
  if (! $wpcontent_restore===true) {
498
  //array with failed list returned
499
  //If any of them fail call it done.
500
  warning('300','Cant restore all WP content.');
501
  }
502
- $logger->log('*END RESTORE MAIN WPCONTENT*');
503
 
504
- $logger->log('*RESTORE PLUGINS*');
505
  $plugin_restore = $wp_restore->restore_plugins();
506
  if (! $plugin_restore ===true) {
507
  //array with fail list returned
508
  warning('305', 'Couldnt restore all plugins.');
509
  }
510
 
511
- $logger->log('*END RESTORE PLUGINS*');
512
 
513
  $restore_job->set_task_complete();
514
  end_status($task);
515
- $logger->log('**END RESTORE WPCONTENT**');
516
 
517
  return;
518
  }
@@ -520,7 +526,7 @@ if ('task_restore_wpcontent'==$current_task->getId()) {
520
  //restore the DB
521
  if ('task_restore_database'==$current_task->getId()) {
522
 
523
- $logger->log('**RESTORE DATABASE**');
524
  $task ='restore_database';
525
  start_status($task);
526
 
@@ -548,9 +554,9 @@ if ('task_restore_database'==$current_task->getId()) {
548
  }
549
 
550
  end_status($task);
551
- $logger->log('**END RESTORE DATABASE**');
552
 
553
- $logger->log('*UPDATE DATABASE VALUES*');
554
 
555
  //update the session cookie
556
  wp_set_auth_cookie( $user_id, true);
@@ -592,7 +598,7 @@ if ('task_restore_database'==$current_task->getId()) {
592
  //dont do anything
593
  }
594
  end_status('update_permalinks');
595
- $logger->log('*END UPDATE DATABASE VALUES*');
596
  }
597
 
598
  //**************************************************************
@@ -605,8 +611,8 @@ if ('task_restore_database'==$current_task->getId()) {
605
 
606
  //schedule a cleanup? with job id? for staged folder
607
  set_status_success();
608
- $logger->log('Restore completed successfully');
609
- $logger->log('***END RESTORE***');
610
 
611
  end_restore(null,true);
612
 
@@ -614,9 +620,9 @@ if ('task_restore_database'==$current_task->getId()) {
614
  /*** Functions ***/
615
  /******************/
616
  function fatal_error($process,$error_code,$error_message, $end=true){
617
- global $restore_job, $failure, $logger;
618
 
619
- $logger->log_error(__METHOD__,$error_message);
620
  $restore_job->set_task_error($error_code);
621
  write_response_file_error($error_code,$error_message);
622
 
@@ -629,9 +635,9 @@ function fatal_error($process,$error_code,$error_message, $end=true){
629
  }
630
 
631
  function warning($error_code,$warning_message) {
632
- global $logger, $status_array,$warning;
633
 
634
- $logger->log_warning(__METHOD__, $warning_message);
635
 
636
  //Add warning to array
637
  $status_array['warning' .$error_code]=$warning;
@@ -639,7 +645,6 @@ function warning($error_code,$warning_message) {
639
  }
640
 
641
  function set_status($process,$status,$flush){
642
- global $wp_restore,$logger;
643
  global $status_array,$complete;
644
 
645
  $status_array[$process]=$status;
@@ -681,10 +686,10 @@ function write_response_file_success() {
681
 
682
  //write Response Log
683
  function write_response_file($JSON_Response) {
684
- global $logger;
685
 
686
  $json_response = json_encode($JSON_Response);
687
- $logger->log('Write response file:' . $json_response);
688
 
689
  $fh=get_response_file();
690
  fwrite($fh, $json_response);
@@ -693,9 +698,10 @@ function write_response_file($JSON_Response) {
693
 
694
  //Get Response Log
695
  function get_response_file() {
696
- global $logger;
 
697
  $response_file_path = WPBACKITUP__PLUGIN_PATH .'logs/restore_response.log';
698
- $filesytem = new WPBackItUp_FileSystem($logger);
699
  return $filesytem->get_file_handle($response_file_path,false);
700
  }
701
 
@@ -714,10 +720,10 @@ function get_job_log_name($timestamp){
714
 
715
  //Get Status Log
716
  function get_restore_Log() {
717
- global $logger;
718
 
719
  $status_file_path = WPBACKITUP__PLUGIN_PATH .'/logs/restore_status.log';
720
- $filesystem = new WPBackItUp_FileSystem($logger);
721
  return $filesystem->get_file_handle($status_file_path);
722
 
723
  }
@@ -773,16 +779,25 @@ function set_status_success(){
773
  }
774
 
775
  function end_restore($err=null, $success=null){
776
- global $restore_job, $logger;
 
 
 
777
 
778
- if (true===$success) $logger->log("Restore completed: SUCCESS");
779
- if (false===$success) $logger->log("Restore completed: ERROR");
 
 
 
 
 
 
780
 
781
- $logger->log("*** END RESTORE ***");
782
 
783
 
784
  //Close the logger
785
- $logger->close_file();
786
  $restore_job->release_lock();
787
 
788
  //response back the status file since this method will end processing
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed (restore)');
2
+
3
+ // Checking safe mode is on/off and set time limit
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
6
+ }else{
7
+ @set_time_limit(WPBACKITUP__SCRIPT_TIMEOUT_SECONDS);
8
+ }
9
 
10
  /**
11
  * WP BackItUp - Restore Job
48
 
49
  global $backup_name; //name of the backup file
50
  global $RestorePoint_SQL; //path to restore point
 
51
 
52
  global $status_array,$inactive,$active,$complete,$failure,$warning,$success;
53
  $inactive=0;
76
  //**************************//
77
  // SINGLE THREAD RESTORE //
78
  //**************************//
79
+ $process_id = uniqid();
80
+ $restore_task_log = 'debug_restore_tasks';
81
 
82
  //**************************//
83
  // Task Handling //
85
  $current_task= null;
86
 
87
  $restore_error=false;
88
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'Check for available job');
89
  if ($restore_job){
90
 
91
  //Get the next task in the stack
92
  $current_task = $restore_job->get_next_task();
93
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'TASK Info:'.var_export($current_task,true));
94
  if (null!= $current_task && false!==$current_task){
95
  $restore_id=$restore_job->get_job_id();
96
  $current_task->increment_retry_count();
97
 
98
  //Was there an error on the previous task
99
  if (WPBackItUp_Job_v2::ERROR==$current_task->getStatus()){
100
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'Restore Error Found:' .$current_task->getId());
101
  $restore_error=true;
102
  }
103
 
104
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'Available Task Found:' . $current_task->getId());
105
 
106
  }else{
107
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'No available tasks found.');
108
  //WPBackItUp_Backup::end(); //release lock
109
  return;
110
  }
111
  }else {
112
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'No job available.');
113
 
114
  //wp_clear_scheduled_hook( 'wpbackitup_run_restore_tasks');
115
  //WPBackItUp_Backup::end(); //release lock
117
  }
118
 
119
  //Should only get here when there is a task to run
120
+ WPBackItUp_LoggerV2::log_info($restore_task_log,$process_id,'Run Restore task:' .$current_task->getId());
121
 
122
 
123
  //*****************//
127
  //Get the job name
128
  $job_log_name = get_job_log_name($restore_job->get_job_id());
129
 
130
+ $restore_logname = $job_log_name;
131
+ $log_function='job_restore::'.$current_task->getId();
132
 
133
  $backup_name = $restore_job->get_job_meta('backup_name');
134
  if( empty($backup_name)) {
135
+ WPBackItUp_LoggerV2::log_error($restore_logname,$log_function,'Backup name not found in job meta.');
136
  write_fatal_error_status('error201');
137
  end_restore();
138
  }
140
  //Get user ID
141
  $user_id = $restore_job->get_job_meta('user_id');
142
  if( empty($user_id)) {
143
+ WPBackItUp_LoggerV2::log_error($restore_logname,$log_function,'User Id not found in job meta.');
144
  write_fatal_error_status('error201');
145
  end_restore();
146
  }
147
 
148
  global $wp_restore; //Eventually everything will be migrated to this class
149
+ $wp_restore = new WPBackItUp_Restore($restore_logname,$backup_name,$restore_job->get_job_id());
150
 
151
  //*************************//
152
  //*** RESTORE TASKS ***//
192
 
193
  //Cleanup Task
194
  if ('task_preparing'==$current_task->getId()) {
195
+ WPBackItUp_LoggerV2::log($restore_logname,'***BEGIN RESTORE***');
196
+ WPBackItUp_LoggerV2::log_sysinfo($restore_logname);
197
 
198
  $task = 'preparing';
199
  start_status($task);
200
 
201
+ WPBackItUp_LoggerV2::log($restore_logname,'**PREPARING FOR RESTORE**');
202
 
203
  //ONLY check license here and prevent restore from starting. If
204
  //IF license check fails in later steps could be because DB was restored and no license on backup
212
  fatal_error($task,'235','Zip Archive Class is not available.');
213
  }
214
 
215
+ WPBackItUp_LoggerV2::log($restore_logname,'*DELETE RESTORE FOLDER*');
216
  if ( ! $wp_restore->delete_restore_folder()){
217
  fatal_error($task,'222','Restore folder could not be deleted.');
218
  }
219
+ WPBackItUp_LoggerV2::log($restore_logname,'*END DELETE RESTORE FOLDER*');
220
 
221
+ WPBackItUp_LoggerV2::log($restore_logname,'*CREATE ROOT RESTORE FOLDER*');
222
  if ( ! $wp_restore->create_restore_root_folder()){
223
  fatal_error($task,'222','Root Restore folder could not be created.');
224
  }
225
+ WPBackItUp_LoggerV2::log($restore_logname,'*END CREATE RESTORE FOLDER*');
226
 
227
+ WPBackItUp_LoggerV2::log($restore_logname,'*DELETE STAGED FOLDER*');
228
  if ( ! $wp_restore->delete_staged_folders()){
229
  fatal_error($task, '222','Staged folders could not be deleted.');
230
  }
231
+ WPBackItUp_LoggerV2::log($restore_logname,'*END DELETE STAGED FOLDER*');
232
 
233
+ WPBackItUp_LoggerV2::log($restore_logname,'*UPDATE ZIP JOB META*');
234
  //Get the zip list
235
  $backup_path_pattern = $wp_restore->get_backup_folder_path() . '/' .$wp_restore->get_backup_name() . '*.zip' ;
236
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'Fetch backups pattern:' .$backup_path_pattern);
237
  $backup_set = glob( $backup_path_pattern);
238
  if ( is_array($backup_set) && count($backup_set)>0){
239
  $restore_job->update_job_meta('backup_set',$backup_set);
241
  }else{
242
  fatal_error($task,'222','No zip files found (pattern):' . $backup_path_pattern);
243
  }
244
+ WPBackItUp_LoggerV2::log($restore_logname,'*END UPDATE ZIP JOB META*');
245
 
246
 
247
+ WPBackItUp_LoggerV2::log($restore_logname,'*UPDATE SITE VALUES META*' );
248
  $siteurl = $wp_restore->get_siteurl();
249
  if (false===$siteurl){
250
  fatal_error($task,'207','Unable to fetch site url.');
280
  $restore_job->update_job_meta('current_user_email',$user_email);
281
  }
282
 
283
+ WPBackItUp_LoggerV2::log($restore_logname,'*END UPDATE SITE VALUES META*' );
284
 
285
  end_status($task);
286
  $restore_job->set_task_complete();
287
+ WPBackItUp_LoggerV2::log($restore_logname,'**END PREPARING FOR RESTORE**');
288
 
289
  return;
290
  }
291
 
292
  if ('task_unzip_backup_set'==$current_task->getId()) {
293
 
294
+ WPBackItUp_LoggerV2::log($restore_logname,'**UNZIP BACKUP**' );
295
 
296
  $task = 'unzipping';
297
  start_status($task );
298
 
299
  //get the list of plugins zips in folder
300
  $backup_set_list=$restore_job->get_job_meta('backup_set_remaining');
301
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'Begin - Backup set list:');
302
+ WPBackItUp_LoggerV2::log($restore_logname,$backup_set_list);
303
  if ( ! $wp_restore->unzip_archive_file( $backup_set_list) ) {
304
  fatal_error($task,'203','Unable to unzip archive.');
305
  } else {
309
 
310
  if (is_array($backup_set_list) && count($backup_set_list)>0){
311
  //CONTINUE
312
+ WPBackItUp_LoggerV2::log_info($restore_logname,__METHOD__,'Continue unzipping backup set.');
313
  $restore_job->set_task_queued();
314
  } else{
315
  //COMPLETE
316
+ WPBackItUp_LoggerV2::log_info($restore_logname,__METHOD__,'Complete - All archives restored.');
317
  end_status( $task);
318
  $restore_job->set_task_complete();
319
+ WPBackItUp_LoggerV2::log($restore_logname,'**END UNZIP BACKUP**' );
320
  }
321
 
322
  }
327
 
328
  //Validate the backup folder
329
  if ('task_validate_backup'==$current_task->getId()) {
330
+ WPBackItUp_LoggerV2::log($restore_logname,'**VALIDATE BACKUP**' );
331
 
332
  $task = 'validation';
333
  start_status($task);
338
  fatal_error($task,'204','Restore directory INVALID.');
339
  }
340
 
341
+ WPBackItUp_LoggerV2::log($restore_logname,'*VALIDATE MANIFEST*' );
342
  $backup_set_list=$restore_job->get_job_meta('backup_set');
343
  if ( $wp_restore->validate_manifest_file($backup_set_list,$error_code)===false){
344
  if ($error_code==1){
357
  fatal_error($task,'999','Unexpected error code:' . $error_code);
358
 
359
  }
360
+ WPBackItUp_LoggerV2::log($restore_logname,'*END VALIDATE MANIFEST*' );
361
 
362
+ WPBackItUp_LoggerV2::log($restore_logname,'*VALIDATE SITEDATA FILE*' );
363
  //validate the site data file
364
  $site_info = $wp_restore->validate_siteinfo_file();
365
  if ( $site_info===false){
370
  }
371
 
372
  //Check table prefix values FATAL - need to add link to article
373
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'Site table Prefix:' . $table_prefix);
374
  if ( $table_prefix != $site_info['restore_table_prefix'] ) {
375
  fatal_error($task,'221','Table prefix different from restore.');
376
  }
378
  //Check wordpress version
379
  $site_wordpress_version = get_bloginfo('version');
380
  $backup_wordpress_version = $site_info['restore_wp_version'];
381
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'Site Wordpress Version:' . $site_wordpress_version);
382
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'Backup Wordpress Version:' . $backup_wordpress_version);
383
  if ( ! WPBackItUp_Utility::version_compare($site_wordpress_version, $backup_wordpress_version )) {
384
+ WPBackItUp_LoggerV2::log($restore_logname,'*VALIDATE SITEDATA FILE*' );
385
  fatal_error($task,'226','Backup was created using different version of wordpress');
386
  }
387
 
388
 
389
  $restore_wpbackitup_version = $site_info['restore_wpbackitup_version'];
390
  $current_wpbackitup_version = WPBACKITUP__VERSION;
391
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'WP BackItUp current Version:' . $current_wpbackitup_version);
392
+ WPBackItUp_LoggerV2::log_info($restore_logname,$log_function,'WP BackItUp backup Version:' . $restore_wpbackitup_version);
393
  if (! WPBackItUp_Utility::version_compare($restore_wpbackitup_version, $current_wpbackitup_version )){
394
  fatal_error($task,'227','Backup was created using different version of WP BackItUp');
395
  }
396
+ WPBackItUp_LoggerV2::log($restore_logname,'*END VALIDATE SITEDATA FILE*' );
397
 
398
 
399
+ WPBackItUp_LoggerV2::log($restore_logname,'*VALIDATE SQL FILE EXISTS*' );
400
  if ( ! $wp_restore->validate_SQL_exists( )){
401
  fatal_error($task,'216','NO Database backups in backup.');
402
  }
403
+ WPBackItUp_LoggerV2::log($restore_logname,'*END VALIDATE SQL FILE EXISTS*' );
404
  end_status($task);
405
 
406
+ WPBackItUp_LoggerV2::log($restore_logname,'*DEACTIVATE ACTIVE PLUGINS*');
407
  $task='deactivate_plugins';
408
  start_status($task);
409
  $wp_restore->deactivate_plugins();
410
  end_status($task);
411
+ WPBackItUp_LoggerV2::log($restore_logname,'*END DEACTIVATE ACTIVE PLUGINS*');
412
 
413
  $restore_job->set_task_complete();
414
+ WPBackItUp_LoggerV2::log($restore_logname,'**END VALIDATE BACKUP**' );
415
 
416
  return;
417
  }
420
  //Create the DB restore point
421
  if ('task_create_checkpoint'==$current_task->getId()) {
422
 
423
+ WPBackItUp_LoggerV2::log($restore_logname,'**CREATE RESTORE POINT**');
424
  $task = 'restore_point';
425
  start_status($task);
426
 
430
 
431
  $restore_job->set_task_complete();
432
  end_status($task);
433
+ WPBackItUp_LoggerV2::log($restore_logname,'**END CREATE RESTORE POINT**');
434
 
435
  return;
436
  }
439
  //Stage WP content folders
440
  if ('task_stage_wpcontent'==$current_task->getId()) {
441
 
442
+ WPBackItUp_LoggerV2::log($restore_logname,'*STAGE WP-CONTENT*');
443
  $task = 'stage_wpcontent';
444
 
445
  start_status($task);
448
 
449
  //Stage all but plugins
450
 
451
+ WPBackItUp_LoggerV2::log($restore_logname,'*STAGE THEMES*');
452
  $from_folder_name = $wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::THEMESPATH;
453
  $to_folder_name = WPBACKITUP__THEMES_ROOT_PATH . $folder_stage_suffix;
454
  if (! $wp_restore->rename_folder($from_folder_name,$to_folder_name)){
456
  $wp_restore->delete_staged_folders();
457
  end_restore();
458
  }
459
+ WPBackItUp_LoggerV2::log($restore_logname,'*END STAGE THEMES*');
460
 
461
+ WPBackItUp_LoggerV2::log($restore_logname,'*STAGE UPLOADS*');
462
  $from_folder_name = $wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::UPLOADPATH;
463
  $upload_array = wp_upload_dir();
464
  $uploads_root_path = $upload_array['basedir'];
468
  $wp_restore->delete_staged_folders();
469
  end_restore();
470
  }
471
+ WPBackItUp_LoggerV2::log($restore_logname,'*END STAGE UPLOADS*');
472
 
473
+ WPBackItUp_LoggerV2::log($restore_logname,'*STAGE OTHER FOLDERS*');
474
  $other_list = glob($wp_restore->get_restore_root_folder_path() .'/' .WPBackItUp_Restore::OTHERPATH .'/*',GLOB_ONLYDIR|GLOB_NOSORT);
475
  foreach ( $other_list as $from_folder_name ) {
476
  $to_folder_name = WPBACKITUP__CONTENT_PATH .'/' .basename($from_folder_name) . $folder_stage_suffix;
480
  end_restore();
481
  }
482
  }
483
+ WPBackItUp_LoggerV2::log($restore_logname,'*END STAGE OTHER FOLDERS*');
484
  end_status($task);
485
 
486
  $restore_job->set_task_complete();
487
 
488
+ WPBackItUp_LoggerV2::log($restore_logname,'**END STAGE WP-CONTENT**');
489
 
490
  return;
491
  }
494
  //Rename the staged folders to current
495
  if ('task_restore_wpcontent'==$current_task->getId()) {
496
 
497
+ WPBackItUp_LoggerV2::log($restore_logname,'**RESTORE WPCONTENT**');
498
  $task ='restore_wpcontent';
499
  start_status($task);
500
 
501
+ WPBackItUp_LoggerV2::log($restore_logname,'*RESTORE MAIN WPCONTENT*');
502
  $wpcontent_restore =$wp_restore->restore_wpcontent();
503
  if (! $wpcontent_restore===true) {
504
  //array with failed list returned
505
  //If any of them fail call it done.
506
  warning('300','Cant restore all WP content.');
507
  }
508
+ WPBackItUp_LoggerV2::log($restore_logname,'*END RESTORE MAIN WPCONTENT*');
509
 
510
+ WPBackItUp_LoggerV2::log($restore_logname,'*RESTORE PLUGINS*');
511
  $plugin_restore = $wp_restore->restore_plugins();
512
  if (! $plugin_restore ===true) {
513
  //array with fail list returned
514
  warning('305', 'Couldnt restore all plugins.');
515
  }
516
 
517
+ WPBackItUp_LoggerV2::log($restore_logname,'*END RESTORE PLUGINS*');
518
 
519
  $restore_job->set_task_complete();
520
  end_status($task);
521
+ WPBackItUp_LoggerV2::log($restore_logname,'**END RESTORE WPCONTENT**');
522
 
523
  return;
524
  }
526
  //restore the DB
527
  if ('task_restore_database'==$current_task->getId()) {
528
 
529
+ WPBackItUp_LoggerV2::log($restore_logname,'**RESTORE DATABASE**');
530
  $task ='restore_database';
531
  start_status($task);
532
 
554
  }
555
 
556
  end_status($task);
557
+ WPBackItUp_LoggerV2::log($restore_logname,'**END RESTORE DATABASE**');
558
 
559
+ WPBackItUp_LoggerV2::log($restore_logname,'*UPDATE DATABASE VALUES*');
560
 
561
  //update the session cookie
562
  wp_set_auth_cookie( $user_id, true);
598
  //dont do anything
599
  }
600
  end_status('update_permalinks');
601
+ WPBackItUp_LoggerV2::log($restore_logname,'*END UPDATE DATABASE VALUES*');
602
  }
603
 
604
  //**************************************************************
611
 
612
  //schedule a cleanup? with job id? for staged folder
613
  set_status_success();
614
+ WPBackItUp_LoggerV2::log($restore_logname,'Restore completed successfully');
615
+ WPBackItUp_LoggerV2::log($restore_logname,'***END RESTORE***');
616
 
617
  end_restore(null,true);
618
 
620
  /*** Functions ***/
621
  /******************/
622
  function fatal_error($process,$error_code,$error_message, $end=true){
623
+ global $restore_job, $failure, $restore_logname;
624
 
625
+ WPBackItUp_LoggerV2::log_error($restore_logname,__METHOD__,$error_message);
626
  $restore_job->set_task_error($error_code);
627
  write_response_file_error($error_code,$error_message);
628
 
635
  }
636
 
637
  function warning($error_code,$warning_message) {
638
+ global $restore_logname, $status_array,$warning;
639
 
640
+ WPBackItUp_LoggerV2::log_warning($restore_logname,__METHOD__, $warning_message);
641
 
642
  //Add warning to array
643
  $status_array['warning' .$error_code]=$warning;
645
  }
646
 
647
  function set_status($process,$status,$flush){
 
648
  global $status_array,$complete;
649
 
650
  $status_array[$process]=$status;
686
 
687
  //write Response Log
688
  function write_response_file($JSON_Response) {
689
+ global $restore_logname;
690
 
691
  $json_response = json_encode($JSON_Response);
692
+ WPBackItUp_LoggerV2::log($restore_logname,'Write response file:' . $json_response);
693
 
694
  $fh=get_response_file();
695
  fwrite($fh, $json_response);
698
 
699
  //Get Response Log
700
  function get_response_file() {
701
+ global $restore_logname;
702
+
703
  $response_file_path = WPBACKITUP__PLUGIN_PATH .'logs/restore_response.log';
704
+ $filesytem = new WPBackItUp_FileSystem($restore_logname);
705
  return $filesytem->get_file_handle($response_file_path,false);
706
  }
707
 
720
 
721
  //Get Status Log
722
  function get_restore_Log() {
723
+ global $restore_logname;
724
 
725
  $status_file_path = WPBACKITUP__PLUGIN_PATH .'/logs/restore_status.log';
726
+ $filesystem = new WPBackItUp_FileSystem($restore_logname);
727
  return $filesystem->get_file_handle($status_file_path);
728
 
729
  }
779
  }
780
 
781
  function end_restore($err=null, $success=null){
782
+ global $restore_job, $restore_logname;
783
+
784
+ if (true===$success) WPBackItUp_LoggerV2::log_info($restore_logname,__METHOD__,'Restore completed: SUCCESS');
785
+ if (false===$success) WPBackItUp_LoggerV2::log_error($restore_logname,__METHOD__,'Restore completed: ERROR');
786
 
787
+ //copy/replace WP debug file
788
+ $logs_path = WPBACKITUP__PLUGIN_PATH .'logs';
789
+ $wpdebug_file_path = WPBACKITUP__CONTENT_PATH . '/debug.log';
790
+ WPBackItUp_LoggerV2::log_info($restore_logname,__METHOD__,'Copy WP Debug: ' .$wpdebug_file_path);
791
+ if (file_exists($wpdebug_file_path)) {
792
+ $debug_log = sprintf('%s/wpdebug_%s.log',$logs_path,$restore_job->get_job_id());
793
+ copy( $wpdebug_file_path, $debug_log );
794
+ }
795
 
796
+ WPBackItUp_LoggerV2::log($restore_logname,'*** END RESTORE ***');
797
 
798
 
799
  //Close the logger
800
+ WPBackItUp_LoggerV2::close($restore_logname);
801
  $restore_job->release_lock();
802
 
803
  //response back the status file since this method will end processing
lib/includes/update_database.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
 
 
 
 
 
 
3
 
4
  /**
5
  * Run the incremental updates one by one.
@@ -12,8 +18,6 @@
12
  *
13
  */
14
  function wpbackitup_update_database() {
15
- // no PHP timeout for running updates
16
- set_time_limit( 0 );
17
 
18
  // this is the current database schema version number
19
  $current_db_ver = get_option( 'wp-backitup_db_version',0 );
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
3
+ // no PHP timeout for running updates
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', 0);
6
+ }else{
7
+ @set_time_limit(0);
8
+ }
9
 
10
  /**
11
  * Run the incremental updates one by one.
18
  *
19
  */
20
  function wpbackitup_update_database() {
 
 
21
 
22
  // this is the current database schema version number
23
  $current_db_ver = get_option( 'wp-backitup_db_version',0 );
lib/includes/update_plugin.php CHANGED
@@ -1,5 +1,11 @@
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
 
 
 
 
 
 
3
 
4
  /**
5
  * Run the incremental updates one by one.
@@ -12,9 +18,7 @@
12
  *
13
  */
14
  function wpbackitup_update_plugin() {
15
- // no PHP timeout for running updates
16
- set_time_limit( 0 );
17
-
18
  // this is the current database schema version number
19
  $current_plugin_major_ver = get_option( 'wp-backitup_major_version',0 );
20
 
1
  <?php if (!defined ('ABSPATH')) die('No direct access allowed');
2
 
3
+ // no PHP timeout for running updates
4
+ if( ini_get('safe_mode') ){
5
+ @ini_set('max_execution_time', 0);
6
+ }else{
7
+ @set_time_limit(0);
8
+ }
9
 
10
  /**
11
  * Run the incremental updates one by one.
18
  *
19
  */
20
  function wpbackitup_update_plugin() {
21
+
 
 
22
  // this is the current database schema version number
23
  $current_plugin_major_ver = get_option( 'wp-backitup_major_version',0 );
24
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === WP Backitup ===
2
- Contributors: cssimmon,jcpeden
3
  Donate link: http://www.wpbackitup.com
4
  Tags: backup, back up, backups, backup wordpress, backup database, backup plugin, backup and restore, database, database backup, database restore, db, db backup, db restore, download database, full backup, mysql backup, restore, restore database,restore wordpress, restore wordpress backup,restoring wordpress, website backup, wordpress backup, wordpress restore, plugin, backup buddy
5
  Requires at least: 3.8.0
6
- Tested up to: 4.2.2
7
- Stable tag: 1.10.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -60,6 +60,17 @@ WP BackItUp premium allows you to restore your backups from the WordPress dashbo
60
  = More questions? =
61
  Please review our [FAQ’s](http://wordpress.org/plugins/wp-backitup/faq/) or ask them in the [support forum](http://wordpress.org/support/plugin/wp-backitup).
62
 
 
 
 
 
 
 
 
 
 
 
 
63
  == Installation ==
64
 
65
  Installing WP-BackItUp is very easy and straightforward.
@@ -151,6 +162,27 @@ Our online documentation and full list of FAQs can be found at [www.wpbackitup.c
151
 
152
 
153
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  = 1.10.8 =
155
  * UPDATE: Add database size logging
156
  * UPDATE: Add WordPress and WP BackItUp version info to support email
@@ -179,7 +211,7 @@ Our online documentation and full list of FAQs can be found at [www.wpbackitup.c
179
 
180
  = 1.10.6 =
181
  * FEATURE:Add job data to cleanup routine
182
- * FIX: Add wp-cron task on schedule check to fix issue with sheduled backups not running.
183
  * FIX: Write response file before status update.
184
  * UPDATE: Cancel all scheduled jobs on plugin activation & deactivation.
185
  * UPDATE: Add additional logging to job scheduler.
@@ -200,7 +232,7 @@ Our online documentation and full list of FAQs can be found at [www.wpbackitup.c
200
  * Update: Add ticket id to support view.
201
  * Fix: Add UTF Encoding on file names being backed up and restored
202
  * Fix: Multiple new backup success messages after backup
203
- * Fix: Add wp_slash function to support Wordpress versions 3.6 and lower
204
 
205
  = 1.10.2 =
206
  * Update: Display backup file set name instead of date
@@ -209,7 +241,7 @@ Our online documentation and full list of FAQs can be found at [www.wpbackitup.c
209
  * Fix: Correct issue with restore version checking
210
  * Fix: Correct issue with restore current user capabilities
211
  * Fix: Correct sorting and display of available backups
212
- * Fix: Correct issues with files named using german character set
213
  * Fix: Correct issues with file downloads
214
 
215
  = 1.10.1 =
@@ -278,7 +310,7 @@ Our online documentation and full list of FAQs can be found at [www.wpbackitup.c
278
  = 1.7.4 =
279
  * Fix to backup folder create & checks
280
  * Security Enhancements
281
- * Add logging to filesystem create folder
282
 
283
  = 1.7.3 =
284
  * Fix 1.7.2 deployment issue
@@ -365,7 +397,7 @@ Setup alert if DB is 0 bytes.
365
  Fixed status reporting for backup/restore process and built-in localization.
366
 
367
  = 1.3.0 =
368
- Recommended upgrade: Amalgameted lite and pro versions of the plugin.
369
 
370
  = 1.2.2 =
371
  Major updates to improve plugin performance and stability.
@@ -374,7 +406,7 @@ Major updates to improve plugin performance and stability.
374
  Minor updates to plugin functionality.
375
 
376
  = 1.2.0 =
377
- Brought versioning inline with WP Backitup Lite. Fixed incorrecy message on restore interface. Fixed restorationcess.
378
 
379
  = 1.1.0 =
380
  Backup from mysqldump, restore from mysql command line, restore functionality from uploaded files, file size limit check according to server before uploads, setInterval termination after operation, status update as the task completes using XML.
@@ -389,13 +421,13 @@ Added ability to restore from server.
389
  Improved auto-update facility and plugin stability.
390
 
391
  = 1.0.6 =
392
- Fixed critical issues the auto-upgradecess.
393
 
394
  = 1.0.5 =
395
- Fixed critical issues the auto-upgradecess.
396
 
397
  = 1.0.4 =
398
- Fixed issues with the restorationcess.
399
 
400
  = 1.0.3 =
401
  Fixed the auto-update engine and license key activation system.
@@ -411,6 +443,9 @@ Initial version of the plugin released.
411
 
412
  == Upgrade Notice ==
413
 
 
 
 
414
  = 1.5.3 =
415
  Optional upgrade: No functionality changes.
416
 
@@ -427,13 +462,13 @@ Critical upgrade: Fixes to backup and import processes to work on a wider range
427
  Recommended upgrade: Many people on shared hosting will now be able to backup their database.
428
 
429
  = 1.4.1 =
430
- Recommended upgrade: Backitup will now alert and halt if your database is 0 bytes on backup.
431
 
432
  = 1.4.0 =
433
  Recommended upgrade: Fixed status reporting for backup/restore process and built-in localization.
434
 
435
  = 1.3.0 =
436
- Recommended upgrade: Amalgameted lite and pro versions of the plugin
437
 
438
  = 1.2.2 =
439
  Critical upgrade: Major overhaul of plugin structure
@@ -454,16 +489,16 @@ Recommended upgrade: Improved reliability and performance.
454
  Recommended upgrade: Improved functionality
455
 
456
  = 1.0.7 =
457
- Critical upgrade: Fixed major bugs with auto-upgradecess.
458
 
459
  = 1.0.6 =
460
- Critical upgrade: Fixed major bugs with auto-upgradecess.
461
 
462
  = 1.0.5 =
463
- Critical upgrade: Fixed major bugs with auto-upgradecess.
464
 
465
  = 1.0.4 =
466
- Critical upgrade: Fixed major bugs with restorationcess.
467
 
468
  = 1.0.3 =
469
  Critical upgrade: Patched auto-update engine.
1
  === WP Backitup ===
2
+ Contributors: cssimmon,alaminopu,zikubd,wpbackitup
3
  Donate link: http://www.wpbackitup.com
4
  Tags: backup, back up, backups, backup wordpress, backup database, backup plugin, backup and restore, database, database backup, database restore, db, db backup, db restore, download database, full backup, mysql backup, restore, restore database,restore wordpress, restore wordpress backup,restoring wordpress, website backup, wordpress backup, wordpress restore, plugin, backup buddy
5
  Requires at least: 3.8.0
6
+ Tested up to: 4.2.4
7
+ Stable tag: 1.10.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
60
  = More questions? =
61
  Please review our [FAQ’s](http://wordpress.org/plugins/wp-backitup/faq/) or ask them in the [support forum](http://wordpress.org/support/plugin/wp-backitup).
62
 
63
+ **Languages**
64
+
65
+ WP BackItUp has been translated into the following languages:
66
+
67
+ * Français (French (France)),
68
+ * Tagalog (Philippines)
69
+
70
+ Thanks to all the WP-Translations Team Members for helping translate WP BackItUp.
71
+
72
+ Don't see your language listed? Why not join our community and help translate WP BackItUp into even more languages? See our [FAQs](https://www.wpbackitup.com/documentation/faqs/language-translations) page for info on how to join our WP-Translations Community.
73
+
74
  == Installation ==
75
 
76
  Installing WP-BackItUp is very easy and straightforward.
162
 
163
 
164
  == Changelog ==
165
+ = 1.10.9 =
166
+ *Release Date - August 14, 2015*
167
+
168
+ * NEW : New Feature - Cancel backup
169
+ * NEW : New Feature - Batch Size settings for plugins, themes, uploads
170
+ * UPDATE: Add additional logging to data access methods.
171
+ * UPDATE: Add base localization
172
+ * UPDATE: Add new static logging class
173
+ * UPDATE: Add logging to verify timeout error
174
+ * UPDATE: Change backup file validation to be performed in multiple steps
175
+ * UPDATE: Update backup to no longer use using .tmp extensions
176
+ * UPDATE: Add new logging to track file sizes and capture zip file status before close
177
+ * UPDATE: Add permission checking to files being added to zip
178
+ * UPDATE: Check archive state on close and file count check
179
+ * UPDATE: Additional logging to detect error on archive creation
180
+ * UPDATE: Add filter for plugin wp-backitup on backup
181
+ * UPDATE: Separate validation into smaller batches to support large WordPress sites
182
+ * UPDATE: Add check for safe mode and ini_set instead of set_time_limit.
183
+ * FIX : Fix to hide cancel button on backup error
184
+ * FIX : Fix get_portonly() method
185
+
186
  = 1.10.8 =
187
  * UPDATE: Add database size logging
188
  * UPDATE: Add WordPress and WP BackItUp version info to support email
211
 
212
  = 1.10.6 =
213
  * FEATURE:Add job data to cleanup routine
214
+ * FIX: Add wp-cron task on schedule check to fix issue with scheduled backups not running.
215
  * FIX: Write response file before status update.
216
  * UPDATE: Cancel all scheduled jobs on plugin activation & deactivation.
217
  * UPDATE: Add additional logging to job scheduler.
232
  * Update: Add ticket id to support view.
233
  * Fix: Add UTF Encoding on file names being backed up and restored
234
  * Fix: Multiple new backup success messages after backup
235
+ * Fix: Add wp_slash function to support WordPress versions 3.6 and lower
236
 
237
  = 1.10.2 =
238
  * Update: Display backup file set name instead of date
241
  * Fix: Correct issue with restore version checking
242
  * Fix: Correct issue with restore current user capabilities
243
  * Fix: Correct sorting and display of available backups
244
+ * Fix: Correct issues with files named using German character set
245
  * Fix: Correct issues with file downloads
246
 
247
  = 1.10.1 =
310
  = 1.7.4 =
311
  * Fix to backup folder create & checks
312
  * Security Enhancements
313
+ * Add logging to file-system create folder
314
 
315
  = 1.7.3 =
316
  * Fix 1.7.2 deployment issue
397
  Fixed status reporting for backup/restore process and built-in localization.
398
 
399
  = 1.3.0 =
400
+ Recommended upgrade: Amalgamated lite and pro versions of the plugin.
401
 
402
  = 1.2.2 =
403
  Major updates to improve plugin performance and stability.
406
  Minor updates to plugin functionality.
407
 
408
  = 1.2.0 =
409
+ Brought versioning inline with WP Backitup Lite. Fixed incorrect message on restore interface. Fixed restoration access.
410
 
411
  = 1.1.0 =
412
  Backup from mysqldump, restore from mysql command line, restore functionality from uploaded files, file size limit check according to server before uploads, setInterval termination after operation, status update as the task completes using XML.
421
  Improved auto-update facility and plugin stability.
422
 
423
  = 1.0.6 =
424
+ Fixed critical issues the auto-upgrade access.
425
 
426
  = 1.0.5 =
427
+ Fixed critical issues the auto-upgrade access.
428
 
429
  = 1.0.4 =
430
+ Fixed issues with the restoration access.
431
 
432
  = 1.0.3 =
433
  Fixed the auto-update engine and license key activation system.
443
 
444
  == Upgrade Notice ==
445
 
446
+ = 1.10.9 =
447
+ Recommended upgrade: New features, fixes and performance improvements. See details in changelog.
448
+
449
  = 1.5.3 =
450
  Optional upgrade: No functionality changes.
451
 
462
  Recommended upgrade: Many people on shared hosting will now be able to backup their database.
463
 
464
  = 1.4.1 =
465
+ Recommended upgrade: BackItUp will now alert and halt if your database is 0 bytes on backup.
466
 
467
  = 1.4.0 =
468
  Recommended upgrade: Fixed status reporting for backup/restore process and built-in localization.
469
 
470
  = 1.3.0 =
471
+ Recommended upgrade: Amalgamated lite and pro versions of the plugin
472
 
473
  = 1.2.2 =
474
  Critical upgrade: Major overhaul of plugin structure
489
  Recommended upgrade: Improved functionality
490
 
491
  = 1.0.7 =
492
+ Critical upgrade: Fixed major bugs with auto-upgrade access.
493
 
494
  = 1.0.6 =
495
+ Critical upgrade: Fixed major bugs with auto-upgrade access.
496
 
497
  = 1.0.5 =
498
+ Critical upgrade: Fixed major bugs with auto-upgrade access.
499
 
500
  = 1.0.4 =
501
+ Critical upgrade: Fixed major bugs with restoration access.
502
 
503
  = 1.0.3 =
504
  Critical upgrade: Patched auto-update engine.
views/backup.php CHANGED
@@ -13,14 +13,17 @@
13
  //Check the license
14
  do_action( 'wpbackitup_check_license');
15
 
16
- $page_title = $this->friendly_name . ' Dashboard';
17
  $namespace = $this->namespace;
 
 
 
 
18
 
19
  //Path Variables
20
  $backup_folder_root = WPBACKITUP__BACKUP_PATH;
21
  $logs_folder_root = WPBACKITUP__PLUGIN_PATH .'/logs';
22
 
23
- $logger = new WPBackItUp_Logger(false,null,'debug_backup_view');
24
 
25
  //Get license info - trim off build version if 0
26
  $version = rtrim ($this->version,'.0');
@@ -68,12 +71,12 @@
68
 
69
  //Cleanup old backups - this can be removed in a few months.
70
  //Get Zip File List
71
- $file_system = new WPBackItUp_FileSystem($logger);
72
  $file_list = $file_system->get_fileonly_list($backup_folder_root, 'zip|log');
73
 
74
  //If there are zip files then move them into their own folders
75
- $logger->log_info(__METHOD__,'Files in backup folder: ' .var_export($file_list,true));
76
- $logger->log_info(__METHOD__,'Last Error: ' .var_export(error_get_last(),true));
77
 
78
  if (null != $file_list) {
79
  foreach ( $file_list as $file ) {
@@ -143,18 +146,17 @@
143
  if (!$backup_folder_exists) {
144
  echo(
145
  '<div style="overflow: hidden;" class="error" id="wp-backitup-notification-parent" class="updated">
146
- <div style="float:left;" id="wp-backitup-notification-message" ><p><strong>Error:</strong> Backup folder does not exist. Please contact ');
 
 
147
 
148
- echo($this->get_anchor_with_utm('support','support','backup+error','no+backup+folder'));
149
- echo(' for assistance.</p></div>');
150
-
151
- echo('<div style="float:right;"><p><a id="wp-backitup-notification-close"><i style="float:right" class="fa fa-close"> Close</i></a></p></div>
152
  </div>');
153
  } else{
154
  echo(
155
  '<div style="overflow: hidden; display:none" id="wp-backitup-notification-parent" class="updated">
156
  <div style="float:left;" id="wp-backitup-notification-message" ></div>
157
- <div style="float:right;"><p><a id="wp-backitup-notification-close"><i style="float:right" class="fa fa-close"> Close</i></a></p></div>
158
  </div>'
159
  );
160
  }
@@ -166,21 +168,23 @@ if (!$backup_folder_exists) {
166
 
167
  <div id="content">
168
 
169
- <!--Manual Backups-->
170
  <!--Manual Backups-->
171
  <div class="widget">
172
  <h3><i class="fa fa-cogs"></i> <?php _e('Backup', $namespace); ?></h3>
173
- <p><b>Click the backup button to create a zipped backup file of this site's database, plugins, themes and settings.</b></p>
174
- <p>Once your backup file has been created it will appear in the available backups section below. This file may remain on your hosting providers server but we recommend that you download and save it somewhere safe.</p>
175
- <p> WP BackItUp premium customers can use these backup files to perform an automated restore of their site.</p>
176
  <p>
177
  <?php if ($backup_folder_exists) :?>
178
- <input type="submit" id="backup-button" class="backup-button button-primary" value="<?php _e("Backup", $namespace) ?>"/><img class="backup-icon status-icon" src="<?php echo WPBACKITUP__PLUGIN_URL . "/images/loader.gif"; ?>" height="16" width="16" /></p>
 
 
179
  <?php endif; ?>
 
180
  <?php
181
  //Display a note for lite customers
182
  if (!$license_active)
183
- echo '<p> * WP BackItUp lite customers may use these backup files to manually restore their site. Please visit ' .$this->get_anchor_with_utm('www.wpbackitup.com','documentation/restore/how-to-manually-restore-your-wordpress-database','backup','manual+restore') .' for manual restore instructions.</p>';
184
  ?>
185
  </div>
186
 
@@ -189,22 +193,21 @@ if (!$backup_folder_exists) {
189
  <div class="widget">
190
  <h3><i class="fa fa-clock-o"></i> <?php _e('Backup Schedule', $namespace); ?>
191
  <i id="scheduled-backups-accordian" style="float:right" class="fa fa-angle-double-down"></i></h3>
192
- <p><b>Select the days of the week you would like your backup to run.</b></p>
193
  <div id="scheduled-backups" style="display: none;">
194
- <p>Backup your site once per week or every day, it's up to you. If you have email notifications turned on we'll even send you an email when it's done.
195
- Once your backup file has been created it will appear in the available backups section below. This file may remain on your hosting providers server but we recommend that you download and save it somewhere safe.</p>
196
  <p>
197
- <b>Please make sure to schedule your backup for at least once per week.</b>
198
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-save_schedule_form">
199
  <?php wp_nonce_field($namespace . '-update-schedule',$namespace . '_nonce-update-schedule'); ?>
200
 
201
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'1'))? _e('checked') :_e(''); ?> value="1">Monday<br>
202
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'2'))? _e('checked') :_e(''); ?> value="2">Tuesday<br>
203
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'3'))? _e('checked') :_e(''); ?> value="3">Wednesday<br>
204
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'4'))? _e('checked') :_e(''); ?> value="4">Thursday<br>
205
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'5'))? _e('checked') :_e(''); ?> value="5">Friday<br>
206
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'6'))? _e('checked') :_e(''); ?> value="6">Saturday<br>
207
- <input <?php _e($schedule_style_disabled); ?> type="checkbox" name="dow" <?php (false!==strpos($backup_schedule,'7'))? _e('checked') :_e(''); ?> value="7">Sunday<br>
208
 
209
  <br/>
210
  <input <?php _e($schedule_style_disabled); ?> type="submit" id="schedule-button" class="schedule-button button-primary" value="<?php _e("Save Schedule", $namespace) ?>"/>
@@ -212,7 +215,7 @@ if (!$backup_folder_exists) {
212
  <?php
213
  //Display restore note for lite customers
214
  if (!$license_active || 'expired'== $license_status)
215
- echo '<p>* Scheduled backups are only available to WP BackItUp premium customers. Please visit ' .$this->get_anchor_with_utm('www.wpbackitup.com','pricing-purchase','scheduled+backups','risk+free') . ' to get WP BackItUp risk free for 30 days.</p>';
216
  ?>
217
  </div>
218
  </div>
@@ -259,16 +262,16 @@ if (!$backup_folder_exists) {
259
 
260
  <!--Download Link-->
261
  <td>
262
- <a href="#TB_inline?width=600&height=550&inlineId=<?php echo preg_replace('/[^A-Za-z0-9\-]/', '', $backup_name) ?>" class="thickbox" title="<?php echo $backup_name ?>">Download</a>
263
  </td>
264
 
265
  <?php if (($log_exists)):?>
266
- <td><a class='viewloglink' href="<?php echo $backup_name ?>">View Log</a></td>
267
  <?php else: ?>
268
  <td>&nbsp;</td>
269
  <?php endif; ?>
270
 
271
- <td><a href="#" title="<?php echo $backup_name; ?>" class="deleteRow" id="deleteRow<?php echo $i; ?>">Delete</a></td>
272
  </tr>
273
 
274
  <?php
@@ -277,7 +280,7 @@ if (!$backup_folder_exists) {
277
  }
278
  else
279
  {
280
- echo '<tr id="nofiles"><td colspan="3">No backup archives found.</td></tr>';
281
  }
282
  ?>
283
  </table>
@@ -285,7 +288,7 @@ if (!$backup_folder_exists) {
285
  <?php
286
  //Display restore note for lite customers
287
  if (!$license_active)
288
- echo '<p>* The automated restore feature is only available to WP BackItUp premium customers. Please visit ' .$this->get_anchor_with_utm('www.wpbackitup.com','pricing-purchase','available+backups','risk+free') . ' to get WP BackItUp risk free for 30 days.</p>';
289
  ?>
290
  </div>
291
 
@@ -315,14 +318,20 @@ if (!$backup_folder_exists) {
315
  <!--Warning PlaceHolder-->
316
  </ul>
317
 
318
- <!--success messages-->
319
- <ul class="backup-success">
320
- <li class='isa_success'><?php _e('Backup completed successfully. ', $namespace); ?></li>
321
- </ul>
 
 
 
 
 
 
 
 
 
322
 
323
- <ul class="backup-warning">
324
- <!--Warning PlaceHolder-->
325
- </ul>
326
 
327
  </div>
328
 
@@ -334,21 +343,21 @@ if (!$backup_folder_exists) {
334
  <div class="widget">
335
  <h3 class="promo"><?php _e('Backups', $namespace); ?> <span style="float: right"><?php _e('Version ' .$version, $namespace); ?></span></h3>
336
  <?php if ($this->successful_backup_count()<1) : ?>
337
- <p>Welcome to WP BackItUp!<br/> The simplest way to backup your WordPress site.</p>
338
- <p>Getting started is easy, just click the backup button on the left side of this page.</p>
339
  <?php endif ?>
340
 
341
  <?php if ($this->successful_backup_count()>=1) : ?>
342
- <p>Congratulations! You have performed <span style="font-weight:bold;font-size:medium;color: green"><?php _e($this->successful_backup_count(), $namespace); ?></span> successful backups.</p>
343
- <p><span style="font-weight:bold;font-size:medium">Tips</span>
344
- <br/>1)&nbsp;Backup your site at least once per week
345
- <br/>2)&nbsp;Download all your backups and store them somewhere safe
346
- <br/>3)&nbsp;Verify your backup files are good by taking a look at what's inside
347
  </p>
348
  <?php endif ?>
349
 
350
  <?php if (!$license_active && $this->successful_backup_count()>=10) : ?>
351
- * Why not <?php echo($this->get_anchor_with_utm('upgrade','pricing-purchase','get+license','purchase'))?> and schedule your backups!
352
  <?php endif ?>
353
  </div>
354
 
@@ -362,10 +371,10 @@ if (!$backup_folder_exists) {
362
  <?php wp_nonce_field($namespace . "-register"); ?>
363
  <p><?php _e('Enter your name and email address below to receive <b>special offers</b> and access to our world class <b>support</b> team. <br />
364
  <br />Enter your license key below to activate it on this site.', $namespace); ?></p>
365
- <input type="text" name="license_name" id="license_name" placeholder="name" value="<?php echo($license_customer_name) ?>" /><br/>
366
- <input type="text" name="license_email" id="license_email" placeholder="email address" value="<?php echo($license_customer_email) ?>" /><br/>
367
- <input type="text" name="license_key" id="license_key" placeholder="license key" value="<?php if ($license_key!= 'lite') echo($license_key) ?>" /> &nbsp;<span style="color:red"><?php _e($license_status_message, $namespace); ?></span>
368
- <br />* Free plugin customers do not need to enter license key.
369
  <div class="submit"><input type="submit" name="Submit" class="button-secondary" value="<?php _e("Register", $namespace) ?>" /></div>
370
  </form>
371
  </div>
@@ -397,28 +406,28 @@ if (!$backup_folder_exists) {
397
 
398
  if($license_active) {
399
  echo('<p>');
400
- echo('Name: &nbsp;' . $license_customer_name);
401
- echo('<br/>Email: &nbsp;' . $license_customer_email);
402
- echo('<br/>License Type: &nbsp;' . $license_type_description);
403
- echo('<br/>Expires: &nbsp;' . $formatted_expired_date);
404
  echo('</p>');
405
  } else {
406
- echo '<p>Enter license key to activate on this site.</p>';
407
  }
408
  ?>
409
 
410
- <input type="text" name="data[license_key]" id="license_key" value="<?php _e($license_key, $namespace); ?>" />&nbsp;
411
 
412
  <?php if ($license_status=='valid'): ?>
413
- <span style="color:green">License Active</span>
414
  <?php endif; ?>
415
 
416
  <?php if ($license_status=='invalid'): ?>
417
- <span style="color:<?php _e($fontColor); ?>"><?php _e($license_status_message, $namespace); ?></span>
418
  <?php endif; ?>
419
 
420
  <?php if ($license_status=='expired'): ?>
421
- <span style="color:red">License expired:&nbsp;<?php _e($formatted_expired_date, $namespace); ?></span>
422
  <?php endif; ?>
423
 
424
  <?php if ($license_active) : ?>
@@ -430,13 +439,15 @@ if (!$backup_folder_exists) {
430
  <?php endif; ?>
431
 
432
  <?php if ($license_status=='invalid' || $license_status==''): ?>
433
- <p>Purchase a <?php echo($this->get_anchor_with_utm('no-risk','pricing-purchase','license','no+risk'))?> license using the purchase link above.</p>
434
  <?php endif; ?>
435
 
436
  <?php if ($license_status=='expired'): ?>
437
- <div><?php echo(
438
- '<a target="_blank" href="' .WPBACKITUP__SECURESITE_URL .'/checkout?edd_license_key='.$license_key .'&download_id=679&nocache=true&utm_medium=plugin&utm_source=wp-backitup&utm_campaign=premium&utm_content=license&utm_term=license+expired">Renew</a>');
439
- ?>&nbsp; your license now for another year of <strong>product updates</strong> and <strong>priority support.</strong></div>
 
 
440
  <?php endif; ?>
441
 
442
  </form>
@@ -448,22 +459,22 @@ if (!$backup_folder_exists) {
448
  <h3 class="promo"><?php _e('Useful Links', $namespace); ?></h3>
449
  <ul>
450
  <?php if ($license_active) : ?>
451
- <li><?php echo($this->get_anchor_with_utm('Your account','account','useful+links','your+account'))?></li>
452
  <?php endif; ?>
453
 
454
  <?php if (!$license_active) : ?>
455
- <li><?php echo($this->get_anchor_with_utm('Purchase a license','pricing-purchase','useful+links','upgrade+license'))?></li>
456
  <?php endif; ?>
457
 
458
- <li><?php echo($this->get_anchor_with_utm('Documentation','documentation/faqs/wp-backitup-logging','useful+links','help'))?></li>
459
 
460
  <?php if ($license_active || $is_lite_registered) : ?>
461
- <li><?php echo($this->get_anchor_with_utm('Get support','support' ,'useful+links','get+support'))?></li>
462
  <?php endif; ?>
463
 
464
- <li><?php echo($this->get_anchor_with_utm('Feature request','contact' ,'useful+links','feature+request'))?></li>
465
 
466
- <li><?php echo($this->get_anchor_with_utm('Contact','contact' ,'useful+links','contact'))?></li>
467
 
468
  </ul>
469
  </div>
@@ -483,9 +494,9 @@ if (!$backup_folder_exists) {
483
  $count=0;
484
  ?>
485
  <div id="<?php echo preg_replace('/[^A-Za-z0-9\-]/', '', $backup_name) ?>" style="display:none;">
486
- <h2>WP BackItUp Backup Set:</h2>
487
  <h2><em><?php echo $backup_name ?></em></h2>
488
- <p>Below are the archive files included in this backup set. Click the link to download.</p>
489
  <table id="datatable" class="widefat">
490
  <tbody>
491
  <?php foreach ($zip_files as $file) :
@@ -504,8 +515,8 @@ if (!$backup_folder_exists) {
504
  </div>
505
  <?php endif; ?>
506
  <div id="new_backup" style="display:none;">
507
- <h2>WP BackItUp Backup Set</h2>
508
- <p>Please refresh this page to download your new backup files.</p>
509
  </div>
510
  </span>
511
  <!--End File download lists-->
13
  //Check the license
14
  do_action( 'wpbackitup_check_license');
15
 
 
16
  $namespace = $this->namespace;
17
+ ///TRANSLATORS: %s = plugin name.
18
+ /// This string is in the header of one of my pages and looks like this: WP BackItUp Dashboard
19
+ /// Similar to how WordPress uses the word dashboard at the in the left navigation.
20
+ $page_title = sprintf( __("%s Dashboard",$namespace), $this->friendly_name );
21
 
22
  //Path Variables
23
  $backup_folder_root = WPBACKITUP__BACKUP_PATH;
24
  $logs_folder_root = WPBACKITUP__PLUGIN_PATH .'/logs';
25
 
26
+ $debug_backup_view_log='debug_backup_view';
27
 
28
  //Get license info - trim off build version if 0
29
  $version = rtrim ($this->version,'.0');
71
 
72
  //Cleanup old backups - this can be removed in a few months.
73
  //Get Zip File List
74
+ $file_system = new WPBackItUp_FileSystem($debug_backup_view_log);
75
  $file_list = $file_system->get_fileonly_list($backup_folder_root, 'zip|log');
76
 
77
  //If there are zip files then move them into their own folders
78
+ WPBackItUp_LoggerV2::log_info($debug_backup_view_log,__METHOD__,'Files in backup folder: ' .var_export($file_list,true));
79
+ WPBackItUp_LoggerV2::log_info($debug_backup_view_log,__METHOD__,'Last Error: ' .var_export(error_get_last(),true));
80
 
81
  if (null != $file_list) {
82
  foreach ( $file_list as $file ) {
146
  if (!$backup_folder_exists) {
147
  echo(
148
  '<div style="overflow: hidden;" class="error" id="wp-backitup-notification-parent" class="updated">
149
+ <div style="float:left;" id="wp-backitup-notification-message" ><p><strong>' . __('Error',$namespace) . ':</strong> ' .
150
+ sprintf(__('Backup folder does not exist. Please contact %s for assistance.', $namespace), $this->get_anchor_with_utm(__('support',$namespace),'support','backup+error','no+backup+folder')) );
151
+ echo('</p></div>');
152
 
153
+ echo('<div style="float:right;"><p><a id="wp-backitup-notification-close"><i style="float:right" class="fa fa-close"> ' . __('Close', $namespace) . '</i></a></p></div>
 
 
 
154
  </div>');
155
  } else{
156
  echo(
157
  '<div style="overflow: hidden; display:none" id="wp-backitup-notification-parent" class="updated">
158
  <div style="float:left;" id="wp-backitup-notification-message" ></div>
159
+ <div style="float:right;"><p><a id="wp-backitup-notification-close"><i style="float:right" class="fa fa-close"> ' . __('Close', $namespace) . '</i></a></p></div>
160
  </div>'
161
  );
162
  }
168
 
169
  <div id="content">
170
 
 
171
  <!--Manual Backups-->
172
  <div class="widget">
173
  <h3><i class="fa fa-cogs"></i> <?php _e('Backup', $namespace); ?></h3>
174
+ <p><b><?php _e('Click the backup button to create a zipped backup file of this site\'s database, plugins, themes and settings.',$namespace) ?></b></p>
175
+ <p><?php _e('Once your backup file has been created it will appear in the available backups section below. This file may remain on your hosting providers server but we recommend that you download and save it somewhere safe.', $namespace) ?></p>
176
+ <p> <?php _e('WP BackItUp premium customers can use these backup files to perform an automated restore of their site.', $namespace) ?></p>
177
  <p>
178
  <?php if ($backup_folder_exists) :?>
179
+ <input type="submit" id="backup-button" class="backup-button button-primary" value="<?php _e("Backup", $namespace) ?>"/>
180
+ <input type="submit" id="cancel-button" class="cancel-button button-secondary cancel-hidden" value="<?php _e("Cancel", $namespace) ?>"/>
181
+ <img class="backup-icon status-icon" src="<?php echo WPBACKITUP__PLUGIN_URL . "/images/loader.gif"; ?>" height="16" width="16" />
182
  <?php endif; ?>
183
+ </p>
184
  <?php
185
  //Display a note for lite customers
186
  if (!$license_active)
187
+ echo '<p> * ' . sprintf(__('WP BackItUp lite customers may use these backup files to manually restore their site. Please visit %s for manual restore instructions.', $namespace), $this->get_anchor_with_utm('www.wpbackitup.com','documentation/restore/how-to-manually-restore-your-wordpress-database','backup','manual+restore')) .'</p>';
188
  ?>
189
  </div>
190
 
193
  <div class="widget">
194
  <h3><i class="fa fa-clock-o"></i> <?php _e('Backup Schedule', $namespace); ?>
195
  <i id="scheduled-backups-accordian" style="float:right" class="fa fa-angle-double-down"></i></h3>
196
+ <p><b><?php _e('Select the days of the week you would like your backup to run.',$namespace) ?></b></p>
197
  <div id="scheduled-backups" style="display: none;">
198
+ <p><?php _e('Backup your site once per week or every day, it\'s up to you. If you have email notifications turned on we\'ll even send you an email when it\'s done. Once your backup file has been created it will appear in the available backups section below. This file may remain on your hosting providers server but we recommend that you download and save it somewhere safe.', $namespace) ?></p>
 
199
  <p>
200
+ <b><?php _e('Please make sure to schedule your backup for at least once per week.', $namespace) ?></b>
201
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-save_schedule_form">
202
  <?php wp_nonce_field($namespace . '-update-schedule',$namespace . '_nonce-update-schedule'); ?>
203
 
204
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'1'))? 'checked' :''; ?> value="1"><?php _e('Monday',$namespace) ?><br>
205
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'2'))? 'checked' :''; ?> value="2"><?php _e('Tuesday', $namespace) ?><br>
206
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'3'))? 'checked' :''; ?> value="3"><?php _e('Wednesday',$namespace) ?><br>
207
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'4'))? 'checked' :''; ?> value="4"><?php _e('Thursday',$namespace) ?><br>
208
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'5'))? 'checked' :''; ?> value="5"><?php _e('Friday',$namespace) ?><br>
209
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'6'))? 'checked' :''; ?> value="6"><?php _e('Saturday',$namespace) ?><br>
210
+ <input <?php echo($schedule_style_disabled); ?> type="checkbox" name="dow" <?php echo (false!==strpos($backup_schedule,'7'))? 'checked' :''; ?> value="7"><?php _e('Sunday',$namespace) ?><br>
211
 
212
  <br/>
213
  <input <?php _e($schedule_style_disabled); ?> type="submit" id="schedule-button" class="schedule-button button-primary" value="<?php _e("Save Schedule", $namespace) ?>"/>
215
  <?php
216
  //Display restore note for lite customers
217
  if (!$license_active || 'expired'== $license_status)
218
+ echo '<p>* ' . sprintf(__('Scheduled backups are only available to WP BackItUp premium customers. Please visit %s to get WP BackItUp risk free for 30 days.', $namespace), $this->get_anchor_with_utm('www.wpbackitup.com','pricing-purchase','scheduled+backups','risk+free') ) . '</p>';
219
  ?>
220
  </div>
221
  </div>
262
 
263
  <!--Download Link-->
264
  <td>
265
+ <a href="#TB_inline?width=600&height=550&inlineId=<?php echo preg_replace('/[^A-Za-z0-9\-]/', '', $backup_name) ?>" class="thickbox" title="<?php echo $backup_name ?>"><?php _e('Download', $namespace) ?></a>
266
  </td>
267
 
268
  <?php if (($log_exists)):?>
269
+ <td><a class='viewloglink' href="<?php echo $backup_name ?>"><?php _e('View Log', $namespace) ?></a></td>
270
  <?php else: ?>
271
  <td>&nbsp;</td>
272
  <?php endif; ?>
273
 
274
+ <td><a href="#" title="<?php echo $backup_name; ?>" class="deleteRow" id="deleteRow<?php echo $i; ?>"><?php _e('Delete', $namespace) ?></a></td>
275
  </tr>
276
 
277
  <?php
280
  }
281
  else
282
  {
283
+ echo '<tr id="nofiles"><td colspan="3">' . __('No backup archives found.',$namespace). '</td></tr>';
284
  }
285
  ?>
286
  </table>
288
  <?php
289
  //Display restore note for lite customers
290
  if (!$license_active)
291
+ echo '<p>* ' . sprintf(__('The automated restore feature is only available to WP BackItUp premium customers. Please visit %s to get WP BackItUp risk free for 30 days.', $namespace), $this->get_anchor_with_utm('www.wpbackitup.com','pricing-purchase','available+backups','risk+free')) . '</p>';
292
  ?>
293
  </div>
294
 
318
  <!--Warning PlaceHolder-->
319
  </ul>
320
 
321
+ <!--success messages-->
322
+ <ul class="backup-success">
323
+ <li class='isa_success'><?php _e('Backup completed successfully', $namespace); ?>.</li>
324
+ </ul>
325
+
326
+ <ul class="backup-warning">
327
+ <!--Warning PlaceHolder-->
328
+ </ul>
329
+
330
+ <!--cancelled messages-->
331
+ <ul class="backup-cancelled">
332
+ <li class='isa_cancelled'><?php _e('Backup Cancelled', $namespace); ?>.</li>
333
+ </ul>
334
 
 
 
 
335
 
336
  </div>
337
 
343
  <div class="widget">
344
  <h3 class="promo"><?php _e('Backups', $namespace); ?> <span style="float: right"><?php _e('Version ' .$version, $namespace); ?></span></h3>
345
  <?php if ($this->successful_backup_count()<1) : ?>
346
+ <p><?php _e('Welcome to WP BackItUp!', $namespace) ?><br/> <?php _e('The simplest way to backup your WordPress site.', $namespace) ?></p>
347
+ <p><?php _e('Getting started is easy, just click the backup button on the left side of this page.', $namespace) ?></p>
348
  <?php endif ?>
349
 
350
  <?php if ($this->successful_backup_count()>=1) : ?>
351
+ <p><?php printf(__('Congratulations! You have performed <span style="font-weight:bold;font-size:medium;color: green">%s</span> successful backups.', $namespace),$this->successful_backup_count()) ?></p>
352
+ <p><span style="font-weight:bold;font-size:medium"><?php _e('Tips', $namespace) ?></span>
353
+ <br/>1)&nbsp;<?php _e('Backup your site at least once per week',$namespace) ?>
354
+ <br/>2)&nbsp;<?php _e('Download all your backups and store them somewhere safe', $namespace) ?>
355
+ <br/>3)&nbsp;<?php _e('Verify your backup files are good by taking a look at what\'s inside', $namespace) ?>
356
  </p>
357
  <?php endif ?>
358
 
359
  <?php if (!$license_active && $this->successful_backup_count()>=10) : ?>
360
+ * <?php printf(__('Why not %s and schedule your backups!', $namespace), $this->get_anchor_with_utm(__('upgrade',$namespace),'pricing-purchase','get+license','purchase')) ?>
361
  <?php endif ?>
362
  </div>
363
 
371
  <?php wp_nonce_field($namespace . "-register"); ?>
372
  <p><?php _e('Enter your name and email address below to receive <b>special offers</b> and access to our world class <b>support</b> team. <br />
373
  <br />Enter your license key below to activate it on this site.', $namespace); ?></p>
374
+ <input type="text" name="license_name" id="license_name" placeholder="<?php _e('name',$namespace)?>" value="<?php echo($license_customer_name) ?>" /><br/>
375
+ <input type="text" name="license_email" id="license_email" placeholder="<?php _e('email address',$namespace)?>" value="<?php echo($license_customer_email) ?>" /><br/>
376
+ <input type="text" name="license_key" id="license_key" placeholder="<?php _e('license key',$namespace)?>" value="<?php if ($license_key != 'lite') { echo $license_key; } ?>" ?> &nbsp;<span style="color:red"><?php printf(__("%s", $namespace), $license_status_message); ?></span>
377
+ <br />* <?php _e('Free plugin customers do not need to enter license key.', $namespace) ?>
378
  <div class="submit"><input type="submit" name="Submit" class="button-secondary" value="<?php _e("Register", $namespace) ?>" /></div>
379
  </form>
380
  </div>
406
 
407
  if($license_active) {
408
  echo('<p>');
409
+ echo(__('Name', $namespace) . ': &nbsp;' . $license_customer_name);
410
+ echo('<br/>' . __('Email', $namespace) . ': &nbsp;' . $license_customer_email);
411
+ echo('<br/>' . __('License Type', $namespace) . ': &nbsp;' . $license_type_description);
412
+ echo('<br/>' . __('Expires', $namespace) . ': &nbsp;' . $formatted_expired_date);
413
  echo('</p>');
414
  } else {
415
+ echo '<p>' . __('Enter license key to activate on this site.',$namespace) . '</p>';
416
  }
417
  ?>
418
 
419
+ <input type="text" name="data[license_key]" id="license_key" value="<?php echo $license_key; ?>" />&nbsp;
420
 
421
  <?php if ($license_status=='valid'): ?>
422
+ <span style="color:green"><?php __('License Active', $namespace) ?></span>
423
  <?php endif; ?>
424
 
425
  <?php if ($license_status=='invalid'): ?>
426
+ <span style="color:<?php echo $fontColor; ?>"><?php printf(__("%s", $namespace), $license_status_message); ?></span>
427
  <?php endif; ?>
428
 
429
  <?php if ($license_status=='expired'): ?>
430
+ <span style="color:red"><?php _e('License expired', $namespace) ?>:&nbsp;<?php printf(__("%s", $namespace), $formatted_expired_date); ?></span>
431
  <?php endif; ?>
432
 
433
  <?php if ($license_active) : ?>
439
  <?php endif; ?>
440
 
441
  <?php if ($license_status=='invalid' || $license_status==''): ?>
442
+ <p><?php printf(__("Purchase a %s license using the purchase link above.", $namespace), $this->get_anchor_with_utm(__('no-risk',$namespace),'pricing-purchase','license','no+risk')) ?></p>
443
  <?php endif; ?>
444
 
445
  <?php if ($license_status=='expired'): ?>
446
+ <div>
447
+ <?php
448
+ printf( __('<a href="%s" target="blank">Renew</a> your license now for another year of <strong>product updates</strong> and <strong>priority support.</strong>',$namespace),
449
+ esc_url(sprintf('%s/checkout?edd_license_key=%s&download_id=679&nocache=true&utm_medium=plugin&utm_source=wp-backitup&utm_campaign=premium&utm_content=license&utm_term=license+expired', WPBACKITUP__SECURESITE_URL,$license_key)))?>
450
+ </div>
451
  <?php endif; ?>
452
 
453
  </form>
459
  <h3 class="promo"><?php _e('Useful Links', $namespace); ?></h3>
460
  <ul>
461
  <?php if ($license_active) : ?>
462
+ <li><?php echo($this->get_anchor_with_utm(__('Your account',$namespace),'account','useful+links','your+account')) ?></li>
463
  <?php endif; ?>
464
 
465
  <?php if (!$license_active) : ?>
466
+ <li><?php echo($this->get_anchor_with_utm(__('Your account',$namespace),'account','useful+links','your+account'))?></li>
467
  <?php endif; ?>
468
 
469
+ <li><?php echo($this->get_anchor_with_utm(__('Documentation',$namespace),'documentation/faqs/wp-backitup-logging','useful+links','help'))?></li>
470
 
471
  <?php if ($license_active || $is_lite_registered) : ?>
472
+ <li><?php echo( $this->get_anchor_with_utm(__('Get support',$namespace),'support' ,'useful+links','get+support'))?></li>
473
  <?php endif; ?>
474
 
475
+ <li><?php echo($this->get_anchor_with_utm(__('Feature request',$namespace),'contact' ,'useful+links','feature+request'))?></li>
476
 
477
+ <li><?php echo($this->get_anchor_with_utm(__('Contact',$namespace) ,'contact','useful+links','contact'))?></li>
478
 
479
  </ul>
480
  </div>
494
  $count=0;
495
  ?>
496
  <div id="<?php echo preg_replace('/[^A-Za-z0-9\-]/', '', $backup_name) ?>" style="display:none;">
497
+ <h2><?php _e('WP BackItUp Backup Set', $namespace) ?>:</h2>
498
  <h2><em><?php echo $backup_name ?></em></h2>
499
+ <p><?php _e('Below are the archive files included in this backup set. Click the link to download.', $namespace) ?></p>
500
  <table id="datatable" class="widefat">
501
  <tbody>
502
  <?php foreach ($zip_files as $file) :
515
  </div>
516
  <?php endif; ?>
517
  <div id="new_backup" style="display:none;">
518
+ <h2><?php _e('WP BackItUp Backup Set', $namespace) ?></h2>
519
+ <p><?php _e('Please refresh this page to download your new backup files.', $namespace) ?></p>
520
  </div>
521
  </span>
522
  <!--End File download lists-->
views/restore.php CHANGED
@@ -12,8 +12,8 @@
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
15
- $page_title = $this->friendly_name . ' Restore';
16
  $namespace = $this->namespace;
 
17
 
18
  //Path Variables
19
  $backup_folder_root = WPBACKITUP__BACKUP_PATH .'/';
@@ -70,16 +70,16 @@
70
  <?php
71
  //Fatal Error - no backup folder
72
  if (!$backup_folder_exists) {
73
- echo '<div class="error"><p><strong>Error: Backup folder does not exist. Please contact ';
74
- echo($this->get_anchor_with_utm('support','support' ,'restore+error','no+backup+folder'));
75
- echo ' for assistance.</strong></p></div>';
76
  }
77
 
78
  //Fatal Error - no restore folder
79
  if (!$restore_folder_exists) {
80
- echo '<div class="error"><p><strong>Error: Restore folder does not exist. Please contact ';
81
- echo($this->get_anchor_with_utm('support','support' ,'restore+error','no+restore+folder'));
82
- echo ' for assistance.</strong></p></div>';
83
  }
84
  ?>
85
 
@@ -108,11 +108,11 @@ if (!$restore_folder_exists) {
108
  <tr <?php echo $class ?> id="row<?php echo $i; ?>">
109
  <td><?php echo $backup_name ?></td>
110
  <td>&nbsp;</td>
111
- <td><a href="#" title="<?php echo $backup_name; ?>" class="deleteRow" id="deleteRow<?php echo $i; ?>">Delete</a></td>
112
  <?php
113
  if ($this->license_active())
114
  {
115
- echo '<td><a href="#" title="' . $backup_name . '" class="restoreRow" id="restoreRow' . $i . '">Restore</a></td>';
116
  }
117
  ?>
118
  </tr>
@@ -122,7 +122,7 @@ if (!$restore_folder_exists) {
122
  }
123
  else
124
  {
125
- echo '<tr id="nofiles"><td colspan="3">No backup archives found.</td></tr>';
126
  }
127
  ?>
128
  </table>
@@ -138,7 +138,7 @@ if (!$restore_folder_exists) {
138
  //Display restore note for lite customers
139
  if (!$this->license_active())
140
  {
141
- echo '<p>* The automated restore feature is only available to licensed customers. Please visit <a href="' . WPBACKITUP__SITE_URL .'" target="_blank">'. WPBACKITUP__SITE_URL .'</a> to get license WP BackItUp risk free for 30 days.</p>';
142
  }
143
  ?>
144
  </div>
@@ -245,20 +245,20 @@ if (!$restore_folder_exists) {
245
  <span class="error210"><div class='isa_error'><?php _e('Error 210: Unable to get current user password from database. Please try again', $namespace); ?>.</div></span>
246
  <span class="error211"><div class='isa_error'><?php _e('Error 211: Unable to get current user email from database. Please try again', $namespace); ?>.</div></span>
247
  <span class="error212"><div class='isa_error'><?php _e('Error 212: Unable to import your database. This may require importing the file manually', $namespace); ?>.</div></span>
248
- <span class="warning213"><div class='isa_warning'><?php _e('Warning 213: Unable to update your site URL value. Please check your Wordpress general settings to make sure your Site and Wordpress URLs are correct', $namespace); ?>.</div></span>
249
- <span class="warning214"><div class='isa_warning'><?php _e('Warning 214: Unable to update your home URL value. Please check your Wordpress general settings to make sure your Site and Wordpress URLs are correct', $namespace); ?>.</div></span>
250
  <span class="warning215"><div class='isa_warning'><?php _e('Warning 215: Unable to update your user information. This may require you to login with the admin username and password that was used when the backup was created', $namespace); ?>.</div></span>
251
  <span class="error216"><div class='isa_error'><?php _e('Error 216: Database not found in backup', $namespace); ?>.</div></span>
252
  <span class="warning217"><div class='isa_warning'><?php _e('Warning 217: Unable to remove existing wp-content directory', $namespace); ?>.</div></span>
253
  <span class="error218"><div class='isa_error'><?php _e('Error 218: Unable to create new wp-content directory. Please check your CHMOD settings in /wp-content/', $namespace); ?>.</div></span>
254
  <span class="error219"><div class='isa_error'><?php _e('Error 219: Unable to import wp-content. Please try again', $namespace); ?>.</div></span>
255
  <span class="warning220"><div class='isa_warning'><?php _e('Warning 220: Unable to cleanup import directory. No action is required', $namespace); ?>.</div></span>
256
- <span class="error221"><div class='isa_error'><?php _e('Error 221: Table prefix value in wp-config.php is different from backup. This MUST be changed in your wp-config.php file before you will be able to restore your site. See www.wpbackitup.com <a href ="http://www.wpbackitup.com/documentation/faqs/wordpress-table-prefix" target="_blank" > FAQs</a> for more info.', $namespace); ?>.</div></span>
257
  <span class='error222'><div class='isa_error'><?php _e('Error 222: Unable to create restore folder', $namespace); ?>.</div></span>
258
  <span class='error223'><div class='isa_error'><?php _e('Error 223: An error occurred during the restore. WP BackItUp attempted to restore the database to its previous state but were unsuccessful. Please contact WP BackItUp customer support and do not attempt to perform any further restores', $namespace); ?>.</div></span>
259
  <span class='error224'><div class='isa_error'><?php _e('Error 224: An error occurred during the restore, however, we have successfully restored your database to the previous state', $namespace); ?>.</div></span>
260
  <span class='error225'><div class='isa_error'><?php _e('Error 225: Restore option is only available to licensed WP BackItUp users', $namespace); ?>.</div></span>
261
- <span class='error226'><div class='isa_error'><?php _e('Error 226: Restore cannot proceed because your backup was created using a different version of Wordpress', $namespace); ?>.</div></span>
262
  <span class='error227'><div class='isa_error'><?php _e('Error 227: Restore cannot proceed because your backup was created using a different version of WP BackItUp. Please contact WP BackItUp support to help convert this backup to the current version', $namespace); ?>.</div></span>
263
  <span class="error230"><div class='isa_error'><?php _e('Error 230: WP BackItUp ran into unexpected errors during the database restore. However, we were able to successfully revert the database back to its original state . This error may require importing the database manually', $namespace); ?>.</div></span>
264
  <span class="error235"><div class='isa_error'><?php _e('Error 235: WP BackItUp is not able to proceed because there is no zip utility available. Please contact support', $namespace); ?>.</div></span>
@@ -268,7 +268,7 @@ if (!$restore_folder_exists) {
268
  <span class="error252"><div class='isa_error'><?php _e('Error 252: At least one zip file is missing from your backup set. Please make sure to upload all zip files that were part of this backup', $namespace); ?>.</div></span>
269
  <span class="error253"><div class='isa_error'><?php _e('Error 253: Backup set contains a zip file that is not in the manifest. Please make sure to upload only zip files that were part of this backup', $namespace); ?>.</div></span>
270
 
271
- <span class="warning300"><div class='isa_warning'><?php _e('Warning 300: Unable to restore all Wordpress content. Please review your restore logs to see what WP BackItUp was unable to restore', $namespace); ?>.</div></span>
272
  <span class="warning305"><div class='isa_warning'><?php _e('Warning 305: Unable to restore all plugins. Please review your restore logs to see what WP BackItUp was unable to restore', $namespace); ?>.</div></span>
273
 
274
  <span class="error2001"><div class='isa_error'><?php _e('Error 2001: Unable to prepare site for restore', $namespace); ?>.</div></span>
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
 
15
  $namespace = $this->namespace;
16
+ $page_title = sprintf(__('%s Restore', $namespace), $this->friendly_name );
17
 
18
  //Path Variables
19
  $backup_folder_root = WPBACKITUP__BACKUP_PATH .'/';
70
  <?php
71
  //Fatal Error - no backup folder
72
  if (!$backup_folder_exists) {
73
+ echo '<div class="error"><p><strong>';
74
+ printf(__('Error: Backup folder does not exist. Please contact %s for assistance.', $namespace), $this->get_anchor_with_utm(__('support',$namespace),'support' ,'restore+error','no+backup+folder'));
75
+ echo '</strong></p></div>';
76
  }
77
 
78
  //Fatal Error - no restore folder
79
  if (!$restore_folder_exists) {
80
+ echo '<div class="error"><p><strong>';
81
+ printf(__('Error: Restore folder does not exist. Please contact %s for assistance.', $namespace), $this->get_anchor_with_utm(__('support',$namespace),'support' ,'restore+error','no+restore+folder') );
82
+ echo '</strong></p></div>';
83
  }
84
  ?>
85
 
108
  <tr <?php echo $class ?> id="row<?php echo $i; ?>">
109
  <td><?php echo $backup_name ?></td>
110
  <td>&nbsp;</td>
111
+ <td><a href="#" title="<?php echo $backup_name; ?>" class="deleteRow" id="deleteRow<?php echo $i; ?>"><?php _e('Delete', $namespace) ?></a></td>
112
  <?php
113
  if ($this->license_active())
114
  {
115
+ echo '<td><a href="#" title="' . $backup_name . '" class="restoreRow" id="restoreRow' . $i . '">' . __('Restore', $namespace) . '</a></td>';
116
  }
117
  ?>
118
  </tr>
122
  }
123
  else
124
  {
125
+ echo '<tr id="nofiles"><td colspan="3">' . __('No backup archives found.', $namespace) .'</td></tr>';
126
  }
127
  ?>
128
  </table>
138
  //Display restore note for lite customers
139
  if (!$this->license_active())
140
  {
141
+ printf( __('<p>* The automated restore feature is only available to licensed customers. Please visit <a href="%s" target="_blank">%s</a> to get license WP BackItUp risk free for 30 days.</p>', $namespace), WPBACKITUP__SITE_URL, WPBACKITUP__SITE_URL);
142
  }
143
  ?>
144
  </div>
245
  <span class="error210"><div class='isa_error'><?php _e('Error 210: Unable to get current user password from database. Please try again', $namespace); ?>.</div></span>
246
  <span class="error211"><div class='isa_error'><?php _e('Error 211: Unable to get current user email from database. Please try again', $namespace); ?>.</div></span>
247
  <span class="error212"><div class='isa_error'><?php _e('Error 212: Unable to import your database. This may require importing the file manually', $namespace); ?>.</div></span>
248
+ <span class="warning213"><div class='isa_warning'><?php _e('Warning 213: Unable to update your site URL value. Please check your WordPress general settings to make sure your Site and WordPress URLs are correct', $namespace); ?>.</div></span>
249
+ <span class="warning214"><div class='isa_warning'><?php _e('Warning 214: Unable to update your home URL value. Please check your WordPress general settings to make sure your Site and WordPress URLs are correct', $namespace); ?>.</div></span>
250
  <span class="warning215"><div class='isa_warning'><?php _e('Warning 215: Unable to update your user information. This may require you to login with the admin username and password that was used when the backup was created', $namespace); ?>.</div></span>
251
  <span class="error216"><div class='isa_error'><?php _e('Error 216: Database not found in backup', $namespace); ?>.</div></span>
252
  <span class="warning217"><div class='isa_warning'><?php _e('Warning 217: Unable to remove existing wp-content directory', $namespace); ?>.</div></span>
253
  <span class="error218"><div class='isa_error'><?php _e('Error 218: Unable to create new wp-content directory. Please check your CHMOD settings in /wp-content/', $namespace); ?>.</div></span>
254
  <span class="error219"><div class='isa_error'><?php _e('Error 219: Unable to import wp-content. Please try again', $namespace); ?>.</div></span>
255
  <span class="warning220"><div class='isa_warning'><?php _e('Warning 220: Unable to cleanup import directory. No action is required', $namespace); ?>.</div></span>
256
+ <span class="error221"><div class='isa_error'><?php printf(__('Error 221: Table prefix value in wp-config.php is different from backup. This MUST be changed in your wp-config.php file before you will be able to restore your site. See www.wpbackitup.com <a href ="%s" target="_blank" > FAQs</a> for more info.'),esc_url('http://www.wpbackitup.com/documentation/migration/wordpress-table-prefix'), $namespace); ?>.</div></span>
257
  <span class='error222'><div class='isa_error'><?php _e('Error 222: Unable to create restore folder', $namespace); ?>.</div></span>
258
  <span class='error223'><div class='isa_error'><?php _e('Error 223: An error occurred during the restore. WP BackItUp attempted to restore the database to its previous state but were unsuccessful. Please contact WP BackItUp customer support and do not attempt to perform any further restores', $namespace); ?>.</div></span>
259
  <span class='error224'><div class='isa_error'><?php _e('Error 224: An error occurred during the restore, however, we have successfully restored your database to the previous state', $namespace); ?>.</div></span>
260
  <span class='error225'><div class='isa_error'><?php _e('Error 225: Restore option is only available to licensed WP BackItUp users', $namespace); ?>.</div></span>
261
+ <span class='error226'><div class='isa_error'><?php _e('Error 226: Restore cannot proceed because your backup was created using a different version of WordPress', $namespace); ?>.</div></span>
262
  <span class='error227'><div class='isa_error'><?php _e('Error 227: Restore cannot proceed because your backup was created using a different version of WP BackItUp. Please contact WP BackItUp support to help convert this backup to the current version', $namespace); ?>.</div></span>
263
  <span class="error230"><div class='isa_error'><?php _e('Error 230: WP BackItUp ran into unexpected errors during the database restore. However, we were able to successfully revert the database back to its original state . This error may require importing the database manually', $namespace); ?>.</div></span>
264
  <span class="error235"><div class='isa_error'><?php _e('Error 235: WP BackItUp is not able to proceed because there is no zip utility available. Please contact support', $namespace); ?>.</div></span>
268
  <span class="error252"><div class='isa_error'><?php _e('Error 252: At least one zip file is missing from your backup set. Please make sure to upload all zip files that were part of this backup', $namespace); ?>.</div></span>
269
  <span class="error253"><div class='isa_error'><?php _e('Error 253: Backup set contains a zip file that is not in the manifest. Please make sure to upload only zip files that were part of this backup', $namespace); ?>.</div></span>
270
 
271
+ <span class="warning300"><div class='isa_warning'><?php _e('Warning 300: Unable to restore all WordPress content. Please review your restore logs to see what WP BackItUp was unable to restore', $namespace); ?>.</div></span>
272
  <span class="warning305"><div class='isa_warning'><?php _e('Warning 305: Unable to restore all plugins. Please review your restore logs to see what WP BackItUp was unable to restore', $namespace); ?>.</div></span>
273
 
274
  <span class="error2001"><div class='isa_error'><?php _e('Error 2001: Unable to prepare site for restore', $namespace); ?>.</div></span>
views/settings.php CHANGED
@@ -12,13 +12,16 @@
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
15
- $page_title = $this->friendly_name . ' Settings';
16
  $namespace = $this->namespace;
 
17
 
18
  $license_active = $this->license_active();
19
  $is_lite_registered = $this->is_lite_registered();
20
 
21
- $backup_batch_size=$this->backup_batch_size();
 
 
 
22
 
23
  //Hold off on this for a bit
24
  $disabled='';
@@ -37,8 +40,8 @@
37
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-form">
38
  <?php wp_nonce_field($namespace . "-update-options"); ?>
39
  <div class="widget">
40
- <h3 class="promo"><i class="fa fa-envelope"></i> Email Notifications</h3>
41
- <p><b>Please enter your email address if you would like to receive backup email notifications.</b></p>
42
  <p><?php _e('Backup email notifications will be sent for every backup and will contain status information related to the backup.', $namespace); ?></p>
43
  <p><input type="text" name="data[notification_email]" value="<?php echo $this->notification_email(); ?>" size="30"></p>
44
  <div class="submit"><input <?php echo($disabled) ; ?> type="submit" name="Save_Email" class="button-primary" value="<?php _e("Save", $namespace) ?>" />
@@ -57,11 +60,9 @@
57
 
58
 
59
  <div class="widget">
60
- <h3 class="promo"><i class="fa fa-trash-o"></i> Backup Retention</h3>
61
- <p><b>Enter the number of backup archives that you would like to remain on the server.</b></p>
62
- <p>Many hosts limit the amount of space that you can take up on their servers. This option tells
63
- WP BackItUp the maximum number of backup archives that should remain on your hosts server. Don't worry, we will
64
- always remove the oldest backup archives first.</p>
65
  <p><input type="text" name="data[backup_retained_number]" value="<?php echo $this->backup_retained_number(); ?>" size="4"></p>
66
  <div class="submit"><input type="submit" name="Save_Retention" class="button-primary" value="<?php _e("Save", $namespace) ?>" /></div>
67
  <?php
@@ -80,7 +81,7 @@
80
  </div>
81
 
82
  <div class="widget">
83
- <h3 class="promo"><i class="fa fa-file-text-o"></i> Turn on logging?</h3>
84
  <p><input type="radio" name="data[logging]" value="true" <?php if ($this->logging()) echo 'checked'; ?>> <label><?php _e('Yes', $namespace); ?></label></p>
85
  <p><input type="radio" name="data[logging]" value="false" <?php if (!$this->logging()) echo 'checked'; ?>> <label><?php _e('No', $namespace); ?></label></p>
86
  <p><?php _e('This option should only be turned on when troubleshooting issues with WPBackItUp support.', $namespace); ?></p>
@@ -88,10 +89,28 @@
88
  </div>
89
 
90
  <div class="widget">
91
- <h3 class="promo"><i class="fa fa-wrench"></i> Advanced Settings</h3>
92
- <p><b>These options should only be changed when working with WP BackItUp support.</b></p>
93
- <input name="data[backup_batch_size]" id="wpbackitup_batch_size" type="text" size="2" value="<?php echo $backup_batch_size; ?>"/>
94
- <label> Backup batch size</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  <p class="submit"><input type="submit" name="Save_AdvancedSettings" class="button-primary" value="<?php _e("Save", $namespace) ?>" />
96
  <?php
97
  if ( false !== ( $msg = get_transient('batch_size_settings-error-number') ) && $msg)
@@ -103,13 +122,6 @@
103
  </p>
104
  </div>
105
 
106
- <!--Debug Widget-->
107
- <?php if (WP_DEBUG===true) :?>
108
- <div class="widget">
109
- <h3><i class="fa fa-wrench"></i> <?php _e('Debug', $namespace); ?></h3>
110
- <div id="php"><p>Debugging is turned on in your wp-config.php file and should only be used when troubleshooting issues on your site.</p></div>
111
- </div>
112
- <?php endif; ?>
113
 
114
  </form>
115
  </div>
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
 
15
  $namespace = $this->namespace;
16
+ $page_title = sprintf(__('%s Settings', $namespace), $this->friendly_name );
17
 
18
  $license_active = $this->license_active();
19
  $is_lite_registered = $this->is_lite_registered();
20
 
21
+ $backup_plugins_batch_size=$this->backup_plugins_batch_size();
22
+ $backup_themes_batch_size=$this->backup_themes_batch_size();
23
+ $backup_uploads_batch_size=$this->backup_uploads_batch_size();
24
+ $backup_others_batch_size=$this->backup_others_batch_size();
25
 
26
  //Hold off on this for a bit
27
  $disabled='';
40
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-form">
41
  <?php wp_nonce_field($namespace . "-update-options"); ?>
42
  <div class="widget">
43
+ <h3 class="promo"><i class="fa fa-envelope"></i> <?php _e('Email Notifications', $namespace) ?></h3>
44
+ <p><b><?php _e('Please enter your email address if you would like to receive backup email notifications.', $namespace) ?></b></p>
45
  <p><?php _e('Backup email notifications will be sent for every backup and will contain status information related to the backup.', $namespace); ?></p>
46
  <p><input type="text" name="data[notification_email]" value="<?php echo $this->notification_email(); ?>" size="30"></p>
47
  <div class="submit"><input <?php echo($disabled) ; ?> type="submit" name="Save_Email" class="button-primary" value="<?php _e("Save", $namespace) ?>" />
60
 
61
 
62
  <div class="widget">
63
+ <h3 class="promo"><i class="fa fa-trash-o"></i> <?php _e('Backup Retention', $namespace) ?></h3>
64
+ <p><b><?php _e('Enter the number of backup archives that you would like to remain on the server.', $namespace) ?></b></p>
65
+ <p><?php _e('Many hosts limit the amount of space that you can take up on their servers. This option tells WP BackItUp the maximum number of backup archives that should remain on your hosts server. Don\'t worry, we will always remove the oldest backup archives first.', $namespace) ?></p>
 
 
66
  <p><input type="text" name="data[backup_retained_number]" value="<?php echo $this->backup_retained_number(); ?>" size="4"></p>
67
  <div class="submit"><input type="submit" name="Save_Retention" class="button-primary" value="<?php _e("Save", $namespace) ?>" /></div>
68
  <?php
81
  </div>
82
 
83
  <div class="widget">
84
+ <h3 class="promo"><i class="fa fa-file-text-o"></i> <?php _e('Turn on logging?', $namespace) ?></h3>
85
  <p><input type="radio" name="data[logging]" value="true" <?php if ($this->logging()) echo 'checked'; ?>> <label><?php _e('Yes', $namespace); ?></label></p>
86
  <p><input type="radio" name="data[logging]" value="false" <?php if (!$this->logging()) echo 'checked'; ?>> <label><?php _e('No', $namespace); ?></label></p>
87
  <p><?php _e('This option should only be turned on when troubleshooting issues with WPBackItUp support.', $namespace); ?></p>
89
  </div>
90
 
91
  <div class="widget">
92
+ <h3 class="promo"><i class="fa fa-wrench"></i> <?php _e('Advanced Settings', $namespace) ?></h3>
93
+ <p><b><?php _e('These options should only be changed when working with WP BackItUp support.', $namespace) ?></b></p>
94
+ <p>
95
+ <input name="data[backup_plugins_batch_size]" id="wpbackitup_plugins_batch_size" type="text" size="3" value="<?php echo $backup_plugins_batch_size; ?>"/>
96
+ <label> <?php _e('Plugins Batch Size', $namespace) ?></label>
97
+ </p>
98
+
99
+ <p>
100
+ <input name="data[backup_themes_batch_size]" id="wpbackitup_themes_batch_size" type="text" size="3" value="<?php echo $backup_themes_batch_size; ?>"/>
101
+ <label> <?php _e('Themes Batch Size', $namespace) ?></label>
102
+ </p>
103
+
104
+ <p>
105
+ <input name="data[backup_uploads_batch_size]" id="wpbackitup_uploads_batch_size" type="text" size="3" value="<?php echo $backup_uploads_batch_size; ?>"/>
106
+ <label> <?php _e('Uploads Batch Size', $namespace) ?></label>
107
+ </p>
108
+
109
+ <p>
110
+ <input name="data[backup_others_batch_size]" id="wpbackitup_others_batch_size" type="text" size="3" value="<?php echo $backup_others_batch_size; ?>"/>
111
+ <label> <?php _e('Others Batch Size', $namespace) ?></label>
112
+ </p>
113
+
114
  <p class="submit"><input type="submit" name="Save_AdvancedSettings" class="button-primary" value="<?php _e("Save", $namespace) ?>" />
115
  <?php
116
  if ( false !== ( $msg = get_transient('batch_size_settings-error-number') ) && $msg)
122
  </p>
123
  </div>
124
 
 
 
 
 
 
 
 
125
 
126
  </form>
127
  </div>
views/support.php CHANGED
@@ -12,8 +12,8 @@
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
15
- $page_title = $this->friendly_name . ' Support';
16
  $namespace = $this->namespace;
 
17
 
18
  $license_active = $this->license_active();
19
  $is_lite_registered = $this->is_lite_registered();
@@ -45,11 +45,11 @@
45
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-support-form">
46
  <?php wp_nonce_field($namespace . "-support-form"); ?>
47
  <div class="widget">
48
- <h3 class="promo"><i class="fa fa-envelope"></i> Email Logs to Support</h3>
49
- <p><b>This form should be used to send log files to support only.</b></p>
50
- <p>Please make sure to open a support ticket via WP BackItUp <a href="https://www.wpbackitup.com/support" target="_blank">support portal.</a> before using this form.</p>
51
  <p><em><?php _e('The ticket id you receive from your support request should be entered in the ticket id field below.', $namespace); ?></em></p>
52
- <p><input <?php echo($disabled) ; ?> type="text" name="support_email" value="<?php echo $support_email; ?>" size="30" placeholder="your email address">
53
  <?php
54
  if ( false !== ( $msg = get_transient('error-support-email') ) && $msg)
55
  {
@@ -59,7 +59,7 @@
59
  ?>
60
  </p>
61
 
62
- <p><input <?php echo($disabled) ; ?> type="text" name="support_ticket_id" value="" size="30" placeholder="support ticket id">
63
  <?php
64
  if ( false !== ( $msg = get_transient('error-support-ticket') ) && $msg)
65
  {
@@ -69,7 +69,7 @@
69
  ?>
70
  </p>
71
 
72
- <p><textarea <?php echo($disabled) ; ?> name="support_body" rows="4" cols="50" style="width:450px;height:150px;" placeholder="problem description or additional information"><?php echo get_transient('support_body'); ?></textarea>
73
  <?php
74
  if ( false !== ( $msg = get_transient('error-support-body') ) && $msg)
75
  {
@@ -79,16 +79,15 @@
79
  ?>
80
 
81
  </p>
82
- <!-- <input <?php echo($disabled) ; ?> type="checkbox" name="support_include_logs" id="support_include_logs" value="1" checked> <label for="support_include_logs">send logs</label><br>-->
83
 
84
  <div class="submit"><input <?php echo($disabled) ; ?> type="submit" name="send_ticket" class="button-primary" value="<?php _e("Send", $namespace) ?>" />
85
 
86
  <?php if (!$license_active && !$is_lite_registered) : ?>
87
- <span style="color:red">* Please register your version of WP BackItUp for access to support.</span>
88
  <?php endif; ?>
89
 
90
  <?php if (!$license_active && $is_lite_registered) : ?>
91
- * Premium customers receive priority support.
92
  <?php endif; ?>
93
  </div>
94
 
12
  //Check the license
13
  do_action( 'wpbackitup_check_license');
14
 
 
15
  $namespace = $this->namespace;
16
+ $page_title = sprintf(__("%s Support", $namespace), $this->friendly_name );
17
 
18
  $license_active = $this->license_active();
19
  $is_lite_registered = $this->is_lite_registered();
45
  <form action="admin-post.php" method="post" id="<?php echo $namespace; ?>-support-form">
46
  <?php wp_nonce_field($namespace . "-support-form"); ?>
47
  <div class="widget">
48
+ <h3 class="promo"><i class="fa fa-envelope"></i> <?php _e('Email Logs to Support', $namespace) ?></h3>
49
+ <p><b><?php _e('This form should be used to send log files to support only.', $namespace) ?></b></p>
50
+ <p><?php _e('Please make sure to open a support ticket via WP BackItUp <a href="https://www.wpbackitup.com/support" target="_blank">support portal.</a> before using this form.', $namespace) ?></p>
51
  <p><em><?php _e('The ticket id you receive from your support request should be entered in the ticket id field below.', $namespace); ?></em></p>
52
+ <p><input <?php echo($disabled) ; ?> type="text" name="support_email" value="<?php echo $support_email; ?>" size="30" placeholder="<?php _e('your email address',$namespace)?>">
53
  <?php
54
  if ( false !== ( $msg = get_transient('error-support-email') ) && $msg)
55
  {
59
  ?>
60
  </p>
61
 
62
+ <p><input <?php echo($disabled) ; ?> type="text" name="support_ticket_id" value="" size="30" placeholder="<?php _e('support ticket id',$namespace)?>">
63
  <?php
64
  if ( false !== ( $msg = get_transient('error-support-ticket') ) && $msg)
65
  {
69
  ?>
70
  </p>
71
 
72
+ <p><textarea <?php echo($disabled) ; ?> name="support_body" rows="4" cols="50" style="width:450px;height:150px;" placeholder="<?php _e('problem description or additional information',$namespace)?>"><?php echo get_transient('support_body'); ?></textarea>
73
  <?php
74
  if ( false !== ( $msg = get_transient('error-support-body') ) && $msg)
75
  {
79
  ?>
80
 
81
  </p>
 
82
 
83
  <div class="submit"><input <?php echo($disabled) ; ?> type="submit" name="send_ticket" class="button-primary" value="<?php _e("Send", $namespace) ?>" />
84
 
85
  <?php if (!$license_active && !$is_lite_registered) : ?>
86
+ <span style="color:red">* <?php _e('Please register your version of WP BackItUp for access to support.', $namespace) ?></span>
87
  <?php endif; ?>
88
 
89
  <?php if (!$license_active && $is_lite_registered) : ?>
90
+ * <?php _e('Premium customers receive priority support.', $namespace) ?>
91
  <?php endif; ?>
92
  </div>
93
 
wp-backitup.php CHANGED
@@ -13,7 +13,7 @@
13
  Plugin Name: WP Backitup
14
  Plugin URI: http://www.wpbackitup.com
15
  Description: Backup your content, settings, themes, plugins and media in just a few simple clicks.
16
- Version: 1.10.8
17
  Author: Chris Simmons
18
  Author URI: http://www.wpbackitup.com
19
  License: GPL3
@@ -37,7 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
37
  define( 'WPBACKITUP__NAMESPACE', 'wp-backitup' );
38
  define( 'WPBACKITUP__MAJOR_VERSION', 1);
39
  define( 'WPBACKITUP__MINOR_VERSION', 10);
40
- define( 'WPBACKITUP__MAINTENANCE_VERSION', 8);
41
  define( 'WPBACKITUP__BUILD_VERSION', 0);
42
  define( 'WPBACKITUP__VERSION',sprintf("%d.%d.%d.%d", WPBACKITUP__MAJOR_VERSION, WPBACKITUP__MINOR_VERSION,WPBACKITUP__MAINTENANCE_VERSION,WPBACKITUP__BUILD_VERSION));
43
  define( 'WPBACKITUP__DEBUG', false );
@@ -70,9 +70,9 @@ define( 'WPBACKITUP__THEMES_FOLDER',basename(get_theme_root()));
70
  define( 'WPBACKITUP__SQL_DBBACKUP_FILENAME', 'db-backup.sql');
71
 
72
  define( 'WPBACKITUP__BACKUP_IGNORE_LIST', WPBACKITUP__BACKUP_FOLDER .',' .WPBACKITUP__RESTORE_FOLDER .',updraft*,wp-clone*,backwpup*,backupwordpress*,cache,backupcreator*,backupbuddy*');
73
- define( 'WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST','.htaccess');//comma seperated list with no spaces after comma
74
 
75
- define( 'WPBACKITUP__BACKUP_OTHER_IGNORE_LIST', WPBACKITUP__BACKUP_FOLDER .',' .WPBACKITUP__RESTORE_FOLDER .',updraft*,wp-clone*,backwpup*,backupwordpress*,cache,backupcreator*,backupbuddy*,wptouch-data*,backups*');
76
  define( 'WPBACKITUP__TASK_TIMEOUT_SECONDS', 300);//300 = 5 minutes
77
  define( 'WPBACKITUP__SCRIPT_TIMEOUT_SECONDS', 900);//900 = 15 minutes
78
 
@@ -94,8 +94,8 @@ register_deactivation_hook( __FILE__, array( 'WPBackitup_Admin', 'deactivate' )
94
  function wpbackitup_modify_cron_schedules($schedules) {
95
  $schedules['weekly'] = array('interval' => 604800, 'display' => 'Once Weekly');
96
  $schedules['monthly'] = array('interval' => 2592000, 'display' => 'Once Monthly');
97
- $schedules['every4hours'] = array('interval' => 14400, 'display' => sprintf(__('Every %s hours', 'wpbackitup'), 4));
98
- $schedules['every8hours'] = array('interval' => 28800, 'display' => sprintf(__('Every %s hours', 'wpbackitup'), 8));
99
  return $schedules;
100
  }
101
 
@@ -151,12 +151,6 @@ if (!is_admin()
151
  }
152
 
153
  require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-wpbackitup-admin.php' );
154
- require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-logger.php' );
155
-
156
- //Shared Classes
157
- if( !class_exists('WPBackItUp_Job_v2') ) {
158
- include_once(WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-job-v2.php');
159
- }
160
 
161
  global $WPBackitup;
162
  $WPBackitup = WPBackitup_Admin::get_instance();
13
  Plugin Name: WP Backitup
14
  Plugin URI: http://www.wpbackitup.com
15
  Description: Backup your content, settings, themes, plugins and media in just a few simple clicks.
16
+ Version: 1.10.9
17
  Author: Chris Simmons
18
  Author URI: http://www.wpbackitup.com
19
  License: GPL3
37
  define( 'WPBACKITUP__NAMESPACE', 'wp-backitup' );
38
  define( 'WPBACKITUP__MAJOR_VERSION', 1);
39
  define( 'WPBACKITUP__MINOR_VERSION', 10);
40
+ define( 'WPBACKITUP__MAINTENANCE_VERSION', 9);
41
  define( 'WPBACKITUP__BUILD_VERSION', 0);
42
  define( 'WPBACKITUP__VERSION',sprintf("%d.%d.%d.%d", WPBACKITUP__MAJOR_VERSION, WPBACKITUP__MINOR_VERSION,WPBACKITUP__MAINTENANCE_VERSION,WPBACKITUP__BUILD_VERSION));
43
  define( 'WPBACKITUP__DEBUG', false );
70
  define( 'WPBACKITUP__SQL_DBBACKUP_FILENAME', 'db-backup.sql');
71
 
72
  define( 'WPBACKITUP__BACKUP_IGNORE_LIST', WPBACKITUP__BACKUP_FOLDER .',' .WPBACKITUP__RESTORE_FOLDER .',updraft*,wp-clone*,backwpup*,backupwordpress*,cache,backupcreator*,backupbuddy*');
73
+ define( 'WPBACKITUP__BACKUP_GLOBAL_IGNORE_LIST','.htaccess');//comma separated list with no spaces after comma
74
 
75
+ define( 'WPBACKITUP__BACKUP_OTHER_IGNORE_LIST', WPBACKITUP__BACKUP_FOLDER .',' .WPBACKITUP__RESTORE_FOLDER .',debug.log,updraft*,wp-clone*,backwpup*,backupwordpress*,cache,backupcreator*,backupbuddy*,wptouch-data*,backups*');
76
  define( 'WPBACKITUP__TASK_TIMEOUT_SECONDS', 300);//300 = 5 minutes
77
  define( 'WPBACKITUP__SCRIPT_TIMEOUT_SECONDS', 900);//900 = 15 minutes
78
 
94
  function wpbackitup_modify_cron_schedules($schedules) {
95
  $schedules['weekly'] = array('interval' => 604800, 'display' => 'Once Weekly');
96
  $schedules['monthly'] = array('interval' => 2592000, 'display' => 'Once Monthly');
97
+ $schedules['every4hours'] = array('interval' => 14400, 'display' => sprintf(__('Every %s hours', WPBACKITUP__NAMESPACE), 4));
98
+ $schedules['every8hours'] = array('interval' => 28800, 'display' => sprintf(__('Every %s hours', WPBACKITUP__NAMESPACE), 8));
99
  return $schedules;
100
  }
101
 
151
  }
152
 
153
  require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-wpbackitup-admin.php' );
 
 
 
 
 
 
154
 
155
  global $WPBackitup;
156
  $WPBackitup = WPBackitup_Admin::get_instance();